Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Imagelist - bug ? (https://www.delphipraxis.net/96385-imagelist-bug.html)

Flips 23. Jul 2007 16:23


Imagelist - bug ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi.

Diese ***** Imagelist macht mich noch wahnsinnig.
Folgende Situation:
Ich habe eine Imagelist mit Icons (*.ico), welche ich mit
Delphi-Quellcode:
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,2).Top,2);
in ein Stringgrid zeichnen lasse. In diesem Beispiel wird das 3. Bild (mit Index 2) genau an den Anfang der 3. Zeile geschrieben. Soweit sogut.

Wenn ich das ganze jetzt mit mehreren Mache, gehts auch
Delphi-Quellcode:
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,0).Top,0);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,1).Top,1);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,2).Top,2);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,3).Top,3);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,4).Top,4);
Ich habe 6 Bilder in der Imagelist. Wenn ich jetzt das 6. auch zeichen lasse, sieht das ganze so aus.
Delphi-Quellcode:
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,0).Top,0);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,1).Top,1);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,2).Top,2);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,3).Top,3);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,4).Top,4);
ImageList1.Draw(StringGrid1.Canvas,0,StringGrid1.CellRect(0,5).Top,5);
Sollte eigentlich gehen, tuts aber nicht. Das 6. Bild wird zwar gezeichnet, allerdings wird das erste Bild gleichzeitig vom 6. Bild überschrieben...
Wers nich versteht, schaut auf die Screenshots.

Was habe ich falsch gemacht?

Thx,
Flips

uligerhardt 23. Jul 2007 17:40

Re: Imagelist - bug ?
 
Da ich nicht weiß, wo du deine Codefragmente aufrufst, hab ich mir mal schnell einen OnDrawCell-Handler gebaut:
Delphi-Quellcode:
procedure TForm62.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if ACol = 0 then
    ImageList1.Draw(StringGrid1.Canvas, Rect.Left + 2, Rect.Top + 2, ARow);
end;
Auf die Art hab ich dein Artefakt nicht. Wenn das dein Problem nicht löst, bitte mehr Infos.

Uli.

Flips 23. Jul 2007 20:08

Re: Imagelist - bug ?
 
Man merkt das ich schon lang nixmehr gemacht habe :-)
Code passt wunderbar, copy&paste -> funktioniert!!!

Thx :thumb: :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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