[Delphi] Procedure 동적 호출

1914 단어
프로세스도 통용 변수처럼 성명하고 호출할 수 있다
 
procedure HelloWorld;

begin  

ShowMessage('HI');

end;

procedure HelloWorld2(a:String);

begin  

ShowMessage('HI');

end;

 

procedure TFormSplash.FormCreate(Sender: TObject);

var 

    myproc:Procedure; 

   myproc2:Procedure(a:String);

begin   

    myProc:=HelloWorld;

   if Assigned(myProc) then  myProc;

   myproc2:= HelloWorld2;

   if Assigned(myproc2) then  myproc2('');

 
 
이렇게 정의할 수도 있어요.
 var 
    myproc:Procedure=HelloWorld;
   myproc2:Procedure(a:String)=HelloWorld2;
 
매개변수 유형이 다르거나 순서가 다르면 프롬프트가 표시됩니다.
  E2009 Incompatible types: ‘Parameter lists differ’
직접 할당 대상의 과정이나 함수에서 오류가 발생합니다
 E2009 Incompatible types: ‘regular procedure and method pointer’
유형을 Type에 선언해야 합니다.type    TMethod = procedure of object ;    TFunc = function : integer of object ;    TNotifyEvent = procedure (Sender: TObject) of object ;
 

좋은 웹페이지 즐겨찾기