Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DrawColumnCell (Für alle Dbgrib nur einmal einstellen) ? (https://www.delphipraxis.net/67883-drawcolumncell-fuer-alle-dbgrib-nur-einmal-einstellen.html)

Karstadt 21. Apr 2006 11:19

Datenbank: Mysql • Version: 4 • Zugriff über: direct

DrawColumnCell (Für alle Dbgrib nur einmal einstellen) ?
 
Ziel ist es:

Die Einstellung in f_xyz.dbgrib vornehmen:

das habe ich

Delphi-Quellcode:
  IF TDBGrid(sender).DataSource.DataSet.RecNo = 0 Then Exit;

  If Frac(TDBGrid(sender).DataSource.DataSet.RecNo / 2) > 0 then
  TDBGrid(sender).Canvas.Brush.Color:=Dbgrib_farbe_1 else
    TDBGrid(sender).Canvas.Brush.Color:=Dbgrib_farbe_2;
   
  TDBGrid(sender).DefaultDrawColumnCell
  (Rect, DataCol, Column, State);
und nun überall in Projekt in jeden DBGRIB einbauen:

In Eigenschaftenfenster von dbgrib gebe ich bei DrawColumnCell folgendes ein f_xyz.dbgribDrawColumnCell und bekomme eine FMeldung ungültiger bezeichnung. Warum?

In Unit gibt es die form xyz scon :)

Karstadt 21. Apr 2006 11:22

Re: DrawColumnCell (Für alle Dbgrib nur einmal einstellen) ?
 
Sorry. Habs gefunden..

Delphi-Quellcode:
procedure Tf_ra.dbg_ansichtDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
  begin
  f_xyz.dbg_ansichtDrawColumnCell(Sender,Rect,DataCol,Column,State);
end;
Ist das die richtige lösung?

Hansa 21. Apr 2006 12:44

Re: DrawColumnCell (Für alle Dbgrib nur einmal einstellen) ?
 
Ich denke, es geht darum, das in jedes bzw. viele Grids einzubauen ? Wie machst Du das jetzt mit dem gezeigten Code ?

alzaimar 21. Apr 2006 12:53

Re: DrawColumnCell (Für alle Dbgrib nur einmal einstellen) ?
 
Du könntest doch einfach im FormCreate jeder Form, die ein DBGrid beinhaltet, das OnDrawColumnCell auf die einmal definierte Routine umbiegen:
Delphi-Quellcode:
Procedure TMyForm.FormCreate (Sender : TObject);
Begin
  myDBGrid.OnDrawColumnCell := GridTemplate.DrawColumnCell;
End;
Über den Objektinspektor geht das nicht. Der ist hier zickig, wie Du schon bemerkt hast.


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