PDA

View Full Version : مشکل Add Reference



emad0418
پنج شنبه 17 بهمن 1392, 11:21 صبح
با سلام
من با vb6 کار میکنم و میخوام نرم افزار اتوکد و با تمام ورژن هاش را add references کنم ولی فقط یک ورژن قابل add کردنه باید چه کار کن که همشون add بشن

سید حمید حق پرست
پنج شنبه 17 بهمن 1392, 12:52 عصر
سلام علیکم
من اتوکد روی سیستم ندارم اما فکر کنم باید فایل ACAD.TLB به رفرنس اضافه کنید.
موفق باشید.

یا علی (ع)

emad0418
پنج شنبه 17 بهمن 1392, 13:00 عصر
دوست عزیز
اصلا اتوکد تنها را حساب نکنید هر نرم افزار دیگه ای را بخواهیم add کنیم فقط یک ورژن add میشه چه جوری میشه از یک نرم افزار چند ورژن را add کرد

Mr.305
پنج شنبه 17 بهمن 1392, 13:10 عصر
دوست عزیز نمیشه از یک نرم افزار چندتا ورژن add کرد چون dll هاشون هم اسم هم است و اگر دقت درست گفته باشم باید اررور"Name confilicts with existing module,Project or library" بگیری

vbhamed
پنج شنبه 17 بهمن 1392, 14:33 عصر
سلام
نيازي به اضافه كردن چند رفرنس نيست، من چون اتوكد نداشتم با Word مثال مي‌زنم، به طور معمول رفرنس Word رو اضافه مي‌كنيم و از كد نمونه زير استفاده مي‌كنيم
Dim x As New Word.Application
x.Documents.Add
x.Visible = True
Stop
x.Quit
Set x = Nothing
ولي اين ممكنه با ورژنهاي ديگه Word مشكل داشته باشه اما در روش دوم هيچ رفرنسي اضافه نكنيد و به صورت زير برنامه رو بنويسيد
Dim x
Set x = CreateObject("Word.Application")
x.Documents.Add
x.Visible = True
Stop
x.Quit
Set x = Nothing
اينطوري با همه ورژنها كار مي‌كنه فقط نكته اي كه هست اينه كه در اين حالت وقتي شما متغير x رو بنويسيد و نقطه بزنيد ليست متدها ديگه نمياد بنابراين اول رفرنس اضافه كنيد و برنامتون رو به روش بالايي بنويسيد بعد كه تموم شد فقط اون خطي كه متغير x تعريف شده رو طبق برنامه پاييني تغيير بدين و رفرنس رو هم از پروژه حذف كنيد

emad0418
دوشنبه 05 اسفند 1392, 08:46 صبح
خیلی ممنون از راهنمایتون .ولی موقعی که این کار را انجام میدم متغیرهایی که درون ماژول تعریف کردم error میدن.میگه نوع داده نامعتبر میباشد..این مشکل رو چه طور باید حل کنم.

این ارور را میده:
compil error:user defind type not defined

vbhamed
دوشنبه 05 اسفند 1392, 10:14 صبح
سلام
وقتي رفرنس رو برداريد متغيرها رو بايد بدون نوع يا از نوع Object تعريف كنيد، تو مثال پاييني توضيح داده بودم
مثلا
dim x
dim x as object
ضمنا يك نكته ديگه هم هست، فرض كنيد نوشتيد :
Dim x As New Word.Application
x.WindowState = wdWindowStateMaximize
اون عبارت wdWindowStateMaximize فقط وقتي رفرنس Word رو داريد معتبر هست و براي رفع اين مشكل بايد در حالت بدون رفرنس مقدار اين عبارت رو بزاريد براي بدست آوردن مقدارش هم در حالتي كه برنامه در حال ديباگ هست با نگه داشتن ماوس روي عبارت مقدارش معلوم ميشه يا اينكه مكان نما رو روي عبارت ببريد و Shift+F2 بزنيد تا مقدارش رو در پايين پنجره باز شده Object Browser ببينيد

emad0418
دوشنبه 05 اسفند 1392, 13:00 عصر
من میخوام یک متغیری از نوع acadentity بسازم ولی هیچ جوری نمیشه

vbhamed
سه شنبه 06 اسفند 1392, 10:46 صبح
سلام
شما متغير از انواع داده اي اتوكد نبايد بسازيد، هر متغيري به اين شكل هست از نوع Variant بايد باشه يا كلا نوع رو ننويسيد و فقط بنويسيد :
Dim x