Font im String/Drawgrid ändern
-
- Beiträge: 3
- Registriert: Do 29. Jan 2009, 22:13
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: near Berlin
Font im String/Drawgrid ändern
Hallo!
Ich habe auf meiner Form ein Stringgrid und möchte auf die Font-Eigenschaften von bestimmten Zellen zugreifen können.
Ich hatte mir das so gedacht, aber das klappt nich:
...
var a:Tfont;
...
begin
a:= Stringgrid.Cells[x,y].font;
a.color:=clred;
a.style.fsbold:=true;
a.size:=20;
Stringgrind.Cells[x,y].font:=a;
end;
Hat jemand eine Idee wie das funktioniert?
Oder sollte ich einen drawgrid nutzen? Wie erreicht man dort die Änderung einer Font-Eigenschaft?
Ich habe auf meiner Form ein Stringgrid und möchte auf die Font-Eigenschaften von bestimmten Zellen zugreifen können.
Ich hatte mir das so gedacht, aber das klappt nich:
...
var a:Tfont;
...
begin
a:= Stringgrid.Cells[x,y].font;
a.color:=clred;
a.style.fsbold:=true;
a.size:=20;
Stringgrind.Cells[x,y].font:=a;
end;
Hat jemand eine Idee wie das funktioniert?
Oder sollte ich einen drawgrid nutzen? Wie erreicht man dort die Änderung einer Font-Eigenschaft?
- af0815
- Lazarusforum e. V.
- Beiträge: 6770
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Font im String/Drawgrid ändern
Vielleicht in den Sourcen von Grid nachsehen, Lazarus ist noch immer OpenSource.remouter hat geschrieben:Hat jemand eine Idee wie das funktioniert?
Oder sollte ich einen drawgrid nutzen? Wie erreicht man dort die Änderung einer Font-Eigenschaft?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 3
- Registriert: Do 29. Jan 2009, 22:13
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: near Berlin
Re: Font im String/Drawgrid ändern
Sehr gute Idee, noch gar nicht dran gedacht.
Re: Font im String/Drawgrid ändern
... selbst zeichnen -> OnDrawCell
Gruß
Baba.
Code: Alles auswählen
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (aCol = GewünschteSpalte) and (aRow = GewünschteZeile) then begin
StringGrid1.Canvas.Font.Size := 9; // ODER EINE ANDERE GRÖSSE
StringGrid1.Canvas.Font.Style := [fsBold]; // MAL FETT
StringGrid1.Canvas.Font.Color := clRed;
StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, 'Designte Zelle');
end;
end;
Baba.
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: Font im String/Drawgrid ändern
In diesem Falle DrawGrid benutzen und in der Paint-Procedure alles selber machen wie baba gezeigt hat.
ACHTUNG, wenn man versucht im "normalen" StringGrid Font-Eigenschaften zu setzen, kann man auch eine Endlos-Schleife der Events auslösen, siehe:
http://www.lazarusforum.de/viewtopic.ph ... 55&start=0" onclick="window.open(this.href);return false;
Beitrag von RSE vom 4/9/2008, 13:19
Hatte selbst so ein Problem gehabt und mit DrawGrid gelöst.
ACHTUNG, wenn man versucht im "normalen" StringGrid Font-Eigenschaften zu setzen, kann man auch eine Endlos-Schleife der Events auslösen, siehe:
http://www.lazarusforum.de/viewtopic.ph ... 55&start=0" onclick="window.open(this.href);return false;
Beitrag von RSE vom 4/9/2008, 13:19
Hatte selbst so ein Problem gehabt und mit DrawGrid gelöst.
-
- Beiträge: 3
- Registriert: Do 29. Jan 2009, 22:13
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: near Berlin
Re: Font im String/Drawgrid ändern
Ja, das füllen der Zellen klappt so. Aber wie lese ich die Font in der Zelle?
Vllt mit einem array arbeiten, in dem man die Fonts der einzelnen Zellen abspeichert. : array of array of Tfont oda so. aber dann müsste Drawgrid eine feste Zahl an Cols und Rows haben ... oder könnte man das mit nem trick lösen?
Vllt mit einem array arbeiten, in dem man die Fonts der einzelnen Zellen abspeichert. : array of array of Tfont oda so. aber dann müsste Drawgrid eine feste Zahl an Cols und Rows haben ... oder könnte man das mit nem trick lösen?
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Font im String/Drawgrid ändern
Nein, es gibt keine Zellenabhängige Font-Eigenschaft.
Als Lösung bspw. ein paralleles Array mit TFont mitschleppen und dort dann eben für jede Zelle die Eigenschaften Eintragen. Als dynamisches Array kannst es ja auch zur Laufzeit anpassen.
(siehe SetLength)
Als Lösung bspw. ein paralleles Array mit TFont mitschleppen und dort dann eben für jede Zelle die Eigenschaften Eintragen. Als dynamisches Array kannst es ja auch zur Laufzeit anpassen.
array of array of TFont ist richtig, der zweite Gedanke nicht. Dynamische Array kannst ja anpassen, und auch sehr wohl so schachteln.array of array of Tfont oda so. aber dann müsste Drawgrid eine feste Zahl an Cols und Rows haben
(siehe SetLength)
Johannes