Thumbnail Viewer Komponente
Thumbnail Viewer Komponente
Wenn jemand eine ziemlich schnelle Thumbnail Viewer Komponente brauchen kann, stelle ich den Code gerne zur Verfügung.
Features:
- Multithread Option.
- Verschiedene View Modi: Horizontal, Vertikal, Grid, und Automatik sowie Auto-Resize Modi.
- OnSelect Ereignis
- etc..
Im Anhang sieht man den Grid Mode.
Ich habe mir Mühe gegeben und einige Tricks angewendet um das Laden und Resizen so schnell als möglich zu machen.
Wenn das jemand haben möchte, soll er sich einfach melden.
Features:
- Multithread Option.
- Verschiedene View Modi: Horizontal, Vertikal, Grid, und Automatik sowie Auto-Resize Modi.
- OnSelect Ereignis
- etc..
Im Anhang sieht man den Grid Mode.
Ich habe mir Mühe gegeben und einige Tricks angewendet um das Laden und Resizen so schnell als möglich zu machen.
Wenn das jemand haben möchte, soll er sich einfach melden.
Re: Thumbnail Viewer Komponente
Ich habe Interesse
Vielen Dank im Voraus
Carsten
Vielen Dank im Voraus
Carsten
Re: Thumbnail Viewer Komponente
OK. Ist natürlich beta und du wärst der Erste ausser mir, der das testet.ccmueller hat geschrieben:Ich habe Interesse
Hier
http://www.theo.ch/lazarus/thumbview.zip" onclick="window.open(this.href);return false;
thumbctrl.lpk installieren und IDE neu bauen.
Dann verwenden wie andere Komponenten.
Für mehr "Flüssigkeit" das property Multithreaded auf true setzen.
Property Directory auf das Zielverzeichnis und los geht's.
Den Rest siehst du dann durch ausprobieren, oder frag mich.
Ach so, die Komponente erscheint im Misc Tab.
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Thumbnail Viewer Komponente
Für ein anderes Projekt brauch ich auch so etwas, aber dann muss ich das nicht selber schreiben

/signccmueller hat geschrieben:Ich habe Interesse
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Thumbnail Viewer Komponente
Ich habs mal kurz mit 233 Bildern unter Qt,GTK2 und GTK probiert.
Schaut wirklich sehr schick aus und die Geschwindigkeit ist saugut (für meine lahmen IDE-Platten
)
(Unter GTK kommen keine Bilder,nungut es stirbt halt langsam.)
Klasse Sache.(naja,bei dir nicht anders zu erwarten
)
Schaut wirklich sehr schick aus und die Geschwindigkeit ist saugut (für meine lahmen IDE-Platten

(Unter GTK kommen keine Bilder,nungut es stirbt halt langsam.)
Klasse Sache.(naja,bei dir nicht anders zu erwarten

Re: Thumbnail Viewer Komponente
Dankecreed steiger hat geschrieben:Ich habs mal kurz mit 233 Bildern unter Qt,GTK2 und GTK probiert.
Schaut wirklich sehr schick aus und die Geschwindigkeit ist saugut (für meine lahmen IDE-Platten)
(Unter GTK kommen keine Bilder,nungut es stirbt halt langsam.)
Klasse Sache.(naja,bei dir nicht anders zu erwarten)

Technische Detail zu den "Tricks":
- Multi Threading: hält das Scrolling flüssig.
- JPEG Scaling: hält vielleicht Einzug in die FCL: http://bugs.freepascal.org/view.php?id=16748" onclick="window.open(this.href);return false;
- Für die anderen Formate: qualitativ schlechtes, aber sehr schnelles Resizing auf eine "Zwischengrösse", danach feines Resampling auf dem kleineren Bild für die Endgrösse.
Auf GTK1 hab ich's nicht getestet. Es gibt aber keinen plattformabhängigen Code da drin, also nicht mein Problem.
Re: Thumbnail Viewer Komponente
Achso, hatte noch einen englischen Text verfasst, aber vorhin vergessen beizulegen.
Also hier nachgeliefert:
Thumbnail Component:
Features:
- Fast JPEG loading, fast resizing.
- Different layout modes.
- Multithreading option.
- PictureFrame option.
- Caption option.
Some properties explained:
property MultiThreaded:
If you set this to true, the images will be loaded in the "background" not blocking the application.
Warning: The debugger GDB may not like this setting.
property ShowCaptions:
Show/Hide the filename captions.
property ShowPictureFrame:
Show/Hide picture Frame;
property Layout:
Different modes, basically horizontal, vertical and grid plus autosize and auto layout modes, depending on the size of the control
property FreeInvisibleImages:
Do not keep in memory the bitmaps that are currently invisble. (Slower but less resource hungry).
property OnSelectItem:
Event triggered when a thumbnail is clicked or selected using the enter key.
property OnLoadFile:
Event when image stream data is required. Useful for loading data via http, ftp etc.
Warning: if MultiThreaded=true, this happens in a separate thread context.
Installation:
Install "thumbctrl.lpk" -> "TThumbControl" in the "Misc" tab
Also hier nachgeliefert:
Thumbnail Component:
Features:
- Fast JPEG loading, fast resizing.
- Different layout modes.
- Multithreading option.
- PictureFrame option.
- Caption option.
Some properties explained:
property MultiThreaded:
If you set this to true, the images will be loaded in the "background" not blocking the application.
Warning: The debugger GDB may not like this setting.
property ShowCaptions:
Show/Hide the filename captions.
property ShowPictureFrame:
Show/Hide picture Frame;
property Layout:
Different modes, basically horizontal, vertical and grid plus autosize and auto layout modes, depending on the size of the control
property FreeInvisibleImages:
Do not keep in memory the bitmaps that are currently invisble. (Slower but less resource hungry).
property OnSelectItem:
Event triggered when a thumbnail is clicked or selected using the enter key.
property OnLoadFile:
Event when image stream data is required. Useful for loading data via http, ftp etc.
Warning: if MultiThreaded=true, this happens in a separate thread context.
Installation:
Install "thumbctrl.lpk" -> "TThumbControl" in the "Misc" tab
Zuletzt geändert von theo am Fr 25. Jun 2010, 01:18, insgesamt 1-mal geändert.
Re: Thumbnail Viewer Komponente
Und noch eine Information:
Wenn jemand Daten via HTTP oder Datenbank oder was-weiss-ich laden möchte, kann man das so anstellen:
Beispiel für HTTP mit Synapse:
Wenn jemand Daten via HTTP oder Datenbank oder was-weiss-ich laden möchte, kann man das so anstellen:
Beispiel für HTTP mit Synapse:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
ThumbControl1.Directory := '';
end;
procedure TForm1.FormShow(Sender: TObject);
begin
with TStringList.Create do
begin
Add('http://wiki.lazarus.freepascal.org/images/thumb/0/0a/Lazarus-0.9.28-linux-gtk2.png/144px-Lazarus-0.9.28-linux-gtk2.png');
Add('http://www.lazarus.freepascal.org/splash_logo.png');
Add('http://wiki.lazarus.freepascal.org/images/thumb/0/07/Windows_Vista2.png/144px-Windows_Vista2.png');
ThumbControl1.URLList := Text;
Free;
end;
end;
procedure TForm1.ThumbControl1LoadFile(Sender: TObject; URL: string; out Stream:
TStream);
begin
if Pos('http://', LowerCase(TrimLeft(URL))) = 1 then
begin
Stream := TMemoryStream.Create;
HttpGetBinary(URL, Stream);
end;
end;
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Re: Thumbnail Viewer Komponente
Ja, ich habe Interesse! Super und vielen Dank erstmal dafür! Das kommt mir wie gerufen!!! (Mann, ich bin so aus dem Häuschen, ich kann's euch gar nicht sagen)
Leider habe ich beim Installieren Probleme:
Windows XP 32 bit SP 3 mit allen aktuellen Patches und Updates.
Lazarus: 0.9.28.2 Beta
2009-10-25
FPC: 2.2.4
SVN-Rev: 22279
Leider habe ich beim Installieren Probleme:
Lazarus IDE hat geschrieben:Das Package "thumbctrl 0.0" konnte nicht kompiliert werden.
Aus der Installationsliste nehmen? JA / Übergehen
System:Nachrichten... hat geschrieben:E:\thumbview\thumbcontrol.pas(65,20) Error: There is no method in an ancestor class to be overridden: "class TThumbControl.GetControlClassDefaultSize:<record type>;"
E:\thumbview\thumbcontrol.pas(172,1) Fatal: There were 1 errors compiling module, stopping
Windows XP 32 bit SP 3 mit allen aktuellen Patches und Updates.
Lazarus: 0.9.28.2 Beta
2009-10-25
FPC: 2.2.4
SVN-Rev: 22279
Re: Thumbnail Viewer Komponente
Lösche dort einfach das Wörtchen "override".bembulak hat geschrieben: Leider habe ich beim Installieren Probleme:
Ist auf 0.9.29 SVN entwickelt, ich habe gar kein 0.9.28.x installiert.
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Re: Thumbnail Viewer Komponente
Da ich mit 0.9.28.2 nur Probleme bekam (fpreadpsd, fpreadgif,... fehlen), habe ich auf 0.9.29 ein Update gemacht (bzw. neu installier aus nem Snapshot der Toolbox). Jetzt funktioniert's!
Vielen Dank für die tolle Arbeit und die geile Komponente!
Vielen Dank für die tolle Arbeit und die geile Komponente!
Re: Thumbnail Viewer Komponente
Das liegt wiederum an der FPC Version. Diese Units sind neuer in der FCL.bembulak hat geschrieben:Da ich mit 0.9.28.2 nur Probleme bekam (fpreadpsd, fpreadgif,... fehlen), habe ich auf 0.9.29 ein Update gemacht (bzw. neu installier aus nem Snapshot der Toolbox). Jetzt funktioniert's!
Vielen Dank für die tolle Arbeit und die geile Komponente!
Naja, Hauptsache es klappt jetzt.
Sonst kannst du diese Sachen oft auch einfach auskommentieren.
Es wäre nichts weiter passiert, ausser das psd und gif nicht zur Verfügung gestanden wären.
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Re: Thumbnail Viewer Komponente
Hi!
Die Komponente ist für mich immer noch sehr interessant!
Wird daran noch weiter entwickelt? Dann hätte ich einen Vorschlag:
Support für das Mausrad. Srcollen per Mausrad funktioniert hier bei mir (Win XP SP3, Laz: 0.9.29) leider nicht.
Das wäre noch ganz groß!
Danke!
Die Komponente ist für mich immer noch sehr interessant!
Wird daran noch weiter entwickelt? Dann hätte ich einen Vorschlag:
Support für das Mausrad. Srcollen per Mausrad funktioniert hier bei mir (Win XP SP3, Laz: 0.9.29) leider nicht.
Das wäre noch ganz groß!
Danke!
Re: Thumbnail Viewer Komponente
Hmm, ich dachte auf GTK2 geht das auch so. Bin allerdings meistens auf dem Notebook und habe dort das Mousewheel Zeug ausgeschaltet.
Probier mal das: in unit scrollingcontrol
bei TScrollingControl im Bereich interface unter "protected" schreibe:
Dann irgendwo im implementation Bereich:
Geht dann was auf Windows (Vertikal) ?
Probier mal das: in unit scrollingcontrol
bei TScrollingControl im Bereich interface unter "protected" schreibe:
Code: Alles auswählen
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; override;
Code: Alles auswählen
function TScrollingControl.DoMouseWheel(Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint): Boolean;
begin
SetVScrollPos(VScrollInfo.nPos - WheelDelta);
end;
-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Re: Thumbnail Viewer Komponente
Ja, es funktioniert jetzt. Ich hatte da wohl was vermurkst beim ersten Test, aber jetzt läuft es.Geht dann was auf Windows (Vertikal) ?
Bei den großen Bildern meiner DSLR kommt es zwar trotz
Code: Alles auswählen
MultiThreading:= True;
Danke also nochmals - bitte weiter dran arbeiten!