الدالة GetObject

هام: تمت ترجمة هذه المقالة ترجمة آلية، راجع إقرار إخلاء المسؤولية. يرجى الاطلاع على النسخة الإنجليزية من هذه المقالة. هنا للرجوع إليها.

ملاحظة: يتم تعطيل الداله اسلوب الكائن او الخاصيه هو موضح في هذا الموضوع اذا Microsoft Jet Expression Service قيد التشغيل في وضع الحمايه، الذي يمنع تقييم التعبيرات قد تكون غير امنه. ل# مزيد من المعلومات حول وضع الحمايه، ابحث عن "وضع الحمايه" في "تعليمات".

تقوم بإرجاع دليل لكائن تم تقديمه بواسطة المكون ActiveX.

بناء الجملة

GetObject ([اسم مسار ] [، فئه ] )

يحتوي بناء جمله الداله GetObject علي الوسيطات التاليه:

الوسيطة

الوصف

pathname

اختيارية. متغير (سلسلة أحرف). المسار الكامل واسم الملف الذي يحتوي على الكائن المراد استرداده. في حالة حذف pathname، يتطلب class.

class

اختيارية. متغير (سلسلة أحرف). سلسلة أحرف تمثل فئة الكائن.


تستخدم وسيطةclass بناء الجملة appname. وتحتوي objecttype على الأجزاء التالية:

الجزء

الوصف

appname

مطلوبة. متغير (سلسلة أحرف). اسم التطبيق الذي يوفر الكائن.

objecttype

مطلوبة. متغير (سلسلة أحرف). النوع أو فئة الكائن المراد إنشاؤه.


ملاحظات

ملاحظة: توضح الأمثلة التالية استخدام هذه الدالة في وحدة نمطية لـ Visual Basic for Applications (VBA). لمزيد من المعلومات حول استخدام VBA، حدد مرجع المطور في القائمة المنسدلة بجوار بحث وأدخل مصطلح أو أكثر في مربع البحث.

استخدم الدالة GetObject للوصول إلى الكائن ActiveX من الملف وقم بتخصيص الكائن إلى متغير العنصر. استخدم الجملة Set لتخصيص الكائن الذي تم إرجاعه بواسطة GetObject إلى متغير الكائن. على سبيل المثال:

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

عند تنفيذ تلك التعليمات البرمجية، يتم بدء التطبيق المقترن مع pathname المحدد بالإضافة إلى تنشيط الكائن في الملف المحدد.

إذا كانت الوسيطة pathname عبارة عن سلسلة أحرف ذات طول صفري ("")، تقوم الدالة GetObject بإرجاع مثيل كائن جديد من النوع المحدد. إذا كانت الوسيطة pathname محذوفة، تقوم الدالة GetObject بإرجاع كائن نشط حاليًا من النوع المحدد. وفي حالة عدم وجود كائن من النوع المحدد، يحدث خطأ.

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

على سبيل المثال، في تطبيق الرسم، قد يكون لديك طبقات متعددة لرسم مخزن في ملف. يمكنك استخدام التعليمات البرمجية التالية لتنشيط طبقة ضمن برنامج رسم يسمى SCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

إذا لم تقم بتحديد class الخاصة بالكائن، يؤدي التنفيذ التلقائي إلى بدء تشغيل التطبيق وتنشيط الكائن، وذلك طبقاً لاسم الملف الذي تقوم بإدخاله. ومع ذلك قد تعتمد بعض الملفات أكثر من فئة من الكائن. على سبيل المثال، قد يعتمد برنامج الرسم ثلاثة أنواع مختلفة من الكائنات: كائن Application وكائن Drawing وكائن Toolbar، والتي تعد بأكملها جزءًا من نفس الملف. لتحديد الكائن الذي تريد تنشيطه في ملف، استخدام الوسيطة class الاختيارية. على سبيل المثال:

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
"FIGMENT.DRAWING")

في المثال، يكون FIGMENT اسم تطبيق الرسم ويكون DRAWING أحد أنواع الكائن المعتمدة.

ب# مجرد تنشيط احد كائنات، يمكنك الرجوع اليه في التعليمات البرمجيه استخدام متغير الكائن قمت ب# تعريفها. في المثال السابق، يمكنك الوصول الي خصائص و# اساليب ل# كائن جديد ب# استخدام متغير الكائن MyObject. على سبيل المثال:

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

ملاحظة: استخدم الدالة GetObject عند وجود مثيل حالي من الكائن أو إذا أردت إنشاء الكائن مع ملف تم تحميله مسبقًا. في حالة عدم وجود مثيل، ولا تريد تشغيل الكائن مع الملف الذي تم تحميله، استخدم الدالة CreateObject.

إذا قام كائن ما بتسجيل نفسه ككائن مثيل واحد، يتم إنشاء مثيل واحد من الكائن، بصرف النظر عن عدد المرات التي يتم فيها تنفيذ CreateObject. بالنسبة لكائن المثيل الفردي، تقوم الدالة GetObject دومًا بإرجاع نفس المثيل عند استدعائه باستخدام بناء جملة سلسلة أحرف ذات طول صفري ("")، وتؤدي إلى حدوث خطأ إذا كانت الوسيطة pathname محذوفة. يتعذر استخدام الدالة GetObject للحصول على مرجع لفئة تم إنشاؤها باستخدام Visual Basic.

مثال

يستخدم هذا المثال الداله GetObject ل# الحصول علي مرجع الي ورقه عمل معينه Microsoft Office Excel 2007 (MyXL). يستخدم خاصيه التطبيق ورقه العمل ل# جعل Excel مرئيه، ل# اغلاقها، و# هكذا. استخدام استدعاءات API اثنين، اجراء ديتيكتيكسسيل Sub البحث ل Excel، و# اذا كان قيد التشغيل، يقوم ب# ادخاله في "جدول كائنات قيد التشغيل". استدعاء GetObject الاول الي حدوث خطا اذا لم يكن قيد التشغيل Microsoft Excel. في المثال، يؤدي الخطا العلامه اكسسيلواسنوترونينج ستعين الي صواب. يحدد المكالمه الثاني الي GetObject ملف ل# فتحه. اذا لم يكن ب# الفعل تشغيل Excel، الاستدعاء الثاني بدئه و# ارجاع مرجع الي ورقه العمل يتم تمثيله ب# الملف المحدد، mytest.xls. يجب ان يكون الملف موجودا في الموقع المحدد؛ و# الا، يتم انشاء خطا Visual Basic خطا التنفيذ التلقائي. بعد ذلك، يقوم مثال التعليمات البرمجيه كل من Excel و# الاطار الذي يحتوي علي ورقه العمل المحدد مرئيه. و# اخيرا، اذا لم يكن هناك ليس اصدار سابق من Excel قيد التشغيل، تستخدم التعليمه البرمجيه اسلوبtالتيالكائن التطبيق ل# اغلاق Excel. اذا تم ب# الفعل تشغيل التطبيق، يتم اجراء ايه محاوله ل# اغلاقه. يتم اصدار المرجع نفسه عن طريق تعيين الي اي شيء.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable to hold reference
' to Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
On Error Resume Next ' Defer error trapping.
' GetObject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
DetectExcel
' Set the object variable to reference the file you want to see.
Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Do manipulations of your file here.
' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Release reference to the
' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
Const WM_USER = 1024
Dim hWnd As Long
' If Excel is running this API call returns its handle.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 means Excel not running.
Exit Sub
Else
' Excel is running so use the SendMessage API
' function to enter it in the Running Object Table.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub

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

مشاركة Facebook Facebook Twitter Twitter البريد الإلكتروني البريد الإلكتروني

هل كانت المعلومات مفيدة؟

رائع! هل لديك أي ملاحظات أخرى؟

كيف يمكننا تحسين ذلك؟

نشكرك على ملاحظاتك!

×