![]() |
Neue Ereignisse anstoßen
hallo erst mal.
Ich bin gerade dabei mich mit der Komponentenentwickelung auseinanderzusetzen. Komme auch so stück für stück weiter. Nur bei den Ereignissen tu ich mich noch etwas schwer. Ich möchte ein Stringgrid um die Ereignisse BeforeAppendRows, AfterAppendRows sowie BeforeDeleteRows und AfterDeleteRows erweitern. Der Sinn und Zweck ist nämlich das ich Objects die dem Grid zugewiesen sind aus bzw. in den Speicher löschen/schreiben will. Die Ereignisse im Objektinspekto werden zwar angezeigt, aber wie bekomme ich es hin dass DIESE Ereignisse angestoßen werden, wenn ich Rowcount erhöhe oder abziehe. Muss ich dazu irgendwelche Windowsbotschaften abfangen ? und wenn ja wie. Oder kann ich das ganze mit einer Procedure in der Komponente erledigen? Wie Cells[x,y] die müssten doch auch irgendwie verwaltet werden. Ich habe versucht mir das da mal anzusehen, habe aber vor lauter hin in her gar nix mehr :gruebel: :gruebel: ich würde mich sehr :witch: wenn ich das mit den Ereignissen :coder2: texas |
Re: Neue Ereignisse anstoßen
Hallo,
Du mußt ganz einfach an geeigneter Stelle in Deiner Komponente mit if assigned (...) prüfen, ob eine Ereignisbehandlungsroutine eingetragen ist, und dann diese aufrufen. Guck doch einfach mal in den Quelltext von z.B. TButton MfG Klaus |
Re: Neue Ereignisse anstoßen
Im Prinzip so:
Delphi-Quellcode:
type
TTestEvent = procedure(Sender: TObject; var Blubb: integer) of object; TMyCompo = class private FOnTest: TTestEvent; ... published property OnTest: TTestEvent read FOnTest write FOnTest; end; ... constructor TMyCompo.Create(aOwner: TComponent); begin inherited; FOnTest := nil; ... end; ... procedure TMyCompo.DoSomething(Sender: TObject); begin ... if Assigned(FOnTest) then FOnTest(Sender,20); end; |
Re: Neue Ereignisse anstoßen
das werde ich nachher mal testen.
und :mrgreen: für die schnelle Antwort. texas |
Re: Neue Ereignisse anstoßen
Also irgenwie wird das Ereigniss nicht angestoßen wenn ich RowCount im Programm erhöhe.
StringGrid1.RowCount := Query1.ReccordCount + 1; AfterAppendRows Ereigniss wird nicht ausgeführt :wall: |
Re: Neue Ereignisse anstoßen
Rufst Du es denn auch auf?
Delphi-Quellcode:
StringGrid1.RowCount := Query1.ReccordCount + 1;
if Assigned(FOnAfterAppendRows) then FOnAfterAppendRows; |
Re: Neue Ereignisse anstoßen
natürlich habe ich das
NICHT gemacht :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz