سؤال

أقوم بتطوير تطبيق في VB 2008 ، واستخدام عامل الخلفية لنسخ الملفات (الملفات). لدي النموذج المصمم الخاص بي الذي يلعب الرسوم المتحركة في الجزء العلوي من النموذج مع نسخة. لتشغيل الرسوم المتحركة IM باستخدام "Axmscomctl2.axanimation" ، على التنفيذ أحصل عليه

"لا يمكن إنشاء جهاز التحكم ActiveX" لأن الخيط الحالي ليس في شقة واحدة. "

عند البحث ، وجدت رابطًا:رابط المنتدى

ولكن في هذا الرابط أولاً ، لا أفهم أين أدخل هذا المقتطف وثانياً كيفية تنفيذ الفكرة على عامل الخلفية.

من فضلك أرشدني في هذا الصدد.

مع الشكر و التقدير،

مافريك.

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

المحلول

تحتاج إلى استخدام مندوب والحصول على الخيط الرئيسي للتحكم بالفعل في الرسوم المتحركة. أنت تستدعي المندوب من موضوع الخلفية ولكنه يعمل في الخيط الرئيسي. هذه الصفحة ، Post الثانية ، لديها فكرة تقريبية:http://www.vbforums.com/showthread.php؟t=377205

نصائح أخرى

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

هذا قيود شائعة جدًا على الضوابط بشكل عام ، فهي لا تدعم الخيوط.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top