Autor Beitrag
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 25.08.07 21:22 
hi,

die suche gab mir so viele ergebnisse, dass ich nicht das gefunden habe, was ich suchte.

Ich möchte gerne folgendes, ein eigenes Event, welches aufgerufen wird in einer eigenen Klasse, sodass ich diesem dann eine procedure zuweisen kann:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure foo;
begin
end;

MeineKlasse.OnFoo = foo;


Wie implementiere ich also OnFoo in meiner Klasse ? es soll innerhalb einer prozedur aus der Klasse aufgerufen werden.
(ich wusste mal wie das geht, aber nie gebraucht also vergessen ^^)

danke
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Sa 25.08.07 22:13 
Geht mir auch so :mrgreen:
Versuch mal, was aus meinen Sources rauszufrickeln.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
TOnBlubb = procedure(MyIndex: integer) of object;

TMyClass = class

  private
     FOnBlubb: TOnBlubb;


  public
     property OnBlubb: TOBlubb read FOnBlubb write FOnBlubb;
     procedure Blubb(MyIndex: integer);


procedure TMyClass.Blubb(MyIndex: integer);
begin
  if (Assigned(FOnBlubb)) then
    FOnBlubb(MyIndex);
end;

procedure TMyClass.Add;
begin
   //bli bla
   Blubb(10);
end;

Wenn du Fragen hast, her damit. Ist ziemlich kompliziert, wenn man es nicht oft macht.

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Sa 25.08.07 22:25 
Besser ist es, sich an den Standard zu halten und den Sender mit zu übergeben.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
type
  TFooEvent(Sender: TObject; FooContent: integer) of object;

  TYourClass = class(TObject)
    private
      fFooEvent: TFooEvent;
      procedure DoFooEvent(aFooContent: integer);
    public
      property OnFooEvent: TFooEvent read fFooEvent write fFooEvent;
      procedure Foo;
  end;

procedure TYourClass.DoFooEvent(aFooContent: integer);
begin
  if assigned(fFooEvent) then      // wenn ein Event-Handler zugewiesen wurde
    fFooEvent(Self, aFooContent);  // Event mit Parametern abfeuern
end;

procedure TYourClass.Foo;
begin
  DoFooEvent(42);
end;

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
F34r0fTh3D4rk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 26.08.07 11:16 
danke ;)