سنبدأ
الجميع يعرف أن الApi هي
APPLICATION PROGRAMING INTERFACE
من خلال هذا الشرح سنقوم بشرح كل تابع مع مثاله
: Getwindowsdirectory
صيغته:
Getwindowsdirectory (p: pchar, size: integer);
يستخدم هذا التابع للحصول على اسم دليل الـ Win ولكن يجب علينا للحصول على اسم هذا الدليل التعامل مع الذاكرة وحجز جزء منها باستخدام التابع getmem الذي يستخدم لحجز موقع من الذاكرة باسم محدد وحجم محدد وعند الانتهاء يجب إفراغ هذه الذاكرة وإلغاؤها تماما باستخدام التابع Freemem .
وله متحولين الأول p من النوع pchar وهو عبارة عن مؤشر إلى محرف يتم التعامل معه كمحرف الثاني Size من النوع Integer يحدد عدد البايتات الواجب استخدامها للحصول على اسم الدليل
مثال
procedure TForm1.Button1Click(Sender: TObject); var p:pchar; begin getmem(p,255); getwindowsdirectory(p,255); label1.caption:=p; freemem(p,255); end;
الشرح
Getmem (p, 255);
يتم من خلالها تعريف جزء من الذاكرة باسم P وبحجم Size =255 byte وذلك وفقا لعدد المحارف المطلوب إرجاعها.
Getwindowsdirectory (p, 255);
يتم من خلالها إسناد اسم دليل الـ Win إلى المتحول P ذو الحجم 255 .
Freemem (p, 255);
يتم من خلالها تحرير كتلة الذاكرة التي سبق حجزها بالتابع Getmem.
Getsystemdirectory:
صيغته:
Getsystemdirectory (p: pchar, size: integer);
يستخدم هذا التابع للحصول على اسم دليل الـ System ولكن يجب علينا للحصول على اسم هذا الدليل أيضا التعامل مع الذاكرة وحجز جزء منها باستخدام التابع Getmem الذي يستخدم لحجز موقع من الذاكرة باسم محدد وحجم محدد وعند الانتهاء يجب إفراغ هذه الذاكرة وإلغاؤها تماما باستخدام التابع Freemem .
وله متحولين الأول p من النوع Pchar وهو عبارة عن مؤشر إلى محرف يتم التعامل معه كمحرف الثاني Size من النوع Integer يحدد عدد البايتات الواجب استخدامها للحصول على اسم الدليل.
مثال
procedure TForm1.Button2Click(Sender: TObject); var p:pchar; begin getmem(p,255); getsystemdirectory(p,255); label1.caption:=p; freemem(p,255); end;
Getmem (p, 255);
يتم من خلالها تعريف جزء من الذاكرة باسم p وبحجم Size =255 byte وذلك وفقا لعدد المحارف المطلوب إرجاعها.
Getsystemdirectory (p, 255);
يتم من خلالها إسناد اسم دليل الـ system إلى المتحول P ذو الحجم 255
Closewindow :
صيغته:
closewindow (HWND:hwnd) : boolean;
يستخدم هذا التابع لتصغير النافذة المحددة إلى حجمها الأصغري وله متحول وحيد من نوع Hwdn الذي يمثل النافذة المحددة
يعيد هذا التابع القيمة true في حال نجح التابع في تنفيذ مهمته وإلا يعيد القيمة false .
مثال :
if not (closewindow(form1.Handle)) then closewindow(form1.Handle);
أعتقد المثال واضح
:Gettimezoneinformation
صيغته:
Gettimezoneinformation (time_zone_information)
يستخدم هذا التابع لجلب المعلومات الأساسية حول المنطقة الزمنية، أي الإعدادات الإقليمية للمنطقة الزمنية الحالية ولهذا التابع مجموعة من المتحولات أهمها:
Bias: وهذا المتحول من النوع Longinteger يعبر عن الفارق الزمني بين المنطقة الزمنية الحالية والمنطقة الزمنية الأساسية.
:Standardname وهذا المتحول من النوع المحرفي String بطول 32 محرف ويعيد هذا المتحول اسم المنطقة الزمنية.
Daylightname: هو متحول محرفي من النوع String ويعيد التوقيت الحالي حسب التوقيت الصيفي أو الشتوي بفارق ساعة زمنية واحدة.
يعيد هذا التابع إحدى القيم التالية:
Time_zone_id_unknow: تدل هذه القيمة على عدم قدرة التابع على تحديد المنطقة الزمنية للحاسب وهذا الاحتمال نادر الحدوث ولا يحصل إلا بوجود خطأ في الإعدادات المنطقة الزمنية للحاسب.
Time_zone_id_standard: تدل هذه القيمة على أن إعدادات المنطقة الزمنية للحاسب هي الإعدادات النظامية للمنطقة الزمنية العالمية.
Time_zone_id_daylight: تدل هذه القيمة على وجود فارق زمني بين الصيف والشتاء في التوقيت أي إعدادات المنطقة الزمنية للحاسب ليست نظامية.
مثال
procedure TForm1.Button1Click(Sender: TObject); var aa:time_zone_information; begin gettimezoneinformation(aa); label1.caption:=inttostr(aa.bias); label2.caption:=aa.standardname; label3.caption:=aa.daylightname; end;
كما ذكرت سابقا سأقوم بجمع المواضيع والشروحات على شكل برنامج
وسأقوم بكتابته على شكل قاعدة بيانات ربما ستكون paradox
كما أنني سأقوم بمناقشة خوارزميات البرنامج وشرحها تفصيلا
إلى اللقاء القريب إن شاء الله أخوكم رضا