AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView mit Hintergrundbild

Ein Thema von marcus · begonnen am 2. Sep 2004 · letzter Beitrag vom 20. Sep 2004
Antwort Antwort
marcus

Registriert seit: 13. Okt 2003
37 Beiträge
 
#1

ListView mit Hintergrundbild

  Alt 2. Sep 2004, 21:15
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:
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;
Gruß
Marcus
  Mit Zitat antworten Zitat
chris

Registriert seit: 24. Mai 2003
Ort: Düsseldorf
196 Beiträge
 
Delphi 2009 Professional
 
#2

Re: ListView mit Hintergrundbild

  Alt 3. Sep 2004, 02:51
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
Chris
D2009.4 | Vista SP2 x32
  Mit Zitat antworten Zitat
Benutzerbild von Manne
Manne

Registriert seit: 8. Okt 2003
Ort: Hirrlingen
82 Beiträge
 
Delphi 7 Personal
 
#3

Re: ListView mit Hintergrundbild

  Alt 3. Sep 2004, 17:56
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);
So 6 wie wir 5 gibt es keine 4 andere, denn wir 3 sind die 2 1sten
  Mit Zitat antworten Zitat
marcus

Registriert seit: 13. Okt 2003
37 Beiträge
 
#4

Re: ListView mit Hintergrundbild

  Alt 7. Sep 2004, 07:57
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
  Mit Zitat antworten Zitat
Benutzerbild von Manne
Manne

Registriert seit: 8. Okt 2003
Ort: Hirrlingen
82 Beiträge
 
Delphi 7 Personal
 
#5

Re: ListView mit Hintergrundbild

  Alt 13. Sep 2004, 16:37
Ich muss nur
Code:
 Uses ...,CommCtrl,..
eingeben dann kann ich es ohne Probleme kompilieren
So 6 wie wir 5 gibt es keine 4 andere, denn wir 3 sind die 2 1sten
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#6

Re: ListView mit Hintergrundbild

  Alt 20. Sep 2004, 12:55
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
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: ListView mit Hintergrundbild

  Alt 20. Sep 2004, 13:54
Zitat von Akut-Programming:
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
Hi,

versuch es mal im OnShow. (Edit: Aber pass auf - denn OnShow wird immer beim Anzeigen des Fensters aufgerufen!)

Ansonsten ist auch das TVirtualTreeView von www.delphi-gems.com empfehlenswert - es ist schneller und besser als die Borland Implementierung der ListView (aber leider auch etwas komplizierter).

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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