تعلم فيجوال بيسك [الأرشيف] - منتديات طريق سورية

المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تعلم فيجوال بيسك


Ayman syr
24-12-2005, 00:56
أبدأ إنشاء الله بهذه الدروس .... قمت بتجميعها .. ونقلها من مصادر مختلفة ..من سيديات و دروس على الشبكة ... و إضافات أخرى قمت بإجرائها و إضافتها .

الدرس الأول :
=========

يتكون فيجول بيسيك من الاتي:

النافذة الرئيسية : وهي الوعاء الذي توضع فية الادوات
نافذة المشروع :وهي النافذة التي تحتوي على اجزاء المشروع من نوافذ وماكرو
نافذة الادوات : وهي تحتوي على الادوات التي بواستطتها تسطيع ان تبني المشروع
نافذة الخصائص : وهي النافذة التي تتحكم بخصائص الادوات
كماهو موضح بالشكل التالي :

[Only registered and activated users can see links]

نافذة الاحداث : وهي التي يتنفذ الامر عند وقوعها (كما في الشكل التالي)

[Only registered and activated users can see links]

أدوات التحكم : كما في الشكل التالي

[Only registered and activated users can see links]

مربع رسم : لإظهار الصور أو كوعاء لادوات الاخرى
مربع التسمية : يظهر نص غير قابل للتعديل
مربع النص : يظهر نص قابل للتعديل
إطار : وعاء لمجموعة من الأدوات
زر أمر : لتنفيذ أمر معين عند النقر عليه
مربع اختيار : لاختيار اكثر من عنصر
زر اختيار : لاختيار عنصر
مربع تحرير و سرد : للاختيار من قائمة
مربع سرد : للاختيار من قائمة
شريط تمرير أفقي : يسمح باختيار قيمة بناءً على موضع زر التمرير
شريط تمري رأسي : يسمح باختيار قيمة بناءً على موضع زر التمرير
مؤقت : القيام باوامر معين بعد فترة معين
محركات الأقراص : لاختيار محرك قرص معين A,C,D..
دليل : يتيح اختيار أحد المجلدات الفرعية
ملفات : لاختيار أحد الملفات
شكل : لرسم شكل هندسي
خط : لرسم خط
صورة : لإدراج صورة

انتهى
====

الغضب
24-12-2005, 01:50
مشكور اخ ايمن

الله يعطيك العافية

Ayman syr
25-12-2005, 00:54
[twh:7e3a43c9fb]الدرس الثاني :
==========[/twh:7e3a43c9fb]

الخصائص و الأحداث:
============

لكل اداة عدة خصائص ولكل اداة عدة احداث

الخصائص
-----------
والخصائص هي التي تتحكم بشكل الاداة ومميزاتها من تنسيقها على الشاشة او اظهارها او اخفائها
وبعد أن تعرفت على أدوات التحكم بإمكانك النقر على الأداة التي ترغب بها ثم الذهاب إلى النافذة الرئيسية التي أطلقنا عليها ال (Form) و إنزال هذه الأداة .و التحكم بخصائصها ..
حتى الفورم تظهر له خصائص بإمكانك تجريبها ..عن طريق تغييرها
بعض الخصائص سوف تلاحظ تغييرها الآن ..بعضها الآخر لن تلاحظه و ستكتشفه لاحقا من خلال البرمجة.
نافذة الخصائص بإمكانك مشاهدتها من الشكل الأول في الدرس السابق

الخاصية وشرحها
-------------------
name : تحديد اسم فريد للاداة
backcolor : لون الخلفية
borderstyle : سمك اطار النافذة
caption : عنوان الاداة
text : عنوان الاداة
controlbox : مايظهر في اعلى كل نافذة في اقصى اليمن للتحكم بالنافذة
enabled : لتمكين الاداة
font : الخط
forecolor : اللون الامامي
height : الارتفاع
icon : الرمز
left : موقع الاداة من اليسار
mdichild : تستخدم في البرامج متعددة النوافذ
mousepointer : مؤشر الفارة
picture : الصورة
righttoleft : مفيدة جدا في البرامج العربية لتحويل القوائم من اليسار الى اليمين
top : موقع الركن العلوي من الاداة
visible : اخفاء الاداة
width : العرض
windowstate : حالة النافذة من حيث الحجم
backstyle : جعل الاداة شفافة
borderstyle : حذف الاطار المحيط بالاداة
databasename : اسم قاعدة البيانات
recordset seek : اذا استخدمنا البحث في قاعدة البيانات بالامر table : يجب ان توضع في حالة
recordsource : تحديد الجدول من قاعدة البيانات
datafield : ربط اداة النص بحقل معين من جدول معين
datasource : ربط اداة النص بجدول معين من قاعدة البيانات
value : القيمة
max : الحد الاعلى
min : الحد الادنى
smallchange : التغيير الصغير
largechange : التغيير الكبير
interval : الفترة الزمنية المراد تنفيذ حدث المؤقت بعد مرورها
tooltiptext : التعليق الذي يظهر فوق الاداة عند ابقاء الفارة علية لمدة قصيرة
tabstop : على زر معينtab توقيف التنقل بزر
tabindex : ترتيب التنقل بين الادوات

الأحداث
------------
الأحدث هي التي يستجيب لها برنامج فيجول بيسيك ولولا وجودها لما استطعنا ان نحدد للبرنامج متى ينفذ الامر الذي نريد ان ينفذة فمثلا (نافذة الحدث الموضحة بالشكل التالي):

[Only registered and activated users can see links]

اي عند وقوع الحدث( load ) للنافذة (form1 ) نفذ الاوامر الموجودة داخل الحدث

شرح الحدث
---------------
active load : يقع بعد تحميل النافذة اي بعد وقوع حدث
click : عند النقر المفرد على الفارة
dbclick : عند النقر المزدوج على الفارة
gotfocus : عند اخذ التركيز لاداة معينة
lostfocus : عند فقد التركيزلاداة معية
keydown : عند نزول الزر الى الاسفل
keypress : عند الضغط على اي زر من لوعة المفاتيح
keyup : عند طلوع زر لوعة المفاتيح الى الاعلى
load : عند تحميل النافذة الرئيسية
mousedown : عند نزول زر الفارة الى الاسفل
mousemove : عن تحرك الفارة على اداة معينة
mouseup : عند طلوع زر الفارة الى الاعلى
paint : عند اعادة رسم النافذة
resize : عند تغير حجم النافذة
unload : عند إلغاء تحميل النافذة

انتهى.
=====

Ayman syr
26-12-2005, 02:26
[twh:ec194f7468]الدرس الثــالث:
============[/twh:ec194f7468]

مراحل كتابة البرنامج:
===========
أولا عليك تصميم واجهة البرنامج :
حدد كم نافذة تحتاج لبرنامجك وماهي الادوات التي تحتاجها مثلا أحتاج إلى نافذة واحدة
احتاج الى خانة نص (text1) وخانة عنوان (label1)
وزري تحكم (command1)و(command2).
نضع هذة الادوات على النافذة كمافي الشكل :

[Only registered and activated users can see links]

ضبط حجم الادوات وذلك بوضع مؤشر الفارة على زاوية الاداة ثم السحب مع الإبقاء
على زر الفارة مضغوط مثل تكبير النافذة وضبط الادوات عليهاأو ضبط خصائص هذة الادوات .
حدد اداة ولتكن اداة العنوان وذلك بالضغط عليها ثم اذهب إلى قائمة properties.
من هذه القائمة يمكنك التحكم بخصائص العنصر
(جرب كل واحدة منها مبدئيا قد لا تكتشفها كلها لكنك ستكتشف معظمها ..)
مثلا اختر من الخصائص لأداة التحكم (Label1) الخاصية (caption) و غيرها من (label1) إلى (أهلا وسهلا) كما هو موضح بالشكل :

[Only registered and activated users can see links]

عدل بقية العناصر لتصبح لنافذة بالشكل التالي :

[Only registered and activated users can see links]

كتابة التعليمات
========
انقر على على زر السلام عليكم نقراً مزدوجاً ثم تظهر لك نافذة ثم اكتب الاتي :

[Only registered and activated users can see links]

انقر على على زر خروج نقراً مزدوجاً ثم تظهر لك النافذة التالية و اكتب فيها ما يلي :

[Only registered and activated users can see links]

تنفيذ البرنامج :
اضغط على F5
او من قائمة RUN اختر START

انتهى
======

Ayman syr
28-12-2005, 02:37
[twh:946ff8dbc9]الدرس الرابع :
========[/twh:946ff8dbc9]
الآن و بعد أن أصبحت على معرفة بكيفية تغيير الخصائص و الأحداث لعنصر التحكم ..سنقوم بعرض التطبيق التالي :

التطبيق الأول :
========
أولا علينا أن نغير اسم الفورم الذي نعمل عليه و لنعتبر أنه الفورم الرئيسي لذلك نقوم بتغيير اسمه إلى mainfrm
1- نختار من عناصر التحكم textbox
2- من خاصية الاسم (name)نغير اسمها إلى txtb
3-عند تفيل البرنامج نلاحظ أننا لا نستطيع أن نكتب بداخل الtextbox سوى سطر و احد لذلك ..عليك أن تجعل خاصية multiline الى true
4-نعود إلى خاصية scrollbar و نضعها على both حتى نستطيع أن نكتب كيفما نشاء في الtextbox
5- نذهب إلى حدث form_loadو نكتب ضمنه ما يلي :

txtb.width=mainfrm.width-400
txtb.hight=mainfrm.hight-400
txtb.left=0
txt.top=0

نذهب إلى الحدث form-resize ونكتب نفس العبارات السابقة .

الآن عند تنفيذ البرنامج ماذا نلاحظ ...يزداد و يتقلص حجم الtextbox بحيث يبقى دوما بحجم الفورم .
ماذا الذي قمنا به ؟ إن الذي قمنا به هو مجرد التحكم بالخصائص لعنصر التحكم بدلا من نافذة الخصائص عن طريق البرمجة ..
و قمنا كذلك بربط تغير الخاصية بالحدث ...

مثلا :
عند الحدث form_loadو الذي يعني عند تحميل الفورم (عند بدء التشغيل و تحميل الفورم للعمل ) قم بما يلي :
txtb.width(عرض عنصر التحكم textbox و الذي أسميناه txtb)
txtb.width=mainfrm.width-400
(عرض عنصر التحكم txtb يساوي عرض عنصر التحكم الفورم الرئيسي ناقص 400تدريجة)
و حقيقة ما قمنا به هو ربط تغير خصائص عنصر بتغير خصائص الفورم
قس على ذلك بقية الأسطر :
ثم عدنا تكرير نفس الخصائص و ربطناها بحدث form_resize و الذي يعني تغيير هذه الخصائص مع تغير حجم الفورم

الإعلان عن المتغيرات (variables)-
-----------------------------------------------
و الاسم الشائع لها بالعربية هو المتغيرات و هذه المتغيرات هي اللبنة الرئيسية و الأولى في أي لغة برمجة و لكن ما هي المتغيرات و ما وظيفتها و كيف نستعملها ،
أثناء عمل أي برنامج أو أثناء تنفيذ أي نص برمجي فإن هذا البرنامج يحتاج إلى تخزين بيانات و معلومات و الرجوع إليها . في حالة تعدد هذه البيانات و تعدد أسبابها و تعدد الجهات التي تستخدم هذه البيانات داخل أي برنامج فهنا يلزمنا إلى فرض قواعد تنظم طريقة إعلانها و واستخدماها
و نبدأ أولا بطريقة إعلانها فليس بالصعب إعلان عن المتغيرات




هناك عدة ملاحظات يجب أن تضعها في الاعتبار عند الإعلان عن أي متغير و هي :-

· أولا :- يجب أن لا يتضمن اسم المتغير على أي مسافات مثل (Your Name) .

· ثانيا :- أن يوضع التعريف بالمتغير كلمة dim .

· ثالثا :- يمكن أن يعلن عن المتغير بدون أن يعين له أي قيمة و تعين القيمة له فيما بعد أو في نفس الوقت الذي يعلن فيه عن المتغير يمهد كما في المثال السابق .
يمكن أن تعلن عن أكثر من متغير دفعة واحدة و تفصل بينهم الفاصلة مثال ذلك
المتغيرات و أسمائها :-
كما قلنا سابقا أنه يجب أن يكون اسم المتغير ذا دلالة على ما يحمل في طياته و السبب في ذلك أنه عند كبر الكود المكتوب أو عند الرجوع إليه في مكان آخر من البرنامج يسهل تذكره و عند تطوير الكود أيضا حيث أنصحك أن لا تتهاون في هذه العادة حيث أنك سوف تنسى عند تطوير أو قراءة البرنامج بعد فترة من كتابته فأسعى من الآن في التعود على أن تضع الاسم الصحيح للمتغير الصحيح .
القيم المنطقية :- و تأخذ إما قيمة صحيحة(true) وبأخذ قيمة 1 أو خاطئة (false) و يأخذ قيمة 0 و تستخدم لعمليات المقارنة و التحقق من شروط معينة .
القيمة (null) :- و تأخذ 0 و قد يكون الفرق بينها بين القيمة (false) حيث أن (null) تتعامل مع جميع المتغيرات حيث تستخدم عادة هذه القيمة للدلالة على أن المتغير لي يتم إعطائه قيمة ، يجب أن نبه أن هذه القيمة عرفت في لغة أكشن اسكربت من الإصدار الخامس هذه يعني عندما تريد تشغيل فلم يحتوي على هذه الكلمة فجب أن يكون المشغل من إصدار الخامس أو عند القيام بالتصدير تقوم باختيار التوافقية مع الإصدار الرابع ليتم استبدالها بما هو متوافق مع الإصدار الرابع .

يمكن الإعلان عن المتغيرات إما في الحدث كما في الشكل التالي :

[Only registered and activated users can see links]

أو في الGENERAL

[Only registered and activated users can see links]

انتهى
====

Ayman syr
09-01-2006, 02:45
[twh:ba87e5e516]الدرس الخامس :
=========[/twh:ba87e5e516]

تطبيق1:
-------
نضع lable على الفورم
المطلوب : عند التحريك الفارة فوق ال lable1 تتحرك ضمن إطار الفورم .

نختار العنصر lable1 و الحدث mousemove و نكتب :

lable1.top=lable1.top+300
lable1.left=lable1.left+300

*عند التنفيذ نلاحظ أن العنصر يخرج خارج الفورم .
*نريد عند وصوله إلى الحافة السفلى أو اليسرى أن يرتد و يعود ليتحرك باتجاه معاكس :
نعرف في الgeneral متحولين :
dim aa,bb as boolea

نختار العنصر lable1 و الحدث mousemove و نكتب :

[align=left:ba87e5e516]if (lable1.top<((form1.scaleheight-lable1.heig) and (aa=false) then
(lable1.top=lable1.top+(RND*300
else
aa=true
endif
if (lable1.left<(form1.width-lable1.width)) and (bb=false) then
(lable1.left=lable1.left+(RND*300
else
bb=true
endif
if (aa=true) and (lable1.top>=0) then
(lable1.top=lable1.top-(RND*300
else
aa=false
endif
if (bb=true) and (lable1.left>=0) then
(lable1.left=lable.left-(RND*300
else
bb=false
endif[/align:ba87e5e516]
-----------------------------------------------------------------------------------------------------------------

تطبيق2:
-----------

أ)
-نضع على الفورم من toolbox عنصر Image و نجعل فيه خاصية stertch=true
-نختار خمس صور نسميها (P0,P1,P2,P3,P4) ونضعها في الدليل c:\aaa
-نضع زر على الفورم
المطلوب : عند الضغط على الزر تتغير الصورة لى التي تليها و هكذا و عند آخر صورة تعود إلى بدايتها و
هكذا
نختار العنصر form1 و الحدث load و نكتب :

[align=left:ba87e5e516]Image1.picture=loadpicture("c:\aaa\P0.bmp")[/align:ba87e5e516]
[align=left:ba87e5e516]z=1[/align:ba87e5e516]

نعرف في ال General
Dim z as byte

- نختار الزر command1 و الحدث click ونكتب :

[align=left:ba87e5e516]if z=4 then
z=0
(imag1.picture=loadpicture("c:\aaa\P0.bmp"
else
z=z+1
(imag1.picture=loadpicture("c:\aaa & z &P0.bmp"
endif[/align:ba87e5e516]

ب)المطلوب :أن تتبدل الرسمات دون كبس زر :

* نضع على الفورم من toolbox عنصر timer .
نجعل الخاصية enabled=true و interval=1000
نختار عنصر الTimer و الحدث Timer و نقوم بنسخ نفس الكود المكتوب في العنصر

command1 و الحدث click .

ج) نريد الزر أن يعمل الآن بالشكل التالي :

عند الضغط على الزر يبدأ العمل بشكل أتوماتيكي ..و عند الضغط على الزر مرة أخرى يتوقف عن العمل

..و يقف عند الصورة ..ثم نضغط مرة أخرى ليتابع ..و هكذا :
-نضع على الفورم زر نسميه CMD1
-نختار العنصر form1 والحدث load ونكتب :

[align=left:ba87e5e516]cmd1.caption="تشغيل"
timer1.enabled=false[/align:ba87e5e516]

-نختار العنصر CMD1 و الحدث click و نكتب :

[align=left:ba87e5e516]if timer1.enabled=false then
timer1.enabled=true
"إيقاف"= cmd1.caption
else
timer.enabled=false
"تشغيل"=cmd1.caption
endif[/align:ba87e5e516]
ملاحظات :
--------------
1-إذا أردت أن اضع الصور مع المشروع بحيث في أي مكان نزلت المشروع فإنه يعمل ..
أقوم باستبدال العبارة "c:\aaa\"ب App.path & "\aaa\ &

2- إذا أردت التحكم بالزمن من خلال البرنامج :
-أضع على الفورم text
-نختار العنصر form1 و الحدث load ونكتب :
text1.text=1000
-نختار العنصر timer1 والحدث time و نكتب : (نضيف هذه التعليمة قبل كل التعليمات ) :
timer1.interval=text1.text

أيمن

Ayman syr
21-01-2006, 23:50
[twh:713b1cbce8]الدرس السادس:
==========[/twh:713b1cbce8]

FOR .... NEXT جملة التكرار
================================

الشكل العام :

for i=1 to n step(number)
next i

number:
إذا كان العدد موجب تصاعدي
إذا كان العدد سالب تنازلي :

تطبيقات :
-------------
التطبيق الأول :
=======

كتابة برنامج يقوم بطباعة جملة...السلام عليكم ...وبجورها رقم الحلقة 5 مرات

[Only registered and activated users can see links]

[Only registered and activated users can see links]


[Only registered and activated users can see links]


التطبيق الثاني :
========

1) عند الضغط على الزر الcaption العائدة للفورم تعد من 1 حتى 1000:
- نضع على الفورم زر نسميه cmd1
- نختار العنصر cmd1 و الحدث click ونكتب :
dim i as integer
for i=0 to 1000
form1.caption=1
do events
next i

2) عند التشغيل يكون مكتوب على الزر start عند ضغطه يبدا العد و يكتب عليه stop ..عند الضغط عليه يتوقف العد و تكتب كلمة start و هكذا..
نختار العنصر cmd1 و الحدث click ونكتب :

if cmd1.tag=0 then
cmd1.tag=1
cmd1.caption="start"
else
cmd1.tag=1
cmd1.caption="stop"
end if
for i=0 to 1000
if cmd1.tag=0n then
form1.caption=i
doevents
else
exit for
end if
next i

نلاحظ أنه يجب علينا أن نضغط مرتين عند البدء على الزر حتى يعمل لذلك نضع في الخصائص tag=1
وحتى تظهر الزر مباشرة عليه البدء نكتب في caption = start

3) نريد الآن أن يبدا العد من الرقم الذي أوقفناه عنده و ليس أن يعود بالعد للبدء :
نعرف في ال general متحول
dim N as General
نختار العنصر cmd1 والحدث click ونكتب :

dim i as integer
i=N
if cmd1.tag=0 then
cmd1.tag=1
cmd1.caption="start"
else
cmd1.tag=1
cmd1.caption="stop"
end if
for i=0 to 1000
if cmd1.tag=0n then
form1.caption=i
doevents
else
exit for
end if
next i
N=i

أيمن

amooleh76
19-04-2007, 13:42
thank u for ur information

ريتاج
19-04-2007, 14:53
يعطيك العافية ايمن ...
نحنا هالسنة خذينا هالبرانامج .. كثير حلو ز ممتع ..
بس صعب شوي ..

شكرا..

CrystalTears
20-04-2007, 03:55
يعطيك العافية أخ أيمن موضوع رائع..
لغة VB كتير حلوة وممتعة
و أنا صارلي أسبوع بس مخلصة مشروع التخرج واللي بنيتو بلغة VB .
وفي الأعادة افادة
بالأنتظار... وشكرا

yoos
20-04-2007, 15:06
الله عليك يا ايمن
لغة الفجوال بيسك لغة جميلة و رغم كل اللغات اللي طلعت بعدا الا انها لم تفقد اهميتها
بالعكس ما زالت محافظة على وجودها
هاي كانت مشروع تخرجي ...... بس زماااااااااااااان
كنت حاول حمل برنامج اكواد جاهزة بس للاسف الملف 5 ميجا و المسموح 4.77 ميجا
موضوع رووووووووووووعة يا ايمن شكرا

ملامار
20-04-2007, 19:52
يعني هاد اكتر موضوع فادني ..
لأنو عم ندرسو هالفصل وانا سلامتك فيو ..


بس ازا بتعرف كيف تنزل صوت ..خبرنا .. وازا ما عندك علم ..مش مشكلة بسأل الي والك ..


شكرا كتير

سواح
30-06-2007, 16:03
مشكور جداً على مشاركاتك الهادفة.
أتمنى أن تقبل اقتراحاتي التالية:
1. أليس من الأفضل أن تجمع الدروس ضمن ملفات Pdf مثلاً بحيث يكون لكل درس ملف مستقل، وبذلك يسهل انتشارها لأكبر عدد من الأشخاص و يمكننا الإطلاع عليه في أي وقت و بدون اتصال مع النت ( وهذا يفيدك مستقبلاً إذا أحببت أن تؤلف كتاباً بحيث تكون كامل دروسك و أمثلتك جاهزة و مرتبة).
2. أليس من الأسهل للمتدرب أن تكون الكودات ضمن ملفات Vb جاهزة على شكل أمثلة يمكن للشخص استخدامها و التعديل عليها مباشرة في البرنامج بدون أن يضطر لعملية النسخ و اللصق و من ثم التعديل.
3. كل ما سبق هو للمبتدئين، فأرجو أن تقدم لنا أمثلة أكثر تعقيداً لبرمجيات مفيدة و هادفة.


مع جزيل الشكر

Ayman syr
01-07-2007, 10:16
يا جماعة ..أنا حطيت كم درس و توقفت لأن الموضوع لم ينل الكثير من الاهتمام ..على كل إذا في ناس مهتمة ..انا ممكن كمل الموضوع .. و الدروس ..

الأخ سواح .. ما كتبته أكيد جميل جدا و صحيح ..إنشالله قريبا .