Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thumbnails von Pagecontrol-Pages ... (https://www.delphipraxis.net/96001-thumbnails-von-pagecontrol-pages.html)

DerAndereMicha 17. Jul 2007 15:35


Thumbnails von Pagecontrol-Pages ...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

hat einer von Euch nen Ansatzpunkt für mich, wie ich es realisieren könnte, beim MOUSEOVER über die einzelnen Tabs der Reiter eines TPageControl-Objektes, deren Inhalt als Thumbnail anzeigen zu lassen - ähnlich wie es Opera macht.

Gruß
Micha

SirThornberry 17. Jul 2007 15:38

Re: Thumbnails von Pagecontrol-Pages ...
 
Opera kann das ohne Probleme weil es die Seite ja zusammenstellt und selbst malt. Wenn Opera also weiß was gemalt wird, kann es das auch in ein Vorschaubild malen. Du malst bei dir aber die Buttons nicht selbst. Demzufolge bleibt nur der Mechanismus des Screenshots der zuverlässig funktioniert.

DGL-luke 17. Jul 2007 15:41

Re: Thumbnails von Pagecontrol-Pages ...
 
ähm... (TWinControl.?)PaintTo gabs doch da mal. such da mal ;-)

SirThornberry 17. Jul 2007 15:44

Re: Thumbnails von Pagecontrol-Pages ...
 
@DGL-Luke: das funktioniert leider mit Controls welche von Windows gezeichnet werden nicht ganz zuverlässig :(

DerAndereMicha 18. Jul 2007 11:00

Re: Thumbnails von Pagecontrol-Pages ...
 
Trotzdem vielen Dank, dann werd ich's wohl lassen.

Gruß
Micha

guidok 19. Jul 2007 07:59

Re: Thumbnails von Pagecontrol-Pages ...
 
Ich habe mir mal Gedanken dazu gemacht und einen Lösungsansatz dazu gefunden.

Delphi-Quellcode:
var
  bm: TBitmap;
  x,y: Integer;
begin
  bm:=TBitmap.Create;
  bm.SetSize(Width,Height);
  for x := 0 to Width do
    for y := 0 to Height do
      bm.Canvas.Pixels[x,y]:=Canvas.Pixels[x,y];
  Image1.Picture.Bitmap.Assign(bm);
  Image1.Stretch:=True;
  bm.Free;
end;
Das ganze ist natürlich grottig langsam und darum nicht praktikabel und leider funktioniert es nur teilweise, das kopierte Bild der Formulars ist irgendwie nur schwarzweiß. Aber wieso?

Guido

SirThornberry 19. Jul 2007 08:40

Re: Thumbnails von Pagecontrol-Pages ...
 
anstelle die Pixel einzeln zu kopieren kannst du auch BitBlt nehmen (vieeeel schneller). Warum es schwarz ist kann ich dir nicht sagen. Auf jeden Fall funktioniert der Ansatz nur wenn der Teil den du sichern willst auch sichtbar ist (auf dem Bildschirm).

DerAndereMicha 19. Jul 2007 14:55

Re: Thumbnails von Pagecontrol-Pages ...
 
Diesen Gedanken hatte ich ja auch schon und genau das ist ja mein Problem, es funktioniert nur für den aktuell sichtbaren Reiter des Pagecontrols.

Gruß
Micha

guidok 20. Jul 2007 19:58

Re: Thumbnails von Pagecontrol-Pages ...
 
Schade, aber ihr habt (wie immer) recht. Naja, das war in meinem Fall eh nur just for fun. Ich habe das mal mit PaintTo ausprobiert, es funktioniert auch mit nicht sichtbaren Fenstern, allerdings werden schon einige Komponenten weggelassen.

Mein Testcode dazu
Delphi-Quellcode:
var
  bm: TBitmap;
begin
  //frmBotEditor.Show;
  bm:=TBitmap.Create;
  bm.SetSize(frmBotEditor.Width,frmBotEditor.Height);
  //bm.Canvas.Lock;
  frmBotEditor.PaintTo(bm.Canvas,0,0);
  //bm.Canvas.Unlock;
  Image1.Picture.Bitmap.Assign(bm);
  Image1.Stretch:=True;
  bm.Free;
end;
Falls sich deine Seiten nicht dynamisch ändern, dann würde ich eine verkleinerte Screenshoot bmp in eine Imagelist packen und entsprechend einblenden.

Guido


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz