AGB  ·  Datenschutz  ·  Impressum  







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

Tstringgrid einzelne Zellen färben

Ein Thema von Dragon27 · begonnen am 26. Jul 2004 · letzter Beitrag vom 11. Jun 2012
Antwort Antwort
Seite 2 von 2     12   
Jojojoxx

Registriert seit: 4. Sep 2006
5 Beiträge
 
#11

Re: Tstringgrid einzelne Zellen färben

  Alt 22. Aug 2007, 12:57
Hi!

Ich kann dem vorher geschriebenen nicht wirklich entnehmen wie ich die Textfarbe unterschiedlich machen kann.
Bei mir wird das immer für das gesamt Stringgrid übernommen, auch wenn es im OndrawCell-ereignis ist. Mit der Hintergrundfarbe einer Zelle klappt es bei mir, mit der Textfarbe jedoch nicht!
Wäre dankbar, wenn mir da jemand helfen könnte!
Danke!
mfg

Jojo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Tstringgrid einzelne Zellen färben

  Alt 22. Aug 2007, 13:00
Die Textfarbe ist eine Eigenschaft des Fonts
Markus Kinzler
  Mit Zitat antworten Zitat
Shirakava

Registriert seit: 30. Apr 2008
Ort: Wetzlar
5 Beiträge
 
#13

Re: Tstringgrid einzelne Zellen färben

  Alt 1. Mai 2008, 20:27
aber das geschieht dann beim erstellen von dem stringgrid oder?

ich bin nämlich auf der suche nach einer funktion mit der ich das im nachhinein noch ändern kann

also wenn eine gewisse bedingung erfüllt ist
jedesmal neu zeichnen erscheint mir als nonsens
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Tstringgrid einzelne Zellen färben

  Alt 1. Mai 2008, 20:29
Nein, beim zeichnen jeder einzelnen Zelle
Markus Kinzler
  Mit Zitat antworten Zitat
Shirakava

Registriert seit: 30. Apr 2008
Ort: Wetzlar
5 Beiträge
 
#15

Re: Tstringgrid einzelne Zellen färben

  Alt 1. Mai 2008, 20:50
okay...

aber jetzt hab ich das angwendet und mein text ist weg, also einfach nur überzeichnet, und wird erst wieder freigegeben wenn ich auf die zelle klicke. bei der zelle in der ich gerade den text am eingeben bin geschieht nicht im geringsten etwas.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Tstringgrid einzelne Zellen färben

  Alt 1. Mai 2008, 21:00
Welchen Wert hat .DefaultDrawing?
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: Tstringgrid einzelne Zellen färben

  Alt 1. Mai 2008, 21:17
Poste Teile des Quelltextes, insbesondere die OnDrawCell-Prozedur. Sonst wird das nichts.
Gruß
Hansa
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#18

Re: Tstringgrid einzelne Zellen färben

  Alt 11. Jan 2010, 21:35
Zitat von mkinzler:
Welchen Wert hat .DefaultDrawing?
Tut mir leid, hier einen Asbachthread wieder aufzuwärmen, aber mit Defaultdrawing hat das nichts (oder nicht unbedingt) etwas zu tun.

Entscheidend ist zunächst einmal:

- eine „Hintergrundmatrix“ mit den Farbwerten (bietet sich der Typ TColor an) bereitzustellen, ggf. auch für die beiden Farbwerte (Zellhintergrund- und Zellschriftfarbe),
- diese (logischerweise rechtzeitig, also vor Stringgridzellenfärbung) zu füllen und
- sie dauerhaft bereitzuhalten, zumal OnDraw-Ereignise auch dann stattfinden, wenn das StringGrid schon gefüllt ist und man mit einem anderen Formular/Fenster über jenes „wischt“.

Die nach meiner Beobachtung alles entscheidenden zwei Befehle (für die zellbezogene Textfärbung) lauten:

Delphi-Quellcode:
StringGrid1.Canvas.Font.Color:=Farbe[ACol,ARow];
StringGrid1.Canvas.TextRect(Rect,Rect.Left{+2},Rect.Top{+2},StringGrid1.cells[ACol,ARow])[ACol,ARow])
Damit funktioniert es bei mir auch mit oder ohne (bzw. zu- oder abgeschaltetem) Defaultdrawing perfekt.

Dafür, daß die für den Hintergrund zugewiesene Farbe auch angezeigt wird, könnte übrigens der Befehl

StringGrid1.Canvas.FrameRect(Rect) sorgen, den ich in jenem Kontext auch fand, doch das probierte ich nicht aus, also ohne Gewähr. Er wirkt jedenfalls so herrlich adäquat zu seinem Pendant.

Edit: FrameRect zeichnet einen farbigen Rahmen um die Zelle, während

StringGrid1.Canvas.FrameRect(Rect) die Zelle komplett farbig (aus-)füllt.

Diese Diskussion aufmerksam verfolgt, ich muß es leider so deutlich ausdrücken, habe ich bei einigen durchaus den Eindruck, daß sie die präzise Antwort nicht wissen, aber unbedingt etwas dazu schreiben müssen und so tun als ob. Auch in anderen Foren sind ähnliche Diskussionsverläufe bei Anfragen bezüglich des zellspezifischen, zellindividuellen Färben der Hintergründe und/oder Einträge von StringGrids zu beobachten. Ein echter Dauerbrenner, weil dieser Objektlasse m.E. letztlich wichtige Eigenschaften fehlen (oder die sich doch nicht so simpel programmieren lassen). Doch eben gerade weil das kaum irgendo erschöpfend beantwortet wurde, tauchen derlei Fragen immer und immer wieder auf.
  Mit Zitat antworten Zitat
Steph.Delphi

Registriert seit: 7. Jul 2010
2 Beiträge
 
Delphi 2 Desktop
 
#19

AW: Tstringgrid einzelne Zellen färben

  Alt 11. Jun 2012, 18:25
Hier wird alles sehr gut beschrieben. Bei mir hat's funktioniert, schön einfach geschrieben.
http://www.ansatheus.de/_at_dokserve...stringgrid.pdf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:06 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