PDA

View Full Version : اجرای یک procedure یا فانکشن از طریق تکست یا string



علیرضا110
جمعه 16 بهمن 1394, 12:48 عصر
با سلام

با این کد هم میتوانید نام یک procedure را به عنوان مثال از داخل یک استرینگ string صدا بزنید واجرا کنید

مثلا اینطوری:


procedure TForm1.CallMeByName(Sender: TObject) ;
begin
ShowMessage('Hello Delphi!') ;
end;

procedure TForm1.Button1Click(Sender: TObject) ;
begin
ExecMethod(Form1, 'CallMeByName') ;
end;


البته باید قبلش این کد را اضافه کنید

procedure TForm1.ExecMethod(OnObject: TObject; MethodName: string) ;
var
Routine: TMethod;
Exec: TExec;
begin
Routine.Data := Pointer(OnObject) ;
Routine.Code := OnObject.MethodAddress(MethodName) ;
if NOT Assigned(Routine.Code) then Exit;
Exec := TExec(Routine) ;
Exec;
end;



اینم یک کد کلیدی و بدرد بخوره