20-03-2014, 04:19 AM
كيف اضافة button عن طريق button وجعل الـbutton الجديد ينفذ أمراً ما
|
اضافة button عن طريق button
|
|
20-03-2014, 04:19 AM
كيف اضافة button عن طريق button وجعل الـbutton الجديد ينفذ أمراً ما
20-03-2014, 08:17 PM
اعتقد لايمكن اضافة تصميم وقت التنفيذ
ننتظر الخبراء
السلام عليكم
كل ما يمكن تنفيذه زمن التصميم يمكن تنفيده زمن التشغيل و العكس غير صحيح هذه طريقة يمكن التعديل عليها لتلبي حاجاتك PHP كود : privatePHP كود : procedure TForm1.Button1Click(Sender: TObject);احيلك الى الموضوع لتفهم اكثر حول Parent و ٍ Self الحدث OnClick هو من النوع TNotifyEvent اذا تتبعت النمط تجده معرف كالتالي : PHP كود : TNotifyEvent = procedure(Sender: TObject) of object; لاحظ انه تم تعريف برامترات الحدث لكن دون اسم اي انه سيقبل اي Procedure باي اسم شرط : 1- ان يحمل نفس البرامترات 2- ان ينتمي الى كلاس الذي تشاهده اعلاه ما هو الا مؤشر لدالة كما قلت دلفي حريص على اخفاء تعاملك بالمئشرات لذلك يمكنك اختباره مع الـ nil لمعرفة ان تم اسناد الحدث بالتوفيق
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
تفضل اخي
كود : unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
// النموذج
type
TMainform = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
Procedure ButtonAction(Sender: TObject);
public
{ Public declarations }
end;
var
Mainform: TMainform;
Btn: TButton;
implementation
{$R *.dfm}
// معلومات الزر
procedure TMainform.Button1Click(Sender: TObject);
begin
Btn := TButton.Create(Self);
Btn.Parent := Self;
Btn.OnClick := ButtonAction;
Btn.Caption := 'zte-usb';
Btn.Width := 80;
Btn.Left := 50;
Btn.Top := 50;
Btn.Height := 25;
Btn.Visible := True;
end;
procedure TMainform.Button2Click(Sender: TObject);
begin
If Btn <> nil then
Btn.Free;
end;
// حدث الزر المتكون
procedure TMainform.ButtonAction(Sender: TObject);
begin
MessageBox(Handle, 'zte-usb Delphi4arab', 'Test', $40);
AnimateWindow(Handle, 400, AW_HIDE or AW_BLEND);
Close;
end;
procedure TMainform.FormDestroy(Sender: TObject);
begin
Btn.Free;
end;
end.
24-03-2014, 05:00 AM
الله يجزيك الخير
|
|
|