Forum: Sonstige Fragen zu Delphi
Delphi
by Martin K,
4. Nov 2005
Nein, das geht leider nicht (s. Beitrag #5)
Man könnte höchstens statt DrawText auch StringGrid1.Canvas.TextOut verwenden.
Forum: Sonstige Fragen zu Delphi
Delphi
by Martin K,
4. Nov 2005
Hab's jetzt selber rausgefunden, das geht so:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
If (ACol=5) and (ARow=5) then //für die Zelle 5,5
begin
StringGrid1.Canvas.Font.Color:=clRed;
DrawText(StringGrid1.Canvas.Handle,PChar(StringGrid1.Cells),Length(StringGrid1.Cells),Rect,0);
end;
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by Martin K,
4. Nov 2005
Ja, ich hab's jetzt auch verstanden.
Ich will aber die Textfarbe nur für bestimmte Zellen ändern, und nicht für's ganze StringGrid !
Also so geht's leider nicht:
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
StringGrid1.Cells:='test';
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Forum: Sonstige Fragen zu Delphi
Delphi
by Martin K,
4. Nov 2005
Ja, danke.
Aber ich hab gerade festgestellt, dass diese Prozedur zum Ändern der Textfarbe absoluter Schwachsinn ist.
Sie ändert nämlich die Farbe im kompletten StringGrid.
Wie kann man denn nur die Textfarbe ändern ?
Forum: Sonstige Fragen zu Delphi
Delphi
by Martin K,
4. Nov 2005
Hi,
ich will nur den Text einer bestimmten Zeile in einem StringGrid in einer anderen Farbe darstellen.
Dazu habe ich bereits folgendes gefunden:procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
StringGrid1.Canvas.Brush.Color:=clGreen;
StringGrid1.Canvas.FillRect(Rect);
end;