Hallo,
ich programmiere ja im Moment an einem Gleisplan und dafür nutze ich ein DrawGrid. Meine Daten dafür hole ich aus einer Datenbank (dank mkinzler) mit
SQL:
SELECT x, y, Feldtext FROM "Gleisbild" WHERE Plan = 1 AND Art = 'Text'
In das Grid füge ich das ganze mit folgendem Code:
Delphi-Quellcode:
while not query.Eof
do
begin
Gleis.Text(
query.FieldByName('
x').AsInteger,
query.FieldByName('
y').AsInteger,
query.FieldByName('
Feldtext').AsString);
query.Next;
end;
Gleis.Text sieht so aus:
Delphi-Quellcode:
procedure TZeichnen.Text(Spalte, Reihe: Integer; Text: string);
Var
p: TRect;
begin
SetBkMode(Can.Canvas.Handle, OPAQUE);
Can.Canvas.Font.Color := clBlack;
Can.Canvas.Font.Size := 7;
Can.Canvas.Font.Name := 'Arial';
p := Can.CellRect(Spalte, Reihe);
Can.Canvas.TextOut(p.Left, p.Top, Text);
end;
Nur wenn ich auf dem DrawGrid zeichne ist z.B. alles beim verschieben weg. Aber im OnDrawCell wird ja die
SQL Abfrage so schnell abgerufen das garnichts mehr geht. Wie gehe ich da am besten vor?