با سلام
من در برنامه ام procedureهایی نوشته ام و در حالت اجرا میخواهم نام یکی از procedureها را در داخل یک Edit بنویسم و وقتی که دکمه Run را میزنم آن procedure اجرا بشود . چگونه میتوانم این کار را انجام دهم .
با تشکر
با سلام
من در برنامه ام procedureهایی نوشته ام و در حالت اجرا میخواهم نام یکی از procedureها را در داخل یک Edit بنویسم و وقتی که دکمه Run را میزنم آن procedure اجرا بشود . چگونه میتوانم این کار را انجام دهم .
با تشکر
سلام.
بهتره پروسیجر ها رو ببرید روی قسمت پابلیشد فرم، در این صورت می تونید با RTTI بهش دسترسی داشته باشید اون هم فقط با اسم.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
با تشکر
من در برنامه ام تعداد n تا procedure دارم با یک مشخصه که بصورت زیر میباشند
Procedure Run_Proc_0001_(Sender : TObject)
Procedure Run_Proc_0002_(Sender: TObject)
Procedure Run_Proc_0003_(Sender : TObject)
.
.
Procedure Run_Proc_????_(Sender: TObject)
من میخواهم که تمام این procedure ها در یک زمان خاصی به ترتیب اجرا شوند ولی تعدادآنها مشخص نیست من میخواهم اجرای Procedureها را در داخل یک حلقه For گذاشته و اجرا کنم . من چگونه میتوانم این کار را انجام دهم
با تشکر
یک آرایه از پروسیجر ها درست کنید.
به همین راحتی
PArr = array of TNotifyEvent
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
با سلام و با تشکر از دوست عزیز آقای یوسف زالی
نحوه انتصاب یک نام پروسیجر به یک متغییر از نوع TNotifyEvent چگونه هستش .
من یک آرایه ای مثلا با نام NameProc از نوع TNotifyEvent دارم میخواهم سه پرسیجر با عنوان Run_Proc_01 و Run_Proc_02 و Run_Proc_03 را به متغییر NameProc انتصاب دهم چگونه میتوانم این کار را انجام دهم .
با تشکر
var
NameProc : array[1..3] of TNotifyEvent ;
i_ : byte ;
begin
For i_ := 1 to 3 do
begin
NameProc[i_] := ??
?? و برای اجرا چگونه دستور را بایستی بنویسم
end ;
end ;
آخرین ویرایش به وسیله سیروس مقصودی : دوشنبه 12 مهر 1400 در 22:47 عصر
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, TypInfo, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
published
procedure P1(Sender: TObject);
procedure P2(Sender: TObject);
procedure P3(Sender: TObject);
procedure P4(Sender: TObject);
procedure P5(Sender: TObject);
public
PArr: array[1..5] of TNotifyEvent;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
PArr[2](Self);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
Routine: TMethod;
ObjMethod: TNotifyEvent;
begin
for i := 1 to 5 do
begin
Routine.Data := Pointer(Self);
Routine.Code := Self.MethodAddress('P' + IntToStr(i));
PArr[i] := TNotifyEvent(Routine);
end;
end;
procedure TForm1.P1(Sender: TObject);
begin
Caption := 'P1';
end;
procedure TForm1.P2(Sender: TObject);
begin
Caption := 'P2';
end;
procedure TForm1.P3(Sender: TObject);
begin
Caption := 'P3';
end;
procedure TForm1.P4(Sender: TObject);
begin
Caption := 'P4';
end;
procedure TForm1.P5(Sender: TObject);
begin
Caption := 'P5';
end;
end.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی