delphi4arab منتديات دلفي للعرب
إجراء لتأكيد إغلاق برنامج - نسخة قابلة للطباعة

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



إجراء لتأكيد إغلاق برنامج - piratewar - 28-01-2012

السلام عليكم
قديماً في في بي 6 كنت أكتب هذا الإجراء لتأكيد إغلاق برنامج
كود :
dim x x = msgbox(" Do YOU Want To Close?","End",vbyesno) if x = vbyes then end else exit sub
و لكني أقوم بترجمة هذا الكود إلى باسكال بدون الأمر الذي يساوي الأمر exit sub و الذي يعني إنهاء الإجراء كأنه لم ينفذ
و فعلاً لا يتم إغلاق البرنامج و لكن الذي يحدث أنه يظل محجوز في الذاكرة و لا تظهر النوافذ
جربت الأمر .refresh; للنوافذ لم يفلح فما هو الحل ؟
و شكراً


إجراء لتأكيد إغلاق برنامج - piratewar - 29-01-2012

يبدو أيضاً أن فيجوال بيسك كانت تريحني كثيرا في فهم كا ما يتعلق بالذاكرة و لكن لا بأس لأنني أجد دلفي في سهولتها تتيح لي التعامل بحرية
الحل:
ما كنت أقصده إذا قام المستخدم بالضغط على x فإن صندوق حواري سيظهر له طالباً منه إغلاق البرنامج و لكن كان الإجراء الخاص بي ناقصاً و يجب أن يكون كالتالي
PHP كود :
procedure Tfrmmain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
var 
x : longint ;
begin

  x 
:= messagedlg('do you want to close ',mtconfirmation,[mbyes,mbno],0);
   if 
x = mryes then
    application
.terminate
   
else
    
closeaction := CaNone;

   
end ; 
الكود السابق في بيئة التطوير لازاراس
أما في دلفي يتم تغيير
closeaction := canone;
ب
;action := canone


إجراء لتأكيد إغلاق برنامج - kachwahed - 29-01-2012

وعليكم السلام ورحمة الله
ضع TBitBtn واضبط Kind على bkClose، في OnCloseQuery
PHP كود :
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose 
:= MessageDlg('Do you want to close ', mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end; 
بالتوفيق.



إجراء لتأكيد إغلاق برنامج - mobile - 29-01-2012

السلام عليكم ورحمة الله

اما انا دائما استعمل هذا
في OnCloseQuery

إقتباس :canclose:=False;
if MessageDlg('are you sure?',mtWarning,mbYesNo,0)=mrYes then Application.Terminate;