تبليغاتX
آموزش ويژوال بيسيك و برنامه های موبایل
پاسخ به سوالات آقا بهزاد – آقاي مجتبي غلامعلي زاده – آقاي محمود غريبي – جناب ولي پور – ندا خانم

 

با سلام

قبل از هر چيزي از عزيزاني كه به اين وبلاگ لطف دارند و با سوالات و نظرات خود ما را در نوشتن مطالب بهتر و مفيد تر ياري مي كنند تشكر مي كنم .  

 

آقا بهزاد

 

1.یه برنامه می خواستم که عکس رو به هر فرمتی که می خواهیم تبدیل کنه(هر فرمت یعنی فرمتهای ناشناخته مثل BA)آموزش با سورس بزارید
2.درباره برنامه هایی که ساختید آموزششون رو بزاریدآموزش با سورس بزارید
3.دربرنامه هایی مثل ورد وقتی روی گزینه نیو کلیک می کنیم یک فرم جدید مثل فرم قبل ولی بدون ارتباط با اون ساخته میشه(بدون ارتباط یعنی اگر اولی بسته شد دومی بسته نشه و مجزا باشه)آموزش با سورس بزارید

راستی چرا نظرات قبلی رو پاک می کنی بهتره بزاری بمونن.

 

پاسخ » آقا بهزاد عزيز ! به دليل اينكه سيستم مديريت نظرها در بلاگفا چندان قوي نيست و من متوجه نظر هاي جديد نمي شوم مجبورم نظرهاي قبلي را پاك كنم در غير اينصورت ممكن است دچار اشتباه شوم و نظرات بعضي از دوستان را نخوانم .

سوال اول كمي نامفهوم بود و من متوجه نشدم تبديل عكس به فرمت دلخواه و ناشناخته چه فايده اي دارد و هدف شما از اين كار چيست لطفا كاملتر توضيح دهيد تا بهتر بتوانم كمكتان كنم .

 

‌ در مورد سوال دوم بايد خدمت شما عرض كنم كه شرح دستورات يك برنامه بصورت كامل وقت بسياري مي خواهد كه متاسفانه من وقت انجام چنين كاري را ندارم و از اين بابت واقعا معذرت مي خواهم . شما مي توانيد سورسها را تشريح كنيد و هر قسمت از آن را كه متوجه نشديد بيان كنيد تا توضيح بدهم .

 

 

اما سوال سوم

    

بطور كلي برنامه ها دو نمونه اند MDI و SDI . برنامه های SDI برنامه هایی هستند که فقط یک فرم دارند مانند برنامه Notepad ویندوز که در هر لحظه فقط می توان یک فایل را باز کرد .

اما برنامه های MDI برنامه هایی هستند دارای چندین فرم هستند مانند برنامه Word که شما می توانید چندین فایل را همزمان بازکنید و روی آنها کار کنید .

 

در حالت معمولی پروژه ها دارای یک فرم هستند و لی بعضی از پروژه ها برای طراحی به چند فرم نیاز دارند . قبل از اینکه افزودن فرمهای اضافی در پروژه را مورد بحث قرار دهیم انواع فرم ها را بررسی می کنیم .

در ویژوال بیسیک سه نوع فرم وجود دارد:

فرم استاندارد => در حالت معمولی هر پروژه دارای یک فرم است که این فرم را فرم استاندارد می نامند .

 

فرم MDI پدر  =>  یک پروژه با مدل MDI باید از فرم های چند تایی استفاده کند که حداقل یکی از فرم های آن فرم پدر و بقیه فرمها فرزند می باشند.

 

 فرم MDI  فرزند => فرمهای MDI فرزند فرمهایی هستند که  خاصیت MDIChild آنها True باشد .فرم MDI پدر و فرزند هر دو می توانند دارای منو باشند . چنانچه فرم فرزند دارای منو باشد فرم پدر منوی فرم فرزند را نشان می دهد ولی منوی فرم پدر پنهان می شود .

 

برای فزودن فرم MDI پدر به پروژه می توانید از منوی Project  گزینه Add MDIForm را انتخاب کنید. رنگ فرم MDI پدر خاکستری پررنگ است . برای اینکه فرمهای فرزند را مشخص کنید می توانید از خاصیت MDIChild فرم ها استفاده کنید . توجه کنید که فرم MDI باید فرم آغازین برنامه باشد .

 

برای مثال سورس برنامه ساده ای که دارای رابط کاربری MDI است را برای شما قرار داده ام .

 

دانلود سورس برنامه نمونه کار با فرم های MDI

 

 

آقاي مجتبي غلامعلي زاده

 

من یه کد می خوام که آیگون برنامه را در کنار ساعت قرار بده و وقتی که کاربر هر بار به اینترنت وصل میشه یک فرم یا یک صفحه اینترنت را به نمایش در بیاره

 

پاسخ » آقا مجتبي عزيز ! سورس برنامه اي را كه خواسته بوديد مي توانيد از لينك زير دريافت كنيد .

 

دانلود سورس برنامه بازشدن يك صفحه هنگام اتصال به اينترنت

 

آقاي محمود غريبي

 

یه برنامه می خوام بسازم که یه فایل رو مثل عکس یا فیلم یا هرچیز دیگه رو با پسوندی مثل mgh ذخیره کنه بعد این فایل یعنی همین فایلی که ذخیره کردیم رو بتونه open with کنه.

 

پاسخ » آقاي محمود غريبي عزيز ! قبل از هرچيزي بايد عرض كنم شما فرموده بوديد كه " من که دیگه خسته شدم از بس سوال کردم و جواب نشنیدم " و من همينجا عرض مي كنم كه من سوالي را با نام شما نديده ام كه بخواهم آن را پاسخ دهم يا نه . به هر حال اگر اشتباه از من بوده و به هر دليلي سوال شما را نخوانده ام از شما عذر خواهي مي كنم .

اما سوالتان كمي ناقص بود و اگر اشتباه متوجه نشده باشم منظورتان اين بود كه با كليك  روي  فايلي مثلا با پسوند  mghاين فايل با برنامه ما باز شود.

براي اينكه پسوندي خاص را در ويندوز به برنامه اي اختصاص دهيم مي توانيم از رجيستري استفاده كنيم .

براي اين كار در برنامه اصلي تان يك ماژول اضافه نماييد و تعاريف زير را درون آن قرار دهيد :

 

Declare Function RegCreateKey Lib "advapi32.dll" Alias _

"RegCreateKeyA" (ByVal hKey As Long, _

ByVal lpSubKey As String, phkResult As Long) As Long

Declare Function RegSetValue Lib "advapi32.dll" Alias _

"RegSetValueA" (ByVal hKey As Long, _

ByVal lpSubKey As String, ByVal dwType As Long, _

ByVal lpData As String, ByVal cbData As Long) As Long

 

Public Const ERROR_SUCCESS = 0&

Public Const ERROR_BADDB = 1&

Public Const ERROR_BADKEY = 2&

Public Const ERROR_CANTOPEN = 3&

Public Const ERROR_CANTREAD = 4&

Public Const ERROR_CANTWRITE = 5&

Public Const ERROR_OUTOFMEMORY = 6&

Public Const ERROR_INVALID_PARAMETER = 7&

Public Const ERROR_ACCESS_DENIED = 8&

 

Public Const HKEY_CLASSES_ROOT = &H80000000

Public Const MAX_PATH = 260&

Public Const REG_SZ = 1

 

حال در رويداد Load فرمتان دستورات زير را درج نماييد :

 

 

Dim sKeyName As String

Dim sKeyValue As String

Dim ret&

Dim lphKey&

sKeyName = "MyApp"

sKeyValue = "My Application"

ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

sKeyName = ".mgh"

sKeyValue = "MyApp"

ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

sKeyName = "MyApp"

sKeyValue = "c:\my.exe %1"

ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)

ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, _

sKeyValue, MAX_PATH)

 

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

If Command <> "" Then

MsgBox Command

End If

 

در دستورات بالا به جاي My Application نام برنامه خود را قرار دهيد و به جاي .mgh پسوند دلخواه خود را بنويسيد در پايان هم به جاي c:\my.exe مسير فايل اجرايي برنامه را قرار دهيد .

حال اگر يك فايل با پسوند mgh بسازيد و آن را باز كنيد برنامه شما اجرا مي شود و مسير آن را با يك پيغام نمايش مي دهد . تابع Command هم كه در دستورات استفاده شده است مسير فايلي را كه با برنامه شما باز شده را

بر ميگرداند . اميدوارم مشكلتان حل شود اگر بهتر توضيح دهيد و بفرماييد كه هدف كلي شما چيست و چه مي خواهيد بهتر مي توانم راهنمايي تان كنم .

 

دانلود سورس برنامه انتساب يك پسوند خاص به برنامه

 

جناب ولي پور

 

یک سوال در خصوص فرمهای ویژال بیسیک داشتم . می خواستم بدانم برای اینکه یک فرم همیشه ontop باشد چه كار بايد كرد . اگر نيازي به كد نويسي مي باشد ممنون مي شوم اگر كد آن را برايم ارسال فرمائيد .

 

پاسخ » جناب ولي پور عزيز ! براي اينكه فرم را On Top كنيد مي توانيد از دستورات زير استفاده كنيد :

 

Option Explicit

Const SWP_NOMOVE = 2

Const SWP_NOSIZE = 1

Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE

Const HWND_TOPMOST = -1

Const HWND_NOTOPMOST = -2

Private Declare Function SetWindowPos Lib "user32" _

(ByVal hwnd As Long, _

ByVal hWndInsertAfter As Long, _

ByVal x As Long, _

ByVal y As Long, _

ByVal cx As Long, _

ByVal cy As Long, _

ByVal wFlags As Long) As Long

Private Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) _

As Long

          If Topmost = True Then

             SetTopMostWindow = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)

         Else

              SetTopMostWindow = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)

             SetTopMostWindow = False

         End If

End Function

Private Sub Form_Load()

    Dim lR As Long

    lR = SetTopMostWindow(Me.hwnd, True)

End Sub

 

اميدوارم پاسخ درست و كاملي به سوالات شما عزيزان داده باشم .

درپايان خدمت ندا خانم عرض مي كنم كه من در استان فارس و شهرستان فيروز آباد زندگي مي كنم اما دانشجوي شيراز هستم . واقعا از بابت تماس تلفني با شما عذر خواهي مي كنم و امكان اين كار وجود ندارد شما مي توانيد مشكلات و سوالاتتان را هر چقدر هم كه طولاني باشد در قسمت نظرات بيان كنيد (ميتوانيد از نظر خصوصي استفاده كنيد) تا در صورت امكان به آنها پاسخ دهم .

 

موفق باشيد .

 

/ نوشته شده در چهارشنبه بیست و چهارم بهمن 1386 و ساعت 14:57 در ارتباط با موضوع پاسخ به سوالات |