Neues Control nmpThumbView für Linux Lazarus
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
Neues Control nmpThumbView für Linux Lazarus
Hallo Ihr lieben,
Habe mich mal daran gemacht eine ThumbView für Linux Lazarus zu schreiben und stelle die Thumb hier zum Download rein.
Ich hoffe das euch das Control gefallen wird.
Die ThumbView ist:
primär für Video‑Thumbnails optimiert,
mit einer klaren Scan‑Logik,
und einer Architektur, die auf Video‑Workflows ausgelegt ist.
Bis dann Nora Madeleine
Habe mich mal daran gemacht eine ThumbView für Linux Lazarus zu schreiben und stelle die Thumb hier zum Download rein.
Ich hoffe das euch das Control gefallen wird.
Die ThumbView ist:
primär für Video‑Thumbnails optimiert,
mit einer klaren Scan‑Logik,
und einer Architektur, die auf Video‑Workflows ausgelegt ist.
Bis dann Nora Madeleine
Zuletzt geändert von Nora Madeleine am Sa 10. Jan 2026, 12:07, insgesamt 4-mal geändert.
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
nmpThumbView_Quick-Reference
ich poste auf gleich noch die nmpThumbView_Quick-Reference zur Thumb.
L.G. Nora Madeleine
L.G. Nora Madeleine
Zuletzt geändert von Nora Madeleine am Sa 10. Jan 2026, 12:08, insgesamt 1-mal geändert.
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
Re: Neues Control nmpThumbView für Linux Lazarus
was noch wichtig...„Die nmpThumbView ist vollständig desktop‑unabhängig und funktioniert unter allen gängigen Linux‑Desktops (Cinnamon, XFCE, KDE, GNOME usw.) ohne Anpassungen oder Theme‑Probleme.“
- corpsman
- Lazarusforum e. V.
- Beiträge: 1730
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Neues Control nmpThumbView für Linux Lazarus
Hallo Nora,
wie es der Zufall will, wollte ich eh grad ne Anwendung schreiben die mir eine übersicht über ca 1000 .png Dateien in einem Ordner erstellen kann, da dachte kommt dein "thread" hier genau recht
.
1. Deinen Code und die Quick reference geladen
\-> Deine Lizenz ist echt strange und der Verweis auf die "nmpThumbViewLinuxOnly.pas" noch viel mehr, da es die Datei in deinem Source gar nicht gibt..., aber so what jeder darf seine Lizenz machen wie er will und ich Nutze Linux Mint Mate, darf also
2. Keine Demo App enthalten, also hab ich mir mal ein Leeres Projekt gebaut und folgenden Code eingefügt:
Programm gestartet und ich sehe ein Schwarzes Rechteck, irgendwie hatte ich da mehr erwartet
Also mal versucht ein bisschen in den Code rein zu "Browsen"
Also hab ich alles Bilder mal in ein Unterverzeichnis verschoben, das klappt aber auch nicht
hmm ImgFile findet immer meine .png Dateien aber Vidfile ist leer, ..
OK damit bin ich dann erst mal raus, bzw warte mal auf deine Antworten
- Kann man deine Komponente überhaupt zum Anzeigen von Bildchen nutzen ?
- Hast du vor noch eine Demo oder mehr zu liefern ?
wie es der Zufall will, wollte ich eh grad ne Anwendung schreiben die mir eine übersicht über ca 1000 .png Dateien in einem Ordner erstellen kann, da dachte kommt dein "thread" hier genau recht
1. Deinen Code und die Quick reference geladen
\-> Deine Lizenz ist echt strange und der Verweis auf die "nmpThumbViewLinuxOnly.pas" noch viel mehr, da es die Datei in deinem Source gar nicht gibt..., aber so what jeder darf seine Lizenz machen wie er will und ich Nutze Linux Mint Mate, darf also
2. Keine Demo App enthalten, also hab ich mir mal ein Leeres Projekt gebaut und folgenden Code eingefügt:
Code: Alles auswählen
{ TForm1 }
Procedure TForm1.FormCreate(Sender: TObject);
Begin
nmpThumbView := TnmpThumbView.Create(self);
nmpThumbView.Name := 'nmpThumbView1';
nmpThumbView.Parent := self;
nmpThumbView.top := 8;
nmpThumbView.Left := 8;
nmpThumbView.Width := ClientWidth - 16;
nmpThumbView.Height := ClientHeight - 16;
ShowOnce := true;
End;
Procedure TForm1.FormShow(Sender: TObject);
Begin
If ShowOnce Then Begin
ShowOnce := false;
nmpThumbView.Directory := '/sda5/sda5/Tools/Silk_Icons';
nmpThumbView.LoadDirectory;
nmpThumbView.Refresh;
End;
End;
Also mal versucht ein bisschen in den Code rein zu "Browsen"
Code: Alles auswählen
procedure TnmpThumbView.LoadDirectory;
begin
..
SubDirs := TStringList.Create;
try
SubDirs.Sorted := True;
SubDirs.CaseSensitive := False;
if FindFirst(RootPath + '*', faDirectory, SR) = 0 then
begin
repeat
if ((SR.Attr and faDirectory) <> 0) and (SR.Name <> '.') and (SR.Name <> '..') then
SubDirs.Add(SR.Name);
until FindNext(SR) <> 0;
FindClose(SR);
end;
// -- Aha du erwartest also ein Verzeichnis mit unterverzeichnissen, wenn die Dateien im Root liegen gehts wohl net ...
Code: Alles auswählen
for SubDir in SubDirs do
begin
ImgFile := '';
VidFile := '';
if FindFirst(RootPath + SubDir + '/*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr and faDirectory) = 0 then
begin
if (ImgFile = '') and HasExt(SR.Name, IMAGE_EXTS) then
ImgFile := RootPath + SubDir + '/' + SR.Name
else if (VidFile = '') and HasExt(SR.Name, FVideoFilter) then
VidFile := RootPath + SubDir + '/' + SR.Name;
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
if ImgFile = '' then
ImgFile := FNoImageFoundPicture;
if (ImgFile <> '') and (VidFile <> '') then
OK damit bin ich dann erst mal raus, bzw warte mal auf deine Antworten
- Kann man deine Komponente überhaupt zum Anzeigen von Bildchen nutzen ?
- Hast du vor noch eine Demo oder mehr zu liefern ?
--
Just try it
Just try it
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
Re: Neues Control nmpThumbView für Linux Lazarus
hallo,
das ist wichtig: nmpThumbView1.StartScanFolder := true;
Hier ein Aufruf wie ich es mache....
procedure ScanFolderFilme(ThumbView: TnmpThumbView;BaseFolder,DatasIniFile: string;
ScanOnStart: boolean);
begin
if ( not DirectoryExists( BaseFolder )) or
( not FileExists( DatasIniFile )) or
( ThumbView = nil ) then Exit;
if ScanOnStart then
begin
ThumbView.Directory := BaseFolder;
ThumbView.LoadDirectory;
ThumbView.LoadMetaDataFromIni( DatasIniFile );
end;
end;
BaseFolder hat SubOrdner die durchlaufen werden, in jedem SubOrdner muß ein .png und mindestens ein Video vorhanden sein...
Alle Bilder werden dann gescant und in den Thumbnail-Ordner /home/username/.nmpThumbView/ThumbNails kopiert....
Die Thumb ist also zum anzeigen von Videos ausgelegt, wenn Du eine allein nur für Bilder suchst, muß Du noch warten, den die ist in Arbeit...
Und was die "nmpThumbViewLinuxOnly.pas" angeht, ich hatte eine HardKill-Version geschrieben, die jegliches Portieren zu Delphi verhindert... habe mich aber entschloßen die nicht zu posten.... Ergo habe ich vergessen es aus der Refernce zuentfernen...
L.G. Nora
das ist wichtig: nmpThumbView1.StartScanFolder := true;
Hier ein Aufruf wie ich es mache....
procedure ScanFolderFilme(ThumbView: TnmpThumbView;BaseFolder,DatasIniFile: string;
ScanOnStart: boolean);
begin
if ( not DirectoryExists( BaseFolder )) or
( not FileExists( DatasIniFile )) or
( ThumbView = nil ) then Exit;
if ScanOnStart then
begin
ThumbView.Directory := BaseFolder;
ThumbView.LoadDirectory;
ThumbView.LoadMetaDataFromIni( DatasIniFile );
end;
end;
BaseFolder hat SubOrdner die durchlaufen werden, in jedem SubOrdner muß ein .png und mindestens ein Video vorhanden sein...
Alle Bilder werden dann gescant und in den Thumbnail-Ordner /home/username/.nmpThumbView/ThumbNails kopiert....
Die Thumb ist also zum anzeigen von Videos ausgelegt, wenn Du eine allein nur für Bilder suchst, muß Du noch warten, den die ist in Arbeit...
Und was die "nmpThumbViewLinuxOnly.pas" angeht, ich hatte eine HardKill-Version geschrieben, die jegliches Portieren zu Delphi verhindert... habe mich aber entschloßen die nicht zu posten.... Ergo habe ich vergessen es aus der Refernce zuentfernen...
L.G. Nora
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
Re: Neues Control nmpThumbView für Linux Lazarus
das wäre ein Aufruf wie er für Dich richtig wäre....
nmpThumbView := TnmpThumbView.Create(Self);
nmpThumbView.Parent := Self;
nmpThumbView.Align := alClient;
nmpThumbView.StartScanFolder := True;
nmpThumbView.Directory := '/mnt/sda5/Tools/Silk_Icons';
Hier mal was die ThumbView ist....
Dei ThumbView ist:
primär für Video‑Thumbnails optimiert,
mit einer klaren Scan‑Logik,
und einer Architektur, die auf Video‑Workflows ausgelegt ist.
Sie kann Bilder anzeigen, klar — aber:
der Scan‑Mechanismus ist nicht auf reine Bildordner spezialisiert
die Thumbnail‑Erzeugung ist auf Video‑Frames ausgelegt
die Dateifilterung ist anders
und die Performance‑Strategie ist auf größere Dateien abgestimmt
Ergo wenn Du nur Blider einlesen willst, ist nmpThumbView nicht das richtige Control für Dich
aber das sagt die nmpThumbView_Quick-Reference auch aus !
nmpThumbView := TnmpThumbView.Create(Self);
nmpThumbView.Parent := Self;
nmpThumbView.Align := alClient;
nmpThumbView.StartScanFolder := True;
nmpThumbView.Directory := '/mnt/sda5/Tools/Silk_Icons';
Hier mal was die ThumbView ist....
Dei ThumbView ist:
primär für Video‑Thumbnails optimiert,
mit einer klaren Scan‑Logik,
und einer Architektur, die auf Video‑Workflows ausgelegt ist.
Sie kann Bilder anzeigen, klar — aber:
der Scan‑Mechanismus ist nicht auf reine Bildordner spezialisiert
die Thumbnail‑Erzeugung ist auf Video‑Frames ausgelegt
die Dateifilterung ist anders
und die Performance‑Strategie ist auf größere Dateien abgestimmt
Ergo wenn Du nur Blider einlesen willst, ist nmpThumbView nicht das richtige Control für Dich
aber das sagt die nmpThumbView_Quick-Reference auch aus !
Zuletzt geändert von Nora Madeleine am Di 6. Jan 2026, 19:07, insgesamt 1-mal geändert.
Re: Neues Control nmpThumbView für Linux Lazarus
Soweit ich weiss, funzt mein uralter Thumbviewer noch:corpsman hat geschrieben: Di 6. Jan 2026, 09:14 OK damit bin ich dann erst mal raus, bzw warte mal auf deine Antworten
- Kann man deine Komponente überhaupt zum Anzeigen von Bildchen nutzen ?
- Hast du vor noch eine Demo oder mehr zu liefern ?
viewtopic.php?t=3929
https://github.com/theo222/lazarus-thumbviewer
Ist das nichts für dich?
- corpsman
- Lazarusforum e. V.
- Beiträge: 1730
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Neues Control nmpThumbView für Linux Lazarus
@theo
Und ich sehe direkt Icons, so stellt man sich das vor
, danke für den Hinweis, nu muss ich mal schauen ob die Komponente meine anderen Anforderungen auch hin bekommt 
Im Speziellen will ich die Thumbnails filtern, das heist ich muss auf die einzelnen Elemente Zugreifen können, und deren Visible attribute steuern können, im idealfall sortiert sich die Liste dann entsprechend neu..
Auf den ersten Blick habe ich das in deinem Source erst mal nicht gefunden, mal sehen wie sich das erweitern läst ..
[Edit]
Quasi wenn dass hier ginge, dann bin ich schon "fertig";)
[Edit2]
So ich hab mal ein klein wenig in deinem Code "geändert" folgender Code geht
Ich mach dir nen Pullrequest auf github 
Code: Alles auswählen
Procedure TForm1.FormCreate(Sender: TObject);
Begin
TThumbControl1 := TThumbControl.Create(self);
TThumbControl1.name := 'TThumbControl1';
TThumbControl1.Parent := self;
TThumbControl1.Align := alClient;
TThumbControl1.Directory := '/sda5/sda5/Tools/Silk_Icons';
End;
Im Speziellen will ich die Thumbnails filtern, das heist ich muss auf die einzelnen Elemente Zugreifen können, und deren Visible attribute steuern können, im idealfall sortiert sich die Liste dann entsprechend neu..
Auf den ersten Blick habe ich das in deinem Source erst mal nicht gefunden, mal sehen wie sich das erweitern läst ..
[Edit]
Quasi wenn dass hier ginge, dann bin ich schon "fertig";)
Code: Alles auswählen
Procedure TForm1.Edit1Change(Sender: TObject);
Var
i: Integer;
Begin
If Edit1.Text = '' Then Begin
For i := 0 To ThumbControl1.items.count - 1 Do Begin
ThumbControl1.items[i].Visible := true;
End;
End
Else Begin
For i := 0 To ThumbControl1.items.count - 1 Do Begin
ThumbControl1.items[i].Visible := pos(lowercase(edit1.text), lowercase(extractfilename(ThumbControl1.items[i].Url))) <> 0;
End;
End;
ThumbControl1.invalidate;
End;
So ich hab mal ein klein wenig in deinem Code "geändert" folgender Code geht
Code: Alles auswählen
Procedure TForm1.Edit1Change(Sender: TObject);
Var
i: Integer;
Begin
If Edit1.Text = '' Then Begin
For i := 0 To ThumbControl1.itemcount - 1 Do Begin
ThumbControl1.items[i].Visible := true;
End;
End
Else Begin
For i := 0 To ThumbControl1.itemcount - 1 Do Begin
ThumbControl1.items[i].Visible := pos(lowercase(edit1.text), lowercase(extractfilename(ThumbControl1.items[i].Url))) <> 0;
End;
End;
ThumbControl1.invalidate;
End;
--
Just try it
Just try it
- corpsman
- Lazarusforum e. V.
- Beiträge: 1730
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Neues Control nmpThumbView für Linux Lazarus
@theo,
wenn man die Änderungen im Pullrequest raus rechnet, konnte ich mit deiner Komponente dieses kleine Programm, welches genau meine Wünsche Abdeckt in unter 100 Zeilen Code schreiben
Features:
- Anzeigen von Bilddateien in einen Verzeichnis als Thumbnails
- Zoom via Scrollrad
- Filter (auf Dateinamen) durch Eingabe von Suchbegriffen
- Anzeige eines Dateinamens durch "click" auf das Thumbnail
- Copy des Quellbildes in ein gewähltes Zielverzeichnis durch popup menu
wenn man die Änderungen im Pullrequest raus rechnet, konnte ich mit deiner Komponente dieses kleine Programm, welches genau meine Wünsche Abdeckt in unter 100 Zeilen Code schreiben
Features:
- Anzeigen von Bilddateien in einen Verzeichnis als Thumbnails
- Zoom via Scrollrad
- Filter (auf Dateinamen) durch Eingabe von Suchbegriffen
- Anzeige eines Dateinamens durch "click" auf das Thumbnail
- Copy des Quellbildes in ein gewähltes Zielverzeichnis durch popup menu
--
Just try it
Just try it
Re: Neues Control nmpThumbView für Linux Lazarus
Schön, wenn der alte Code hilft.
Bist du dir mit den Änderungen sicher? Wenn ja, werde ich den pull request mergen, ohne Test.
Andererseits hast du ja unlängst geforkt, so könntest du ja erst mal da weitermachen und ich lasse meine alte Version noch in Ruhe?
Bist du dir mit den Änderungen sicher? Wenn ja, werde ich den pull request mergen, ohne Test.
Andererseits hast du ja unlängst geforkt, so könntest du ja erst mal da weitermachen und ich lasse meine alte Version noch in Ruhe?
Re: Neues Control nmpThumbView für Linux Lazarus
Da du hier in dem Beispiel-Screenshot Icons anzeigst, frage ich, ob es dir um die Anzeige von Icons oder von "normalen" Bildern (Fotos etc) geht? Im Fall von Icons (wo kein Umskalieren der Bilder nötig ist) sollte ich vielleicht darauf hinweisen, dass Lazarus seit Version 4 einen Icon-Viewer verfügbar hat, als Zusatzpackage "iconfinder" (unter "Package" > "Installierte Packages einrichten" zu installieren). Der Icon-Finder ist in die ImageList- und Picture-Editoren integriert. Das besondere dabei ist, dass in jedem Icon-Verzeichnis eine Datei "metadata.xml" mit Suchwörtern zu jedem Bild angelegt ist, so dass man Icons ganz schnell findet und in die eigene ImageListe oder das eigene Image integrieren kann. Leider gibt es noch ein paar Kleinigkeiten, um deren Behebung ich mich drücke (z.B. gibt es die Suchbegriffe nur auf Englisch), so dass ich noch keine große Bekanntmachung dazu gemacht habe.
- Dateianhänge
-
- iconfinder.png (33.43 KiB) 336 mal betrachtet
-
Linkat
- Lazarusforum e. V.
- Beiträge: 573
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Neues Control nmpThumbView für Linux Lazarus
Beachtet bitte, dass dies der Thread von Nora ist!!!
Ihr seid schon ordentlich abgebogen.
Ihr seid schon ordentlich abgebogen.
Linux Mint 22.1; Lazarus 4.2 FPC 3.2.2; RaspiOS
-
Nora Madeleine
- Beiträge: 7
- Registriert: Mo 5. Jan 2026, 16:44
- OS, Lazarus, FPC: Linux Lazarus (L 4.4.0 FPC 3.2.2)
- CPU-Target: AMD
Re: Neues Control nmpThumbView für Linux Lazarus
Habe mich auch schon gefragt, warum das hier abgehen muß.....
- corpsman
- Lazarusforum e. V.
- Beiträge: 1730
- Registriert: Sa 28. Feb 2009, 08:54
- OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
- CPU-Target: 64Bit
- Wohnort: Stuttgart
- Kontaktdaten:
Re: Neues Control nmpThumbView für Linux Lazarus
Zum Icon thema bitte hier abbiegen..
--
Just try it
Just try it
- af0815
- Lazarusforum e. V.
- Beiträge: 7062
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Neues Control nmpThumbView für Linux Lazarus
Vielleicht erbarmt sich ein Moderator und trennt das ab in einen eigenen Thread.Nora Madeleine hat geschrieben: Mi 7. Jan 2026, 14:27 Habe mich auch schon gefragt, warum das hier abgehen muß.....
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).