AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fontfarbe in TStringgrid ändern ;-)

Ein Thema von Roadrunner.1 · begonnen am 3. Mai 2017 · letzter Beitrag vom 5. Mai 2017
 
Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#1

Fontfarbe in TStringgrid ändern ;-)

  Alt 3. Mai 2017, 09:25
Hi Zusammen,

ja, ja, ja, die Frage wurde schon 1000 mal gestellt und ich soll die Suche verwenden. Also nach einer Stunde bekomme ich MEIN Problem
nicht gelöst. Vielleicht liegt es aber auch Delphi XE5 und jemand hat eine Idee.

Also was will ich?
Bestimmte Einträge in einem Stringgrid in einer anderen Fontfarbe darstellen. Standartantwort wäre z.B.:

procedure TForm.SGDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
begin
if (ACol=4) and (ARow>0) then begin
with SG.Canvas do begin
Font.Color:=clred;
FillRect(Rect);
Textout(Rect.Left+2,Rect.Top+2, SG.Cells[ACol,ARow]);
end;
end;
end;

Merkwürdig daran ist, das auch alle anderen Zellen gemalt werden. Wie's mir scheint wird hier ÜBERMAHLT nicht "statt dessen" gemalt, oder?

OK. Nun zu meinem Problem: Hat eine übermalte Zelle den Fokus (sieht dann anders aus, aber für meine Zwecke OK) und gehe ich dann mit TAB
aufs nächste Steuerelement, so wird der Eintrag nicht rot sondern schwarz dargestellt! Selbst ein Repaint, Invalid oder die Zuweisung eines neuen
Textes in der onExit des Stringgrids führt zu keiner Besserung. Folgendes führt zu einer Standartfarben (schwarz) Ausgabe:

procedure TForm.SGExit(Sender: TObject);
begin
with SG do begin
Cells[4,4]:='Test';
end;
end;

Das "Test" erscheint also in schwarz statt in rot wenn beim Fokuswechsel diese Zelle markiert war. War hingegen eine andere markiert wird
"Test" in rot dargestellt!

Meine letzte Idee war DrawCell in onExit aufzurufen, aber wo bekom' ich mein Rect Parameter her, und wieso ist das alles so aufwendig?
Des Weiteren hab' ich Breakpoints gesetzt, und DrawCell wird nach der Zuweisung in OnExit schon mit ACol=4 und ARow=4 aufgerufen, aber
dieser Eintrag nicht rot dargestellt.

Hat irgend einer eine Idee?
Christian Drenkard
--
mfg.
Christian Drenkard
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz