AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Ereignisse anstoßen

Ein Thema von Texas · begonnen am 28. Aug 2007 · letzter Beitrag vom 28. Aug 2007
Antwort Antwort
Texas

Registriert seit: 15. Jul 2005
Ort: Laatzen
59 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 13:52
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

ich würde mich sehr wenn ich das mit den Ereignissen

texas
Michael
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#2

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 14:15
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 14:38
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Texas

Registriert seit: 15. Jul 2005
Ort: Laatzen
59 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 14:49
das werde ich nachher mal testen.

und für die schnelle Antwort.

texas
Michael
  Mit Zitat antworten Zitat
Texas

Registriert seit: 15. Jul 2005
Ort: Laatzen
59 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 15:35
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
Michael
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 15:37
Rufst Du es denn auch auf?
Delphi-Quellcode:
StringGrid1.RowCount := Query1.ReccordCount + 1;
if Assigned(FOnAfterAppendRows) then
  FOnAfterAppendRows;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Texas

Registriert seit: 15. Jul 2005
Ort: Laatzen
59 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Neue Ereignisse anstoßen

  Alt 28. Aug 2007, 15:42
natürlich habe ich das

NICHT


gemacht
Michael
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 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