![]() |
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:
|
Re: Hintergrundgrafik in TreeView ?
Lies mal in der Hilfe für OnCustomDraw(Ereignis von TCustomTreeView) das Delphi Beispiel durch. Klappt prima.
|
Re: Hintergrundgrafik in TreeView ?
Hallo,
Oder Du könntest das VirtualTreeView von ![]() mfG mirage228 |
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 |
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:
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:
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; //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: |
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... |
Re: Hintergrundgrafik in TreeView ?
Zitat:
|
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 09:58 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