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 Hintergrundgrafik in TreeView ? (https://www.delphipraxis.net/51430-hintergrundgrafik-treeview.html)

FriFra 12. Aug 2005 10:43


Hintergrundgrafik in TreeView ?
 
Kann man irgendwie eine Hintergrundgrafik in einen TreeView laden? Am besten wäre es auch gleich als Wasserzeichen, d.h. der Hintergrund sollte nicht mit scrollen :roll:

Sidorion 12. Aug 2005 11:45

Re: Hintergrundgrafik in TreeView ?
 
Lies mal in der Hilfe für OnCustomDraw(Ereignis von TCustomTreeView) das Delphi Beispiel durch. Klappt prima.

mirage228 12. Aug 2005 11:50

Re: Hintergrundgrafik in TreeView ?
 
Hallo,

Oder Du könntest das VirtualTreeView von www.delphi-gems.com ausprobieren. Das hat dieses Feature auch soweit ich weiss. Es hat auch noch eine Reihe mehr Features gegenüber dem normalen TreeView, musst mal auf der Seite schauen. Ich kann die Komponente nur empfehlen.

mfG
mirage228

chaosben 12. Aug 2005 12:26

Re: Hintergrundgrafik in TreeView ?
 
Mirage hat recht .... der VirtualStringTree ist allererste Sahne
Nur gibts da ein Problem: Der offizielle VirtualStringTree vesteht sich nur auf gekachelte Hintergrundbilder. ABER: mein Kollege hat die Komponente erweitert, so das man jetzt auch ein einzelnes Bild an beliebiger Position anzeigen kann. Meld dich einfach mal bei MaWarm@spp-germany.com

Thanatos81 16. Aug 2005 19:15

Re: Hintergrundgrafik in TreeView ?
 
Das mit nur gekachelten Hintergrundbildern stimmt so nicht ganz. Dafür gibts beim VST die Eigenschaften toStaticBackground (zu finden unter TreeOptions.PaintOptions), ist diese aktiviert, wird das Bild nicht gekachelt dargestellt.

Mit BackgrpoundOffSetX und BackgroundOffSetY kann man dann die Position der oberen linken Ecke bestimmen.

Aber leider habe ich keine einfache Methode gefunden, dass BackgroundImage zu zentrieren :wall:

//Edit
Ich hab mir mal eben was zurecht gefrickelt, vielleicht hilfts ja wem:
Delphi-Quellcode:
procedure TfrmMain.VSTPaintBackground(Sender: TBaseVirtualTree;
  TargetCanvas: TCanvas; R: TRect; var Handled: Boolean);
var links,oben : Integer;
    myVST     : TVirtualStringTree;
begin
  myVST := TVirtualStringTree(Sender);

//nur nen Offset, wenns Static ist, da bei den Kacheln kein Offset sein sollte
  if (toStaticBackground in myVST.TreeOptions.PaintOptions) then
    begin
      links := (myVST.Width div 2)-(myVST.Background.Width div 2);
      oben := (myVST.Height div 2)-(myVST.Background.Height div 2);;
    end
  else
    begin
      links := 0;
      oben := 0;
    end;
  myVST.BackgroundOffsetX := links;
  myVST.BackgroundOffsetY := oben;
  handled := false;
end;
Das ganze ist der Ereignishandler zu OnPaintBackground. Das handled wird auf false gesetzt, da ich nicht selber zeichne. Es flackert minimal, leider hilft VST.DoubleBuffered := true auch nicht wirklich Falls jemand ne Idee hat, mir gehts im Mom so: :coder2:

//Edit 2
packt den Code lieber in den EreignisHandler OnResize eures Forms und sprecht das VST direkt an, ansonsten kann es beim Resizen zu komischen Effekten kommen :gruebel:

FriFra 29. Okt 2006 03:47

Re: Hintergrundgrafik in TreeView ?
 
Bisher habe ich leider noch keine brauchbare Lösung gefunden :? ...

OnCustomDraw arbeiter sehr unsauber und bekommt Scrollereignisse nur sporadisch mit. Fremdkomponenten kommen für des Projekt nicht in Frage...

mkinzler 29. Okt 2006 09:13

Re: Hintergrundgrafik in TreeView ?
 
Zitat:

Fremdkomponenten kommen für des Projekt nicht in Frage...
Warum nicht ?

RStorm 7. Mär 2007 20:24

Re: Hintergrundgrafik in TreeView ?
 
Halo Freunde

wollte mal nachfragen ob nicht doch jemand eine möglichkeit weiss wie ich auf einer Stringgrid oder DBGrid Komponente ein hintergrundbild anzeigen kann. Habe zwar schon bischen versucht aber mehr wie nur kurz anzeigen habe ich net geschaft. Nach dem ich dem Stringgrid oder DBgrid einen Wert eingetragen habe ist das bild weg. Oder das bild war im vordergrund und von dem eigentlichen hintergrund den Daten hat man nichts mehr gesehen.

Falls jemand mit da ein Beispiel hat wäre ich sehr Dankbar.

Grüsse Rudolf


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.

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