Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Das muss man natürlich erst mal wissen, das die Zuweisung selbst ein erneutes Draw auslöst - na, wieder was dazugelernt!
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Mir ist aufgefallen, dass du mitCanvas.Brush.Color := clBlue;
Canvas.Font.Color := clWhite;
Canvas.Font.Style := ;
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells);
Canvas.FrameRect(Rect);
eine mir ungewohnt erscheinende Art der Ausgabe verwendest. Offensichtlich funktioniert sie, aber üblicherweise schaut das eher so aus..
Canvas.Brush.Color := clBlue;
Canvas.FillRect(Rect);...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Hmmm :shock: :shock:
Habe keine Idee warum es flackert.
Spontane Idee: Den Farbwert nur dem Objekt zuweisen, wenn etwas anderes (also nix oder 'ne andere Farbe) enthalten ist. Das reduziert den schreibenden Zugriff - ob das was bringt?
Probiere es mal aus.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Sorry, sorry, sorry :pale:
Das war ein wenig schusselig von mir. Die Typecasts sind falsch. Richtig ist:
StringGrid1.Objects:=Pointer(Canvas.Brush.Color); // in OnDrawCell()
Color:=TColor(StringGrid1.Objects); // in ExportProzedur
übrige Fragen: Nein, die Zelle hat keine Information, welche Farbe sie einnehmen soll - aus diesem Grund färbst DU die Zelle im OnDrawCell(). Und weil die...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Ahhh, verstehe,
wir reden aber nur zum Teil aneinander vorbei:
Bevor du die Farbe aus Objects (beim Export) lesen kannst, muss der Wert ja erst einmal dort abgelegt werden. Das muss im OnDrawCell() geschehen. Da sehe ich in deinem Code nix, wo das passiert: Überall dort, wo du den Hintergrund färbst, musst du zusätzlich die verwendete Farbe ins Object speichern, also z.B.
...then begin
...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
hihihi, genau anders 'rum!
Die Farbe muss ins Objekt! Deine Zuweisung läuft ja genau in die falsche Richtung. So wie es dort steht, musst du es machen, wenn du die Daten exportierst.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by taaktaak,
5. Nov 2008
Moin, Moin.
Diese Information ist im StandardGrid nicht verfügbar. Im Post#3 wurde dir ja eine mögliche Lösung vorgeschlagen:
In OnDrawCell() übergibts du die Information, mit welcher Farbe du den Zellhintergrund füllst, an die Objektvariable die für jede Zelle des Grids verfügbar ist: Stringgrid.Objects. Da diese Variable vom Typ TObject ist muss dies über ein Typecasting von TColor nach...