Einzelnen Beitrag anzeigen

Benutzerbild von Lun
Lun

Registriert seit: 4. Feb 2006
122 Beiträge
 
Delphi 2005 Professional
 
#1

StringGrid, OnDrawCell übermalt meine Bilder beim scrollen

  Alt 19. Jul 2007, 15:28
Hi @ll,

ich versuche in einem StringGrid verschiedene Bilder in unterschiedliche Zellen zu laden. Das funktioniert soweit auch ganz
gut mit der OnDrawCell Methode.
Das Problem ist wenn das StringGrid zu ende geladen ist und ich durch die Einträge
scrolle ändern sich die Bilder alle in das Bild was als letztes eingetragen wurde.

Ich habe das Gefühl, das beim selektieren/scrollen jedes mal die Funktion OndrawCell die Zeile neu zeichnet und er nimmt dann den
letzten Wert der globalen Variablen Bild(Integer) als Index von der ImageList und zeichnet das letzte bild.

Ich will nicht das er neu zeichnet *grummel* Die Liste soll nur einmal gezeichnet werden und kann angesehen werden, und gescrollt.

Ich suche schon irgendein Property das selektieren verhindert, weil ich vermute das durch das makieren der Zeile die OnDrawCell Methode aufgerufen wird ?

Hier mal der Code der OnDrawCell:

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
zelle: string;

begin

  if ((ACol = 1) and (ARow > 1)) then
  with (Sender as TStringGrid) do
  begin
        ImageList1.Draw(Canvas, Rect.Left, Rect.Top, bild); //Bild ist eine globale Variable vom Typ integer
  end;

end;

greetz Lun

Thx for Help
  Mit Zitat antworten Zitat