Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 3 Spalte einer ListView (https://www.delphipraxis.net/102948-3-spalte-einer-listview.html)

crasher1985 8. Nov 2007 09:45

Re: 3 Spalte einer ListView
 
so hab das ganze jetzt ein wenig anders gemacht nu irgendetwas fehlt ncoh weil nix passiert..oder vllt. kann ichs so auch garnet machen

Delphi-Quellcode:
   
    pic1 := TBitmap.Create;
    ImageList1.GetBitmap(0,pic1);
    //ListView1CustomDrawSubItem(Sender.Handle, Item.Index, SubItem, cdsDefault , @R);
    Sender.Canvas.Brush.Bitmap := pic1;
    DefaultDraw := True;

Phoenix 8. Nov 2007 09:54

Re: 3 Spalte einer ListView
 
Ich hab Dir gesagt, Du sollst mal in die Hilfe zu Canvas.Draw gucken! :evil:
Delphi-Quellcode:
Sender.Canvas.Draw(x,y, pic1);

crasher1985 8. Nov 2007 09:57

Re: 3 Spalte einer ListView
 
ja hab ich ja acuh aber woher bekomme ich x und y ich find keien Methode dazu

Phoenix 8. Nov 2007 10:00

Re: 3 Spalte einer ListView
 
Das sind die Koordinaten, wohin Du das Bild im Canvas zeichnen willst. Probiers mal mit zwei Nullen für ganz links oben :roll:. Und welche Methode findest Du nicht?

crasher1985 8. Nov 2007 10:03

Re: 3 Spalte einer ListView
 
naja ich weiss das es die koordinaten sind es soll ja aber in eine Zelle des Listview gezeichnet werden also Item 1 Subitem=1 da dachte ich es gbt was was mir die Positiojn dieser "Zelle" zurückgibt

Phoenix 8. Nov 2007 10:17

Re: 3 Spalte einer ListView
 
Du kennst Doch die Columns-Eigenschaft der Listview, oder?

Die ColumnItems haben alle eine Breite. Also ist der Linke Anfang der Zweiten Spalte 0 + Breite der Ersten. Und der Linke Anfang der Dritten ist 0 + Breite der Ersten + Breite der Zweiten. So schwer ist das nicht.

Und was die Y - Koordinate angeht, so nimmst Du die Höhe eines einzelnen Items * Index des Items.

crasher1985 8. Nov 2007 10:27

Re: 3 Spalte einer ListView
 
ok ich habs also Left sieht so aus

Delphi-Quellcode:
R.Left := ListView1.Column[0].Width + ListView1.Column[1].Width + ((ListView1.Column[2].Width)div 2)- (pic1.Width div 2);
und Top bekomm ich ja in dem Moment wo ich der Funktion das Item übergebe!

Danke an alle :angel:

crasher1985 8. Nov 2007 10:55

Re: 3 Spalte einer ListView
 
Liste der Anhänge anzeigen (Anzahl: 1)
mhh eigenartig jetzt malt er 2 Spalten top und in der dritten sitz das Häkchen(Bild) irgendwie hinter der Spalte wenn ich diese Verschiebe werden sie sichtbar.
Siehe Bild

Delphi-Quellcode:
Form1.Refresh;
und
Delphi-Quellcode:
self.doublebuffered := true;
hab ich schon getestet bringt aber nichts.


Ausserdem noch ne Frage wie kann ich es vermeiden das wenn die Spalte vergrößert wird bzw. die Position ändert das alte noch da ist er zeichnet dann neu aber die alten Bilder werden est gelsöcht wenn das Item angewählt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 Uhr.
Seite 2 von 2     12   

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