AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StringGrid farblich in XE7 anders als in Delphi 2006
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid farblich in XE7 anders als in Delphi 2006

Ein Thema von HolgerCW · begonnen am 6. Feb 2015 · letzter Beitrag vom 1. Mai 2015
Antwort Antwort
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 6. Feb 2015, 11:04
Delphi-Version: XE7
Hallo zusammen,

in Delphi XE7 werden jetzt meine StringGrind-Zellen nicht mehr komplett mit der Farbe gefüllt.

Delphi-Quellcode:
With STG_1 do
 begin

  If (ACol = 5) AND (ARow > 0) then
  begin

   Canvas.Brush.Color := clGradientInactiveCaption;
   Canvas.FillRect(Rect);

   Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);

  end;

 end;
Es bleibt links ein kleiner Rand. Warum ? Siehe hier:

Kleinbestellungen-2015-02-06 12_03_50.jpg

Gruss

Holger
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 6. Feb 2015, 11:28
...

Geändert von hathor ( 6. Feb 2015 um 12:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#3

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 6. Feb 2015, 11:55
Da war doch mal was...
FillRect doesn't paint the complete TStringGrid cell in Delphi XE2
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#4

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 6. Feb 2015, 12:29
Wenn man nun folgendes macht:

Rect.Left := Rect.Left - 4; Dann klappt es. Ist das denn die saubere Lösung ?

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#5

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 6. Feb 2015, 13:26
Wenn man nun folgendes macht:

Rect.Left := Rect.Left - 4; Dann klappt es. Ist das denn die saubere Lösung ?
Sicher nicht - aber ich kenne keine andere.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 1. Mai 2015, 18:24
Da bin ich auch gerade drüber gestolpert.

Würde dann hier aber

rect := TStringGrid (sender).CellRect(ACol,ARow);

bevorzugen, denn dann stimmen die Rect-Werte auch, wenn man den Source-Code auch auf älteren Delphi-Versionen einsetzt (oder falls das später mal in einer Version XE 43 gefixt werden sollte).
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 1. Mai 2015, 18:58
Mit Rect bekommt man nun den Ausgabebereich für den Text.

Der Weg von Harry geht übrigens nur bei Firemonkey
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Mai 2015 um 19:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 1. Mai 2015, 19:21
@ Sir Rufo: Nein, das war nicht auf FireMonkey bezogen, sondern auf die VCL.

CellRect gibt genau die gleichen Werte an, wie Rect an das OnDrawCell-Event übergeben wird, nur eben korrigiert um den Wert für Rect.Left um -4.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: StringGrid farblich in XE7 anders als in Delphi 2006

  Alt 1. Mai 2015, 20:24
@ Sir Rufo: Nein, das war nicht auf FireMonkey bezogen, sondern auf die VCL.

CellRect gibt genau die gleichen Werte an, wie Rect an das OnDrawCell-Event übergeben wird, nur eben korrigiert um den Wert für Rect.Left um -4.
Jetzt wo du es sagst, ich hatte nur auf der Eigenschaftsseite geschaut das ist aber eine Methode

Delphi-Referenz durchsuchenTStringGrid.CellRect
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 01: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