ich versuche mittels DrawCell in ein StringGrid zu zeichnen. Es funktioniert auch aber ich sehe die Linien nur auf der Diagonalen von der linken oberen Ecke zur rechten Unteren.
Also die Zellen 0/0, 1/1 ... Mache ich das Grid so groß, daß ich Scrollbalken bekomme ist es auch von der linken oberen Ecke zur rechten Unteren was dann aber z.B.die Zellen 4/3, 5/4 ... sind.
Hier der Code:
Code: Alles auswählen
procedure TForm1.StrGridDrawCell(Sender: TObject; aCol, aRow: Integer;
aRect: TRect; aState: TGridDrawState);
begin
with StrGrid.Canvas do
begin
pen.Color := clblack;
pen.Width := 2;
if (ACol in [1..64])and (ARow in [1..64]) then
begin
if(Map[ACol,ARow]>0) then
begin
if not(StrGrid.IsCellSelected[aCol,aRow]) then Brush.Color:=clAqua;
FillRect(aRect);
MoveTo(aRect.Bottom,aRect.Left);
LineTo(aRect.Top,aRect.Left) ;
LineTo(aRect.Top,aRect.Right) ;
end;
end;
end;
end;
Und fürs bessere Verständnis noch mal ein Bild als Anhang - links ohne zu scrollen rechts gescrollt.
Was mache ich da falsch?
Und noch eine andere Frage : Wie bekommt man das gescrollte Grid per code wieder in die Normalposition (links-oben)?