منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "Main";
الأرشيف الحالي: 2002.07.29;
تنزيل: [xml.tar.bz2];

إلى

تمرير المعلمة حسب المرجع البحث عن فروع مماثلة


AFROLOV   (2002-07-15 13:18) [0]

السؤال هو كيفية تمرير المعلمة بشكل صحيح بالرجوع إلى ماكرو Word (Word 2000):
WordApplication: TWordApplication؛
وظيفة GetFormFieldAtPoint (var MSWord: TWordApplication ؛ x: integer ؛ y: integer ؛ var SelStart: Cardinal): integer؛
فار
OV_x، OV_y، pvarPar: OleVariant؛
بدأ
OV_x: = x ؛
OV_y: = ذ ؛
pvarPar: = SelStart؛
النتيجة: = MSWord.Run ("GetFormFieldAtPoint" ، OV_x ، OV_y ، pvarPar) ؛
SelStart: = pvarPar؛ // لسبب ما ، لا تتغير قيمة pvarPar على الرغم من أنه داخل الماكرو يتم تعيين القيمة المطلوبة.
الغاية؛
الماكرو نفسه:

الدالة GetFormFieldAtPoint (ByVal x As Long ، ByVal y As Long ، ByRef SelSt As Long)
خافت أنا طويلة
خافت ش طالما
على خطأ الخروج
MsgBox Str (SelSt)
st = ActiveWindow.RangeFromPoint (x، y) .Start
بالنسبة إلى i = 1 إلى ActiveDocument.FormFields.Count
إذا ((ActiveDocument.FormFields.Item (i) .Range.Start <= st) و (ActiveDocument.FormFields (i) .Range.End> = st)) ثم
GetFormFieldAtPoint = i
Selst = ش
MsgBox Str (SelSt)
وظيفة الخروج
إنهاء حالة
أنا القادم
خارج:

MsgBox Str ("Fail")
GetFormFieldAtPoint = 0
نهاية وظيفة
إذا قمت بذلك
MSWord: البديل ؛
MSWord: = CreateOleObject (Word.Application) ؛
ثم استدعاء الماكرو ثم يعمل كل شيء.



Digitman   (2002-07-15 13:36) [1]

هناك شيء غير مفهوم ...

هنا في هذا الخط
النتيجة: = MSWord.Run ("GetFormFieldAtPoint" ، OV_x ، OV_y ، pvarPar) ؛

من أين تأتي MSWord؟

ليست النتيجة
MSWord: = CreateOleObject (Word.Application) ؛ ؟

إذا كان الأمر كذلك ، فكيف نفهم هذا الهراء
"قيمة pvarPar لا يتغير" و "كل شيء يعمل"؟




Fiend   (2002-07-15 13:42) [2]

هذا هو ديجتمان
آسف هذا ليس هو الموضوع.

ولماذا لا تزال غير مخمور ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟



Digitman   (2002-07-15 13:51) [3]

> شرير

من اين حصلت عليه؟ بالفعل أنا لا حك الباست))))
لذلك ، لا يزال المؤلف لا يعمل ، والآن سينتقل الفرع إلى "الاستعداد"))))



AFROLOV   (2002-07-15 14:00) [4]

2 Digitman © (15.07.02 13: 36)
أنا آسف إذا قمت بوضعه بشكل غير مفهوم.
لقد فكرت بطريقتين للعمل مع MSWord ، الربط المتأخر (MSWord: = CreateOleObject (..) ؛) في هذه الحالة ، يمكنني تمرير المعلمات حسب المرجع دون مشاكل ، لكن سرعة التشغيل تترك الكثير مما هو مرغوب فيه (ولهذا السبب يجب علي رفضه) ، من الثانية إلى الربط المبكر - سرعات جيدة ، ولكن لا تزال هناك مشاكل مع تمرير المعلمات حسب المرجع.


> هنا في هذا الخط
> result: = MSWord.Run ("GetFormFieldAtPoint"، OV_x، OV_y، pvarPar)؛
>
> قيمة MSWord من أين أتت؟

يتم تمرير قيمة MSWord إليها كمعلمة

تحدي إشكالية

num: = GetFormFieldAtPoint (WordApplication، x، y، SelectionStart)؛







AFROLOV   (2002-07-15 14:39) [5]

حقا لا أحد فعل ذلك؟



Digitman   (2002-07-15 15:06) [6]

أشك في أن نوع الربط يلعب دورًا هنا.

في النهاية ، يمكنك القيام بذلك:

يستخدم Word97 ، ...

فار
MSWord: _Application؛ // رابط إلى الواجهة

1.
MSWord: = IDispatch (CreateOleObject ("Word.Application")) كـ _Application؛

2.
MSWord: = CreateComObject (CLSID_Word Server)) كـ _Application؛

ستتيح لك كلتا الطريقتين في النهاية تنفيذ الربط السابق (في هذه الحالة ، كما ترون ، أنت تعرف بالفعل الطريقة الأولى لتحميل الخادم كعمل مفترض)



صفحات: 1 فرع كامل

المنتدى: "Main";
الأرشيف الحالي: 2002.07.29;
تنزيل: [xml.tar.bz2];

الطابق العلوي





الذاكرة: 0.56 ميغابايت
الوقت: 0.022 ج
1-95423
جولييت
2002-07-16 13:06
2002.07.29
كيفية تحديد إصدار Word


1-95328
lensky
2002-07-16 13:59
2002.07.29
كما أنا nasledovanie formy ايلي drugoi وضعت؟


1-95407
خمرة
2002-07-16 12:11
2002.07.29
الإطارات في dll (D6 ، WinXP)


4-95602
فلاد!
2002-05-16 22:24
2002.07.29
MessageBox و MB_RIGHT


3-95268
Valeris
2002-07-05 16:14
2002.07.29
لقد تم المعذبة لمدة أسبوع الآن





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch English الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский