وبلاگ تخصصي برنامه نويسي با VB

پاسخ به سوالات-۸

1 – چگونه می توان Calender Control را فارسی کرد ؟
پاسخ : فکر می کنم خودتان باید یک کنترل جدید طراحی کنید .

2 -  من دارم سعی می کنم یک MsgBox با دکمه های فارسی طراحی کنم . یک کنترل ActiveX نیز برای آن نوشته ام اما هم کامل نیست و هم محدودیتهایی دارد چون خود جعبه پیغام یک تابع است . نظر شما در این مورد چیست ؟
پاسخ : لینک های زیر درباره چگونگی ساخت MsgBox های سفارشی در وی بی است :

A Custom MsgBox

Custom Message Box

A non Standrad MsgBox

Custom MsgBox Control

Create your own custom MsgBox function

A cool custom (form) msgbox using API to get icon

برای یافتن نمونه های بیشتر به سایت www.planetsourcecode.com رفته و عبارت custom msgbox را در بخش ويژوال بيسيک 6 آن جستجو کنید .

3 – چگونه می توان در وی بی اطلاعات را روی یک فایل ذخیره کرد . برای مثال اطلاعات روی Database را در فایل backup گرفت و بتوان از این اطلاعات بر اساس یک فیلد یا گزینه خاص گزارش گیری کرد ؟
پاسخ : برای ایجاد و کار با فایلها قبلاً مطالبی در وبلاگ نوشته ام . به آرشیو موضوعی وبلاگ مراجعه کنید . در مورد جستجو و گزارش گیری از اطلاعات فایل خودتان بایستی روتین های جستجو در فایل را بنویسید بعبارت دیگر بایستی اطلاعات فایل را load  کرده و روی آنها عمل جستجو را انجام دهید .

4 – چگونه می توان فرم فعال را تشخصی داد ؟ آیا می توان متغیری با خاصیت فرم تعریف کرد و آن را به فرم فعالمان اختصاص داد ؟
پاسخ : در مورد تشخیص فرم فعال من روشی پیدا نکردم اما فکر می کنم بایستی از دستگیره فرم یا Hook استفاده کنید .  در مورد تعریف متغیر نیز وی بی دارای شیی به نام Form است که می توانید در برنامه تان از آن استفاده کنید برای مثال اگر فرمی به اسم Form1 در برنامه تان داشته باشید آنگاه :

Dim F As Form
Set F = New Form1

 5 – چگونه می توان محتوای چند فایل را گرفته و درون یک فایل Exe که از قبل وجود دارد ریخت . این فایل exe یک برنامه است و می خواهم این فایلها را با دستوراتی کنترل کنم یعنی کلاً چند تا فایل را داخل یک فایل Exe ریخت ( مثل برنامه های فشرده ساز ) ؟
پاسخ : قبلاً به سوال مشابه این سوال پاسخ داده ام . شما بایستی با ساختار فایلهای Exe آشنا باشید که مطلب ساده ای نیست و فایلهای مورد نظر خود را در ناحیه مشخصی از فایل Exe درج کنید . به این لینک مراجعه کنید :

+ اگر دوستان روش دیگری سراغ دارند لطفاً در بخش نظرخواهی ذکر کنند .

6 – من از سورسی که آیکون برنامه را کنار ساعت ویندوز قرار می دهد استفاده کردم اما نمی دانم چگونه برای رویدادهای کلیک و دابل کلیک روی آیکون برنامه بنویسم ؟
پاسخ : همانطور که در مقاله هم گفته شده بایستی از متد Form_MouseMove استفاده کنید و در آن نوع کلیک شدن ماوس را تشخیص داده و بر اساس آن عملی را انجام دهید .

7 – چگونه می توان کنترلهای استاندارد ActiveX یا کنترلهای طراحی شده توسط خودمان را در سلولهای یک DataGrid یا MSFlexGrid قرار داد ؟
پاسخ : در این زمینه من راه حلی پیدا نکردم .

8 – چگونه می توان از برنامه های وی بی در AutoCad استفاده کرد . بعنوان مثال من یک برنامه نوشتم که وزن و قیمت انواع پروفیلها را در یک جدول در اختیار کاربر قرار می دهد . من می خواهم این جدول را در AutoCad وارد کنم با توجه به اینکه هم وی بی و هم آتوکد محیط گرافیکی دارند ؟
پاسخ : استفاده از ویژوال بیسیک بهمراه آتوکد توسط یک سیستم ابداعی شرکت AutoDesk به اسم ADS -AutoCAD Develpoment System  - امکان پذیر است . این سیستم ارتباطی به برنامه نویسان اجازه می دهد تا برنامه های کاربردیی بنويسند که بتواند آتوکد را کنترل کرده و داده را بین آتوکد و برنامه خارجی رد و بدل کند . پشتیبانی از ویژوال بیسیک در ADS از آتوکد 13 آغاز شد . برای اطلاعات بیشتر به این فایل pdf مراجعه کنید :
همچنین در بخش reference های ويژوال بیسیک ( در صورتیکه آتوکد روی سیستمتان نصب باشد ) گزینه ای به اسم AutoCAD Type Library وجود دارد که می توانید از آن در برنامه تان استفاده کنید برای مثال :

Private autocadApp As AcadApplication
Set autocadApp = CreateObject("AutoCAD.Application.15")
Dim doc As AcadDocument
Set doc = autocadApp.Application.Documents.Open("c:\drawing.dwg")

همچنین از کتاب Using Visual Basic with AutoCAD نیز می توانید استفاده کنید .

9 – چگونه می توان تمام اطلاعات مربوط به کانکت جاری سیستم را بدست آورد مانند سرعت اتصال و اطلاعات ارسال و دریافت ؟
پاسخ : از WinInet Api استفاده کنید . قبلاً در وبلاگ مطالبی در این زمینه نوشته ام .


+ در ضمن یکی از دوستان زخمت کشیدند و مطالبی در مورد سوال استفاده از دستورات command promt در وی بی را که در پست قیلی مطرح شده بود عنوان کرده اند :
" با سلام راجع به سوال اون دوست عزيزی که پرسيده بود آيا ميشه دستورات command prompt رو اجرا کرد باید بگم میشه.من این روش رو تو xp آزمایش کردم احتمالا تو ویندوز های دیگه هم جواب میده. اگه دستور Command /k رو تو runوارد کنیم و جلوش دستور رو بنویسیم دستور ما اجرا میشه و Command prompt بسته می شه. و اگه بنویسیم command /c پنجره command prompt باز میمونه. حالا تو vb از دستور shell استفاده میکنیم. مثلا مینویسیم: "shell "command /k dir یا "shell "command /c dir که نتیجه هردو dir گرفتن از فهرست جاریه با این تفاوت که دومی پنجره Command رو پس از اجرای دستور میبنده. واسه اطلاعات بیشتر میتونید تو command prompt بنویسید?/ command در xp هم به جای command میتونید بنویسید cmd در ضمن، دستور NET خودش یه فایل اجرایی داره به همین نام که اگه تو درایو ویندوز بگردی پیداش میکنی. میتونی اونو مستقیما با دستور Shell اجرا کنی . "

+ بزودی به سایر سوالات نیز پاسخ داده می شود .

 

+ حامد شیدائیان ; ۱۱:٠۳ ‎ق.ظ ; یکشنبه ۱٧ اسفند ،۱۳۸٢
comment نظرات ()