الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال حول مقالة الأخ عروة ...

مغلق
بدأه fafe0 في 14 سبتمبر 2005 · 9 رد · 710 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ذكر الأخ عروة في مقالته ( عشرة نصائح لتحسين حجم وسرعة تطبيقات دلفي )

اقتباس
3-

المشكلة الاساسية أنه عند استخدام Run_Time_Packages يجب نشر هذة المكتبات مع التطبيق النهائي وكأنها مكتبات DLL .

جربت أنا القيام بعمل الـ Run_Time_Packages ولكن المشروع الناتج لا يعمل على الأجهزة التي لا يوجد بها دلفي ؟

ولقد ذكرت أنت، أنه يجب نشر هذه المكتبات مع التطبيق النهائي وكأنها مكتبات DLL ..

كيف يمكنني عمل ذلك ؟

اقتباس
8- خفف من استخدام المكونات إن استطعت وخاصة المكونات اللامرئية non_visual components حيث يمكنك إضافة أكوادها يدويا إلى برنامجك , دون التكلف بوضع العنصر الذي سيجر وراءه عدة وحدات ويشغل حجم ربما لست مضطر لتخسرة .

هل تقصد يا أخ عروة أن المكونات مثل Timer و socket وغيرها من المكونات غير المرئية يمكن وضع أكوادها دون وضعها على الفورم ؟؟

كيف يمكنني عمل ذلك ؟؟

وجزاك الله خيراً...

وسامحوني يا شباب دائما ًمتعبكم بالأسئلة !

بارك الله فيكم.

#2

المزيد عن الحزم هنا :

http://www.orwah.net/modules/newbb/viewtop..._id=90&forum=17

إذا كنت اخذت الخيار Build with run time packages

من قائمة Project -> options ->packages

فهذا لايعني أبدا أنك بنيت حزمة run Time , بل أنك تجعل تطبيقك يعمل على حزم runTimeOnly ..

حزم Run Time تبنى أثناء كتابة عنصر (مكون ) جديد ,,وإذا كان المكون الجديد لايملك RunTime Packages فلن تستطيع ترجمته ب Run Time Package ..

اقتباس
هل تقصد يا أخ عروة أن المكونات مثل Timer و socket وغيرها من المكونات غير المرئية يمكن وضع أكوادها دون وضعها على الفورم ؟؟

نعم ..

#3

بارك الله فيك أخي عروة...

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

إذا كان أي حد من الشباب عنده تفاصيل حول وضع أكواد المكونات غير المرئية دون وضعها على الفورم، يا ريت يخبرنا كيف ...

ومشكورين..

السلام عليكم.

#4

اخي الكريم لاضافة Timer مثلا عليك اولا ان تضم المكتبة التي هو بها

و التي هي , ExtCtrls

ثم قم عن طريق الكود بكتابة ما يلي و يمكنك معاملته كانك تضع الكمبوننت على الفورم فقط قم بتعريفه كانك تعرف

متحول من اي Class وتستطيع التعامل مع كافة خصائصه

وقس على ذلك باقي الكمبوننت

type
  TForm1 = class(TForm)
    Button1: TButton;
 private
    { Private declarations }
  public
    T:TTimer;
     procedure TTimer(Sender:TObject);
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}


procedure TForm1.TTimer(Sender: TObject);
begin

end;

end.

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

اسف لم يتلون كود تعريف Timer دائما اقع في نفس الخطأ :blink:

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#6

جزاك الله خيراً أخي waeldalol

وآسف جداً على التأخر في الرد...

بس عندي سؤال ..

انت قلت :

اقتباس
اخي الكريم لاضافة Timer مثلا عليك اولا ان تضم المكتبة التي هو بها

و التي هي , ExtCtrls

كيف أعرف المكونات غير المرئية الأخرى لأي مكتبة تتبع ؟

وجزاك الله خيراً..

#7

قم بكتابة اسم Class في ال Help وسوف يعطيك اسم ال Unit الموجود بها

مثلا TTimer سوف يظهر لك انه ضمن Unit ExtCtrls

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#8

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

لكن عندما حاولت تطبيق الكود الذي وضعته في الأعلى، لم أتمكن من تنفيذ البرنامج، لا أدري ما الخطأ

كتبت الكود كالتالي:

type
 TForm1 = class(TForm)
   Button1: TButton;
private
   { Private declarations }
 public
   Timer:TTimer;
    procedure TTimer(Sender:TObject);
   { Public declarations }
 end;

var
 Form1: TForm1;
implementation

{$R *.dfm}


procedure TForm1.TTimer(Sender: TObject);
begin
showmessage('hi');
end;


procedure Tform1.Button1Click( Sender: TObject);
begin
timer.interval:= 2000;
timer.enabled:= true;
end.

أخي أرجو أن تخبرني عن الطريقة الصحيحة لاستعماله. بعد التجربة.

وفقك الله...

#9
 
  //uses ExtCtrls

 public
  Timer:TTimer;
  procedure TimerTimer(Sender: TObject);

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
Timer:=TTimer.Create(Form1);
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
showmessage('hello');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer.Interval:=2000;
Timer.OnTimer:= TimerTimer;
Timer.Enabled:=true;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Timer.Free;
end;
#10

جزاك الله خيراً أخي عروة، والله إنك ساعدتني كثير جداً على صفحات هذا المنتدى...

جزاك الله عني كل خير..

جزاك الله خيراً وزوجك بكراً

هذا الموضوع مغلق.

مواضيع مشابهة