سلام. از همه ی دوستای عزیزی که تو این مدت در نبود سایت و فروم زجر می کشیدند، من شخصا عذر میخوام.
میدونید بچه ها؟ این مشکل از طرف سرور بود و من از طرف اون هم از شما عذر میخوام.
خلاصه دست رو دلم نذار که بد جور خونی میشه...
از طرف شرکت رایانه فرا موج امیدواریم دیگه این مشکلا پیش نیاد و همیشه سایت آپ باشه.
به امید آزادی قدس شریف و با تشکر، سازمان روابط عمومی بخش اینترنتی انجمن علمی علوم کامپیوتر دانشگاه قم!!!
قرار بود اینو تو فروم بزنم. یعنی اصلا اینو آپلودش کردم که فقط تو فروم بذارم اما...
خب، خدا رو شکر همش آپلود شد.
همه ی این فایلا بغیر از اون آخریه، هر کدوم حجمشون یک مگابایته
۱۲ تا. چن تا دیگه هم مونده
اما عجله نکن
بیشترشو رفتی
قسمت هیجدهم (کمتر از یک مگابایت)
آفرین. خیلی خوبه
دانلودش تموم شد بالاخره
با سلام به دوستان عزیز و کاربران محترم فروم
بعد از پیشنهاد یکی از دوستان عزیز درباره ی بازتر کردن نحوه ی فعالیت در فروم، و مشورت با آقای منصور نژاد دبیر محترم انجمن علمی علوم کامپیوتر دانشگاه قم، از این لحظه به بعد خوشحالم که به عنوان مدیر فروم آسان تر شدن و سریعتر شدن ِ ثبت نام رو برای دانشجویان محترم، به اطلاع همه ی دانشجویای عزیز برسانم.
قبل از این برای فعالیت در فروم، بعد از این که شما ثبت نام میکریدن، باید منتظر فعال شدن ِ Username ِ خودتون می بودین و فقط در اون صورت بود که میتونستید در فروم فعالیت کنید، رای بدید، پست بدید و تاپیک بزنید...
اما از این به بعد شیوه و روش ثبت نام تغییر می کنه.
دیگه نیازی به تایید من نیست و دوستان عزیزی که از این به بعد ثبت نام می کنن، بعد از ثبت نام، یه ای میل براشون فرستاده میشه که تو اون ای میل، یه لینک هستش برای فعال کردن Username شون.
دیگه همه چی بستگی به خودتون داره. فقط تو این روش باید یه ای میل درستی بدین.
امیدوارم تاثیر این روش توی باز تر کردن و آزادتر گذاشتن دانشجوهای جدیدی که عضو فروم میشن، مشاهده بشه.
این کار فقط برای راحت تر کردن دانشجوهای محترم و بازتر کردن و آزادتر کردن فعالیت توی فروم انجام میشه.
مثل همیشه نظرتون رو در این باره میشنوم. 
سلام دوستای خوبم . حالتون خوبه ؟
امیدوارم خوب و خوش باشین و یه تابستون عالی رو شروع کرده باشین .
می دونید که من زیاد تو وبلاگ پست نمیدم . اصلا من برای دادن پست های ویژوال بیسیک عضو نویسنده های وبلاگمون شدم . اما پستی که الان دارین اونو می خونین خیلی مهمه .
بخاطر همین لطفا اونو با دقت مطالعه کنید (
می دونید اولین باریه که این خواهشو ازتون دارم
)
همونطوری که می دونید خدا رو شکر چند روزیه که فروم انجمن علمی هم رسما کارش رو شروع کرده .
رسما تو همین پست از همه ی بچه های علوم کام و بقیه ی رشته ها
دعوت می کنم که در فروم عضو بشن .
اما چیز دیگه ای هم می خواستم بگم اینه که امکان جدیدی به فروم اضافه شده .
الان شما حتی اگه عضو هم نباشین بازم می تونید تو فروم نظر بدین .
می دونید ؟ این در حقیقت یه بخش هستش که هر کسی می تونه توش مطلب بزنه . ( اونایی که ثبت نام کردن که جای خود دارن ، اما اونایی که ثبت نام نکردن هم می تونن ما رو از نظرشون بهره مند کنن
)
و اجازه بدین بازم چیزی رو بگم که چندین بار گفتم :
نظر شما برای ما مهمه .
خیلی مهمه .
خب احتمالا با اطمینان می گید معلومه ! من هیچی رو به گـوگـولـی خودم ترجیح نمی دم !
و بخاطر همین دیگه ادامه ی این پست رو نمی خونم ! اما یه کم صبر کنید ...
چند روز پیش که داشتم تو سایت
آتروپاتگان
چرخ می زدم به یه پستی رسیدم که توش این سایت معرفی شده بود .
منم رفتم و باهاش آشنا شدم . حالا بیاید با هم یه نگاهی بهش بندازیم :
یکی از ابتکاراتی که این سایت کرده اینه که وقتی شما جستجو می کنید بغیر از این که به شیوه ی معمولی سایت هایی که پیدا شده براتون لیست میشه ، عنوان های مربوط به اون چیزی که نوشتین هم در سمت چپ براتون نشون داده میشه که این خیلی میتونه کار ما رو برای پیدا کردن راحت کنه .
کلا یکی از مشکلاتی که به گوگل ( همون گوگولی خودتون !
) ، یاهو و سایت هایی مثل اون گرفته میشه اینه که کاربرایی که تو اون موتور های سرچ ، جستجو می کنن ، فقط حداکثر 3 صفحه ی اول رو می گردن و دیگه بقیه ی نتیجه ها و ِل معطلن ! که این مشکل با این راه حل خیلی بهتر کنترل میشه . مثلا برای همون علوم کامپیوتر ببینید چه مطالب مربوطی نوشته میشه :
من که واقعا از این ابتکار خیلی خوشم اومد . این اطلاعات رو با یه نگاه خیلی خیلی کوچولو هم تو این سایت می تونید به دست بیارید . اما این که من انقد از این سایت طرفداری می کنم یه دلیل دیگه هم داره
وقتی علوم کامپیوتر رو تو این سایت سرچ کردم به یه نتیجه ی خیلی خوشایند رسیدم :

خب مطمئنا یکی از مهم ترین دلیل های این موضوع تلاش های بسیار زیاد آقای اقتدار هستش. من واقعا این موضوع رو به اون و به همه ی بچه های علوم کامپیوتر دانشگاه ( خودم هم هستم
) تبریک می گم .
راستی یه خبر خیلی خوب دیگه هم هست که باید برای شنیدنش یه کم زحمت بکشید
روی « ادامه ی مطلب » یه کلیک کنید تا بقیه شو براتون بگم 
بچه ها این کتاب دیگه واقعا براتون خیلی خوبه . حتما ازش استفاده کنید .
در حدی که ما باید از ++C بدونیم ، همه ی اونا تو #C هم هستن . یعنی برای ما هیچ تفاوتی بین این دوتا وجود نداره . ( تازه چیز های بیشتری هم یاد می گیریم )
این کتاب رو
آقای زواری
در سایت برنامه نویس گذاشتن .
در همین جا هم از ایشون تشکر می کنم . 
با وجود این کتاب پست های درپیت من رو برای همیشه کنار بذارید . اونا سطحشون خیلی پایینه . اگه یه کم به خودتون زحمت بدید و از این کتاب استفاده کنید ، دیگه هیچ وقت به پست های من نیازی ندارید .
آرزویم این است که کشور ما یک کشور درجه یک شود
هم به لحاظ مادی و هم به لحاظ معنوی
فکرشو بکنید ! آقای دکتر ولایتی یه وبلاگ داره ! اونم تو بلاگفا !!!!!
راستی یه چیز دیگه : من آقای دکتر ولایتی رو Add کردم

میگم بچه ها ! مشکلات دانشگاهمونو به اون بگیم شاید اون بتونه یه کاری بکنه ( شوخی کردم . همه مون می دونیم که اولا ایشون به جهت کار زیاد نمی تونن پیگیری کنن و تازه یک سری مشکلات عمیق تر از این حرف هاست که فقط به دست امام زمان حل میشه ! تازه یهو دیدی خود آقای ولایتی هم بخاطر ما از سر کارش عزل شد ! )
امروز این وبلاگ تو روزنامه ی شرق معرفی شده بود . گفتم حتما باید برای شما هم خیلی جالب باشه !
دوستان عزیز سلام
بعضی وقت ها یه مطلبی تو وبلاگ زده میشه که در مورد یه همایش یا جلسه ایه که بعدا (مثلا یکی دو هفته ی دیگه) برگزار میشه.
از طرفی ما میخوایم علاوه بر این که شما رو از چند روز قبل با این رویداد آشنا کنیم، در موقع برگزاری اون جلسه هم این موضوع رو به شما یادآوری کنیم.
برای این کار بعد از صحبت هایی که با بعضی از اعضای انجمن (مخصوصا آقای اقتدار مدیر وبلاگ) شد، به این نتیجه رسیدیم که اون مطالبی رو که در یه مقطع زمانی اهمیت ویژه ای پیدا می کنند رو در پیوند های روزانه به اطلاع دانشجویان محترم و بازدید کنندگان گرامی برسونیم.
پس در قسمت پیوندهای روزانه علاوه بر لینک های همیشگی، پست هایی رو هم که در اون زمان مهم هستن، می بینید.
با نظراتتون ما رو در داشتن وبلاگ بهتر یاری کنید. 
با تشکر
قابل توجه دانشجویان محترم استاد پورپاک :
امتحان امروز ( پنج شنبه ۴ / ۳ ) فقط تا ابتدای مبحث کلاس ها گرفته خواهد شد
( به من اعتماد کنید )
( یعنی وقت نکردم
)
حالا اون دکمه پایینیه رو بزنید
Class
OOP ( Object Oriented Programming )
برنامه نویسی شی گرا (OOP ) یکی از محبوب ترین و پیشرفته ترین روش های برنامه نویسی از ابتدای خلقت آدم ( ع ) تا حالا هست !
توی برنامه نویسی Object oriented با اشیا سر و کار داریم .
اگه بهتون ثابت شده که چرا نباید از متغیر های معمولی برای ذخیره ی اطلاعات
یک شی استفاده کرد و همینطور می دونید که چرا به جای رکورد ها باید از
کلاس ها استفاده کرد ، می تونید از قسمت بعدی شروع به خوندن کنید .
رکورد چیه و چه نیازی به اون هست ؟
همه می دونیم باید همیشه سعی کنیم برنامه هایی که می نویسیم واقعا به کمکمون بیاد و مسائل واقعی رو حل کنه .
یکی از مشهور ترین برنامه ها ، برنامیه که اطلاعات دانشجوها ( یا ... ) رو نگهداری می کنه . فرض کنید بخوایم یه برنامه ای بنویسیم که این کار رو بکنه .
مسئله : می خوایم برنامه ای بنویسیم که نام ، نام خانوادگی ، شماره ی دانشجویی ، نمره ی ریاضی ، نمره ی فیزیک و نمره ی کامپیوتر دانشجو ها رو در خودش نگه داره .
خب ، برای این کار میایم متغیر های FN ( برای First Name ) ، LN ( برای Last Name ) ، ID ( برای Identification به عنوان شماره ی دانشجویی ) ، Math ، Physic و Computer رو به وجود میاریم . چون برای افراد خیلی زیادی باید این متغیر ها رو داشته باشیم می تونیم اونا رو به صورت آرایه تعریف کنیم .
فرض کنید این کار رو کردیم . حالا اگه بخوایم اطلاعات یه نفر رو نشون بدیم باید یکی یکی اندیس ِ ( Index که در اینجا یعنی شماره ) مورد نظر ِ اون متغیر ها رو نشون بدیم . برای تغییر دادن این اطلاعات هم باید هماین کار رو بکنیم . یه چیز دیگه : فرض کنید آقای منتظری ( ببخشید فامیل مسئول آموزش خانم ها رو نمی دونم ! ) که داره با برنامه ی ما کار می کنه !!!
بخواد یه دانشجویی رو پاک کنه . اونوقت باید برای تمام متغیر ها اندیس هایی رو که از اندیس مورد نظر بزرگ ترن ، رو شیفت بدیم به عقب ( یعنی یکی یکی برگردن به یکی کمتر از اندیس الان ِ خودشون ) . برای این کار خیلی وقت گرفته میشه .
مشکل دیگه ی این روش اینه که اطلاعات ما از هم گسسته هستن . یعنی هیچ ربطی به هم ندارن . یعنی وقتی ما ID رو پاک می کنیم کامپیوتر هیچ ارتباطی بین اون ID و نام و نام خانوادگی و بقیه ی خصوصیات اون دانشجو برقرار نمی کنه . این خیلی مشکل بزرگیه . برای رفع این مشکل ...
یه راه بهتر برای رفع این مشکلایی که گفتم وجود داره :
خوشبختانه هنوز Record ها زنده ان !!! ![]()
Record
رکورد ها مثل یه نوع داده ی جدید و خاص هستن : ما خودمون یه نوع جدید تولید می کنیم و به کامپیوتر می گیم که این نوع ما ( مثلا دانشجو ) چند تا خصوصیت داره : شماره ی دانشجویی داره ، نام داره ، نام خانوادگی و ... . توی برنامه هم می تونیم یه دانشجو تعریف کنیم و به خصوصیت های اون دسترسی داشته باشیم . یه رکورد دانشجو اینطوری تعریف میشه ( دیگه حالت کلی تعریف رکورد ها رو نمی نویسیم ) :
#include
struct Student
{
char FN[21];
char LN[21];
long int ID;
float Math;
float Physic;
float Computer;
};
void main()
{
Student std;
cout << "Write the student's first name: ";
cin >> std.FN;
cout << "Write the student's first name: ";
cin >> std.FN;
// و به همین ترتیب می تونیم بقیه ی اطلاعات رو هم بگیریم یا نشون بدیم یا ...
}
نکته ی بسیار مهم: بچه ها حواستون باشه حتما بعد از تموم شدن نوشتن یه رکورد ، سمیکالن (;) رو بذارین . یه بار من اونو نذاشتم و پدرم در اومد تا فهمیدم اون سمیکالن رو جا گذاشتم . دقیقا بخاطر همین هم هستش که اون ; رو اونقدر بزرگ گذاشتم .
اما ...
اما ما هنوز هم چیزای بیشتری از رکورد می خوایم . می خوایم یه رکورد بتونه یه کاری هم انجام بده . یعنی می خوایم تمام کار های مربوط به دانشجو رو به عهده ی رکورد بسپریم . الان که از رکورد استفاده می کنیم ما نمی تونیم یه تابع تو خود رکورد تعریف کنیم . ما به توابعی نیاز داریم که عضو خود اون رکورد باشن . مثلا الان برای اطلاعات گرفتن از یه دانشجوی جدید باید یه تابعی رو که هیچ ربطی هم به دانشجو نداره فراخوانی کنیم و به وسیله ی اون تابع اطلاعات رو توی رکورد بذاریم . یا مثلا برای ویرایش اطلاعات اون دانشجو یا برای نشون دادن اطلاعات ( و یه مورد بسیار مهم دیگه که رکورد ها نمی تونن اون نیازمونو برطرف کنن . )
پس رکوردا هم به گل نشستن !
باید یه چیز بهتری وجود داشته باشه .
دارم قسمت بعدی ( کلاس ها ) رو می نویسم . لطفا یه چند ساعت صبر کنید .
امیدوارم تا قبل از 12 بتونم اونو آپلود کنم .
بعد از این که حدودا یک ساعت داشتم مقاله رو تراز بندی می کردم ، یه مشکل مسخره باعث شد کل چیزایی که نوشته بودم از بین بره . به هر حال معذرت می خوام . اما لینک دانلود مقاله رو گذاشتم تا بتونید از اون جا اونو دانلود کنید .
سلام . با عرض شرمندگی و ...
بدون توجه به حرفی که تو پست قبلیم زدم !!!
اگه اجازه بدید امروز بریم سراغ یه بحث خیلی مهم : این که چجوری با یه بانک اطلاعاتی اکسس ( Access ) ارتباط برقرار کنیم . باید به اطلاع دوستان عزیزم برسونم که برای برقراری با یه بانک اطلاعاتی ( Database ) باید اول یه بانک داشته باشیم . یعنی این که شما باید اول یه بانک به وجود بیارین . بانک های اطلاعاتی انواع و اقسام مختلفی دارن و می شه اونا رو با برنامه های مختلفی ساخت . یکی از معروف ترین نوع بانک ها ، Relational Database یا بانک های رابطه ای هستن . با نرم افزار مایکروسافت اکسس ( Microsoft Access ) می شه بانک های اطلاعاتی رابطه ای ساخت . ( Microsoft Access یکی از نرم افزار های بسته ی Microsoft Office هستش ) برای آشنایی پیشنهاد می کنم یه CDِ آموزش اکسس بگیرین تا ساختن بانک ها رو در حد خیلی کم ( به اندازه ی خودم !
) یاد بگیرین . ساختن بانک هم خودش یه دنیاییه . پس سعی کنین فقط از بانک های ساخته شده ی دیگران استفاده کنین !!! ( شوخی کردم ! اما تمرکز این بحث روی چگونگی دستیابی به اون بانک هاست )
خوشبختانه یه بانک استاندارد اکسس برای یه شرکت فرضی به اسم North Wind Corp. توسط خود مایکروسافت ساخته شده که با ویژوال بیسیک 6 ( الفاتحه مع الصلواة !
) عرضه شده بود . معمولا برای آموزش چگونگی وصل شدن به بانک ها از اون استفاده می شه . ما هم همین کار رو می کنیم .
این تازه یکی از چیزایی بود که بهش نیاز دارین . یه زبونی وجود داره به نام SQL (Structured Query Language) که فکر می کنم همه ی بانک های فعلی از اون پشتیبانی می کنن . با این زبان ما می تونیم به بانک بگیم که چه خواسته ای از اون داریم ( مثلا این که در یک جدول دنبال عبارت 'Ali' بگرد یا اطلاعات رو بر اساس یه فیلد مرتب کن )
اما سومین چیزی که نیاز داریم اطلاعات کمی از ADO.Net هستش . ما می خوایم به یه بانک وصل بشیم و درخواست هامون رو به این بانک با زبان SQL بپرسیم . راهی که در ویژوال بیسیک ( و کلا ویژوال استودیو ) برای برقراری ارتباط با بانک اطلاعاتی وجود داره ، ADO.Net هست .
برای وصل شدن تو ADO.Net چند تا شی رو نیاز دارین . توی این برنامه ای که نوشتم شاید ساده ترین راه برای وصل شدن به بانک استفاده شده باشه . ( این برنامه توی ویژوال بیسیک 2005 نوشته شده و با ورژن های قبلی کار نمی کنه )
Dim Bln As Boolean = False
Dim CNN As New OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source='D:\My Documents\Nwind.mdb'")
Dim DS As New DataSet
Dim DA As New OleDb.OleDbDataAdapter("Select * form categories", CNN)
Private Sub Form1_Load(...) Handles Me.Load
CNN.Open()
End Sub
Private Sub Button1_Click(...) Handles Button1.Click
DA.SelectCommand.CommandText = TXT.Text
DS.Clear()
DA.Fill(DS, "Categories")
If Bln = False Then
Bln = True
DG.DataBindings.Add("DataSource", DS, "categories")
End If
DG.Refresh()
End Sub
خوب ، شروع می کنیم :
فعلا به خط اول (Dim Bln As Boolean = False ) کاری نداشته باشید تا من خودم هم یادم بیاد اصلا اینو برای چی نوشتم !
یکی از اشیایی که برای برقراری ارتباط با دیتابیس حتما نیازه ، یه OledbConnection هستش . همونطوری که از اسمش هم پیداست برقراری ارتباط رو این شی بر عهده داره . می بینید که باید برای این منظور از Namespace ( فضای نامی ) ِ Oledb استفاده کنیم . این Namespace کلاس هایی داره که برای برقراری هر ارتباطی مناسبند . همونطور که می بینید می شه در همون موقع تعریف کردن یه کانکشن جدید ، مقادیری رو که نیاز داره بهش بدیم . Connection String ( رشته ی ارتباطی ) رشته ای هست که با اون می شه نوع بانکی رو که می خوایم به اون بانک وصل بشیم ، انتخاب کنیم . Connection String برای هر کدوم از انواع بانکی که می شه به اونا وصل بشیم ، فرق می کنه . برای بانک اطلاعاتی اکسس ، کانکشن استرینگ باید برابر زیر باشه :
"Provider = Microsoft.Jet.Oledb.4.0; Data Source='D:\My Documents\ Nwind.mdb'"
کانکشن استرینگ بالا دو قسمت داره : Provider و Data Source. باید Data Source رو برابر با آدرسی که فایل بانک اطلاعاتی اونجا هست قرار بدیم .
در خط بعدی یه DataSet به اسم DS تعریف شده . ( بعدا دربارش توضیح می دم )
OledbDataAdapter کلاسی هست که میشه با اون اطلاعات رو از یه کانکشن گرفت و در چیز دیگه ای ریخت و بعد اون اطلاعات رو نشون داد . ( در یکی از Overload های DataAdapter) ، دیتا آداپتر دو تا مقدار رو باید بگیره . یکی کانکشنی هست که باید اطلاعات موجود در اون کانکشن رو بگیره . و یکی دیگه دستوری که بهش بگه چه اطلاعاتی رو از کانکشن بگیره . معلومه که کانکشن ما CNN هستش . اما اون دستور چی ؟ اون یه دستور SQL هست . و معناش اینه که تمام اطلاعات جدول Categories موجود در اون بانک اطلاعاتی رو بگیره و به DataAdapter ببره .
وقتی فرم ، لود می شه باید بگیم ما می خوایم از کانکشن استفاده کنیم . برای این کار باید اون رو با متد Open باز کنیم .
در این برنامه ، شما باید دستور SQL خودتون رو در جعبه ی متن TXT بنویسید و بعد روی دکمه کلیک کنید . دستور شما باید به دیتا آداپتر فرستاده بشه . بعد از این که DataAdapter اونو دریافت کرد ، باید دیتاست رو از اطلاعاتی که داره پر کنه و در قسمت بعد ما باید اطلاعات دیتاست رو نمایش بدیم . ( با استفاده از یه DataGridView) حالا یه بار دیگه این کار هایی رو که گفتم با کد انجام میدیم :
DA.SelectCommand.CommandText = TXT.Text
یکی از خصوصیت های دیتا آداپتر ، دستوری هست که دیتا آداپتر اون دستور رو به کانکشن منتقل می کنه و نتیجه رو بر می گردونه . حالا ما می خوایم اون دستور رو خودمون تعیین کنیم . برای این کار از خط بالا استفاده می کنیم .
دیتاست ممکنه قبلا پر شده باشه ( بعد از این که برای اولین بار دیتاست رو پر کردیم ، دیتاست پر میمونه . ) اونو خالی می کنیم تا اطلاعات جدید رو از دیتا آداپتر به اون وارد کنیم . متد Fill یکی از مهم ترین متد های DataAdapter هستش . به وسیله ی اون می شه یه دیتاست رو پر کرد . بعد از وارد کردن نام دیتاست ، باید نام جدولی رو که از اون اطلاعات رو می گیریم به DataAdapter بدیم . ( در اینجا Categories)
پس تا اینجا دیتا آداپتر رو به کانکشن ، و دیتاست رو هم به دیتا آداپتر وصل کردیم . حالا هم نوبت این رسیده که نتایج کارمون رو ببینیم . یعنی اطلاعات موجود در دیتاست رو به DG بیاریم . این کار با کد زیر انجام می شه :
DG.DataBindings.Add("DataSource", DS, "categories")
این کد برای این به کار میره که بگیم همیشه پراپرتی ِ DataSource از DG، به جدول ِ Categories از DS وصل بشه ( Bind بشه ) . ( دقت کنید که یه دیتاست می تونه اطلاعات بیشتر از یه جدول رو نگه داره . بخاطر همینه که باید باز هم نام جدول مورد نظر رو بنویسیم . )
مطمئنم دلیل وجود دستور DG.Refresh() رو حدس زده باشید .
خب ، حالا میشه لطفا بهم بگید چرا از اون Bln استفاده کردم ؟
خببببببببب ، امروز آقای منصور نژاد دستوری مبنی بر پست دادن ِ بنده فرمودن ، و من هم تقریبا از ساعت های ۷ و ۸ دیشب به طور جدی شروع به نوشتن این مطلب کردم و تا ۱۲ دست من تو حنا بود !خب ، بالاخره یه دبیر انجمنی گفتن ، یه چیزی گفتن ... البته به دلیل وجود یه مشکل خیلی مسخره بود که دیشب این پست رو ندادم .
راستی از دوستان عزیز هم ممنون می شم اگه تو این پست بیشتر راجع به مقاله و مطالب مرتبط نظر بدن .
نکته ی دیگه هم این که به هیچ وجه از اینترنت اکسپلورر استفاده نکنید !
دانلود بانک اطلاعاتی .North Wind Corp
بخونید . نگید طولانیه . نصفش عکسه ،
اون نصفش هم تکرار عکس های اولیه !
( برای دیدن عکس هایی که نشون داده نمیشن ،
راست کلیک کنید و Show Picture رو بزنید . )
امروز می خوام راجع به چگونگی AutoComplete کردن ComboBox هامون حرف بزنم . ( AutoComplete باعث می شه که وقتی در نوار آدرس حروف ec رو می زنید ، وب سایت www.ecqom.tk بهتون پیشنهاد داده بشه . البته همونطوری که می دونید اگه این امکان وجود نداشت خودمون هم می تونستیم این کار رو بکنیم ( البته در بعضی موارد خیلی خیلی سخت می شد ) اما پیشنهاد می کنم از این روش استفاده کنید چون اولا راحت تره
و ثانیا هم مطمئن تره . ( ادامه ی مطلب رو بخونید تا منظورم از « مطمئن تر بودن » رو بفهمید )
همونطوری که انتظار می ره و منطقی هم به نظر می رسه ، خاصیت AutoComplete فقط برای شی ComboBox هستش .
سه تا پراپرتی ( Property ) برای تنظیم خاصیت اتو کامپلیت وجود داره : AutoCompleteCustom، AutoCompleteMode و AutoCompleteSource که هر کدوم رو توضیح می دم :
قبل از توضیح لازمه که فرض کنیم آیتم های کمبو باکس ما به این ترتیب هستن :
I love
I love Iranian people.
I love Islamic Republic of Iran.
I love
I love my country (
ما الان می خوایم وقتی کاربر تو ComboBox عبارتی رو وارد می کنه ، آیتم هایی که برای انتخاب جلوی روش قرار می گیرن ، همون آیتم های داخل کمبو باکس باشن ( چون حالات دیگه ای هم وجود داره ) . بخاطر همین میایم AutoCompleteSource رو برابر با ListItems قرار می دیم . (AutoCompleteSource تعیین می کنه که وقتی آیتم هایی که به کاربر پیشنهاد داده می شن چی باشن ؟ ) بعد از این کار AutoCompleteMode رو برابر با SuggestAppend قرار می دیم . حالا برنامه رو اجرا کنید تا نتیجه رو ببینید . الان به محض این که تو کمبوباکس "I love Ira" رو وارد کنید یه لیست باز می شه که آیتم هایی رو که اولشون "I love Ira" هست رو بهتون نشون می ده . می دونم هیچی نفهمیدین !
اما فقط می خواستم ببینین که چقدر جالبه حالا . اون سه تا رو یه بار دیگه توضیح می دم :
AutoCompleteSource
می دونیم که ما می خوایم به محض این که کاربر یه متنی رو توی کمبو باکس نوشت ، مواردی بهش پیشنهاد داده بشن . وقتی تو قسمت Address از My Computer عبارت "my" رو وارد می کنیم ، بهمون My Computer، My Documents و ... رو پیشنهاد می ده . اما اگه وقتی داریم از اینترنت استفاده می کنیم همین عبارت "my" رو بزنیم ، سایت هایی رو میاره که اول آدرسشون "my" وجود داره . یعنی برای کمبو باکس my computer از آدرس های درون سیستم استفاده می شه و برای کمبو باکس اینترنت اکسپلورر از آدرس های وبی که قبلا رفته بودیم . ممکن هم هستش که در موقع استفاده از یه برنامه این منبع برابر همون آیتم های کمبوباکس ما باشه .
ما بوسیله ی AutoCompleteSource به یه کمبو باکس می گیم که منبع آیتم های پیشنهادی به کاربر چی باشه .
AutoCompleteSource می تونه مقادیر زیر رو بگیره :
1. None : که دیگه معلومه : هیچ چیزی رو به کاربر پیشنهاد نمی ده ( حالت پیش فرض هم همینه ).

2. ListItems : آیتم هایی که در لیست وجود داردند به کاربر پیشنهاد داده می شن ( و فکر می کنم معمول ترین هم همین باشه ) .

3. FileSystem : فایل ها و فولدر هایی که وجود دارن پیشنهاد می شن . البته کاربر باید بک اسلش ("\") رو بزنه تا پیشنهاد داده بشه .

4. FileSystemDirectories : فقط فولدر هایی که وجود دارن با انتخاب این گزینه پیشنهاد می شن .

5. HistoryList : با این انتخاب ، لیست URL هایی که توی History هستن به کاربر پیشنهاد می شن .

6. RecentlyUsedList : که باعث می شه URL هایی که کاربر به تازگی اونا رو دیده بهش پیشنهاد داده بشن .

7. AllURL : جمع دو مورد HistoryList و RecentlyUsedList هستش . ( یعنی چیز هایی که پیشنهاد می شن هم از HistoryList هستن هم از RecentlyUsedList )

8. AllSystemSources : این دیگه آخرشه ! اگه اینو انتخاب کنید از تمام موارد بالا بعلاوه ی مورد بعدی به کاربر پیشنهاد میشه
! از این یکی چند تا عکس در چند حالت مختلف می ذارم :



9. CustomSource : بعضی وقتا ممکنه فقط بخواید مواردی که پیشنهاد می شن فقط از یه لیست از پیش تعریف شده باشن . در اون صورت می تونید از این گزینه استفاده کنید و اون لیست از پیش تعریف شده ، AuroCompleteCustomSource هستش ( که خودش یه پراپرتیه ) .
حالا این لیست رو مطابق شکل پر کنید :

اونوقت اگه برنامه رو اجرا کنید نتیجه شکل زیر می شه :

خب ، این از AutoCompleteSource . حالا بریم سراغ AutoCompleteMode :
AutoCompleteMode
همونطوری که از اسمش هم پیداست این نوع اتو کامپلیت بودن رو مشخص می کنه .
1. None : این که معلومه : اصلا هیچ عکس العملی برای راهنمایی کاربر نشون نمی ده .

2. Suggest : باعث میشه که فقط یه لیست باز شه تا کاربر بتونه موردی رو که می خواد از بینش انتخاب کنه . ( Suggest یعنی پیشنهاد دادن )

3. Append : به این وسیله ادامه ی متنی که کاربر می تونه بنویسه به طور اتوماتیک نوشته می شه ( از اون لیست اولین مورد انتخاب می شه و بوسیله ی اون متنی که کاربر نوشته کامل می شه ) البته اون قسمتی که اتومانیک اضاقه میشه select میشه تا اگه کاربر به نوشتنش ادامه داد قسمت های اضافه پاک بشن . ( بوسیله ی بالا و پایین هم موارد قبلی و بعدی متن رو کامل می کنن )
4. SuggestAppend : اینم که دیگه توضیح نمی خواد . دو تا بالاییا با هم میشن SuggestAppend .

خب ، اینم AutoComplete ای که قولشو داده بودم . امیدوارم به دردتون بخوره
.
سوالی چیزی داشتید حتما بپرسید . اما نه از من !!! از
www.barnamenevis.org
!
شما هم نظر بدین تا وبلاگ بهتر شه
.
دوستان برای گرفتن کتاب های فارسی درباره ی ویژوال بیسیک می تونید از لینک های زیر استفاده کنید.
کتاب آموزش Visual Basic.Net نوشته ی آقایان امیر احسانی و حامد بنایی. این کتاب رو حتما بخونید.
بعد از تسلط نسبی و آشنایی با اساس ویژوال بیسیک میتونید از کتاب آموزش کاربردی توابع VB.Net که توسط آقای بهروز راد، یکی از اساتید برنامه نویس به رشته ی تحریر درآمده!!! استفاده کنید. (فکر نکنید من خودمونی حرف میزنم، بلد نیستم عین آدما صحبت کنم
)
برای خوندن کتابهای انگلیسی هم اینجا رو کلیک کنید. (البته یه کم باید بگردید کتاب های مناسب رو انتخاب کنید.)
برای تهیه ی سی دی Microsoft Visual Basic 2005 Express Edition (که یه سی دی هست) یا Microsoft Visual Studio 2005 (فکر می کنم 5 تا سی دی هست) میتونید به کوچه ی 38 خیابون صفاییه فروشگاه «تصویر جهانی» مراجعه کنید.
موفق باشید ![]()
سلام
چطوره راجع به hyper terminal صحبت کنیم؟ خیلی باحاله. (hyper یعنی ماوراء و مافوق) فرض کنید اینترنت ندارید اما میخواید یه فایلی رو به یکی از دوستاتون بفرستید. بهتره که دوستتون داخل شهر باشه (یعنی فقط یه modem نیازه). حالا میتونید بوسیله ی hyper terminal به دوستتون زنگ بزنید.
Start Menu > Programs > Accessories > Communications > Hyper Terminal

توی قسمت Name یه اسمی وارد کنید.

حالا شماره ی مورد نظر رو وارد کنید. تا اونجایی که من میدونم تو این سیستم ارتباطی شما زنگ میزنید و پول تلفن رو شما میدید. اون دوستتون هم منتظر زنگ شما میشه و وقتی زنگ زدید میتونید با هم ازتباط برقرار کنید و به خاطر همین هستش که پیشنهاد می کنم فقط با کسی که تو شهر خودتونه ارتباط برقرار کنید.

Dial رو که بزنید شماره میگیره و ارتباط برقرار میشه.

اگه هم بخواید منتظر کسی باشید که بهتون زنگ بزنه باید از منوی
Call، گزینه ی Waiting for a call رو انتخاب کنید.چیزی که فکر می کنم براتون جالب باشه اینه که توی محیط برنامه (صفحه ی سفید) به محظ این که چیزی رو تایپ می کنید برای دوستتون فرستاده میشه! یعنی همونطوری که میبینید دکمه ی send ای وجود نداره! من که بار اول خیلی برام جالب بود. اینو هم بگم که به وسیله ی منوی Transfer هم میتونید یه فایل رو بفرستید.
مطلب بعدی در مورد Auto Complete تو Visual Basic 2005 هستش.
امیدوارم بتونم یه حرفای جدیدی براتون داشته باشم.
موفق باشید

بسم الله الرحمن الرحیم
من یکی از اعضای سایت www.barnamenevis.org با نام vbapr2005 و همچنین دانشجوی رشته ی علوم کامپیوتر ورودی 84 واحد برادران (
) دانشگاه قم هستم.
در اینجا میخوام مطالبی رو که فکر می کنم برای یک برنامه نویس آماتور ویژوال بیسیک 2005 جالبه بگم.
چون دوستانی که من میشناسم(توی سایت برنامه نویس) سطحشون (و همچنین سطح مطالبی که آموزش میدن) از یه کاربر آماتور بالاتر هست، به همین دلیل بود که من هم به خودم این اجازه رو دادم که برای دوستانی که به تازگی شروع به کار با ویژوال بیسیک کردن نکته هایی رو که یاد می گیرم اطلاع بدم. ولی این برای من و خودشون بدیهی هست که اگه قرار باشه کسی وبلاگ درست کنه و توش به بقیه چند تا نکته یاد بده اونا هستن نه من.
از آقایان عباس منصور نژاد و محمد حسنی اقتدار هم بسیار تشکر می کنم که افتخار همکاری رو به من دادن. قبلا مطالبی رو که می نوشتم توی http://vbapr.blogfa.com/ میذاشتم که الان با پیشنهاد دوستان عزیزم، قراره مطالب اینجا گذاشته بشن. (البته اون آدرس هنوز هستش اما قراره به اینجا لینک داده بشه)
راجـع به ویـژوال بیسـیک ۲۰۰۵ هم حتـما
بهتون توصیه می کنم لذت کار کردن
با این برنامه رو از خودتون
دریغ نکنید.
به عنوان اولین پیشنهاد بشدت بهتون توصیه می کنم تو سایت برنامه نویس عضو شین. این سایت دارای تالار های مختلفی هست که توی اونا میتونید مشکلات برنامه نویسی خودتون رو در یک فضای بسیار دوستانه مطرح کنین و جواب بگیرین. (البته حتما قبل از شروع فعالیت قوانین سایت رو بخونین)
این رو هم بگم که قول نمیدم حتما تو یه بازه ی زمانی مشخص وبلاگ رو آپدیت کنم. اما سعی می کنم به بالا بردن سطح علمی وبلاگ تلاش کنم.
به نظر من هر کسی می تونه هر چیزی رو که بلده به دیگران هم بگه تا اون موقع اطلاعـات همه در زمینه های مختلف بیشـتر بشه. (مخصوصا در زمینه ی کامپیوتر)
موفق باشید
فعلا خداحافظ