Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DrawColumnCell (aktieven Feld anders darstellen) (https://www.delphipraxis.net/77145-drawcolumncell-aktieven-feld-anders-darstellen.html)

Karstadt 15. Sep 2006 10:29

Datenbank: Mysql • Version: 4.1 • Zugriff über: mydac

DrawColumnCell (aktieven Feld anders darstellen)
 
Hallo.

Delphi-Quellcode:
procedure DbGrib_DrawColumnCell_Einstellung(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin

  If Odd(TPDJXPDBGrid(sender).DataSource.DataSet.RecNo) then
  begin
    TPDJXPDBGrid(sender).Canvas.Font.Color:=Dbgrib_schrift_farbe1;
    TPDJXPDBGrid(sender).Canvas.Brush.Color:=Dbgrib_farbe_1;
  end
  else
  begin
    TPDJXPDBGrid(sender).Canvas.Font.Color:=Dbgrib_schrift_farbe2;
    TPDJXPDBGrid(sender).Canvas.Brush.Color:=Dbgrib_farbe_2;
  end;
  TPDJXPDBGrid(sender).DefaultDrawColumnCell
  (Rect, DataCol, Column, State);
end;
Das ist mein Code. Nun will ich den aktiven Feld ander darstellen. Z.b Blaue umrahmung.

Wie mache ich das?

Momentan sieht das so aus, das das aktives Feld "garnicht" markiert wird...

marabu 15. Sep 2006 10:55

Re: DrawColumnCell (aktieven Feld anders darstellen)
 
Ahoi Karstadt,

ich würde im Anschluß noch ein Rechteck zeichnen:

Delphi-Quellcode:
procedure DbGrib_DrawColumnCell_Einstellung(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  r: TRect;
begin
  with Sender as TPDJXPDBGrid do
  begin
    if Odd(DataSource.DataSet.RecNo) then
    begin
      Canvas.Font.Color := Dbgrib_schrift_farbe1;
      Canvas.Brush.Color := Dbgrib_farbe_1;
    end else
    begin
      Canvas.Font.Color := Dbgrib_schrift_farbe2;
      Canvas.Brush.Color := Dbgrib_farbe_2;
    end;
    DefaultDrawColumnCell(Rect, DataCol, Column, State);
    r := Rect;
    InflateRect(r, -1, -1);
    Canvas.Brush.Color := clBlue;
    FrameRect(r);
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

Karstadt 15. Sep 2006 12:25

Re: DrawColumnCell (aktieven Feld anders darstellen)
 
Delphi-Quellcode:
   
  FrameRect(r);
Incompatible Typen HDC und TRect :(

hoika 15. Sep 2006 13:28

Re: DrawColumnCell (aktieven Feld anders darstellen)
 
Hallo
Delphi-Quellcode:
Canvas.FrameRect(r);
einfach mal in der Delphi-Hilfe nachsehen ...

Der Grund für deine Fehlermeldung ist übrigens, dass ohne das "Canvas." die
Original-Windowsfunktion verwendet wird (siehe API-Hilfe),
und die hat als ersten Parameter halt nen HDC.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:02 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