الموضوع السابق   الموضوع التالي 

نسخة واحدة بس!!

Function: AppIsRunning

الغرض
منع تشغيل نسختين من البرنامج في نفس الوقت.


الصيغة

function AppIsRunning(UMsg: string = ''; UTitle: string = ''; URtl: Boolean = True): BOOL;


الوسائط (Parameters)

UMsg بارامتر اختياري يحدد نص الرسالة التي ستعرض على المستخدم في حال وجود نسخة شغالة سابقاً من البرنامج.
UTitle بارامتر اختياري يحدد عنوان الرسالة التي ستعرض على المستخدم.
URtl بارامتر اختياري يحدد ما إذا كانت الرسالة ستكون من اليمين إلى اليسار (عربي) أم لا (لاتيني).

الشرح
لاحظ أن البارامترات الثلاثة اختيارية، أي يمكن استدعاء الدالة دون بارامترات.
أحياناً تريد - و ربما يجب - أن لا توجد نسختان من البرنامج تعملان في نفس الوقت على نفس الحاسوب، خاصة في البرامج التي تتعامل مع ملفات محددة كما هو الحال في برامج قواعد البيانات. إن استدعاء هذه الدالة - كما سنبين أدناه - يعمل على منع ذلك الأمر.
بما أن البارامترات اختيارية فإن إهمالها أو تمرير قيمها الافتراضية يجعل الدالة تستعمل القيم الافتراضية كالتالي:

البارامترالقيمة الافتراضيةالنتيجة
UMsgنص فارغنص الرسالة يقول: "لا يمكن تشغيل نسختين من هذا البرنامج في نفس الوقت."
UTitleنص فارغعنوان الرسالة يكون اسم الملف التنفيذي للبرنامج.
URtlTrueنافذة و نص الرسالة يكون من اليمين إلى اليسار (اتجاه عربي).

طريفة الاستدعاء:

program Project1;

uses
  Forms,
  DNSDGen,
  Unit1 in 'Unit1.pas' {Form1};
  // .
  // .
  // .

{$R *.res}

begin
  if not AppIsRunning then begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    // .
    // .
    // .
    Application.Run;
  end;
end.


 أعلى الصفحة
 الموضوع السابق   الموضوع التالي