---- ربما لا تزال تتذكر مثال المتصفح الموجود في نموذج برنامج دلفي. في هذا المثال، تم إنشاء متصفح باستخدام خصائص وطرق التحكم THttp. هذا المثال مفيد حقًا لفهم كيفية استخدام عنصر تحكم THttp. لكن القليل من الناس سيستخدمونه كمتصفح حقيقي، والسبب بسيط للغاية، فالوظائف محدودة للغاية، ولا يدعم الإطار، ولا يدعم لغة البرمجة النصية، ولا يمكنه عرض ملفات HTML كملفات محلية، وما إلى ذلك. يستخدم معظم المستخدمين IE أو Navigator؛ كما يسعدنا نحن المبرمجين استخدام المتصفحات الجاهزة عندما نحتاج إلى استخدام المتصفح، نستدعي المتصفح الخارجي في البرنامج من خلال طرق مثل WinExec أو CreatePRocess ليستخدمها المستخدمون. هذه الطريقة في الواقع خالية من المتاعب، لكنها تجعلني دائمًا غير راغب في التخلي عن التحكم في البرنامج لبرامج خارجية أخرى، مما يجعلني دائمًا مزعجًا للغاية، خاصة عندما يكون مستوى استخدام الكمبيوتر لمستخدم البرنامج التطبيقي منخفضًا للغاية عالي. سيكون أمرًا رائعًا لو كان هناك عنصر تحكم في المتصفح يسمح لك بتضمين المتصفح في برنامجك الخاص.
---- إذا كانت البيئة الخارجية لبرنامجك هي WIN95+IE أو WIN98 (لا يزال معدل استخدام هذه البرامج مرتفعًا جدًا)، فربما يوجد بالفعل عنصر تحكم في متصفح IE في النظام يمكن استخدامه لفترة طويلة لم تنتبه للوقت، لا تضيع الموارد، استخدمها. عند IE 3.X أو IE 4.، ستجد أن عنصر تحكم IE قد تم تسجيله في النظام كعنصر تحكم ActiveX، حتى نتمكن من استخدام عنصر التحكم في دلفي.
---- نظرًا لأن عنصر التحكم في متصفح IE يحتاج إلى توفير وظيفة عرض قبل استخدامه، فلا يمكنك استخدام CreateOleObject للحصول على مثيل في البرنامج واستخدام خصائصه وأساليبه مباشرة، وإلا فسيتسبب البرنامج في حدوث خطأ عند التشغيل؛ في هذه الحالة، تحتاج إلى استخدام الوظائف المتوفرة في وظيفة Delphi "Import ActiveX Control"، وطريقة التشغيل موضحة أدناه.
---- في قائمة "المكونات"، اتصل بوظيفة "استيراد عنصر تحكم ActiveX"، وحدد "عناصر تحكم الإنترنت لـ Microsoft (الإصدار 1.1)" في قائمة عناصر التحكم المسجلة، والمسار الموضح في شريط المطالبة أدناه هو C:PWin98SystemSHDOCVW .DLL، تم إدراج ثلاثة عناصر تحكم يمكن تسجيلها في أسماء الفئات (قائمة النوع): TWebBrowser_V1 وTWebBrowser وTShellFolderViewOC هي عناصر تحكم في متصفح IE3 وتحكم في متصفح IE4 وتحكم في "Microsoft Shell Folder View Router" على التوالي. انقر فوق تثبيت للتثبيت. بعد اكتمال التثبيت، ستتم إضافة ثلاثة عناصر تحكم في شريط التحكم "ActiveX"، وهي TWebBrowser_V1 وTWebBrowser وTSShellFolderViewOC؛ وفي دليل واردات Delphi، سيتم إنشاء ملف SHDocVw_TLB.PAS، والذي يحتوي على تفاصيل التعبئة الخاصة بعناصر التحكم الثلاثة هذه. بالطبع، يحتوي على أوصاف لخصائص وطرق التحكم، والتي يمكن استخدامها كمرجع لنا لاستخدام عنصر التحكم.
----
خذ TWebBrowser (التحكم في متصفح IE4) كمثال. تتضمن الخصائص والأساليب الشائعة لـ TWebBrowser بشكل أساسي ما يلي: طريقة GoBack، العودة إلى الصفحة السابقة. GoForward: طريقة للتقدم إلى الصفحة التالية. GoHome: الأسلوب، يستدعي الصفحة الرئيسية الافتراضية، والتي تم تعيينها في خيارات IE. GoSearch: الطريقة، تستدعي صفحة البحث الافتراضية، والتي تم تعيينها في خيارات IE. Navigate(const URL: WideString; var Flags, TargetFrameName, PostData, Headers: OleVariant): الطريقة، تستدعي الصفحة المحددة، المعلمات المحددة هي كما يلي: URL: عنوان URL للصفحة المحددة. الأعلام: نوع الكلمة، الوظيفة غير واضحة بعد، يمكن ضبطها على 0. TargetFrameName: WideString، افتح الإطار حيث توجد الصفحة، إذا كانت سلسلة فارغة، فسيتم فتحها في الإطار الحالي؛ إذا كان الإطار المحدد بواسطة TargetFrameName، فسيتم فتحه في الإطار TargetFrameName غير موجود، سيتم فتح نافذة جديدة وهذا يعادل استدعاء متصفح IE الخارجي. PostData: منطقي، ما إذا كان سيتم السماح بإرسال البيانات. الرؤوس: WideString، بيانات الرأس لطلب URL المراد إرسالها. التحديث: طريقة تحديث الصفحة الحالية. إيقاف: طريقة إيقاف الاتصال أو فتح الصفحة الحالية. اسم الموقع: الخاصية (سلسلة واسعة)، اسم الموقع الحالي. LocationURL: الخاصية (WideString)، عنوان URL للموقع الحالي. مشغول: السمة (منطقية)، سواء كانت مشغولة. مرئي: الخاصية (منطقية)، ما إذا كانت نافذة المتصفح مرئية أم لا. (الخصائص التالية جديدة في TWebBrowser وغير متوفرة في TWebBrowser_V1، ويجب استكشاف وظائفها) شريط الحالة: خاصية (منطقية)، ما إذا كان سيتم عرض شريط الحالة. StatusText: الخاصية (WideString)، محتوى شريط الحالة. شريط الأدوات: الخاصية (SYSINT)، المحتوى الموجود في شريط الأدوات. MenuBar: الخاصية (منطقية)، ما إذا كان سيتم عرض شريط القائمة. ملء الشاشة: خاصية (منطقية)، ما إذا كان سيتم عرضها في وضع ملء الشاشة. غير متصل: الخاصية (منطقية)، سواء كنت تريد التصفح دون اتصال. شريط العناوين: خاصية (منطقية)، لتحديد ما إذا كان سيتم عرض شريط العناوين. تتضمن الأحداث الشائعة لـ TWebBrowser بشكل أساسي ما يلي: OnStatusTextChange = الإجراء (Sender: TObject; const Text: WideString) للكائن؛
---- يحدث عندما تتغير معلومات مطالبة شريط الحالة. نص المعلمة هو معلومات مطالبة شريط الحالة الحالية. يمكننا تحديث معلومات مطالبة شريط الحالة الخاصة بنا أو التعامل مع المعاملات الأخرى بناءً على هذه المعلومات.
----OnProgressChange = الإجراء(Sender: TObject; Progress, ProgressMax: Integer) للكائن؛
---- يحدث عندما يتغير تقدم الصفحة المفتوحة. المعلمة التقدم هي التقدم الحالي وProgressMax هو إجمالي التقدم. يمكننا تحديث معلومات شريط الحالة الخاصة بنا أو التعامل مع المعاملات الأخرى بناءً على هاتين المعلمتين.
----OnCommandStateChange = الإجراء (المرسل: TObject؛ الأمر: عدد صحيح؛ تمكين: WordBool) للكائن؛
---- يحدث عند تنفيذ أمر جديد، الأمر هو معرف الأمر، والتمكين هو ما إذا كان الأمر مسموحًا بتنفيذه. OnTitleChange = الإجراء (Sender: TObject; const Text: WideString) للكائن؛
---- يحدث عندما يتغير عنوان الصفحة، ويكون النص هو العنوان الحالي.
----OnPropertyChange = الإجراء(Sender: TObject; const Property_: WideString) للكائن;
---- يحدث عندما تتغير خصائص الصفحة، Property_ هو اسم الخاصية OnDownloadComplete: TNotifyEvent
---- يحدث بعد اكتمال صفحة التنزيل.
----OnDownloadBegin: TNotifyEvent
---- يحدث قبل بدء صفحة التنزيل.
---- (1) اصنع نظام المساعدة الخاص بك
---- نحن نستخدم عنصر تحكم متصفح IE لإنشاء نظام تعليمات للمستخدمين. يتكون ملف التعليمات من ملفات HTML متعددة. ويتوافق موضوع واحد مع ملف HTML واحد (Topic.HTM)، وتتوافق العناصر الموجودة تحت كل موضوع مع ملف HTML ملفات HTML علامة (#Item). بهذه الطريقة، في نظامنا، لم نعد بحاجة إلى استدعاء متصفح IE أو برنامج WinHelp لتقديم المساعدة للمستخدمين. أعتقد أنكم جميعًا تعرفون مزايا ملفات تعليمات HTML مقارنةً بملفات تعليمات HLP التقليدية.
---- في المثال التالي، يتم توضيح استخدام أسلوب التنقل الخاص بـ TWebBrowser (التحكم في متصفح IE4). يرجى الانتباه إلى التعليقات في البرنامج. (أدناه المقتطف الرئيسي للبرنامج).
إجراء {استدعاء ملف المساعدة وفقًا للموضوع والمشروع} ShowHelp(HelpTopic,HelpItem: String);var TargetFrameName,PostData,Heads,Flags:OleVariant;URL:widestring;begin TargetFrameName:= ';{عند تحديد السلسلة الفارغة من الإطار، ثم افتح ملف المساعدة في الإطار الحالي} PostData := false;{لا ترسل البيانات} الرؤوس := ';{معلومات الرأس فارغة} الأعلام := 0;{تم تعيين العلامات على 0} URL := HelpTopic + '.HTM#'+HelpItem;{URL لمعلومات المساعدة} معformHelp.webbrowser do{عرض معلومات المساعدة في عنصر تحكم متصفح IE في نافذة المساعدة} ابدأ التنقل( URL,Flags,TargetFrameName,PostData,Heads);{عرض معلومات المساعدة} end;end;
---- (2) عرض صورة GIF متحركة
---- إذا لم يكن لديك عنصر تحكم مناسب في عرض الرسوم المتحركة، فيمكنك أيضًا تجربة الطريقة التالية.
الإجراء ShowGIF( GIFFileName : String );var TargetFrameName,PostData,Heads,Flags : OleVariant; URL : Widestring;begin TargetFrameName := ';{عند تحديد سلسلة الإطار الفارغة، سيتم فتح ملف الرسوم المتحركة في الإطار الحالي} PostData := false;{لا ترسل البيانات} الرؤوس := ';{معلومات الرأس فارغة} العلامات := 0;{تم تعيين العلامات على 0} URL := GIFFileName with formGIF.webbrowser do {عرض الرسوم المتحركة في عنصر تحكم متصفح IE في النافذة المحددة} begin navigation(URL,Flags,TargetFrameName,PostData,Heads);{عرض ملف الرسوم المتحركة} end;end;
----تم تصحيح أخطاء البرنامج أعلاه ضمن PWIN98+Delphi3.0.