علیرضا110
جمعه 16 بهمن 1394, 13: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;
اینم یک کد کلیدی و بدرد بخوره
با این کد هم میتوانید نام یک 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;
اینم یک کد کلیدی و بدرد بخوره