سلام بچه ها خسته نباشید
معذرت می خوام از آپدیت دیر هنگام خیلی شرمنده ام ولی با چند تا برنامه اومدم تا از خجالتتون در بیام
1-تابعی برای کد کردن اطلاعات و همچنین تابع دیگری برای دیکد کردن این کد ( کد اسکی) – تابع ها کامل اند و شما می تونین با خیال راحت از اونا استفاده کنید :
2- یک سورس جالب که یک دایره رنگی بسیار زیبا رو در وسط فرم ایجاد می کنه(خیلی نازه) :
3= نحوه استفاده از اسکرول بارها در برنامه تان
4-با این سورس می تونین بفهمید که کامپوتر کاربر در وضعیت آفلاین است یا نه؟
5-با این کد می تونین یک نوشته رو در کنار موس قرار دهید ( با رنگهای رنگین کمان) :
6- یک دسکتاپ مجازی با امکانات کامل (تقدیم به همه برنامه نویسان ایران زمین)
اگه خوشتون اومد یک نظر ناقابل بدین؟
با سلام خدمت شما
متاسفانه بنده فعلا در محيط دات نت حرفه اي نيستم . متاسفانه هنوز کار با ديتابيس را در محيط دات نت ياد ندارم
ولي اگر سوالي در مورد وي بي بود در خدمتم
راستي تا چند وقت ديگه ديتابيس و کلي کار درگه توي دات نت رو ياد مي گيرم
سلام بچه ها
معذرت می خوام کمی دیر آپدیت کردم آخه دیدم کسی نظر نمی ده با خودم گفتم لابد کسی مشکلی نداره دیگه !
عزیزان میتونید سوالات ویژوال بیسیک خود را به ایمیل من بفرستند یا در وبلاگ (خودتون) نظر بدید .
بگم به عزیزانی که زبان ویژوال بیسک کار می کنند اکیدا توصیه می شود که زبان سی پلاس پلاس را شروع کنند(البته اگر شما مقدمات ویژوال بیسیک را یاد دارید).
من در این وبلاگ سعی میکنم به جای اینکه نکاتی رو که همه وبلاگ ها به اون اشاره می کنند را توضیح ندهم بلکه نکات ریز و ترفند های زبان وی بی را آموزش دهم.
چطور می شه
سوال کنید تا جواب بگیرید.
راستی به نظر شما زبان c++ بهتره یا زبان C#نظر فراموش نشه
مخلص همتون
محسن
سلام بچه ها معذرت می خوام که خیلی دیر آپدیت کردم
امروز می خوام چند مطلب جالب برای عزیزان بذارم که اکثرا بچه های وی بی با این موارد مشکل دارند (مثل خودم !)
1-
برنامه ماشین حساب ما کار نمی کند !ابتدا 2 تا کادر متن روی و یک دکمه روی فرم بکشید و کدهای زیر را کپی کنید
Private Sub Command1_Click()
MsgBox Text1.Text + Text2.Text
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2 = ""
Command1.Caption = "zarb"
Me.Caption = "www.mohsen-pc.blogfa.com"
End Sub
حالا در کادر های متن دو عدد را وارد کنید و دکمه را بزنید چه اتفاقی افتاد؟
خب برنامه ما به جای این که دو عدد را با هم جمع کند آن ها را کنار هم قرار داد،اما مشکل کار کجا بود؟
عجله نکنید بهتون می گم
به دلیل این که ویژوال بیسیک نوشته های یک کادر متن را به عنوان یک رشته فرض میکند آن دو عدد را کنار هم قرار می دهد و با هم جمع نمی کند برای درست شدن این مساله باید هر دو رشته (یا یکی از آن ها) را تبدیل به متغری از نوع عدد کرد به صورت زیر:
Msgbox clng(text1.text)+text2.text
می بینیم که مشکل حل شد.
2-
ساختن فایل در وی بیتا حالا شده دوست داشته با شین که برنامه تون یک مقدار رو توی یک فایل ذخیره کنه ؟
خب اگه دوشت دارین با ما همراه بشین...
ابتدا باید فایل را با روش خاصی و با شماره منحصر بفردی باز کرد تا با توابع دیگر بتوان بر روی آن اطلاعاتی نوشت.
Open "c:\s.txt" for binary as 1
این طوری فایل باز میشه که اسم فایل (اس.تکست ) است و روش باز کردن آن دودویی است یعنی هم برای خواندن اطلاعات و هم برای ذخیره اطلاعات.
با این کد می توان سلام را در فایل شماره 1 نوشت
Put #1,1,"salam"
بعضی مواقع هم می خواهیم اطلاعات نوشته شده در فایل را بخوانیم که به صورت زیر است
Open "c:\s.txt" For Binary As 1
Input #1, sa
MsgBox sa
این فایل باز شد و اطلاعان خط اول آن در متغیر سا ذخیره شد
حالا نوبت به بستن فایل است
Close #1
3-
تابع commandاین تابع هر دستوری که همراه فایل فرستاده می شود و یا مسیر فایلی که با برنامه ما باز شده است را در خود ذخیره می کند که استفاده از آن به صورت زیر است.
Msgbox command
اگر دقت کنید ا.ل . آخر این رشته کوتیشن وجود دارد که مسیر را غیر قابل استفاده می کند و برای جلوگیری از این اتفاق می توانیم کد را به این صورت تغییر دهیم
Msgbox mid(command,2,len(command)-2)
حالا کوتیشن های اول و آخر آن پاک شد و مسیر قابل استفاده است
مثال عملی
یک کادر عکس روی فرم بکشید و کدهای زیر را کپی کنید
Private Sub Form_Load()
On Error Resume Next
Image1.Picture = LoadPicture(Mid(Command, 2, Len(Command) - 2))
End Sub
شما یک برنامه نمایش عکس ساختید!
4-
آرایهبه مقداری از حافظه که می توان در آن مقداری را ذخیره کرد متغیر می گویند ، ولی به مقداری از حافظه که می توان در آن چند متغیر( در واقع چند رشته جداگانه) را جا داد آرایه گویند که استفاده از آن به صورت زیر است:
Dim s(2) as string
S(0)="salam"
S(1)="khooby"
S(2)="che khabar"
Msgbox s(1)
نکته: آرایه در بعضی مواقع بسیار مفید می باشد و ما را از تعریف چندین متغیر بی نیاز میکند.
5-
تابع Pointاین تابع هم در فرم و هم در picturebox کار می کند که کار آن برگرداندن رنگ نقطه ای از فرم یا picturebox می باشد که نحوه استفاده از آن به صورت زیر می باشد.
ابتدا یک picturebox روی فرم خود قرار دهید و در آن یک عکس بگذارید و picturebox را طوری بکشید که مقدار زیادی از فرم دیده شود سپس کدهای زیر را بنویسید.
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.BackColor = Picture1.Point(X, Y)
End Sub
5-
معکوس کردن رنگ های یک عکس(invert)ابتدا یک picturebox کشیده و یک عکس در آن قرار دهید حالا کد زیر را در فرم خود بنویسید.
Private Sub Command1_Click()
With Picture1
Picture1.PaintPicture .Picture, 0, 0, , , , , , , vbDstInvert
End With
End Sub
6-
منوی شناور(popupmenu)نحوه ساختن منوی شناور یعنی همان منوی کلیک راست.
Popupmenu yourmenu
7-
نحوه گذاشتن خط جداکننده در یک منوفقط کافیست در قسمت caption آن منو – گذاشت
8-
اعداد اتفاقیبرای ایجاد یک عدد اتفاقی
(شانسی) باید از تابع rnd استفاده کرد.Msgbox rnd
اگر کمی دقت کنید می بینید که هر دفعه که برنامه را اجرا می کنید این تابع اعداد تکراری را نمایش می دهد برای درست شدن این مشکل فقط کافی است تابع
Randomize را بدون هیچ آرگومانی بنوسیم و کد را به صورت زیر تغییر دهیم:Randomize
Msgbox rnd
و برای تعیین محدوده انتخاب اعداد به این صورت کد می نویسیم
Randomize
Msgbox rnd*16
و برای صحیح کردن این عدد از تابع
int استفاده میکنیم.Randomize
MsgBox Int(Rnd * 16)
6-
تایمر چیست؟تایمر شیئی ایت که اگر فعال باشد کار خاصی را در بازه زمانی خاصی کهشما تعیین می کنید انجام می دهد
(واحد تعیین بازه زمانی شی تایمر میلی ثانیه است)7-
ویژوال بیسیک شما فونت فارسی را درست نشان نمی دهد؟اگر ویژوال بیسیک شما کلمه هایی مانند
(گ-ک-چ-پ-ژ) را به صورت سه نقطه نشان می دهد روی کنترل مورد نطر کلیک کرده و به قسمت فونت رفته و فونت آن شی را Times New Roman قرار دهید می بینید که مشکل شما حل خواهد شد.8-"
اولین سطر" + خط بعدی + "دومین سطر"اگر می خواهید در رشته های خود از یک خط به خط بعد بروید می توانید از ثابت
vbcrlf استفاده کنید. مثال:Msgbox "mohsen" & vbcrlf & "shamohammady"
8-
استفاده راحت وزیاد از خصوصیات یک شیاگر می خواهید از خصوصیات یک شی به مقدار زیاد استفاده کنید می توانید از
With و End With استفاده کرد که مثال عملی آن به صورت زیر است:With Me
.Caption = "www.mohsen-pc.blogfa.com"
.BorderStyle = 3
.Enabled = True
.Visible = True
End With
9-
نمایش یک عکس در یک کنترل عکستا بحال حتما خواسته اید که در طول اجرای برنامه عکس یکی از کنترلهای برنامه را عوض کنید و حتما به این حالت کد نوشته اید
:Image1.picture="c:\mohsen.jpg"
و برنامه شما هم دچار خطا شده است
. چرا؟به دلیل اینکه شما هر عکسی را که می خواهید در برنامه خود استفاده کنید ابتدا باید آن را به حافظه فراخوانی کنید که این کار با تابع
loadpicture و به صورت زیر انجام میگیرد.Image1.picture=loadpicture("c:\mohsen.jpg")
تابع
loadpicture یک عکس را به حافظه فراخوانی می کند و یک عدد را برمی گرداند که این شماره در واقع شماره همان عکس لود شده می باشد.10-
رنگهای 15 گانه کیوبیسیک در وی بیتابع
qbcolor از شما درخواست می کند که شماره یکی از آن 15 رنگ کیوبیسیک را بدهید و اگر شما یکی از این رنگ ها را با استفاده از شماره آن درخواست کنید شماره ای برگشت داده می شود که کد یک رنگ در وی بی است و می توانید آن رنگ را استفاده کنید. مثال :Me.backcolor=qbcolor(rnd * 15)
با این کد می توانید هر بار یک رنگ تصادفی را برای پس زمینه فرم خود انتخاب کنید
.11-
برنامه تان کل سیستم را به هنگ می اندازد؟در وی بی یک تابع به نام
Doevents موجود می باشد که اگر برنامه شما حتی هنگ کند سیستم عامل در نهایت سلامت(بدون هنگ کردن) کار میکند و خیلی راحت برای کاربران این امکان وجود دارد که برنامه هنگ کرده شما را ببندند .چه خوب نه؟نکته
: البته اگر از این تابع زیاد استفاده کنید برنامه شما کند می شودنحوه کار به صورتی است که مثلا در یک حلقه پردازشگر کارها را یکی پس از دیگری انجام می دهد و وقتی به این تابع رسید مروری بر فرمان هایی که به سیستم عامل داده شده است را اجرا میکند
(به کارهای سیستم عامل رسیدگی می کند) که این سیستم مانع از هنگ کردن سیستم عامل می شود.12-
کپی اطلاعات به کلیپ برد و استخراج اطلاعات از آنبا تابع
settext از شی clipboard می توان یک رشته به کلیپ برد خالی کپی کرد به صورت زیر:Clipboard.SetText "salam"
*
نکته: برای کپی یک متن باید حتما کلیپ برد ویندوز شما خالی باشد.با تابع
gettext از شی clipboard می توان به اطلاعات داخل کلیپ برد دسترسی پیدا کردmohsen = Clipboard.GetText
MsgBox mohsen, vbInformation
برای خالی کردن کلیپ برد به این صورت عمل کنید
.Clipboard.Clear
13-
پنجره open بدون متن Open as read-onlyبرای این کار کافی است که یک خصوصیت به شی
openfiledialog اضافه کرد که به صورت زیر انجام می شود.Commondialog1.flages=cdlofnhidereadonly
Commondialog1.showopen
14-
انتخاب فونتبرای نمایش پنجره فونت از شی
comdlg32.ocx باید به صورت زیر عمل کنید بعنی ابتدا به این شی بگویید که فونتهای چه قسمتی را نشان دهد.Commondialog1.flages=3
Commondialog1.showfont
15-
چند خط کد در یک خط !برای این کار فقط کافی است ابتدا کاراکتر
: را گذاشته و سپس کد بعد را بنویسید.16-
نحوه کار با تابع shellباز کردن فایل
Shell "explorer.exe F:\files\Training\programming\vb\Qustion vb.pdf", vbNormalFocus
باز کردن پوشه
Shell "explorer.exe c:\", vbNormalFocus
باز کردن صفحه وب
Shell "explorer http://www.mohsen-pc.blogfa.com", vbNormalFocus
اجرای فرمان داس
:خاموش کردن بعد از
10 ثانیهShell "shutdown -s -t 10", vbNormalFocus
16-
پرسیدن سوال از کاربر با استفاده از تابع msgbox'created by mohsen shamohammady
'http://www.mohsen-pc.blogfa.com
Private Sub Form_Unload(Cancel As Integer)
mohsen = "Are You Sure to exit program?"
If MsgBox(mohsen, vbQuestion + vbYesNo, "Exit") = vbYes Then
End
Else
Cancel = True
End If
End Sub
17-
توابع وی بی کمه !آیا تابه حال سعی کردید یک برنامه تقریبا معمولی بنویسید ؟
به کارهایی بر خورده اید که با توابع وی بی ممکن نیست؟
آیا حس می کنید وی بی خیلی ضعیف است ؟
خب اگر چنین فکری می کنید پس این قسمت رو هم بالای قسمت های دیگه بخونید.
قضیه برمی گرده به وقتی که ویندوز داشت ساخته می شد اون موقع برود که مایکروسافت برای کارهایی که ویندوز انجام بدهد باید توابعی می نوشت که البته با زبان بسیار قدرتمند C ساخته شد و البته این توابع که در کتابخانه های ویندوز موجود می باشد.
|
توابع API چیست؟API مخفف Application Programming Interface است و به معنای رابط برنامه نویسی کاربردی است.API مجموعه ای از توابع برنامه نویسی است که هم مورد استفاده سیستم عامل واقع می سود و هم یک برنامه کاربردی می تواند از آن استفاده کند. توابع API در قالب فایل های DLL عرضه میشود. در سیستم عامل ویندوز فایل هایی مثل : Kernel32.dll ، gdi32.dll ، user32.dll و چندین فایل دیگر شامل این توابع هستند. این توابع معمولاً با زبان برنامه نویسی C نوشته شده اند. ولی در زبان های دیگر مثل دلفی ، ویژوال سی پلاس پلاس و ویژوال بیسیک هم می توان از آنها استفاده کرد.توابع API بر دو دسته اند : · 16 بیتی : این توابع در ویندوز های قدیمی کاربرد داشته اند و در سیستم ها ی کنونی به تدریج جای خود را از دست داده اند. و فقط برای حفظ سازگاری ویندوز با برنامه های قدیمی این توابع هنوز هم با ویندوز عرضه می شوند. توابع 16 بیتی ویندوز در حدود 730 عدد می باشد.· 32 بیتی : این توابع نمونه های پیشرفته تر توابع قدیمی 32 بیتی هستند. همانطور که گفته شد توابع 16 بیتی قدیمی شده اند و نمونه های 32 بیتی اکثر آنها در ویندوز موجود است. برای آنکه این گونه توابع با نمونه های 16 بیتی شان اشتباه گرفته نشود در انتهای آنها یک کاراکتر A وجود دارد که نشان دهندهء 32 بیتی بودن آنهاست. توابع 32 بیتی بالغ در 6500 عدد هستند. |
برای استفاده باید هر کدام را که می خواهیم فراخوانی کنیم.
. چگونه ؟
|
نحوه به کار بردن توابع API در ویژوال بیسیک |
|
برای استفاده از توابع API در وی بی ابتدا باید آنها را در وی بی تعریف نمود که اصطلاحاً به آن Declare گفته می شود. صورت یک Declare به این صورت استDeclare Function FnName Lib LibName [Alias RealName] (Parameters )As ReturnType
o FnName : نام تابع ( نامی که قرار است در برنامه استفاده شود ).o LibNam : نام کتابخانه ( فایل با پسوند DLL ).o RealName : نام واقعی تایع در فایل کتابخانه. اگر نام واقعی تابع و نامی که در برنامه استفاده می شود یکی باشند آنگاه نیازی به این قسمت نیست .o Parameters : پارامتر های تابع.o ReturnType : نوعی که تابع قرار است بر گرداند.توجه : در نوشتن نام واقعی تابع ( یا اگر نام واقعی و مجازی تابع یکی باشد ، نام مجازی آن ) بزرگ و کوچک بودن حروف اهمیت دارد . |
برای دیدن اکثر توابع وی بی می تونید به نشانی زیر مراجعه کنید.
و یا از برنامه تماما فارسی Apia استفاده کنید.
*نکته:برای فراخوانی یک تابع ممکن است بخواهیم این فراخوانی در چند خط انجام گیرد که برای این کار باید در پایان خط کاراکتر _ گذاشته شود در صورت وجود این کاراکتر ویژوال بیسیک متوجه می شود که باید بقیه کد را از خط بعد بخواند.
18-
تاریخ شمسی در وی بیمشکل تاریخ شمسی ما هم حل شد .خوب یه Dll پیدا کردم که دیگه مشکل تاریخ شمسی رو کامل حل میکنه . این dll رو گروه نرم افزاری OxinSoft نوشتن که دمشون هم گرم . بعدش هم یه Help توپ براش گذاشتن که دیگه جای هیچ توضیح اضافی رو نداده تمام متد های این Class رو توضیح داده که از توضیحات من هم بهتره !!!
:: برای دریافت فایل اینجا کلیک کنید
19-
کشیدن خطبرای کشیدن خط در وی بی باید از تابع line از شی me استفاده کرد که طرز استفاده از آن به صورت زیر است.
Me.line(x1,y2)-(x2-y2)
یعنی متصات خط شروع و مختصات نقطه پایان. به همین سادگی ، به همین خوشمزگی
اگه از این پست خوشتون اومد نظر یادتون نره
!تا چند وقت دیگه با کلی تابع جالب Api بر میگردم.
با گذاشتن اين فايل در کنار فايل اجرايي برنامه تان دکمه هاي برنامه شما شبيه دکمه هاي ويندوز ايکس پس مي شود
دانلود
چند پروژه ويژوال بيسيک براي افراد مبتدي که قصد دارند پا به قسمت متوسط بگذارند
با اين برنامه مي توانيد کد هر کليد از صفحه کليد را مشاهده کنيد
پروژه يک برنامه قفل گذار که خودم ساختمش و هر کي دوست داشت روش کار کنه و به نام خودش پخش کنه
با اين پروژه شما ياد مي گيريد که چطور رنگ منوي کليک راست ويندوز خود را با استفاده از وي بي عوض کنيد
دانلود
با اين برنامه شما مي توانيد ببينيد که اين شماره خطاي مودمتان به چه دليل است و معني و مفهوم آن خطا را متوجه خواهيد شد
اينم يک مقاله که راه هاي تقلب در کارت تلفن را ياد داده است که البته فقط جنبه آموزشي دارد
اينم يک اکتيوايکس که براي مبتدي ها واقعا عاليه و شما مي توانيد کدهاي سخت وي بي را با ايناکتيو ايکس به راحتي و با زبان مادري خود اجرا کنيد که البته پروژه شو دادم خودتون اگه دوست داشتين تکميلش کنيد.
يک برنامه بازيابي اطلاعات نسبتا قوي با حجم بسيار پايين يعني 100 کيلو بايت!
با اين برنامه ميتونين زمان دانلود يک فايل از اينترنت رو با هر سرعتي که دارين تخمين بزنين
اينم يک بسته تعميري که اگر رجيستري ويندوزتون خراب شد با اين ترميمش کنيد
اينم يک مقاله ويژوال بيسيک براي افراد حرفه اي
موفق و موید باشید
محسن شامحمدی
http://aminf2008.110mb.com/SubTrust.zip
http://aminf2008.110mb.com/NetManager.zip
http://aminf2008.110mb.com/PhoneBook.zip
درباره ی این آموزش می توانم بگویم که از مقدماتی شروع کرده و تا مواردی چون عملگرهای ریاضی ، ساختارهای شرطی و گردشی ، کار با توابع ، توابع کتابخانه ای ، تابع نویسی ، آرایه ها و کار با رشته های کاراکتری و … پیش می رود. به نظر بنده برای شروع کار با این برنامه نویسی بسیار مناسب می باشد
اگر شماره کلید=مثلا۶۹ اونموقع
چاپ کن سلام
پایان اگر
کد وی بی آن به صورت زیر است:
if keycode=69 then
print "salam"
end if
باید این کد رو در رویداد keydown فرم خود بنویسید.
خوب بود اگه خوب بود نظر یادتون نره