![]() |
VirtualStringTree mit PNG Grafik
Hallo ihr,
ich habe eine sehr gute ![]() MfG xZise |
Re: VirtualStringTree mit PNG Grafik
Hallo ihr,
hat den keiner eine Idee, woran es liegen könnte? MfG xZise |
Re: VirtualStringTree mit PNG Grafik
Hi,
hab mal schnell was ausprobiert sollte eigentlich funzen:
Delphi-Quellcode:
Benötige Komponenten Vst = VirtualStringTreeuses pngimage; function LoadPng(Width, Height: integer): TBitmap; var Png : TPngImage; begin Result := TBitmap.Create; Png := TPngImage.Create; try Png.LoadFromFile('Your Png Image'); Result.PixelFormat := pf32bit; Result.SetSize(Width, Height); Result.Assign(Png); except Result.Free; raise; end; FreeAndNil(Png); end; procedure TForm1.FormShow(Sender: TObject); var BlendRec: TBlendFunction; TestBitmap: TBitmap; begin BlendRec.BlendOp := AC_SRC_OVER; BlendRec.BlendFlags := 0; BlendRec.SourceConstantAlpha := 255; BlendRec.AlphaFormat := AC_SRC_ALPHA; TestBitmap := LoadPng(Img1.Width, Img1.Height); try Img1.Picture.Bitmap.Assign(TestBitmap); Windows.AlphaBlend(Img2.Canvas.Handle, 0, 0, TestBitmap.Width, TestBitmap.Height, TestBitmap.Canvas.Handle, 0, 0, TestBitmap.Width, TestBitmap.Height, BlendRec); finally TestBitmap.Free; end; end; procedure TForm1.vstPaintBackground(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; R: TRect; var Handled: boolean); var BlendRec: TBlendFunction; begin Handled := True; BlendRec.BlendOp := AC_SRC_OVER; BlendRec.BlendFlags := 0; BlendRec.SourceConstantAlpha := 255; BlendRec.AlphaFormat := AC_SRC_ALPHA; Windows.AlphaBlend(TargetCanvas.Handle, Sender.ClientWidth - img2.Width, Sender.ClientHeight - img2.Height, Img2.Width, Img2.Height, Img2.Canvas.Handle, 0, 0, Img2.Width, Img2.Height, BlendRec); end; Img1 = TImage Img2 = TImage Ggf. sollte man noch prüfen ob die "Alphablend Function" verfügbar ist. In TreeOptions des Vst bei PaintOptions noch toShowBackground = True einstellen. Gruß s! |
Re: VirtualStringTree mit PNG Grafik
Hmmm danke,
So schlecht sieht das Ergebnis nicht aus. Ich komme sogar um das zweite TImage drum herum. Ich werde mal gucken, ob ich das vielleicht direkt in das VST verankert kriege. Nur verschwindet das PNG unter den Einträgen des VST? Zudem ist es je nach Anzahl Einträge zu niedrig, sodass der untere Teil abgeschnitten wird. Aber das müsste behandle ich wohl in einem anderem Thread. MfG xZise |
Re: VirtualStringTree mit PNG Grafik
Kein Problem.
Hab selber noch nicht damit rumgefummelt aber besser ist wohl anstelle von toShowBackground, toStaticBackround zu nehmen. Dann musst du im PaintBackground Event des Tree die Höhe bzw Left in vst.BackgroundOffsetY angleichen dann sollte es funzen. Ps. Das 2. Image war nur rein zu Testzwecken eigentlich brauchst du gar keins. Pps. Ne seltsam aber wie Du schon sagtes je mehr Items im Tree je weiter wird die Grafik nach unten verschoben! Gruß, s! |
Re: VirtualStringTree mit PNG Grafik
Hallo,
noch eine Sache ;) Und zwar kann man einfach R dafür verwenden :) Ansonsten danke schonmal! MfG xZise |
Re: VirtualStringTree mit PNG Grafik
Zitat:
Gruß s! |
Re: VirtualStringTree mit PNG Grafik
Naja es war keine Frage :) Sondern eine Feststellung ^^
Übrigens kann man die Testbitmap in Background.Bitmap speichern (mit Assign natürlich) und nachher dann in PaintBackground bequem darauf zurückgreifen! MfG xZise |
Re: VirtualStringTree mit PNG Grafik
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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