مقدمة:

من المعلوم أن كثيراً من البرامج تقبل وسطاء تشغيل فمثلاً مستكشف Windows يأخذ المجلد المراد استكشافه والرسام يأخذ الصورة المراد فتحها، فكيف أستطيع جعل برنامجي يعالج وسطاء سطر الأمر؟

هذه المقالة موجهة إلى مبرمجي دلفي.

أمثلة على وسطاء سطر الأمر:

Project1.exe /?
Project1.exe /Hide /JobID:15 /CloseAfterFinish

الطريقة:

يعطينا التابع

function ParamCount: Integer

عدد وسطاء سطر الأمر (الفاصل بينها هو رمز المسافة)

ويعطينا التابع

function ParamStr(Index: Integer): string

نص الوسيط ذي الترتيب المحدد.

يأخذ Index القيمة من 1 وحتى ParamCount (بالمناسبة القيمة 0 تعطي اسم الملف التنفيذي مع مساره).

أيضاً نستطيع من خلال المتحول CmdLine المعرف في الوحدة System الحصول على كامل سطر الأمر (محسوب باستخدام تابع API:ـ GetCommandLine)

ملاحظات:

لتمرير وسيط يحتوي ضمنه على فراغات (مثل مسار ملف) فإننا نحيطه بإشارتي تنصيص مزدوجتين (“) ليتم معاملته على أنه وسيط واحد.

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

إذا أردنا السماح بتمرير الوسطاء دون تقييد المستخدم بالترتيب، قد يكون مريحاً أكثر الاعتماد على CmdLine (محذوفاً منها مسار واسم الملف التنفيذي) دون التابعين ParamCount و ParamStr وأن يتم استخدام التابع Pos لمعرفة ورود من عدم ورود ومكان ورود كل وسيط.

لا ننس التحويل إلى UpperCase أو LowerCase إذا أردنا تجاهل حالة الأحرف.