Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TDBGrid (https://www.delphipraxis.net/157871-tdbgrid.html)

-187- 27. Jan 2011 21:06

TDBGrid
 
Hey, ich habe grade ein Darstellungsproblem.
Mein System:
-Windows 7
-Delphi2010

Ich habe eine Datenbank Anwendung und benutzte ein DBGrid zur Darstellung der Daten. Ich habe 10 Spalten. Mit folgendem Code werden die Daten der ersten beiden Spalten FETT markiert wenn ich sie selektiere. Ich hatte schonmal ein ähnliches Problem... Das hing mit dem Aero Style von Windows 7 zusammen.

Code:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Wenn die die Zeile auskommentiere habe ich das Problem nicht. Strange!

Jemand ne Idee?

WM_CLOSE 27. Jan 2011 21:17

AW: TDBGrid
 
Welches problem genau??
Und bitte die Delphi Tags benutzen (Die mit dem Römerhelm)

-187- 27. Jan 2011 21:20

AW: TDBGrid
 
Oops ;) Ja also das die ersten beiden Spalten FETT dargestellt werden ist keine Absicht. Ich verstehe nicht warum das passiert. Es ist aufjedenfall ungewollt ;)

Sir Rufo 28. Jan 2011 00:15

AW: TDBGrid
 
Zitat:

Zitat von -187- (Beitrag 1077775)
Oops ;) Ja also das die ersten beiden Spalten FETT dargestellt werden ist keine Absicht. Ich verstehe nicht warum das passiert. Es ist aufjedenfall ungewollt ;)

Das wird nicht FETT durch das Font-Attribut BOLD sondern das wird zweimal gezeichnet und beim internen Zeichnen wird da ein kleiner Offset hinzugerechnet. Man sieht also wegen dem Versatz anscheinend FETT

-187- 28. Jan 2011 05:21

AW: TDBGrid
 
Hmm das klingt logisch aber warum wird es 2 mal gezeichnet und wie kann ich das umgehen ? In älteren Anwendungen habe ich das immer so gemacht :roll:

Bummi 28. Jan 2011 06:48

AW: TDBGrid
 
vor dem Schreiben ein Fillrect aufrufen.

-187- 28. Jan 2011 08:06

AW: TDBGrid
 
Mit "Vor dem Schreiben" meinst du vor dem Zeichnen ?

Edit: Habe es jetzt probiert, hat nichts gebracht.

Code:
DBGrid1.Canvas.FillRect(Rect);

Bummi 28. Jan 2011 08:51

AW: TDBGrid
 
Delphi-Quellcode:
if not (gdSelected in State) then DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
:?:

-187- 28. Jan 2011 09:07

AW: TDBGrid
 
Hmm ja das hat funktioniert. Danke ! :P

Seltsam.. Jetzt werden nur die nicht selektierten Reihen neu gezeichnet?

Bummi 28. Jan 2011 09:38

AW: TDBGrid
 
was hast Du denn vor?
Ich verstehe nicht was es bringt in DBGrid1DrawColumnCell > DefaultDrawColumnCell aufzurufen ohne Fälle zu unterscheiden....


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Seite 1 von 2  1 2      

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