![]() |
ListView mit Hintergrundbild
Hallo zusammen!
Ich suche jetzt schon ein Weilchen nach einem Weg ein Hintergrundbild in ein ListView einzufügen. Das Bild einfügen ist kein großes Problem, siehe unten. Aber bei Einträgen in dem ListView wird das Bild dann leider "übermalt". Ich habe schon mit den Funktionen AdvancedCustomDrawItem und AdvancedCustomDrawSubItem herum probiert, aber leider ohne Erfolg. Hat jemand evtl. einen Tip für mich oder hatte jemand schon ein ähnliches Problem?
Delphi-Quellcode:
Gruß
procedure TForm1.ListView1CustomDraw(Sender: TCustomListView;const ARect: TRect; var DefaultDraw: Boolean);
var Bitmap: TBitmap; x, y: integer; begin Bitmap:=TBitmap.Create; Bitmap.LoadFromFile('*.bmp'); x:=0; y:=0; ListView1.Canvas.Draw(x, y, Bitmap); Bitmap.Free; end; Marcus |
Re: ListView mit Hintergrundbild
hi,
du kannst das löschen des hintergrundes verhindern indem du auf die message WM_ERASEBKGND reagierst. z.b.
Delphi-Quellcode:
//private
procedure wmerasebkgnd(var msg: tmessage); message wm_erasebkgnd; procedure tform1.wmerasebkgnd; begin listview1.canvas.draw(x,y,bitmap); msg.result := 0 end |
Re: ListView mit Hintergrundbild
Gebe zusätzlich zum Zeichnen des Hintergrunds folgenden Code in das OnCustamDraw Ereignis deiner Listview:
Code:
SetBkMode(Canvas.Handle,TRANSPARENT);
Perform(LVM_SETTEXTBKCOLOR,0,LongInt(CLR_NONE)); ListView_SetBKColor(Handle,CLR_NONE); |
Re: ListView mit Hintergrundbild
Hi Chris,
sorry aber mit WM_ERASEBKGND ist quasi alles um die ListView herum durchsichtig, bloß nicht die ListView selber. Hi Manne, für deine Lösung benötige ich ja eine Variable vom Typ TLVBkImage. Welche Unit muss ich denn da einbinden, dass mir der Typ dann zur Verfügung steht? Gruß Marcus |
Re: ListView mit Hintergrundbild
Ich muss nur
Code:
eingeben dann kann ich es ohne Probleme kompilieren
Uses ...,CommCtrl,..
|
Re: ListView mit Hintergrundbild
Kann ich das auch irgendwie realisieren, wenn die Anwendung gestartet wird, also ohne das ich erst Items in die ListView lade? Im OnCreate des Forms funzt es nicht.
Gruß, Sascha |
Re: ListView mit Hintergrundbild
Zitat:
versuch es mal im OnShow. (Edit: Aber pass auf - denn OnShow wird immer beim Anzeigen des Fensters aufgerufen!) Ansonsten ist auch das TVirtualTreeView von ![]() mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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