• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

نمونه برنامه های VB6 -آموزش از روی مثال

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام.

این هم برنامه جست و جوی حرف یا کلمه در یک متن.
امیدوارم استفاده کنید.

ابتدا ما 3 تا Textbox و یک CommandButoon به برنامه اضافه می کنیم.

بر روی CommandButoon1 دوبار کلیک کنید و کد زیرا بنویسید.

کد:
(For i=1 to len(Text1.text
( If Text2.text=mid(Text1.text,i,len(Text2.text
C=C+1
End if
Next
Text3.text=C
برنامه رو می تونید اجرا کنید.

هدفم از این برنامه طرز کار با توابع رشته ای len و mid بود.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام
خوب هستيد
من چند وقت يعني يك ماه نيودم امروز كه برگشتم و كار sinbad68 از ته قلب خوشحال شدم . خدا قوت
مرسي از زحماتي كه كشيد
به اميد ديدار


سلام.

خواهش میکنم.

ما که کاره ای نیستیم بهتر از ما هم تو تاپیک هستش.:happy:

من هم مثل دوست عزیزم TOMASS ANJELLO هر کاری که می کنم فقط برای بهتر شدن مطالب

سایت هست.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام.

امروز در مورد ساختار كنترلي IF براتون توضيح مي دم.

ساختار كنترلي ( If/Then/Else ) :

يكي ازدستورات مهم برنامه نويسي به زبان VB دستور شرطي If مي باشد. شكل كلي دستور If بصورت زيراست :
کد:
If  Condition Then 
      Statements 
End if
Condition يك عبارت يا متغير شرطي با مقدارTrue يا False است.در صورتي كه مقدار Condition برابر True باشد دستورات بين if وEndif اجراخواهد شد. اگرتعداد دستورات ( Statements ) شامل يك دستورالعمل باشدميتوان دستور شرطي را بصورت خلاصه تر نوشت
کد:
 :                                         
if Condition Then Statement
البته شكل كامل تر دستور If به شكل زير مي باشد:
کد:
If  Condition Then 
      Statements1 
Else 
       Statements2 
Endif
در صورت درست بودن شرط (Condition) دستورات Statement1 و در غير اين صورت (نادرست بودن شرط) دستورات Statement2 اجرا خواهند شد .
همانطوري كه مي دانيد از دستور if بصورت تودرتونيز استفاده مي شود در اين دستورات هر Else و Endif به نزديكترين if متناظر تعلق دارند.

مثال: مي خواهيم دستورالعملهايي بنويسيم كه اگر مقدار ذخيره شده در متغير k زوج باشد پيغام "Even" و در غير اين صورت ( فرد بودن متغير) پيغام "odd" را چاپ نمايد .
کد:
If  k mod 2=0 then 
     Print "Even" 
Else 
     Print  "odd" 
End if
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام.

امروز در مورد استفاده از روال ها در برنامه نويسي مي نويسم.

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

استفاده از روال ها در برنامه نويسي:

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

براي اعمال چنين روشي از روالها (Routins) استفاده خواهيم كرد. استفاده از روال ويژگيهاي زير را دارد :

كيفيت مديريت برنامه ها را افزايش مي دهد.
كارآيي نرم افزار را بالا مي برد و مي توان روالهاي ايجاد شده را در برنامه هاي ديگر هم بكار برد و يا
از روالهاي ايجاد شدة قبلي ، در برنامه ها استفاده كرد.
از تكرار در كدنويسي برنامه ها جلوگيري مي كند و براحتي در هر جايي از برنامه كه نياز باشد ، مي توان با استفاده از نام روال آن را فراخواني كرد .
آزمايش و خطايابي و تغيير روالها به مراتب آسانتر است .
استفاده از روالها باعث افزايش خوانايي برنامه مي شود.
در انتقال اطلاعات به داخل روال از آرگومانها استفاده مي شود . آرگومانها متغيرهايي هستند كه در زمان فراخواني مقدار آنها به روال ارسال مي شود .
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
بطور كلي در وي‍‍ژوال بيسيك ، دو نوع روال وجود دارد :
روال Sub
روال Function

اين دو روال تا حدود زيادي مشابهند و تنها تفاوت آنها اين است كه روال Function در زمان خاتمه مقداري را به فراخواننده برمي گرداند ، ولي روال Sub هيچ مقدار برگشتي ندارد .

روال Sub :

شكل كلي ايجاد يك روال Sub بصورت زير است :
کد:
(Sub    Routine_name ( Argument
Statements
End Sub
در اين ساختار Routine_name نام روال مي باشد . سعي كنيد اسامي انتخاب شده متناسب با عملي باشد كه روال انجام خواهد داد . بايد تمام آرگومانهاي مورد نياز روال در بين دو پرانتز تعريف شود ، حتي اگر هيچ آرگوماني مورد نياز نباشد وجود دو علامت پرانتز لازم است .

نكته : نمي توان در داخل يك روال از متغيري با نام روال استفاده كرد .

با هربار فراخواني روال دستورات آن از اولين دستور تا دستور End Sub و يا رسيدن به دستور Exit Sub (درصورت وجود) ، اجرا خواهد شد و پس از آن كنترل برنامه به خط بعد از فراخواني روال برخواهد گشت.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
روال Function:

در موارديكه نياز به دريافت يك نتيجه ، بعد از اجراي يك روال وجود دارد .بايد از روال هاي Function استفاده كرد . شكل كلي اين نوع روال ، بصورت زير است :
کد:
( Function   Function_Name ( Argument
Statements 
End Function
مشاهده مي كنيد كه روال Function تا حدود زيادي مشابه روال Sub مي باشد . ولي روال Function بايد مقداري را برگرداند . پس دانستن دو مطلب ضروري است ، اول اينكه مقدار برگشتي چگونه بايد دريافت شود ، و ديگر اينكه چگونه يك مقدار از داخل تابع ارسال مي شود .

مقدار برگشتي تابع را مي توان به صورتهاي زير دريافت كرده ، مورد استفاده قرار داد.

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

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
نكته ها:

توجه كنيد كه هنگام فراخواني روال بايد تعداد مقادير ارسالي باتعداد آرگومانهاي روال مساوي باشد . طريقه ارسال يك مقدار از داخل تابع نيز به راحتي انجام ميشود . به اين ترتيب كه در داخل روال از نام تابع ، بعنوان يك متغير استفاده مي كنيم و در زمان برگشت از تابع به دستور فراخواننده، مقدار موجود در اين متغير به دستور فراخواننده ارسال مي شود .

نكته : اگر هيچ مقداري در متغير نام تابع قرار ندهيم مقدار صفر را برمي گرداند .

توجه كنيد كه مي توان در داخل روالها ، روالهايي را نيز فراخواني كرد . ولي بايد فراموش نكنيد كه هنگام بازگشت از هر روال ، كنترل برنامه به دستور بعد از دستور فراخواني خواهد رفت . به عنوان نكته آخر بايد بدانيد كه در تعريف روالهايي از نوع Function مي توان نوع متغير برگشتي را تعيين نمود .

براي مثال :

Function Area (S1 As Single , S2 As Single ) As Single​

فكر كنم براي امروز كافي باشه.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام.

امروز ساختار كنترلي Select Case توضيح مي دم.

دستور انتخابي Select Case :

اگر تعداد شرطهاي يك مسئله زياد باشد ، بجاي استفاده از If هاي تودرتو از دستور انتخابي Select Case استفاده مي كنيم .
شكل كلي اين دستور به صورت زير است :
کد:
Select case Expression 
             Case Expression match1 
                       Statements 
             Case Expression match2 
                       Statements 
. 
. 
. 
             Case Expression match n 
                       Statements 
            [Case else 
                        Statements ] 
End select
در اين ساختار مي توان به تعداد دلخواه و بسته به شرايط برنامه مورد نظر ، شرط را توسط تعيين مقدار Expression در مقابل دستورات Case استفاده كرده، به ازاء هر مورد بلوك دستورات مربوطه(Statements) را جهت اجرا قرار داد. در پايان دستورات به اختيار مي توان از دستور Case else نيز استفاده كرد، كه در اين صورت اگر هيچ كدام از مقادير موجود در Case ها با مقدار Expression ساختار برابر نباشد ، دستورات بعد از Case else اجرا مي شود.

نكته اي كه بايد به آن توجه داشته باشيد يكسان بودن نوع داده ها در Expression وExpression match ها مي باشد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
يك نكته در مورد ساختارSelect Case :

در ساختار Select case مي توان بجاي استفاده از Expression match ، از عملگرهاي is وTo نيز استفاده نمود .

به مثال زير توجه كنيد:
کد:
Select Case no 
           Case is < 10 
                    Print "Flunked" 
           Case 10 to 19 
                    Print "Accepted" 
           Case 20 
                    Print “ Accepted & Awarded “ 
           Case else 
                    Print "No. is invalid" 
End select
در مثال بالا اگر مقدار no كمتر از 10 باشد پيغامي با عنوان Flunked و اگر بين 10 تا 19 باشد پيغام
Accepted و اگر برابر با مقدار 20 باشد پيغام ِAccepted&Awarded صادر خواهد شد.
 

chia

Registered User
تاریخ عضویت
18 ژانویه 2006
نوشته‌ها
243
لایک‌ها
2
محل سکونت
تو موتور خونه ي جهنم
با سلام و تشكر فراوان از زحمات صادقانه ي همه ي دوستان

اگه امكان پذير هست براتون لطفا ادامه بديد

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

البته سورس يه برنامه هست كه الان وقتش نيست ولي حتما آپ ميكنم كه توضيح داده

ولي ظاهرا من نميتونم كپي همين برنامه رو بنويسم

فعلا تا بعد و تشكر از شما
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
با سلام.

شرمنده من دانشگاه بودم و نتونستم مطلب بزارم.

اين هم توضيح ساختار حلقه Next…For هستش.

ساختار تكرار با حلقه Next…For :

اين ساختار براي اجراي يك يا چند دستور به تعداد معين مورد استفاده قرار ميگيرد .شكل كلي دستور به شرح زير مي باشد:
کد:
For int counter = int start to intend [ step int increment] 
                            Statements 
Next [int counter]
در اين ساختار اگر Step مشخص نشود برابر يك در نظر گرفته مي شود.

ساختار حلقه هاي For مي توانند تو در توهم باشند.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
با سلام.

الان هم ساختار تكرار با حلقه Do رو براتون توضيح مي دم.

ساختار تكرار با حلقه Do :

يكي از ساختارهاي ديگر براي ايجاد حلقه ، استفاده از دستور Do while...loop است حلقه Do مانند دستور شرطي If شكل هاي مختلفي به صورت زير دارد:
کد:
Do while condition 
     Satements 
Loop 

يا 

Do 
     Statememts 
Loop while  Condition
تفاوت دو حلقه بالا در اين است كه در حلقه دومStatements حداقل يكبار اجرا خواهد شد و بسته به شرايط مي توان يكي از دو شكل بالا را مورد استفاده قرار داد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
حالات ديگر استفاده از ساختار حلقه Do بصورت زير است:
کد:
Do until  Condition 
           Statememts 
Loop 

يا 

Do 
          Statememts 
Loop until  Condition

تفاوت اين دو حلقه مشابه تفاوت دو حلقه قبلي است.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
نكات مهم حلقه Do :

در استفاده از ساختار حلقه Do به نكات مهم زير توجه كنيد:

در حلقه هاي نوشته شده توسط While تا وقتي مقدار Condition درست باشد حلقه اجرا خواهد شد ولي در حلقه هاي نوشته شده با Until با محقق شدن Condition اجرا تمام خواهد شد.
Condition در حلقه مي تواند هر عبارت يا متغير منطقي باشد و مشخص كننده مقدار False يا True مي باشد.
متغيري كه به عنوان شرط در Condition آزمايش مي شود بايد در داخل حلقه تغيير يابد و اين تغيير بايد طوري باشد كه حلقه نقطه پاياني داشته باشد.

به مثال زير توجه كنيد:
کد:
        Dim I as integer 
        I=1 
 	    Do while I<=5 
               I=I+1 
        Loop
حلقه اين مثال به تعداد 5 بار اجرا مي شود وI به هنگام خروج از حلقه برابر 6 است.

اينم از امروز.

تا بعد.

باي باي.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
با سلام.

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

اساس كار برنامه اينه كه اگر كاربر بار اول بر روي CommandButoon كليك كرد حرف A و اگر بار

دوم به بعد كليك كرد حرف B را چاپ كند.

ابتدا اين خط رو در قسمت جنرال فرم بنويسيد.

Dim a as Boolean

بعد يك Textbox و یک CommandButoon به برنامه اضافه می کنیم.

بر روی CommandButoon1 دوبار کلیک کنید و کد زیرا بنویسید.
کد:
()private sub command1_click
If a=false then
"Text1.text="A
a=True
Else
"Text1.Text="B
End if
end sub
برنامه رو می تونید اجرا کنید.

بچه ها اگه عيبي نداره ايندفعه از توابع API براتون بنويسم.

اگه موافقيد بگيد.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
سلام.
امروز می خوام یکم در مورد توابع API بگم.
شرمنده که یکم دیر شد أخه درگیر دانشگاه بودم.
راستی چرا کسی هیچ نظری نمیده؟

مقدمه ای در مورد توابع API.

امیدوارم با توابع API آشنایی داشته باشید. اگه ندارید باید بگم که توابع API توابع استاندارد ویندوز هستند که

ویندوز کارهای معمول خودش مثل ایجاد و حذف پنجره ها مدیریت پرینتر و کارهای چاپی و بطور کلی همه

کارهاشو با فراخوانی اونا انجام میده. این توابع میتونه به شما قابلیت انجام خیلی کارا رو بده. خیلی کارهایی

که با توابع و امکانات معمول Visual Basic قابل انجام نیستند. یکی دیگه از مزایای این توابع سرعت

بسیار بالای اونا هستند. یعنی در بعضی موارد دهها بار از توابع استاندارد معادل در ویژوال بیسیک سریعتر

هستند. لیست کاملی از این توابع رو میتونید با استفاده از برنامه API Text Viewer که یکی از برنامه های

همراه ویژوال بیسیک هست ببینید.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
تعریف API.

API مخفف Application Programming Interface است و به معنای رابط برنامه نویسی کاربردی

است.API مجموعه ای از توابع برنامه نویسی است که هم مورد استفاده سیستم عامل واقع می سود و هم یک

برنامه کاربردی می تواند از آن استفاده کند. توابع API در قالب فایل های DLL عرضه میشود. در سیستم

عامل ویندوز فایل هایی مثل : Kernel32.dll ، gdi32.dll ، user32.dll و چندین فایل دیگر شامل این

توابع هستند. این توابع معمولاً با زبان برنامه نویسی C نوشته شده اند. ولی در زبان های دیگر مثل دلفی ،

ویژوال سی پلاس پلاس و ویژوال بیسیک هم می توان از آنها استفاده کرد.

++++++++++

چگونگی فراخوانی توابع Api.

برای فراخوانی باید دو مرحله را طی کنید:
1-       تابع باید آن را در یک ماژول یا فرم تعریف کنید.
2-       تابع مانند توابع دیگر در برنامه تان صدا بزنید.
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
نحوه استفاده از توابع API در VB.

برای استفاده از توابع API در وی بی ابتدا باید آنها را در وی بی تعریف نمود که اصطلاحاً به آن Declare
گفته می شود. صورت یک Declare به این صورت است:

Declare Function FnName Lib LibName [Alias RealName] (Parameters )As ReturnType

FnName :  نام تابع ( نامی که قرار است در برنامه استفاده شود ).

LibNam :  نام کتابخانه ( فایل با پسوند DLL ).

RealName :  نام واقعی تایع در فایل کتابخانه. اگر نام واقعی تابع و نامی که در برنامه استفاده می شود یکی باشند
آنگاه نیازی به این قسمت نیست .

Parameters :  پارامتر های تابع.

ReturnType :  نوعی که تابع قرار است بر گرداند.

توجه :

در نوشتن نام واقعی تابع ( یا اگر نام واقعی و مجازی تابع یکی باشد ، نام مجازی آن ) بزرگ و

کوچک بودن حروف اهمیت دارد .
 

sinbad68

Registered User
تاریخ عضویت
6 دسامبر 2006
نوشته‌ها
272
لایک‌ها
21
اینم یک برنامه در مورد توابع API.

همیشه دنبال این بودید که بتونید کاری کنید که برنامه شما رو نشه دید و حالت جاسوسی داشته باشه

من تو این پست می خوام با استفاده از توابع API اين كار رو يادتون بدم.

کار این برنامه نشان ندادن برنامه در تسک منیجرویندوز است.
کد:
()Private Sub Form_Load
Form1.Hide
App.TaskVisible = False
End Sub
براي امروز فكر كنم كافي باشه.

فعلا خداحافظ.
 

saalek110

Registered User
تاریخ عضویت
10 آپریل 2007
نوشته‌ها
212
لایک‌ها
1
دنبال می کنیم مطالب را . دستت درد نکنه. خیلی خوبه.
 
بالا