delphi4arab منتديات دلفي للعرب
اضافة button عن طريق button - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : اضافة button عن طريق button (/showthread.php?tid=6032)



اضافة button عن طريق button - o.akhras1993 - 20-03-2014

كيف اضافة button عن طريق button وجعل الـbutton الجديد ينفذ أمراً ما


اضافة button عن طريق button - sadwolf - 20-03-2014

اعتقد لايمكن اضافة تصميم وقت التنفيذ

ننتظر الخبراء


اضافة button عن طريق button - S.FATEH - 20-03-2014

السلام عليكم  
كل ما يمكن تنفيذه زمن التصميم يمكن تنفيده زمن التشغيل و العكس غير صحيح
هذه طريقة يمكن التعديل عليها لتلبي حاجاتك
PHP كود :
private
 
   procedure MyEvent(Sender: TObject); 

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
 
 Button: TButton;
begin
  Button         
:= TButton.Create(Self);
 
 Button.Caption := 'Test';
 
 Button.Name    := 'Test';
 
 Button.Parent  := Form1;
 
 Button.Top     := 20;
 
 Button.Left    := 20;
 
 Button.OnClick := MyEvent;
end;

procedure TForm1.MyEvent(Sender: TObject);
begin
  ShowMessage
('test');
end; 

احيلك الى الموضوع  لتفهم اكثر حول Parent و ٍ Self
الحدث OnClick هو من النوع TNotifyEvent  اذا تتبعت النمط تجده معرف كالتالي :

PHP كود :
TNotifyEvent = procedure(Sender: TObject) of object; 

لاحظ انه تم تعريف برامترات الحدث لكن دون اسم اي انه سيقبل اي Procedure باي اسم شرط :
1- ان يحمل نفس البرامترات  
2- ان ينتمي الى كلاس

الذي تشاهده اعلاه ما هو الا مؤشر لدالة كما قلت دلفي حريص على اخفاء تعاملك بالمئشرات لذلك يمكنك اختباره مع الـ nil لمعرفة ان تم اسناد الحدث

بالتوفيق


اضافة button عن طريق button - zte-usb - 22-03-2014

تفضل اخي
كود :
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.



اضافة button عن طريق button - o.akhras1993 - 24-03-2014

الله يجزيك الخير