Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion / Procedure eine Procedure übergeben? (https://www.delphipraxis.net/37396-funktion-procedure-eine-procedure-uebergeben.html)

Kedariodakon 5. Jan 2005 12:30


Funktion / Procedure eine Procedure übergeben?
 
Kann mir jemand sagen wie das geht? :gruebel:

Also ich habe in einer Klasse eine Logfunktion und will die in der Klasse in einer Procedure in einer anderen Unit benutzen...
:twisted:

Bye

Nothine 5. Jan 2005 12:34

Re: Funktion / Procedure eine Procedure übergeben?
 
generalisiert so:
Delphi-Quellcode:
type
  TMyProcedure = procedure(X,Y: Integer); //Parameter nur beispielhaft

procedure MyProcedure(Proc: TMyProcedure);

...

var AProc: TMyProcedure;
begin
  AProc := SomeProcWith2Parameters;
  MyProcedure(AProc);
end;

Christian Seehase 5. Jan 2005 12:35

Re: Funktion / Procedure eine Procedure übergeben?
 
Moin Christian,

meinst Du das so:

Delphi-Quellcode:
type
  TDisplay = procedure(const AsMessage : string);

implementation

{$R *.DFM}

procedure Display(const AsMessage : string);
begin
  ShowMessage(AsMessage);
end;

procedure DoDisplay(const ADisplay : TDisplay);
begin
  ADisplay('MELDUNG');
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
  DoDisplay(Display);
end;
?

Steve 5. Jan 2005 12:38

Re: Funktion / Procedure eine Procedure übergeben?
 
Hi,

so sollte es prinzipiell funktionieren:

Delphi-Quellcode:
TYPE // Prozedur-Typ deklarieren
  TMyProc = PROCEDURE (aTest : Integer);
...
implementation

// Eine Bsp.-Prozedur von obigem Typ
PROCEDURE MyProc(aTest : Integer);
BEGIN
  ShowMessage(IntToStr(aTest));
END;
// Eine andere Bsp.-Prozedur von obigem Typ
PROCEDURE MyOtherProc(aTest : Integer);
BEGIN
  ShowMessage(IntToStr(aTest*2));
END;

{ Dieser Prozedur wird eine Prozedur übergeben }
PROCEDURE MyTest(aProc : TMyProc);
BEGIN
  aProc(7);
END;

{Beispiel-Aufrufe: }
procedure TForm1.Button1Click(Sender: TObject);
begin
  mytest(MyProc);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  MyTest(MyOtherProc);
end;
:shock: Ich und langsam?? Niieee... :angel:

Gruß
Stephan :dance:

Kedariodakon 5. Jan 2005 12:41

Re: Funktion / Procedure eine Procedure übergeben?
 
Die procedure die ich übergeben will ist eine Methode einer Klasse, da gehen eure Beispiele net :zwinker:
Denn so weit war ich auch schon :angel2:

aber mit einem
Delphi-Quellcode:
  Of Object
gehts :wink:

Ich bin heut zu plöd zu allem...


bye


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