Thumbnail Viewer Komponente

Zur Vorstellung von Komponenten und Units für Lazarus

Re: Thumbnail Viewer Komponente

Beitragvon theo » 26. Sep 2010, 10:05 Re: Thumbnail Viewer Komponente

bembulak hat geschrieben:bitte weiter dran arbeiten!


Was fehlt denn?
Schneller kann ich es nicht mehr machen, die FPC-Reader geben das nicht her.
Du kannst noch
FreeInvisibleImages:=false;
sezten, dann hast du eine Art Cache.
Das braucht nat. mehr Speicher, dafür muss beim auf- und ab-Scrollen nicht immer neu geladen werden.
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon bembulak » 26. Sep 2010, 17:30 Re: Thumbnail Viewer Komponente

Was fehlt denn?

Ist natürlich beta

Ich dachte nur, weil du gesagt hast, es sei noch beta, dass vielleicht da und dort noch einige Punkte sind, die noch offen sind.
Ansonsten: perfekt!

Schneller kann ich es nicht mehr machen, die FPC-Reader geben das nicht her.

Akzeptiert! ;)

Danke nochmals.
bembulak
 
Beiträge: 373
Registriert: 6. Feb 2007, 09:29
Wohnort: Oberösterreich
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3 | 
CPU-Target: 32bit i386, ARM
Nach oben

Beitragvon theo » 26. Sep 2010, 17:54 Re: Thumbnail Viewer Komponente

bembulak hat geschrieben:Ich dachte nur, weil du gesagt hast, es sei noch beta, dass vielleicht da und dort noch einige Punkte sind, die noch offen sind.
Ansonsten: perfekt!


Naja, beta war es, weil es ausser mir noch keiner getestet hatte.
Da in den vergangenen Monaten nichts Wesentliches bemängelt wurde, erkläre ich die gleiche Version hiermit zur 1.0 ;-)
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 26. Sep 2010, 18:04 Re: Thumbnail Viewer Komponente

Was für Bild Formate werden Eigentlich unterstützt ? Ist unter anderem PNG und ICON ?

Ich hatte mal ein recht Großes Verzeichnis mit ICONS. Da hatte Windows Schlapp gemacht. Unter Linux war es auch keine Große Freude da drin zu wühlen.
Daher die Frage. Ich habe gehört, dass es auch Möglich ist in einem ICON mehrere Bilder unter zu bringen, wird das auch unterstützt ?

Klingt so weit ganz Interessant. Vielleicht Probiere ich es mal bei Gelegenheit aus.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 26. Sep 2010, 18:24 Re: Thumbnail Viewer Komponente

pluto hat geschrieben:Was für Bild Formate werden Eigentlich unterstützt ?

Die, welche fpimage als ImageHandler registriert hat. Z. Zt sind das:
*.bmp;*.png;*.pnm;*.pgm;*.pbm;*.pbm;*.jpg;*.jpeg;*.gif;*.psd;*.pdd;*.pcx;*.tga;
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 26. Sep 2010, 18:54 Re: Thumbnail Viewer Komponente

Nur mal angenommen: Könnte man ein Schalter einbauen in die Komponente, so das es möglich wird, zu Entscheiden ob z.b. OpBitmap genutzt werden soll oder nicht ?
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 26. Sep 2010, 19:39 Re: Thumbnail Viewer Komponente

pluto hat geschrieben:Nur mal angenommen: Könnte man ein Schalter einbauen in die Komponente, so das es möglich wird, zu Entscheiden ob z.b. OpBitmap genutzt werden soll oder nicht ?


Du kannst damit machen was du willst. Deine eigene Ladeliste und deine eigenen Ladeverfahren.
Siehe: viewtopic.php?p=38892#p38892

Siehe
ThumbControl1.URLList :=
und Property OnLoadFile

Ausserdem hast du den Quelltext. Wenn du es anders haben möchtest, dann ändere es doch einfach. Ich mache das ganze jetzt nicht komplizierter als nötig.
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 26. Sep 2010, 19:44 Re: Thumbnail Viewer Komponente

Ausserdem hast du den Quelltext. Wenn du es anders haben möchtest, dann ändere es doch einfach. Ich mache das ganze jetzt nicht komplizierter als nötig.

Ich dachte es nur als Vorschlag und natürlich als nette Erweiterung. Ob ich das mache, weiß ich noch nicht. Da ich zur Zeit andere Spannende Projekte habe.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 11. Jun 2011, 20:27 Re: Thumbnail Viewer Komponente

Kleines Bugfix-Update:

- Probleme mit neuer LCL Version bezüglich Transparenz sind behoben.
- Probleme beim schnellen Verzeichniswechsel (bevor sichtbare Bilder geladen waren) führte u.U. zu Zugriffsverletzungen im Multithread-Modus.
Dieses Problem sollte nun abgefangen sein.

http://www.theo.ch/lazarus/thumbview.zip

Benutzer der Komponente müssen nur die Dateien ersetzen. Die IDE-Integration ist unverändert, sodass Lazarus nicht neu gebaut werden muss.
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 4. Nov 2012, 16:05 Re: Thumbnail Viewer Komponente

Schön wäre ein kleines Beispiel.
Ich habe mal folgenden Code erstellt:
Code: Alles auswählen
 
procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
  ThumbControl:=TThumbControl.Create(Self);
  ThumbControl.Align:=alClient;
  ThumbControl.Parent:=self;
  for i:=0 to FileListBox1.Items.Count-1 do begin
    if i = 30 then exit;
    writeln(FileListBox1.Directory+DirectorySeparator+FileListBox1.Items[i]);
    ThumbControl.ImageLoaderManager.AddImage(FileListBox1.Directory+DirectorySeparator+FileListBox1.Items[i])
  end;
  ThumbControl.ImageLoaderManager.LoadAll;
end;     
 

Ich sehe nur ein Objekt nach dem Starten. Und noch was:
Wenn ich das Maus-Rad bewege werden Scrollbalken eingeblendet.

Edit01: Ich habe gerade gesehen, dass man nur das Verzeichnis setzten muss. Und schon geht es.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 4. Nov 2012, 19:23 Re: Thumbnail Viewer Komponente

Ich weiss jetzt gerade nicht, was du da machst, aber du kannst die Komponente in der IDE installieren.
Sie erscheint dann unter dem "Misc" Tab.
Dann sollte sich solche Probleme von alleine lösen.
Für schnelles Scrolling Property "Multithreaded" auf true setzen
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 4. Nov 2012, 19:31 Re: Thumbnail Viewer Komponente

Nun ich meinte: Wenn es nicht genügend Einträge gibt in der Komponente, werden Scrollbalken sichtbar, wenn man das Mausrad benutzt.

Ich verwende sie, ohne sie zu Installieren, ist einfach einfacher, als erst mal Lazarus neu zu bauen.

Ich finde die Komponente nicht schlecht. Auch die Thread Unterstützung gefällt mir.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon theo » 4. Nov 2012, 20:02 Re: Thumbnail Viewer Komponente

pluto hat geschrieben:Nun ich meinte: Wenn es nicht genügend Einträge gibt in der Komponente, werden Scrollbalken sichtbar, wenn man das Mausrad benutzt.


Kann sein, ist aber nicht so das ganz grosse Problem, oder?
Habe im Moment wenig Zeit. Findest du raus woran das liegt? Schau vllt. mal in "scrollingcontrol.pas" nach.
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon pluto » 4. Nov 2012, 20:41 Re: Thumbnail Viewer Komponente

Kann sein, ist aber nicht so das ganz grosse Problem, oder?

Ne, ist nur ein kleines Problem. Wollte es auch nur erwähnen.

Habe im Moment wenig Zeit. Findest du raus woran das liegt?

Ich kann mir mal den Code noch mal anschauen. Vielleicht fällt mir was auf.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 4. Nov 2012, 20:46 Re: Thumbnail Viewer Komponente

Das Problem ist in "TScrollingControl.VScroll"
du prüft nicht, ob überhaupt gescrollt werden muss. Sondern Scrolleinfach und blendest Dabei die Balken ein.

Edit01: Wenn ich ein "if not CanShowV then exit; " mache, geht es so wie gewollt.

Edit02:
Code: Alles auswählen
 
procedure TScrollingControl.VScroll(var Msg: TWMScroll);
var si: TScrollInfo;
var newPos: Longint;
begin
  if CanShowV then begin
    {$IFDEF LCLqt}
      newpos := Msg.Pos;
    {$ELSE}
      ZeroMemory(@si, sizeof(si));
      si.cbSize := sizeof(si);
      si.fMask := SIF_TRACKPOS; //MSDN against 65k limit
    {$IFDEF LCLGtk2}
    newpos := Msg.Pos;
    {$ELSE}
    if GetScrollInfo(Handle, SB_VERT, si) then newPos := si.nTrackPos else  newpos := Msg.Pos;
    {$ENDIF}
  {$ENDIF}
 
    case Msg.ScrollCode of
      SB_THUMBPOSITION,
        SB_THUMBTRACK:
        begin
          SetVScrollPos(NewPos);
        end;
      SB_LINEDOWN: SetVScrollPos(FVScrollInfo.nPos + fSmallStep);
      SB_PAGEDOWN: SetVScrollPos(FVScrollInfo.nPos + fLargeStep);
      SB_LINEUP: SetVScrollPos(FVScrollInfo.nPos - fSmallStep);
      SB_PAGEUP: SetVScrollPos(FVScrollInfo.nPos - fLargeStep);
      SB_TOP: SetVScrollPos(0);
      SB_BOTTOM: SetVScrollPos(FVScrollInfo.nMax);
    end;
  end;
end;
 
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6668
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

» Weitere Beiträge siehe nächste Seite »
VorherigeNächste

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried