Forum: Programmieren allgemein
by memphis,
22. Jul 2004
hallo
Das TCanvas besitzt auch eine Methode TextHeight bzw. TextWidth welche die Höhe bzw. die Breite des übergebenen Texts liefert. Hiermit ist es nun möglich eine fast exakte Position zu berechnen.
Den Integerwert, den man beispielsweise zu rect.top addiert, müsste folgendermaßen zu berechnen sein:
dy := (Rect.Bottom-Rect.Top-StringGrid1.Canvas.TextHeight(StringGrid1.Cells)) div 2;
...
Forum: Programmieren allgemein
by memphis,
22. Jul 2004
hallo
füge einfach nach dem fillRect Befehl noch folgenden Befehl ein, welcher den Text ausgibt:
StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells);
Sorry, habe im ersten Ansatz nicht an den Text gedacht...
MfG
Luki
Forum: Programmieren allgemein
by memphis,
22. Jul 2004
hallo
In wiefern meinst du abschalten?
dies ist ein Ereignis wie beispielsweise onpaint von TForm und wird immer dann ausgelöst, wenn die Komponente neugezeichnet wird. Wenn du eine Zelle nur zu einem gewissen Zeitpunkt einfärben willst, kannst du dies einfach über eine Status-Variable lösen. Ist sie auf true wird gezeichnet, bei false nicht. Diese Variable musst du dann in die Zellenabfrage...
Forum: Programmieren allgemein
by memphis,
22. Jul 2004
hallo
das TStringgrid besitzt ein Event mit dem Namen OnDrawCell. Es wird immer dann ausgelöst, wenn eine Zeile gezeichnet wird. Ihm wird neben den Indexen (für Spalte und Zeile) auch der Bereich der Zelle in Form eines TRect's übergeben.
Folgendes Beispiel füllt die Zelle(1,1) rot.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State:...