Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eine Ereignise zu einen DBGRIB OnCreate zuweisen? (https://www.delphipraxis.net/67884-eine-ereignise-zu-einen-dbgrib-oncreate-zuweisen.html)

Karstadt 21. Apr 2006 12:36

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

Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
hallo. habe eine Projekt. Nun muss ich bei jeden DBGRIB ein DrawColumnCell erstellen. Das ist sehr zeitaufwändig und langweiling. Kann ich OnCreate jeden DBGIRG einen DrawColumnCell diesen Ereignis zuweisen?

f_ag.dbg_ansichtDrawColumnCell(Sender,Rect,DataCol ,Column,State);


Wie geht das?

mkinzler 21. Apr 2006 12:50

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
Du meinst ein Eventhandler für mehrere Objekte? Ja.

Karstadt 21. Apr 2006 13:12

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
Ja. haben schon gelöst. Danke

Delphi-Quellcode:
Procedure Tf_hauptfenster.DGBRIG_OnDrawColumnCell(Formular:TForm);
var I : Integer;
begin
  With Formular do
  begin
    for i:= 0 to ComponentCount-1 do
    begin
      IF (Components[i] is TDBGrid) Then
      begin
        TDBGrid(Components[i]).OnDrawColumnCell := DbGrib_DrawColumnCell_Einstellung;
      end;
    end;
  end;
end;

procedure Tf_hauptfenster.DbGrib_DrawColumnCell_Einstellung(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  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);
end;
Beim Create eines formulares einfach mit f_hauptfenster.DGBRIG_OnDrawColumnCell(self) aufrufen..

Richtig?

alzaimar 21. Apr 2006 13:28

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
Statt
Zitat:

Zitat von Karstadt
Delphi-Quellcode:
...
  If Frac(TDBGrid(sender).DataSource.DataSet.RecNo / 2) > 0 then

einfach ein
Delphi-Quellcode:
If Odd (TDBGrid(sender).DataSource.DataSet.RecNo) Then

Karstadt 21. Apr 2006 13:34

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
sonst ist okay? oder kann man das irgenwie beschleunigen?

alzaimar 21. Apr 2006 13:36

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
Ich verwende die DevExpress-Grids, die haben das eingebaut, aber ansonsten dürfte das schnell genug gehen, oder hast Du irgendwelche Performanceprobleme damit?

Karstadt 21. Apr 2006 13:51

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
gar keine. das war einfacher als ich mir gedacht haben :)

Karstadt 25. Apr 2006 10:42

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
eine weitere Frage. Wie kann ich rauskriegen ob eine Komponente das Ereignis OnDrawColumnCell schon hat ?

ziel. Ich möchte keine vorhandene Ereignissen überschreiben. Wie geht das?

mkinzler 25. Apr 2006 10:45

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
OnDrawColumnCell ist eine Ereignisproperty. du könntest überprüfen ob sie nil ist.

Karstadt 25. Apr 2006 11:13

Re: Eine Ereignise zu einen DBGRIB OnCreate zuweisen?
 
Das habe ich vor dem Posting versucht oder mache ich was falsch?

Delphi-Quellcode:
  if dbg_ansicht.OnDrawColumnCell = nil Then Showmessage('a');


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