Thema: Delphi DrawGrid-Logikproblem

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: DrawGrid-Logikproblem

  Alt 7. Jun 2006, 17:52
Hallo,

ist dir bewusst, dass das Ereignis OnDrawCell() für jede Zelle einzeln und genau dann wenn nötig gefeuert wird? Du bekommst in ACol und ARow die Zell-Adresse geliefert und musst daraus ableiten, welches Bild du in der Zelle malen willst. Ich habe einfach mal angenommen, dass du deine Bilder in einem eindimensionalen Array vorhältst - für jede Zelle ein Bild. Bei anderen Bedingungen ist die Methode GetCharacterIndex() entsprechend anzupassen:

Delphi-Quellcode:
function TDemoForm.GetCharacterIndex(iCol, iRow: Integer): Integer;
begin
  with DrawGrid do
    Result := iRow * ColCount + iCol;
end;

procedure TDemoForm.DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  index: Integer;
begin
  index := GetCharacterIndex(ACol, ARow);
  if index >= 0 then
    with Sender as TDrawGrid do
      Canvas.StretchDraw(Rect, Wisu[index].Character);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat