ما الفرق بين close و halt ؟؟؟
#1
السلام عليكم ورحمة الله وبركاته ,,,

ما الفرق بين :
كود :
close;
و
كود :
Application.Terminate;
وأيظا
كود :
halt;
مع انهم يؤدون نفس الغرض وهو الإغلاق ؟
وشكرا لكم جميعا
Big Grin
الرد
#2
[COLOR="#000000"]
Close تغلق الForm
غلق الForm الاساسية يعني غلق التطبيق

Application.Terminate تنهي مهام التطبيق
halt توقف البرنامج المنفذ ويعود التنفيذ للنظام

الفرق بينهم ؟
استخدام Close في Form غير رئيسة لايوقف البرنامج وانما يغلق فقط الForm
إستخدام Application.Terminate أو Halt في أي Form رئيسية او لا كفيل بايقاف التطبيق
Halt عكس الاخرين لاتقوم بتحرير الموارد المستهلكة من طرف البرنامج وبالتالي قد تترك شوائب بالذاكرة
Halt تعمل في اي برنامج او تطبيق بواجهة GUI او حتى سطر اوامر Console عكس الاخرين فان كان برنامجك لا يحتوى Application لايمكنك استدعاء Terminate

والسلام عليكم
[/COLOR]
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • أبو معاذ
الرد
#3
بارك الله فيك ,,
اتضحت الصورة لدي
الرد
#4
...وإذا وضعت أوامر في الحدث FormClose فإن البرنامج لن يمر عليها إذا تلقى Application.Terminate، ربما يمر عليه عند الحدث FormDestroy.
بالمناسبة ما معنى "تطبيق بواجهة gui" ؟؟؟
الرد
#5
بسم الله الرحمن الرحيم

graphical user interface

تعني واجهات المستخدم الرسوميه اي الفورمات وصناديق الحوار.
الرد
#6
والله روعة
جزاك الله خيراً
الرد
#7
kachwahed كتب :لن يمر عليها إذا تلقى Application.Terminate، ربما يمر عليه عند الحدث FormDestroy.
شكرا لكن البرنامج لا يمر على اي حدث عند استعمال application.terminate جرب فورم و زر و لاحظ
كود :
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.FormDestroy(Sender: TObject); begin showmessage('samudsfjdfgn,,'); end; end.
بينما لو استعملت HALTE فانه يعتر OnDestroy ولا يهتم بـ Onclose
الرد
#8
السلام عليكم ورحمة الله
إقتباس :لا يمر على اي حدث عند استعمال application.terminate جرب فورم و زر و لاحظ
استبدل showmessage بشيء مثل:
PHP كود :
Windows.Beep(200, 500); 
الأمور ليست دائما كما تبدو Smile
الإجراء Terminate المعرف في المكتبة Forms يقوم باستدعاء [URL="http://msdn.microsoft.com/en-us/library/ms644945%28v=vs.85%29.aspx"]PostQuitMessage
[/URL]التي بدورها تجيب عن الرسالة WM_DESTROY معلنة عن إنهاء Thread البرنامج.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم