Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Vermutlich stimmt bei Dir in der Reihenfolge Deiner Aufrufe etwas nicht.
Deutet stark darauf hin, dass Du zuvor die procedure StringGridAlignment aufrufst und anschließend die (zentrierte) Ausgabe mit StringGrid1.Canvas.TextRect wieder überschrieben hast.
Dass es nun nicht mehr fett dargestellt wird liegt vermutlich daran, dass Du die StringGridAlignment vor dem Setzten der Formatierung...
Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Sorry war von mir vielleicht missverständlich formuliert; ich meinte den Parameter LineBreak
Wenn ich das Code-Schnipsel kopiere und in StringGrid1DrawCell folgendes Aufrufe
StringGridAlignment (StringGrid1, Rect, ACol, ARow, taCenter, False)
Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Liege ich mit meiner Vermutung richtig, dass Du Zelleninhalte verarbeiten möchtest, die mehr Platz in Anspruch nehmen als das Rect bietet (LineBreak)?
Wenn ja, dann versuch mal die Zellenhöhe anzupassen vor dem Zeichnen (Drawtext).
Gruß
Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Stimmt. Besser:
var
f : TFormat;
begin
if StringGrid1.Objects is TFormat then
begin
f := TFormat (StringGrid1.Objects );
Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Nein. Die Instanz der Formatklasse legst Du beim "Füllen" Deines Grids an.
f := TFormat.Create;
f.Color := clRed;
f.Style := ;
StringGrid1.Cells := 'Testdaten';
StringGrid1.Objects := f;
Forum: Sonstige Fragen zu Delphi
Delphi
by Volker Z.,
20. Dez 2012
Hallo,
wie wäre es mit der Eigenschaft TStringGrid.Objects?
Du könntest Dir eine Klasse (z. B. TFormat) bauen, die Deine Zellenformatierung speichert und jeweils eine Instanz dieser Klasse jeder zu formatierenden Zelle zuordnen.
Dann könntest Du in OnDrawCell
var
f : TFormat;