113
مؤلف :لوق محفوظة ل جميع الحق#Mushtaq Talib Rashed 2009 [email protected]## لعامريلب رشيد المبرمج:مشتاق طا أعداد ا1

mushtaq [email protected]## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

  • Upload
    haxuyen

  • View
    260

  • Download
    1

Embed Size (px)

Citation preview

Page 1: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

1أعداد المبرمج:مشتاق طالب رشيد العامري

Page 2: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

2أعداد المبرمج:مشتاق طالب رشيد العامري

لرحيمبسم هللا الرحمن ا

Visual Basic

انغضء االول

االعبعبد انفصم االول

Visual Basic Visual Basic ضهطف ؾحش جظ ذ١ .

ػرحز ػ ىطرس Visual Basic ذحؽ ض١ جف ج طؽ طىح؟ ضم١ح، Visual Basic for Application –جىطرحش ضف ػىز جج ذؿ١س طىحس غ جذطح غس ذؿس Visual Basic . جال ج جطؼحف ػ١ ذ١ جرؿ١ ج VBA ضهط

ذحؽ ض١ جف ىطرحش ضغ١١س، أ ذحنطح طؽ طىح . ه، ػىح ف ج جىطحخ فح جلى ؾ١غ جطؼ٠فحش جحذمس، ف Visual Basic جضكىظ ػ

ج٠ح غس يجش Visual Basic فح جلى جغس جكس BASIC ، __________ جطغ١١س، Visual Basic فح جف ج ىطرحش Visual Basic وجي جؾجءجش– Visual Basic ضطلص ج ذ١ثس جطط٠ جطىحس ي فح -آح ف جفمز جطح١س

جلى ذحؽ ض١ ججف.

نزكبيهخ ثئخ انزطىش ا IDE Windows ذجؿه ح٠ؼه ضطط١غ جؿحح ذحطهىج جذ١ ذحؽ ٠أض غ

–. جال ج Notepad ج ٠ىػ جلحذ يه جه ج -هلل جكى Visual Basic . ال Visual Basicآ ٠ ذحؽ ٠ف ضكص Notepad ٠طهى جي

ضكص ذ١ثس جطط٠ جطىحس ٠ف ه جوجش ف لس جػس ؿطؼس Integrated Development Environment –ضهط IDE - ضف ه آي ح ضكطحؾ

جآجو ذجؿه . ذ ضمى ه نىحش وطحذسط١ جف – جآغ -ن ؿ ، جوجز فحش ػه، ضك٠ جمجت، ضؼى٠ Debugging يه، آنىس جطم١ف

شكمئحء لجػى جر١ححش ... جم 1 - 1. 3

1 شكم - 1 ذ١ثس جطط٠ جطىحس ي .: Visual Basic

ف ج جطؼ ف - VB5 أ ضطهى–جيج آص ؾى٠ىج ػ جر١ثس آحش ج جف ذح جش جال فحه ضىي جطق جإو٠س ج حقس جؼ .

–جطق طى جف ذ١ثس جطط٠ ، جؼ جرد ج ؾؼه -ػ ح جػطمى ضمأ ج جىطحخ.

شكمآح ضالقع ف 1 ، ضكط ذ١ثس جطط٠ ػ جىػ١ ججف جكس1 - ؿػحش جالج ضىػ Menus جؼى٠ى جمجت Child Windows ذح

، ج١ه ٠ح ١ى ضفح١ح: Toolbars ج٠س جالوجش

ىافز ثئخ انزطىش انزكبيهخ جالىج جهح فحطم ج فمز "حفز Visual Basic جيج آص ؾ١ رؿ

" ال ال ٠ؾى أ ة ؾى٠ى جك ه ح. جح ج آص Data View ػ جر١ححشجحفز جت١١س ر١ثس جالؾ جي جاللى، فحي ة لى ٠ى جطرحه أ

Multiple Document Interface –جطط٠ جركص جع طؼىو جطىجش ، طالقع جطحح ػ جف ؾى٠ىز ، ذحالحفس ئ ضط٠ ذؼ MDI ضهط

Page 3: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

3أعداد المبرمج:مشتاق طالب رشيد العامري

ججف جحذمس حفز طىف جع ج جهحت . جي حف يز رىأ ذح ججف جؿى٠ىز:

4

New Projectبفزح يششوع عذذ

الي ز، فح جحفز جقطحي Visual Basic ػىح ضم ذطغ١ س جؼ إآو ظ. فؼ ٠٠مح ضطط١غ جالنط١ح ذ١ أجع ػىز جح٠غ آ

ActiveX DLL ،ActiveX EXE ،Standard EXE جم. قىو جع .... Standard EXE غ ػ ججم Open [ ج جغ١ ػ جفطحـENTER فحمحػىز جحتىز ؿ١غ .]

ج ػ Standard EXE جطؼ٠ف١س ضرىأ جـ وجتح ذحع Visual Basic أوطد جمحػىز، فحص ال ض٠ى ؼفس ٠٠مس ٠رم جىرس لر ج ضطؼ ل جر١!

ف آي ز ضغ ف١ح -ذ١١ - جحفز ضرد ه جػحؼ أضصجيج Visual Basic ضطط١غ جغحء فىز ظح ػ ٠٠ك ضكى٠ى جه١ح ، Don‟t show this

dialog in the future جؾو ف جفح قط ال ضؼى جؾه، ضى ف١مح قط ح٠س جىطحخ.

ذك، فحنطئيج ٠ق ه ج جطغ١١، جوش جؼوز ئ جغ جح: يالحظخ

، ذغ جكج ج ٠ظ Tools لحتس Options …جأل Prompt for ، جم ػ جه١ح Environment جحه جنط ضر٠د

.project Form Designerبفزح يصى انبرط

Visual Basic ، ج جف Visual Basic جحفز ضؼطر ؿحـجالي غ جؼج جالذطىجت حجالىج Form1 ػ ٠٠ك جحفز ضم ذؼ١س .

ض١ جؾس ذحؿه جح ذطؼى٠ نحتح ج غ ذحلس جوجش ػ١ح ذحطهىج Visual ر١س ه لز ؿحـ فىز غحش جرؿس جت١س Mouse جفأز

Programming Languages حش ذحالآجو ج ضؼ١حش. فمى جط ػ ض١ جح Tapesج٠س جطؿ١ . 5.25 آح آح فؼ ف جلج Macro جحآ

٠٠مس غ جالوجش ػ حفز جيؼ جر ح ضى ذؼ١س ذؼحش آح . ج٠ى ج٠ح، ػ١حش جطك٠ آجم جك جم Paint ف ذحؽ جح

جش جط ضؼح.ىػس ػ ؾ١غ جالو حفز جيؼ ج هط حفز جحيؼ جمى: يالحظخ

جقى. ه، طالقع ج جطهى جطف حفز جيؼ ف آآفس جؾحء جىطحخ .

5

Toolboxبفزح صذوق االدواد

ج ذؼى ج ضظ ح حفز جيؼ جحذمس، فح ز غ جالوجش ػ١ح ض 1 شكم Toolbox لطح. جالوجش ؾوز ف حفز ىق جالوجش جط 2 -

Visual Basicأوجز ل١ح١س ىؿس ف ؾ١غ ذجؿه جس ضكص ، 20 ضؼ هحجي جلص- ActiveX Controls لى ضكط ػ ؿػس جوجش جحف١س ضىػ

Buttons ، 21 أوجز جال ج ٠ؾى 20 رىج ؾىج كى٠ع ع ح. غ ج جالوجش ػىوح ج ج جالحف ؾو ف جآ جؼ جال٠ جالوجش ػ ى إ

Pointer ،ظ١فط جالح١س جغحء ػ١س ٠د أوجز . ال ضغ فه ذ آغ١ج ف ٠غ١ ف ضمحت١ح ذؿو جطحته ػ١س ج غ جألوجز ػ حفز

يؼ.ج 1 شكم - 2 ىق جالوجش .: Toolbox

ػىو جالوجش جؾوز ف ىق جالوجش آذ١ج ؾىج، ف١ف ج ضم أجيج ذؼ١س ضم١ جالوجش ج ؿػحش ضهطف ضظ ط ح ثص ػ ٠٠ك Add Tab …جم ذ جفأز جال٠ ػ حفز ىق جالوجش جنط١ح جال

ج جؿػس . ٠٠مس ضظ١ كط٠حش آي وطحذسجمحتس جىس غ ف جالخ ج Drag & Drop ؿػس ضطرغ جخ جكد جالمحء

Page 4: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

4أعداد المبرمج:مشتاق طالب رشيد العامري

ضطرؼ م ج م فحش ؾحن . جن١ج، جيج جوش قف جؿػس، ل ذحم ػ جمحتس جىس، Delete Tab ج جؿػس ذ جفأز جال٠ جنط١ح جال

ضطى قفح. General غ جؼ ج جؿػس جت١س جط ض ٠رى ج ١ص مطس س آ٠ف ضؼ حفز ىق جالوجش ف قحس

View جمحتس . Toolbox جغاللح، ٠ط يه ػ ٠٠ك جنط١ح جال Properties Windowsبفزح انخصبئص

ذؿو جطحته غ جألوجز ػ حفز جيؼ، فح ػ١١ه ص ذكع ػ لغ حفز جهحت جط نالح ططى ضؼى٠ نحت جألوجز ج قط حفز

6

أضص، جهحت جكؿ، جلغ، ج، جؼج .... جم. جيج Form جيؼ ج جغ١ ػ View لحتس Properties Window جحفز هف١س جنط جال

F4جفطحـ ] .] ComboBox ذأوجز جي Visual Basic ف جػ جحفز ٠ؾى لحتس ض ف ػح

ضىه ضكى٠ى جىحت ج جألوجز جط ضو ػ نحت ج. ذحىحه ضكى٠ى جألوجزطالقع ج كط٠حش حفز - ػ حفز جيؼ-رحز ذحم ػ١ح

جهحت لى ضغ١ش . ج٠ى ج٠ح، ٠ىه جنط١ح ٠٠مس ضض١د ؾىي جهحت جح . ذحرس ؿىي، فح جؼو Categorized ج ف Alphabetic ضض١د جذؿى جال٠ ٠ؼ ه جهحت جطفز ألوجز جح جال٠ ف١ؼ ل١س آي نح١س

. ذؼ جهحت ضطط١غ ضؼى٠ح رحز ذىطحذس ل١س ػىو٠س ج جهحت ج Visible ، ذؼح ػ١ه جنط١ح ل١س ػىز ل١ آ Caption قف١س آ ، حن ع ٠ظ ه ذغ غ١ ف جل BackColor ؿػس ـ جالج آ

ج١٠ جؼو ىطخ ػ١ غالظ مح٠ "..." ٠مى ذ ىق ق Dialog Box Fontن١حجش جحف١س آجهح١س .

Project Explorerبفزح يغزكشف انششوع

ضوجو ج١س جحفز ذحو٠حو ػىو جفحش جطحذؼس ػه، ف ج١س جق١ىز جط ضىه ػ كط٠حش ػه ضرس ػ ى ؿ ذ

جطؼ١حش . ضطط١غ جي ج جفكس هطفس ضؿى قح فال ج ف ف [. ج F1جط جلىح ػ ٠٠ك ضكى٠ى جحفز غ جغ١ ػ جفطحـ ]

ضى حفز طىف جع ظحز جحه، ضطط١غ ػح ذحنط١ح جالProject Explorer لحتس View [. [ ج جغ١ ػ جفحض١فCtrl +R

واد بفزح يحشس االآ Code Window

جآجو ضؼ١حش جغس . ػ وطحذسػ١ه ضأو١ىغس ذؿس، فرى Visual Basic ذح ج ٠٠ك حفز ك جالآجو ٠ىه ػ يه، ف ضف ه ك ذؿ يآ ؾىج ك آحش ٠فطف ف جرؽ ىطحذس جالآجو . جحد ج ج ح ذح

خ ج٠ ٠طهى ظ ضىػ ؿػس كحف ج١فزذؼ جرؿ١ جؼ وطحذس٠جؾ جق١حح حآي ف Windows 2000, XP آ Unicode جقىز

جكف جؼذ١س، جرد نحؼ ظحق جفمز ى قح ٠ط ػ ٠٠ك ضغ١١ ع . ٠ىه ػ ي Courier New (Arabicج ن١ ٠ىػ جغس جؼذ١س آ ) Font جه١

جؾوز ف ىق جكج Editor Format يه ذحطؾ ج نحس جطر٠دOptions ج ض ج١ ػ ٠٠ك جنط١ح جال Options . لحتس Tools

7

ذحىحه حىز حفز ك جالآجو جح ذحم جوؼ ذحفأز ػ جألوجز ج حفز [. جن١ج، جيج آص ال ضكد حىز جفال F7جيؼ، ج ذحغ١ ػ جفطحـ ]

جػد جرؿ جطػس ف جالآجو جط٠س، ضىه جحفز ػ جؾجء جؾو ف Procedure View ؼ١ جنفحء حت جالآجو ػ ٠٠ك جم ػ ج

سجآ جف جال٠ جحفز، ى ػ١س جطم ذ١ جالؾجءجش طى جؾوضح ف جػ جحفز، ComboBoxes ذؼ جة ػ ٠٠ك جمحتط١

جمحتس ج١ ضؼ ؾ١غ جالوجش جؾوز ف حفز جيؼ جكح١س، ذحالحفس

Page 5: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

5أعداد المبرمج:مشتاق طالب رشيد العامري

( ض١ ئ ل جالػالحش ف Generalئ جيؼ فس، آيه جؼرحز ) ضم ذححءح، جمحتس ج١ ضؼجيؼ آيه جالؾجءجش جىجي جط

ؾ١غ جالؾجءجش جالقىجظ جضرطس ذح ٠ط جنط١حز ف جمحتس جال. Form Layoutبفزح يخطػ انىرط

٠إو ج ظ View جؾو ف لحتس Form Layout Window جنط١ح جالحفز جيؼ جط ضحجحفز جط ضؼط١ه ؤ٠س رطس ػ لغ قؿ

لص جطف١ جحس . جال ج جفحتىز جىر جط ضؿ١ح جحفز ضى جهطفس حس . Resolutions محس قؿ حفز جيؼ غ جىػحفحش جمط١س

Resolution ؼ جىػحفحش، جم ذ جفأز جال٠ ػ جحفز جنط جالGuide .جمحتس جىس

Immediate Windowبفزح يىعخ االوايش

جج ضؼ١حش غس وطحذسضىه جحفز Visual Basic ذ١طس النطرح جطؿذس، لى ضكطحؾح ػال النطرح ج ؼ١ ج ل١س طغ١ ؼ١ لر غ جىو .إو ج ج ضف١ جال . ضطط١غ ػ[ ٠ ENTERذؼى ج ضىطد جال، جفطحـ ]

View لحتس . Immediate Window جحفز ذحنط١ح جال Object Browserبفزح يغزؼشض انكبئبد

جيج آص رطىءج فا جحفز ضػ١ جطحه ، ى ذؼى ج ض ج قسفز ضمى٠ آ ذ١ . ضؼ ه١ى جح Visual Basic طمىس جرؿس خ جحفز ؾ١غ جفثحش جؾوز ف جىطرحش جس ف ذحؿه غ آآفس ٠لح، نحتح جقىجغح طؼط١ه فىز ػحس ػ كط٠حش جىطرحش . ١ز

جح ض ػ١ه ػ١س ج٠ؿحو فكس جطؼ١حش جهحس وػ١ج جن جطهىح ض٠ى ػ ٠٠ك ج م ذ جفأز جال٠ ػ جؼ جطخ جنط١حذحال ج

جمحتس جىس . ضطط١غ ػ حفز طؼ جىحتحش ذحنط١ح Help جال F2ج جغ١ ػ جفطحـ ] .] View لحتس Object Browser جال

8

Local Windowبفزح انزغشاد انحهخ جحفز ٠ظ ف لص جطف١جغ جت١ Run Time الح ف لص ،

١ ح أ ظ١فس ج٠ؿحذ١س فال ضؼح قط ال ضطجق Design Time جط١ Local ججف جحه. ضؼ ه جحفز ل١ ؾ١غ جطغ١جش جك١س

Variables جؾو ف جالؾجء Procedure ١ جيج لصجكح ج ٠ط ضف جشأحورحؽ . ف قحس ؾو Pause ذؼ١س جال ٠محف جإلص Objects ك١س ف

جالؾجء، فح ج جىحت ١ظ ف جؿىي الك ؼالس ججتى "+" قط ضم ذحم ػ١ ٠ؼ ه ؾ١غ جهحت ل١ح جطحذؼس ج جىحت . ؼ

View جمحتس . Local Window جحفز جنط جاللص جطف١: يالحظخ Run Time جقس جط ٠ط ضف١ ذحؿه ف١ح –

Design Time [، جح لص جط١ F5ذؼى جغ١ ػ جفطحـ ] ف جقس جط ض ذحؿه ذ ج. ٠ؾى لص نح ٠ؼف

ذحنطح ػ١س Break ج جمطغ Pause Time ذحال٠محف جإلص جلف جإلص طف١ ذحؿه ى ١ جحت.

Watches Windowبفزح انشالجخ ضىه جحفز جلرس جطغ١جش ج جؼرحجش جط ض١فح ذ ج. ػ١س

ججلرس ضى طجس و٠س جطكى٠ع آجز جالػال . ذحىحه ضؿ١ى ػ١س ضف١–جرحؽ ف قحي آ ل١س جطغ١ جركص ك١كس -جال٠محف جإلص True ج ،

ػى أ ضغ١١ ٠طأ ػ ل١س جطغ١ . جىف حفز ججلرس ١ آجىجف جز ؼفس ل١ جطغ١جش جط Debugging جالػال، جح ض١ ػ١س جطم١ف

ؼ جحفز جنط جال جرجؽ. Bugs % جرحخ جتد 90 ضى رس Watch Window لحتس View الحفس طغ١ ج ل١س ؿؼح نحؼس ضكص ،

ج جم ذ - View ١– Debug لحتس Add Watch …ججلرس، جنط جال

Page 6: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

6أعداد المبرمج:مشتاق طالب رشيد العامري

جفأز جال٠ ػ جحفز غ جنط١ح ف جال جمحتس جىس . ج١زز ف جحفز ضغط ػ جم جؾو ف جحفز جحذمس، الجؾو

Global جحفز ضف ذححفس جطغ١جش جؼحس . Call Stackبفزح اعزذػبء االعشاءاد

ضطحذ جحفز غ جحفض١ جحذمط١ ف أح جف نحس خ جطم١ف. ضؼ ١ط جطىػحتح، ضف١ىن جحفز ذمز ف جحفز ٠حذ الؾجءش جط

. جن١ج، ذحىحه ػ Recursion قحس جطهىجه الطىػحءجش جطجؾؼ١س9

جحفز لص جال٠محف جإلص ف قحي ؾو جؾجءجش طظز جالطىػحء ػ ٠٠ك Ctrl+Lج جغ١ ػ جفحض١ف ] .] View جؾو ف لحتس Call Stack جال

بفزح ػشض انجببد Data View

لحتس Data View Window ضطط١غ ػ جحفز ػ ٠٠ك جنط١ح جالView ج جم ػ ح ف ١٠ جالوجش جم١ح Standard Toolbar ضؼطر . ، ف IDE حفز ػ جر١ححش جقىظ حفز ونص ىق ذ١ثس جطط٠ جطىحس

جال ف جالىج جالن١ جىججشضظ Visual Basic جحو . جحفز –جر١طس ف ظح ضؼطر جل حفز ججف جط يآض ج! الح -و رحغس

ضؼطر ذحؽ آج جلرس، ئحء، ضؼى٠، قف ػ ؾىجي قمي لجػى .... جم. ORACLE ،MS-Access ،MS-SQL Serverجر١ححش ذحنطالف أجػح ػ: ه، فح جرى٠ ج ال ١غ لطح فح جال، فحؿء جػح جؾجء

جطط٠ جيج آص ض٠ى!-جىطحخ "ذؿس لجػى جر١ححش" ج طف١

لىائى ثئخ انزطىش انزكبيهخجطط٠ جطىحس ف جفمز، جيج ضكىغص ػ آي ج جج لجت ذ١ثس

–. ف١طك MSDN ف١ى جىطحخ جر ذ جؾغ ج ٠ط ـ ظ١فس - ه جال ف ق١ جطهىج، جال ج أػفه ػ جمجت ذط٠مس رطس:

:انمبئخ File

حءأضكط جمحتس ػ جج جح١س نحس ح٠غ ذى ػح، ؾى٠ى، قفع كط٠حش جع، ٠رحػس كط٠حش جع ضؾسع

جىح١س VB6 . ج١ز جط ج١فص ي Binary جع ضك٠ ج ف غحت فطف جآغ ع ف هس جقىز جر١ثس، ١ز ضؼف ذحح٠غ

Multiple Projectsجطؼىوز .:انمبئخ Edit

ػ جج جطك٠ جم١ح١س آجم، جم جك . ذحالحفسضك جمحتس ج جج نحس ذمجػى جر١ححش ف قحس ؾو لحػىز ذ١ححش ف حفز ػ

. ؼظ جالج ججوز ف جف جمحتس ضطهىح غ Data View جر١ححش Code Windowحفز ك جالآجو .

10

:انمبئخ View

ؼظ كط٠حضح ف فمز "جف ذ١ثس جطط٠ جطىحس "، ذحال ػطحو ػيآش رحطه ى جطؼ١رحن ٠ىه ؼفس جغ جمحتس.

:انمبئخ Project

ؼظ ججح نحس ذكط٠حش جح٠غ، ف ضىه جحفس ػ ج ػحجرؿس ، فحش Forms ػح جع آجف جحيؼ Module فثحش ، Classes

جحف١س ػ ActiveX Controls .... جم. ج٠ى ج٠ح، ٠ىه جحفس جوجش ضكى نحؾ١س ػ ٠٠ك جال ActiveX DLL ج ض١ ىطرحش Components ٠٠ك جال

.References :انمبئخ Format

ط ضؼح ػ حفزجالج جؾوز ف جمحتس نحس ذط١ك جالوجش ج جيؼ حق١س لؼح ػ جحفز، فطؾى جج س ضف ػ١ه ؾى كحيجز

Page 7: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

7أعداد المبرمج:مشتاق طالب رشيد العامري

جالوجش ج ض١طح ػ جحفز، ذحالحفس ج ضغ١١ ضض١د ظ جالوجش أ غ ضطهى Lock Controls أوجز فق جى ج أوجز نف جى . جال جالن١

__________ آصجيج ج١ح ػ ض١ جالوجش ضو غ فه ضغ١١ جقؿحح ج جلؼح ػ ٠٠ك

جهطأ، ج جمف ضطط١غ فطكس ذى ذح٠س ذحنط١ح ف جال ز جن.:انمبئخ Debug

ؼظ جج جطم١ف ؼص جف جمحتس . جالج جنط١ح ٠٠مس ضف١جقى جرحؽ، آضف١ ط Step Into جؾجء آج ، Step Over ج حذك ،

Step Out ج جطف١ قط جي ج جط ج ٠ؾى ػ١ إ جىطحذس Run to Cursor ذحرس مح٠ جمطغ . BreakPoints ف ػالحش ضظ رىت١ح ذح

حؽ ػى جيجالق ػ ط ؼ١ ذك١ع ضط ػ١س جال٠محف جإلص ر ج جؼالحش.

:انمبئخ Run

ػ ٠٠ك جحفز جر١طس ضص ١٠غ ضف١ جرحؽ ضطىه جنط١ح جالج . ذحرس ال End ج جحء ػ١س ضف١ جرحؽ Break جالن آجال٠محف جإلصStart with Full Compile حذ ال جطف١ Start ضكطحؾ جال ف قحالش

حوز طؿىح القمح ف ج جىطحخ.11

:انمبئخ Query

طفز هس جكطف١ VB5 جمحتس ؾى٠ىز ػ رؿ Professional Edition جإحش Enterprise Edition . الىج جحوVB6 ذحطهىج جألوجز SQL جج جمحتس غ١ ىس قط ضة ؾس جطؼال

.Microsoft Query Builder :انمبئخ Diagram

طفز ف جم جآز ف VB5 ج٠ح لحتس ؾى٠ى ز ػ رؿ جفمز جحذمس . جج جمحتس غ١ ىس جال ف قحس ضؼحه غ لحػىز ذ١ححش

SQL Server . جORACLE :انمبئخ Tools

جج هطفس جطح١ف آك جمجتضكط ػ Menu Editor وطحذس IDE غ١ح... جيج جوش ضه١ ذ١ثس جطط٠ جطىحس Add Procedure جالؾجءجش

ج ٠ف ه Options ٠ىه جي ج ىق جكج Options فحالجطط٠ .ػجش جه١حجش جهحس ذطغ١١ جػىجوجش ذ١ثس IDE

:انمبئخ Add-Ins Add -جالج جؾوز ف جمحتس ػرحز ػ ذجؽ طمس ض جالحفحش

Ins ىفح ضف١ نىحش جحف١س ر١ثس جطط٠ ض٠ى ط ج. ضط٠ ج جع جرجؽ نحؼ طحق جىطحخ.

:انمبئخ Window

جمحتس، ف١رى جه ؾى٠ى ١ ػجيج آص ذكحؾس ج ـ كط٠حش Visual Basic فكد جح ػ ؾ١غ ضطر١محش ذ١ثس Windows فحف ـ جط ه ، – ذح ضلف لجءز جىطحخ ف جكحي، ضكحي جطؼف ػ ذ١ثس -جال٠محف جإلص

Windows .غ ضؼو طحذؼس جمجءز :انمبئخ Help

الىج جحو ذحرس طهى ج Visual Basic ف ٠طىج جي ، Microsoft Developer ج جطؼ١حش جف٠س جال ف قحس ججي هس ىطرس

Network . جأفس ذحالنطحMSDN 12

اششغخ االدواد ؾ١غ جالج جؾوز ف ج٠س جالوجش نس جمجت جحذمس، فال٠ؾى

Page 8: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

8أعداد المبرمج:مشتاق طالب رشيد العامري

وجػ الػحوز جـ. جح جغ هح ف ض٠غ ػ١س جنط١ح جال. MS-Office ضطط١غ جطكى ف ج٠س جالو جش ضك٠ح آح ضفؼ غ ضطر١محش

جمحتس Customize ذحغ١ ذ جفأز جال٠ ػ ١٠ جالوجش جنط١ح جالجشجىس. جقد ج ج ح ذح ىق جالو ToolBox لى جوؾط فمز

جف ذ١ثس جطط٠، فال ضؼطمى ج فثس ج٠س جالوجش غ جر جىر١ ذ١.

ثشبيغك االول كزبثخ اله ج جحس جططر١ك جقى ج ػج ضؼ غحش جرؿس، جف جالي

ذحؿه جالي، جح ج جىطحخ ١رىأ ؼه جحس ١ فم١ ىطحذس ه١س ج أضصط١ف ججق جهطجش ج١س ؼ١س ذحء جرجؽ جء

ضؿح٠س.

فكشح انجشبيظ: انخطىح االون ال ذح غس جن ال قط ذظح Visual Basic لىز جرحؽ ١ص ح ػاللس خ

ؼفس ح ج ض٠ى جطغ١. ف جرى٠ جه لر ج ضىطد ذحؽ ػ١ه جرحؽ. لى ضأض١ه فىز ذحؽ ذ١ح ضمد فكحش جىطحخ ج طأال جؿ ف ف جح، لى ضى جفىز جج١س ػ١ه آق ىس ضحوفه ف ؾحن ج

ع ضهؼ ؾحؼ.حذؼى ج ضهط جفىز ف ذحه ضظ رس ١ثس فق أه، جكد جرس آذ ف جالذؿز جؿحز ؿحن، قط ضآ ضم ذؼ١س جطهط١١ ططر١ك جفىز

–آذحؽ ٠ خ -ػ جالؾف Visual Basic قىو جططرحش جحآي جط ، Software طحوفه. ػ جال ضىؼ ضكص ػ ىس جرجؽ

Engineering . ه، حنط جفمز ذحفىزجطكىظ ػح نحؼ طحق جىطحخ جط م ذطف١ح ػرحز ػ ذحؽ ٠ؿ ػ١س جخ ذ١ ػىو٠.

ئشبء انششوع: انخطىح انضبخ ذؼى ضكى٠ى فىز جرحؽ ض١ف جططرحش رىأ ذاحء فحش جع . ل

. ج جع Standard EXE غ قىو جع File لحتس New Project ذحنط١ح جال13

، ػى Windows جح٠غ ح٠غ ذحء ذجؽ ل١ح١س ضؼ ضكص ذ١ثس EXEجطؾس ضى فحضح جع .

ذؼى ل١حه ذؼ١س ئحء جع جؿى٠ى، ل ذىطحذس ج حد ع ف Project Properties …جؾوز ف ىق جكج Project Name نحس ج

ج أوطد. ج View لحتس Project1 Properties ج ض ج١ ذحنط١ح جال MyFirstProgramجذطىجت ع ١ى .

٠ى ػج جال جحذك هطف ج ع ج آن . فرؼى: يالحظخ MyFirstProgram ضؼى٠ه ال جع، ١ى ػج جال

.Properties… كفع فحش جع، ضآ ج جع File لحتس Save Project جنط جال نح ذفحش جع Folder ٠كط ػ ػىز فحش ه ٠ف جحء ؿى

، جح جفحش جالن ف VBP لر قفظ . ف جع جت١ ٠ى جطىجو .*، فحش BAS .*، فحش جرؿس FRM ػح ىس ع آجف جحيؼ

.* .... جم. CLS جفثحش

رصى انىاعهخ: انخطىح انضبنضخ ٠ىؼ ضكص ف غحش جرؿس جت١س، فؼ١س ض١ Visual Basic ذح ج

ججؾس ضط ف جغحد ذحطهىج جفأز . رىأ ف جؼحوز ذغ جالوجش ػ حفز٠ نحت ج. ػ١س غ جالوجش ػ حفز جيؼ ضطجيؼ غ ضؼى

ذى حذ جذؼحش ف ذجؽ ج، جيج آص ضجؾ ؼذس ف ػ Paintيه، فىخ فه ذغ ولحتك ػ ذحؽ جح .

Page 9: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

9أعداد المبرمج:مشتاق طالب رشيد العامري

جج Label غ أوجز ػج ToolBox جطم ج ىق جالوجشCommandButton جوجض TextBoxes جألوجز Line جه١، غ ضد

نهشكمجالوجش ذى حذ 1 - 3:

جؾس جحفز جت١س رحؿه جالي.: 14

ذؼى ضض١د جالوجش كحيجضح رىأ ذؼ١س ضؼ١١ نحت ج. قىو جألوجز ذحم ػ١حآح ف جؿىيجطم ج حفز جهحت ل ذطؼى٠ ل١ نحت جالوجش

جطح: االداح انخبصخ انمخ

حفز جيؼ جالج

أوجز جؼج أوجض ج

Name Caption

Name Caption

Name Caption

Name Caption

Name Caption frmMain

"جرحؽ جالي"cmdMultiply

"جخ"lblProduct

"0" txtFirst

"0" txtSecond

"0" ضمح١ى رؿ : يالحظخ Visual Basic قف ذحوتس لر ج جألوجز وطحذس

frm ذك١ع ٠طىي جرؽ ػ ع جالوجز ػ ٠٠ك جأل آ هحس ج .... جم، طالقع txt جالج، cmd حفز جيؼ،

ؼح ذى ؾ١ ف جىطحخ طى ذؼحوجش ضمح١ىأوطرج ؿ١س.جر Visual Basic جقجخ

ذه ى لى جط١ح جهطز جػحػس: ض١ ججؾس.

انزؼهبد كزبثخ: انخطىح انشاثؼخ جطؼ١حش ج جالآجو وطحذسجاللطحع ذظح جفحض، ضرىأ نطز سذؼى ض١ ججؾ

أ نطز جرؿس جفؼ١س . ل ذحم جوؼ ػ جالج، طالقع ج حفزجالآجو ك Code Window :لى ج١ش ظ ذح ج جىو

Private Sub cmdMultiply_Click)( End Sub

15

أ آو ضىطر ذ١ ج ط٠ جحذم١ ١ط ضف١ جيج ح لح جطهى ذحم . ففس cmdMultiply جطحذغ ألوجز Click ػ جالج، ف ىح جكىظ

Page 10: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

11أعداد المبرمج:مشتاق طالب رشيد العامري

، فحالآجو ال ٠ط ضف١ح Event Driven Programmingجرؿس ج١ز ذحالقىجظ جي ط ج جن ط آح ف جحذك . آق جط ج جذك ذىطحذس جىو

جطح جهح ذحؾجء ػ١س جخ:Private Sub cmdMultiply_Click)(

lblProduct.Caption =CDbl(txtFirst.Text * )CDbl(txtSecond.Text) End Sub

ج ضف جغ جىو جحذك، فحفي جمحوس آض١س ج١ه، طؿى ف١ح–جؿجخ جحف، ى جػف جال ج جىو جحذك ٠م ذؼ١س -ذى إلص خ جم١ جط ١ىطرح جطهى ف نححش ج ١غ حضؽ جخ ف

أوجز جؼج.

انزغشثخ وانزؼذم: انخبيغخ انخطىح [ طف١ جرحؽ. طظ ه حفز جيؼ جط F5ل فج ذحغ١ ػ جفطحـ ]

جالػىجو أوطدطح آجفس جال وجش كس ذح، ج ف نححش ج غ 5 2 الؼح ف أوجز جؼج. 10 جم ػ ج "جخ" آ ضك ػ جحضؽ

ج ؾىج ؿحـ ػ١س ضف١ جرحؽ، فطآ ج ػج جهطزجيج آص "جطؿذس جطؼى٠ " ١ "جطف١ "، اله طط القمح الػحو ز ضم١ف ذحؿه ١–ذؼىح ضىطف جىس جر١طس جيج لح جطهى ذىطحذس قف

"جخ "، طالقع ظ حسف نححش ج غ لح ذحم ػ ج -جػىجو نطأ، ١طلف جرحؽ ػ جؼ . ٠ؼف ج جع جألنطحء ذحنطحء لص

طهطف ذ ؾس جفقس ذحآضحي ذحؿه جالي، ال Run Time Errors جطف١Visual Basic :ال ٠ؿ ػ١س جخ ػ جكف، فال ضطلغ ج

آ ضآ= ضآ ضآ ضآ ض 5ضآ * ه، ػ١ه ذحػحوز ػ١س ضؼى٠ جىو ١طكمك جم١ جىنس لر

جطهى لر جؾجء ػ١س جخ ػ١ح، ٠رف جى جحت ىو جؼىي جىو جؾو ف جفكس جطح١س:

16 Private Sub cmdMultiply_Click)(

' جطكمك جم١ جىنس١س جخ ػ١حلر جؾجء ػ '

If IsNumeric(txtFirst.Text = )True And IsNumeric(txtSecond.Text = )True Then lblProduct.Caption =CDbl(txtFirst.Text * )CDbl(txtSecond.Text)

Else MsgBox"!جم١ جىنس غ١ ك١كس"

End If End Sub

ضفحو جالنطحء، جح ض١ف جىف جهطز ١ ـ جالآجو ج ٠٠مس ل١س جطؿذس جطؼى٠ ذ١ح ج١طح لر جالطحء ض١ جرحؽ.

انزشعخ: انخطىح انغبدعخ جض ج ضى فقس ؿحـ ذحؿه لى ػحوش ؾى٠ى، جهطز جالن١ز جط

ؿه ج، جمو ح ػ١س ضك٠ ذح Compiling م ذح ضؼف ذحطؾس Make ، ٠ط يه ذحنط١ح جال EXE ذحالطىجو Executable ف ضف١

MyFirstProgram.EXE . لحتس File ف ؼظ غحش جرؿس جالن، جطؾس: يالحظخ Compiling ضى ػ١س

Visual . جح غ EXE جط ضطؽ فحش Linking لر ػ١س جذ١Basic فحطؾس ، Compiling . ف جذ١ Linking

ج١ز ف ػ١س جطؾس جىح١س ضف١ ذحؿه ػ ؾ١غ جالؾز جط ذحنطالف جىججض جط ال ضكط ػ هس Windows ضك ظح جطغ١

Visual Basic ٠طس ؾو ذؼ ىطرحش DLL جط ضأض غ Visual Basic ؼ ،

Page 11: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

11أعداد المبرمج:مشتاق طالب رشيد العامري

سجذح ىطر MSVBVM60.DLL ه، ػ١ه جفحق جىطرس غ ف ذحؿه . Visual Basicج جالؾز جالن جط ال ضكط ػ . EXE جت١

17

انفصم انضب

انبرط واالدواد ، جيؼ Window جوف حفز Visual Basic طف نح خ Form جيؼ

ذط١ح ضظ ف لص جطف١ آحت جف ضطر١محش ذحفؼ حفز ضم Windows جح جالوجش . Controls ف جف ج٠ح، ى ع نح ضغ وجتح وجن جحيؼ ضكط ف١ . ج ج جفص جظ ج ؾو ػ١ جالوجش

وجش جىجن١س، جع جالي جال Visual Basic جط ٠ى جطهىجح غ Built-in Controls -ج جؿ٠س Intrinsic Controls - جؼ٠ أوجز جؾوز رىت١ح

1ف حفز ىق جالوجش Visual Basic . ؾ١غ ذجؿه جس ضكص2 - س ذ جالوجش قط ضطهىح، ف س ف ىطرس

MSVBVM60.DLL طف١ ذجؿه . جح جع جػح جالوجشجط ٠ط٠ ؾوح OCX جوجش نحؾ١س ٠ى جطىجو ف جضح . ActiveX Controls فطؼف ذحال

الطهىج ج جع جالوجش، ػ١ه جحفطح ج ػه ػ ٠٠ك جنط١ح Project لحتس . Components جال

جشأحوآز جقىز جح جحيؼ جالوجش ضطحن ف فس ط Objects ذح . ض جالػحء-جش، ف ضطى غالظ ػح أحوجح Members - ض١ جىحتحش

. آي Events جالقىجظ Methods ، جطق Properties ػ غ١ح : جهحتجشأحو أحو Visual Basic ػحء٠كط ػ جػحء نحس ذ، فحيؼ ج

طمس أوجز ج ح جػحء طمس، جال ج جحيؼ جالوجش ضكط٠ح ػ ػجش جالػحء جطآز ذ١ ج. ه، ؾىش جالف ج جذىأ ذؼ جهحت،

ػ أحوجطق جالقىجظ جطآز ذ١ جحيؼ جالوجش، غ يآ جػحء آي قى.

انخصبئصضإغ جح ف جى جهحؾ ألوجز آجهح١س ل١س Caption ج ف ن ،

. حفز جهحت جىح ج ٠ىه ضغ١١ ل١س Enabled ػ جألوجز آ18

جىو ج ضى ١غط وطحذسجهح١س لص جط١، جح لص جطف١ فؼ١ه رطىتس ذح جألوجز فمطس غ ج جهح١س:

” جؼحضآ “ = Text1.Text PictureBox1.BackColor =0

Label1.Caption =Text1.Text

جيج آص ضغد ضؼى٠ ؿػس نحت ىحت With ج جطهىج جىس جكؿز ج جوجز ؼ١س:

With Text1 " = .جؼح"ضآ Text

.Font.Bold =True .BackColor =vbBlack .ForeColor =vbWhite

End With

، ضغ١ه Default Property ضط١ ذؼ جألوجش ذؾو نح١س جفطج١س ح ضؼف خ جهح١س ػ آ ضحذس ج جهح١س ذؼى جألوجز جيج جوش ضغ١١ ل١طح ذؿ ج. Text جهح١س Caption ؼظ جالوجش جىجن١س ضى نح١طح جالفطج١س

ألوجز ج:” جالفطج١سجهح١س “ = Label1.Caption

Page 12: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

12أعداد المبرمج:مشتاق طالب رشيد العامري

“جهح١س جالفطج١س” = Label1 Text1 =“Text1.Text”

ذحرس حفز جيؼ، ٠ىه جي ج نحتح و جالطج ذح١غس ج قط ضؿحح: Me جحذمس فططط١غ جطهىج جىس جكؿز

„ؾ١غ جالآجو جطح١س طحذ “جحفز جت١س” = Form1.Caption

“جحفز جت١س” = Me.Caption “جحفز جت١س” = Caption

ج ج جر ح ئ ج ١ص آي جهحت لحذس طؼى٠ لص جط١ جطحذؼس حفز جيؼ ال٠ىه ضؼى٠ح BorderStyle جطف١، فرؼ جهحت آ

19

جهح١سلص جطف١، ػ جؼى CurrentX - ال٠ىه -جطحذؼس ف جىحت ضؼى٠ح جال لص جطف١ . ج٠ى ج٠ح، حه ذؼ جهحت غ١ لحذس طؼى٠

–طمح آجهح١س -ال ف لص جطف١ ال جط١ hWnd ف نحت ضمأح ، Read Only Properties فم١ ضطف١ى ل١ح ضؼف ذهحت جمجءز فم١

ف لص جطف١ ج جط١ ج آال ج. ػ جؼى، ٠ؾى ع جهحت ال ضطط١غ لجءضح ف لص جط١ Write Only Properties ضؼف ذحىطحذس فم١

ج جطف١ ج آالح. ج٢ وػح طؼف جآغ ػ جهحت جطآز الوجش، جرىج٠س طى غ

. نح١س جال Name

Nameخبصخ االعى ضؼى٠ جهح١س ى ف لص جط١ فم١، جهح١س جط ضػ

جال جرؿ ألوجز . فحال ج ضىطر ف جهح١س جال ج ضطهى ذؿ١ح ي ج نحتح، ٠لح قط جقىجغ ج. آ١كس ال ضكحي

جىػر جالآجو، فح يه ١طن ج ضغ١١ وطحذسى جذىج ضغ١١ ج جألوجز ذؼ ؾ١غ جالآجو ال جحذك ألوجز . ١كس جن، ال ضكحي جالػص حو ػ جالحء

Form2 ،Form1ػى ذىج٠س جألوجز آ ، Visual Basic جالفطج١س جط ٠فحLabel1 يجآضه. آيه.... جم، فىػز جالحء ضرد ه ض٠ ػ

الضطط١غ جنط١ح ج ألوجز حوج ال ٠كمك ج٠ جطح١س:ال ٠رىأ ذل. -

ال ٠٠ى ػ - قف. 40 ال ٠كط ػ حفس ج ػالحش آ - ، ؟، " .... جم.&

ال ٠ى كؿ ال أوجز جن ف ف جيؼ ج ج يؼ جن ف - –ف جع وجش آح ١أض ذ١ح القمح.ذحطػحء ففس جال

خصبئص انىلغ وانحغى أ ضكط ػ–نحت جلغ جكؿ ؾوز ف ؾ١غ جالوجش جمحذس ظ

ف جرى٠ ج ضى Timer ، جح جالوجش جالن آأوجز جإلص Visible جهح١سلص جطف١. جهحت غ١ ؾوز ٠حح ج جألوجز غ١ لحذس ظ جذىج

ضكىوج لغ جج٠س جؼ٠س ج١ ألوجز ذحرس Left Top نحت جلغ ج جألوجز جكحس ح ج لغ جج٠س جؼ٠س ج١ حفز جيؼ ذحرس ج

جحس. جقىز جطهىس ف جقىز جكىوز ف جهح١سScaleMode س . جح حفز جيؼ، فىجتح ضى جقىزجطحذؼس ألوجز جكح

20

آح ؼف القك ج. جيج آص ض٠ى ض١١ Twip جطهىس طكى٠ى لؼح جي جألوجز لص جط١ ف حفز جيؼ، قىو جألوجز غ جنط جقى جالج جؾوز

لص جطف١ فج، جح ف Format لحتس Center in Form ف جمحتس جفػ١س جىو ٠ف ذحغ:

Command1.Left ( =Me.ScaleWidth - Command1.Width / )2

Page 13: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

13أعداد المبرمج:مشتاق طالب رشيد العامري

Command1.Top ( =Me.ScaleHeight - Command1.Height / )2

ف ضػ ػ ٠ي جألوجز ذف Height Width ذحرس هحت جكؿ ضطط١غ ضغ١١ ل١سجقىز جطهىس هحت جلغ . ف قحالش ؼ١س

– ComboBox رؼ جالوجش آأوجز جي Height جهح١س نح١طح أضصجيج Style ج طى ؼطىز ػ ع قؿ جه١ Height ، فم١س جهح١س0 ح

فا - ListBox آأوجز–جطحذؼس ح. ذؼ جالوجش Font جطهى ف جهح١س ول١ك ضحح، فم١س جهح١س ضػ ػىو ١ Height جطكى ف نح١طح

جضفحع آي ط، فال ضطلغ ظ ؾء ط ال ط ج x جط جؾوز ف١ح جح أ ضؼ آجس ج ال ضؼ.

خصبئص االحزعب ج حفز Reference ضػال ؾغ Parent Container نحت جالقطح

جهح١س جيؼ جكحس ألوجز ف Parent . ج جألوجز جكحس ألوجزContainer Container أ ال ٠ىه ضؼى٠ح، جح جهح١س– مجءز فم١ Parent جهح١س

ف لحذس طؼى٠ ف أ لص ض٠ى ضغ١١ جألوجز جكحس ألوجز: PictureBox „جونحي جالج وجن

Set Command1.Container =Picture1

الذى جطهىج جؼح: يالحظخ Set ف جىو جحذك، اله ضم

ذححو ل١ ىحتحش ١ ل١ ػحو٠س، جف جهح ١ف ه ذ١ثس هللا. Set جرحخ جطهىج جؼح

– جس جط ضفح ه حضح جهح١طح جىح١س جي ج جػحء حفز جيؼ جكحس ألوجز، فحىو جطح ٠م ذطغ١١جألوجز ج -نحت ٠ق

حفز جيؼ جكحس ألوجز: Caption جهح١س21

Command1.Parent.Caption"ضغ١ ػج جحفز" =

جألوجز ؾوز ػ حفز جيؼ ضكطح أوجز جن، فح جهح١طح أضصجيج Parent Container ف جؾغ حفز جيؼ.ضػال

Fontخبصخ انخػ ؾ١غ جالوجش جط ضؼ ػ ؾرطح، ضكط ػ جهح١س جط

ضكىو ف١ح ع قؿ جه١ جؼ ػ ؾرس جألوجز . جلص جف طكى٠ى . جح ف Font جم١س لص جط١ يه ذرد ؾو ىق جكج جأف

Fontلص جطف١، فؼ١ه جطهىج جىحت :With Label1

.Font.Name =“Tahoma” .Font.Bold =True

.Font.Size =20 End With

فىز م ؾ١غ نحت جه١ Font جس جط ٠فح ه جىحت أوجز ج جن:

Set Label1.Font =Label2.Font

جطحذغ ألوجز Font ج ج ضؼ ج ف جىو جحذك لح ذم جىحت Label2 ىح جىحت Font جطحذغ ألوجز Label1 فحىحت Font جـ و ضضر١ أحوجرف

فح Label2 ذ جالوجض١، جى١ ج لص ذطؼى٠ جقى نحت جه١ ألوجز ططأغ ج٠ح: Label1 نح١س جه١ جطحذؼس ألوجز

Label1 „ططأغ ج٠ح جألوجز Label2.Font.Size =20

جغ٠رس ذؼ جة. Font جرد ف جطف جحذك نح ذطر١ؼس جىحت22

جف جهح ٠كط ػ جؼى٠ى جالػس جؼ١س، ٠ؼ: يالحظخ

Page 14: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

14أعداد المبرمج:مشتاق طالب رشيد العامري

طم١حش طمىس ف جطؼح غ جىحتحش ذح ف يه ػ١س م جىحتحش.

ف ضػ ج جه١ ججو جطهىج، ف قحي Font.Name ذحرس هح١س ٠غ ن١ Visual Basic جطهىجه ه١ غ١ ؾو ف ظح جطغ١ فح جفطج ػى، الف ال جطط١غ ج جيآ ذحطكى٠ى ح جه١ ج

. جح ذحرس هط٠ ف ٠هطف ؾح ج جن Visual Basic ١طهىس ال ٠طف ذى Font.Size ، فح قؿ جه١ True Typeجط ال ضىؼ ضكص ضم١س

Visual Basic جمححش، فال ضػك ذحم١س جط جطح ج جم ج١س، ال ٠م ذطغ١١ح:

Label2.Font.Name " =MS SystemEx" Label2.Font.Size =20

Print Label2.Font.Size „ 15 جكؿ

جه١ فحهحت جمى٠س Visual Basic جن١ج، ذحرس رؿFontBold ،FontSize ،FontName جم، ح جص ىػس ف .... VB6 ،غ يه

جىطحخ ال ٠حل نحت غح جطجخ.

خصبئص انهىألوجز . ذؼ ضػال جهف١س جه١ BackColor ForeColor جهح١طح

ال ضىػ حضح جهح١طح، فأجح ضى ل١ح١س طقح ScorllBar جالوجش آ ال ٠ى ج ضكع جطغ١١ ف ل١س جهح١س Label ظح جطغ١ . ذؼ جالوجش آBackColor ل١س جهح١س أضصجال جيج BackStyle 1 ضح-Opaque آيه جكحي .

، ف ضطى حىز جطغ١١ ج هف١ط CommandButton غ جالج غ جؼ ج جهح١س Graphical–1 ج Style جال جيج قص ل١س نح١ط

ForeColor .١ص ىػس ف١ ذحرس م١ جالج ف جالف ج جلح ه ج ل١ : جالج جم١ح١سStandard Color سجالج جهح Custom Color جالج جم١ح١س جفس . ف ؼظ جالقجي الوجش الح جج ٠كىوح جطهى ػ ٠٠ك نحس جطر٠د

Appearance ف ىق جكج Display Properties قس جطكى، ف جج ج .ذ جال Windows ضحد جؼ جطهى ٠٠ى ج ضظ ؾ١غ ضطر١محش

ه، جح١د جقطج يق جطهى جطهىج جالج جط ضحر ػ23

. جح جع جالن جالي ج Standard Color ٠٠ك جالػطحو ػ جالج جم١ح١س جهحس، ف جج طحض١ى١س أ غحذطس ال ضطغ١ ح لح جطهى ذطؼى٠

جل ف جنط١ح جالج جحرس نحت طف ىطر، ج ضى الوجضه، فحكه ذحالطمحي ج فمز "نحت جؿىس ". جح جيج آص

جؼح٠ ١حو وجف ج ح٠ى جؿ، فططط١غ جطهىج ؿػس جػجذص ضػ جلح جالج:Me.BackColor =vbGreen

Me.BackColor =vbBlue

جطهىج ف جالػىجو جط آص ضطهىح ف ج٠ح ٠فطه QBColor ج وجس MS-DOSغ ذ١ثس :

„جو ( Me.BackColor =QBColor (0 „جذ١ ( Me.ForeColor =QBColor (15

غ ضكى٠ى جؼك ج الق، جالن جالق: RGB ج وجسMe.BackColor =RGB (255, 0, 0)

آز ل٠س ؾىج ؾىج ؾىج ضكفع جآغ ئ آص ضططغ ذج ١ ، فططط١غ 16 جالطفحوز ججآز لر جؿ جطهى جػجذص جؼىو٠س رحز:

Me.BackColor =4234232 Me.ForeColor =&H53FF2 „ل١س ص ػ٠س

Page 15: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

15أعداد المبرمج:مشتاق طالب رشيد العامري

آي جطق جحذمس ضؼ ذى ؾ١ى ف لص جطف١ قط لص جط١،غ جطهىج جىجي جحذمسفططط١ QBColor RGB ل١س نحت وطحذسف نحس

جالج ف ؾىي حفز جهحت، غ جح ضف ه ـ جج ٠ؼط١ه فىز ػ ػك ج لر جنط١ح.

خصبئص انغذونخ ٠TABف جطهىج فطحـ جؿىس ] ] Windows ؼظ طهى ضطر١محش

. ؼظ جالوجش جط ح لحذ١س جطمحي جطآ٠ طم ذ١ جالوجش Focus ػ١ح– 24

. قىو ػ ٠٠ك TabStop TabIndex آأوجز ج، ضكط ػ نحت جؿىس ح جيج آ ص ض٠ى ؾؼ جطآ٠ ٠طم ج جألوجز ذؿو ج ٠غ١ TabStop جهح١س

ػ ٠ق جهح١س [، ضد ف جطآ٠ TABجطهى ػ جفطحـ ] TabIndex ى أوجز، غ جؼ ج ضل١ جف ٠رىأ ػحوز جف.

ل١س جهح١س أضصقط : يالحظخ TabStop ضح False ألوجز، فح جطهى ى٠ فس جن م جطآ٠ ج جألوجز ػ ٠٠ك

جم ػ١ح ذ جفأز.

خصبئص يإشش انفأسحجفأزنحت إ MousePointer MouseIcon ضكىوج جى جطخ

إ ل١ح MousePointer 16 . ضف ه جهح١س Mouse Cursor إ جفأز 99 -٠فح ظح جطغ١، ئ غرص ف ضه ٠ ؼ١، فحنط جم١س

Custom جهح١س جحذمس غ ضك١ ف جإ ف جهح١س MouseIcon جىو جطح الؾجء جؼ١س لص جطف١: أوطدلص جط١ ج ج

Command1.MousePointer =vbCustom Command1.MouseIcon =LoadPicture (“C:\Test.ICO”)

ضالقع ضغ١١ جإ جال جيج جطهى إ جفأز فق جألوجز . غ يه، ضغ١١ ى جإ ج ض ضغ١١ جإ Visual Basic حن ػىز ػج ضغ

، ؾخ ج جىو كظس: Screen جؼح رحؽ جطػ ف جىحتScreen.MousePointer =2

Command1.MousePointer =5 „ ٠طغ١ ى جإ جذىج

ح الأضه١ح ضؿح Visual Basic غ جح نح ؼ١ جالج، جال ج ١ جمح ف ضمى٠ح ج جقطجح، جح Visual Basic ؼ١ ١ثح، جطؿح ج ٠ى آجطح: MousePointer غ نح١س Visual Basic ف جخ ضؼح

ل س جهح١س أضصجيج - MousePointer جطحذؼس ىحت Screen 0 غ١-Default ، جطحذؼس حت MousePointer ١طؿح ؾ١غ نحت Visual Basic فح

جالوجش ف جرحؽ، ١ى ى جإ جى ج ضكىو ف جهح١س وجتح جذىج جال ف قحس جطمحي جإ ج ذحؽ جن.

25

جهح١س أضصجيج - MousePointer جطحذؼس ىحت Screen 0 ضح-Default جهح١س أضص MousePointer 0 جطحذؼس ألوجز ال ضح-Default فح ى ،

جطحذؼس ألوجز. MousePointer جإ ١ى آح طخ ف جهح١سجهح١س أضصجح جيج - MousePointer جطحذؼس ىحت Screen 0 ضح-Default

ج٠ح، فح ى Default-0 جطحذؼس ألوجز ضح MousePointer جهح١س جطحذؼس حفز MousePointer جإ ١ى آح طخ ف جهح١س

جيؼ. ال ضم ذطغ١١ ى جإ جال ػى جكحؾس طغ١١، آضك٠ ج ز ٠ى ػى

ج فق جذ١ لغ ػ جالطص، ج ػ ى جال ف قحس جطكؿ١،ج ى حػس ١س ػى ذىج٠س آي جؾجء قط ٠ؼ جطك ضك٠

جطهى ج ػ١ جالطظح:Private Sub Command1_Click)(

Page 16: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

16أعداد المبرمج:مشتاق طالب رشيد العامري

„جؾجء ضف١ ٠طغق لص Screen.MouseIcon =vbHourglass

„جآجو جالؾجء …

„ال ض جطؾحع جى جالفطج Screen.MousePointer =vbDefault

End Sub

RightToLeftخبصخ انزؼشت VB1 قط VB4 ٠حي جطظح جرؿ١ جؼخ هح١س ،– ضى - ذ١طس

VB5 ج١١ ج ج١ح، ؾحء– ضك٠ جضؿح جوجض ج جالضؿح جؼذ جىػس ف ؼظ RightToLeft قحال جر جؼ١ىز ١ف ج١ جهح١س

–جالوجش فز جيؼ . ك١ف ج جهح١سقط ح RightToLeft ال ضطرك ضم١س ضجؾ رؿ أضصجآز، جال جح قص ػجش جحآي جط Visual Basic

جه١.26

ضم١س جآز ظش ي جالىج: يالحظخ Windows 98 ضم١س ضم

جالضؿحجم١ح١س جحتؼس ج Windows ذمد ى جوجش ج١١ ج ج١ح . ٠٠مس ضطر١مح ضط ػ ٠٠ك–جؼذ

نحس، طؼف ػ١ح ف جفي API جه ف جؾجءجش جالقمس ذ١ثس هللا.

جح ىطرس MSVBVM60.DLL ػ١ه جالطرح ج ج جهح١س ال ضص ذغ ىطرسغ٠د ف ج ، ج VBAME.DLL نحس ذططر١محش جق جال١ ضؼف خ

قط ضؼ ؼه System Directory جىطرس ز ؾوح ف ؿى جظح ذى ك١ف، فؼىح ضم ذط٠غ ذحؿه ػ جؾز جن، ال ضكحي ؼح ف

جهح١س ضكي جضؿح True ف ؿى جرحؽ فه ٠ف١ىن . جم١سآح ضفؼ يه غ جغد جالوجش.جحفز ج جالضؿح جؼذ

ى٠ه حفز يؼ س جوجضح ضرس ذحالضؿح جؼحآ ؼذ، فج أجيج جىو ٠ف ػ١ه ػحء جػحوز ضض١د جالوجش طى ج١١ ج ج١ح:

Private Sub Form_Load)( Dim Ctrl As Control

On Error Resume Next For Each Ctrl In Controls

If TypeOf Ctrl Is Line Then Ctrl.X1 =Ctrl.Container.ScaleWidth - Ctrl.X1 Ctrl.X2 =Ctrl.Container.ScaleWidth - Ctrl.X2

Else Ctrl.Left =Ctrl.Container.ScaleWidth - Ctrl.Left - Ctrl.Width

End If If Ctrl.Alignment =1 Then

Ctrl.Alignment =0 ElseIf Ctrl.Alignment =0 Then

Ctrl.Alignment =1 End If

Ctrl.RightToLeft =True Next

RightToLeft =True Err.Clear

27

End Sub

Page 17: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

17أعداد المبرمج:مشتاق طالب رشيد العامري

hWndخبصخ انمجط ، ل١س Read Only Propeties جهح١س ضؼطر نحت جمجءز فم١

جكطف١ ف ،. قط آص آذح Long ػىو٠س ٠٠س جع Visual Basic جط API ضطط١غ جالطفحوز جهح١س جال ػى ضؼحه غ جؾجءجش

حلح ف جفي جالقمس . ذح ج جلص حجي رىج ؾىج كى٠ع ػح، فحو جالوجش Standard Controls ض١ف ػ١ جالوجش ح جالوجش جم١ح١س

جفؼىس ج Windowless Controls .ج ج١س Visual Basic ىق جالوجش، ٠م TextBox ػىح ضم ذاحء أوجز

٠حرح هس Windows ذحؾجء ػ١س جضحالش ٠س غ ظح جطغ١ ٠ؿر ػ ججفمس، ٠م ذحػطحء ل ف٠ى Windows جألوجز. آ ظح جطغ١

٠طى ج جألوجز ٠ؼف ذحال مر ج جفزال Window Handle ج جل . جطحذؼس ألوجز . ج ج ضؼ ح ذح جإي hWnd ٠ط قفظ ف جهح١س

، فؿ١غ Visual Basic جالي جالن١ ػ جألوجز ظح جطغ١ ١طهى ٠طفحػ ؼح ظح جطغ١جؼ١حش جط١م١س ج جط ٠م ذح ج

١ Visual Basic فى ، Visual Basic ح جر ذحطؾ ذ١ جرؽ ذ١ Windowsظح جطغ١ .

ف جوجش ١س نحس ذرجؿه Windowless Controls جح جالوجش جعػ جالػ،ظح جطغ١ ال ٠ؼ أ ة ػح Visual Basic جس ضكص

hWndجى١ جح ال ضطه جهح١س . ؾ١غ جالوجش جؾوز ف ىق جالوجش جع جالي ذحطػحء جالوجش :Line ،Shape ،Timer ،Label Image ف جوجش ١س ال ضكط ػ جهح١س

hWnd حو . قحي جالآغح ج جع جالوجش ف ضطه جم١ ضى جع ذىػ١ جالوجش جالن. System Resources جظح

Standard Controls ، فؼظح جع ActiveX Controlsذحرس الوجش جطكى . ال ٠ىه ؼفس ع أوجز جطكى ػ Windowless Controls لى ضى جع

فمى ضى جألوجز جع جالي ى ذح، hWnd ٠٠ك جنطرح ؾو جهح١س الرحخ ه١س. hWnd جألوجز لى جنف ظ جهح١س

خصبئص اخشي جط ضىه جنفحء جألوجز Visible جهحت جطآز جالن نح١س جؤ٠س

جالوجش جكس ذح ػ ػ١ جطهى ىح ظحز ؼ١ جرؽ، فحألوجز28

هف١س . نح١س أضصؾوز ف ججآز ذحىح جرؽ جي ج١ح قط ج ضغ جطهى جطفحػ غ جألوجز جء ذحم ج جىطحذس Enabled جطى١

ضكفع ل١س قف١س Tag ػ١ح ضإغ ج٠ح ػ جالوجش جكس ذ ج. جهح١سString ال ضإغ ذح ى جالىحي ػ -ال ؾصال جقص -ضى ل١س جحف١س ضطهى ف قحس م جالوجش طى٠ ح Index ن ج ظ جألوجز . جهح١س ج ططق ج١ ف ف "جالطهىج Control Array ٠ؼف ذففس جالوجش

جطمى حيؼ".جالوجش نح١س جهحت جط ضإغ ػ ظ جألوجز جىػس ػ ذؼ

ألوجز، جهح١س D-3 جط ضؼط ظ غالغ جالذؼحو Appearance جظBorderStyle جط ضهف ج ضظ جكىو جهحؾ١س ألوجز أ٠ح نح١س جكحيجز

Align وطحذسجط ضكحي جألوجز ضمحت١ح قط غ ضغ١١ قؿ جحفز و جكحؾس ج جآجو جحف١س.

ف ؼظ ضطر١محشضالقع Windows ظ ذغ جف ػىح ضم ذطؾ١ إ جفأز ج أوجز ؼ١س جالطظح ذغ غج و ضك٠ه جإ، ج جذغ ٠ىػ

، ذحىحه ضه١ ض١ف ى أوجز ؾوز ف حفز جيؼ ToolTip أوجز جط١ف ToolTipTextػ ٠٠ك جهح١س .

Page 18: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

18أعداد المبرمج:مشتاق طالب رشيد العامري

جمى٠س آنحت جكد جالمحءجن١ج، جهحت DragMode DragIcon ج .... جم جهحت LinkItem ،LinkMode ،LinkTopic نحت ج ذ١ جى٠ح١ى

جط لى ؾح ػ١ح ج ٠غص ػ١ح ضم١حش جف ج. جيج آص ط طكم١كىػس ذى ؾ١ى غ ذجؿه جمى٠س، ف حجص Compatibility جطجفم١س

ؾىج، جح ج جىطحخ ف ٠ظ ج جهف جذىج ٠آ جهحت ذؼى جمطس جطح١س.

انطشق انشزشآح ذؼى جهحت ضأض جطق، جطق ػرحز ػ جج ضح ج جألوجز طك٠ىح ج

ضؼو Functions ػرحز ػ وجي Methods م جطآ٠ ئ١ ج. ججلغ ج جطق ضم ذظ١فس ح ىح ال ضؼ١ى أ ل١س . آح ضؾى Sub‟s ذم١ ؼ١، ج جؾجءجش

جؼى٠ى جهحت جطآز ذ١ جالوجش، ضؾى ج٠ح ػىز ٠ق طآز :

Moveانطشمخ جألوجز ضىػ نحت جلغ جكؿ أضصجيج Height ،Top ،Left Width فح ،

ىػس ذح ال كحس. فحىو جطح: Move جط٠مس29

Form1.Left =100 Form1.Top =200

Form1.Height =300 Form1.Width =400

ط س 4 جش ج ؾحد ج ٠طه Form_Resize 4 ٠م ٠طفؿ١ جكىظ Moveضإو ج ذ١ء ف جطف١، ح ضر ١ز جط٠مس :

Form1.Move 100, 200, 300, 400

ؾ١غ جم١ جس جنط١ح٠س ذحطػحء جم١س جال، ال ضطط١غ جحي ل١س و جحي ل١س حذمس ح:

Form1.Move 100 , 200 „ى ػ يه Form1.Move 100 , , 300 „ج جفىز

SetFocusانطشمخ جط٠مس ضؾ١ جطآ٠ ج جألوجز ٠ط ذحطىػحء SetFocus أضصجهحس ذ ج. جيج

جألوجز هف١س ج غ١ ىس، فح جط ٠مس ططرد ف لع نطأ لص Visible . ه، ٠ف ذحطكمك نح١ط جظ Run Time Error جطغ١

لر م جطآ٠ ج جألوجز: Enabled جطى١If Text1.Visible =True And Text1.Enabled =True Then

Text1.SetFocus End If

جيج آص ض٠ى غ جطهى م جطآ٠ ج أ أوجز جن لر ضكمك ٠ LostFocusؼ١، فحف ىح جكىظ :

Private Sub Text1_LostFocus)( If Trim(Text1.Text "" = )Then

Text1.SetFocus End If

End Sub

30

ال ضكحي جطهىج جط٠مس جال ف قحس ظ جألوجز، فجػ١ى جآ، ػال، ػ١ه جظح جحفز لر جطهىج Form_Load جطهىطح ف جكىظ

جط٠مس:Private Sub Form_Load)(

Me.Show Text1.SetFocus

Page 19: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

19أعداد المبرمج:مشتاق طالب رشيد العامري

End Sub

ZOrderانطشمخ ش لص جطف١، جط٠مسلى ضكطحؼ ج جػحوز غ أوجز فق جالوجش ج نف جالوج

ZOrder ضف ذحغ غ جألوجز فق جالوجش جالن، لى ضؿؼح نف جالوجش :1 جن ف قحس جحي جم١س

„ 0 جم١س جالفطج١س Command1.Zorder „فق ؾ١غ جالوجش

Command1.Zorder 0 „فق ؾ١غ جالوجش Command1.ZOrder 1 „نف ؾ١غ جالوجش

فح - Label آأوجز جؼج– Winodwless Controls ذحرس الوجش ؼىس ججف . ضطط١غ Standard Controls ػح جطك١الش ج ضظ فق أوجز ل١ح١س

ج ضفط ج حفز ٠رمط١، جال نحس الوجش جم١ح١س جػح١س نحسنف جطرمس جال وجت ج. آيه، جالوجشالوجش ؼىس ججف جط ضى

جكحس ضى نف جالوجش جكس ذح. ذحرس جف جحيؼ، ف١ىه جطهىج جط٠مس غ حفز يؼ فق ججف جالن ج نفح، ى ال

ذز وجتس Windows ٠ىه ؾؼ حفز جيؼ ف مىس جف ؾ١غ ضطر١محش ذحطهىج جط٠مس.

Refreshانطشمخ جط٠مس ضطد جألوجز جػحوز فح. ػ١ح ضكطحؼ الطىػحء

٠م ذ جألوجز ضمحت١ح ذؿو ضغ١١ ل١ نحت ج. Visual Basic جط٠مس آغ١ج فجى٠ى ػ١:إلػحوز جألوجز ف قحالش جغ١ Visual Basic جال جه لى ضؿر

Private Sub Command1_Click)(

31 Dim X As Long

For X =0 To 100000 Label1.Caption =CStr(X)

Label1.Refresh Next

End Sub

. ف DoEvents جمىحء ذحطهىج جىجس Visual Basic لى ٠مطـ ػ جقى رؿق ح ال ظ١فس جرىج٠س حى ػ جلطجق جآ ى أف جلطج

جىجس ١ص مز ػ جػحوز ج فم١ جح ضطؼى ج جى ذىػ١، ف رحل جؾجء جرحؽ ١ جالوجش فم١، Processing نحس ؼ١س ض٠غ جؼحؿس

ح ٠إو ج ذطة ف جػس . ١ ج فم١، ذ لى ضإو ج جتد ذؿ١سBugs فس آذ١ز طهى الػحوز جغ١ ػ ج، ف ضؼط Command1 ز جن لر ج ٠ط جالؾجء جآحي جكمس جطىج٠س جال . ػ جؼ،

ىج ػ جاللطجـ!

االحذاس انشزشآح ضمط ػ١س Event Driven Programming ففس جرؿس ج١ز ذحالقىجظ

ؼ١س ضؼف ذلع جالقىجظ ج جفؿح جالقىجظ. فؼىح ضهضف١ جالآجو ػى قحالش حس ج ت١ه ف جؼ، فا جطؿحذطه كىظ ضى ذطف١ ح ٠طد ه. آيه جكحي غ جالوجش، فحالآجو جط ضؼح ٠ط ضف١ح جال ػى لع

غ ج١غس:جحتح ضطر Sub‟s جكىظ ػ١ح. جالقىجظ ػرحز ػ جؾجءجش جكىظ_ج جىحت

Form_Click )( Command1_Click )(

جطهى جطؼر١ ضفؿ١ جكىظ: يالحظخ Fire Event ػح ػ جطؼر١ ج جكىظ وطحذسجطىػحء جكىظ، فحطىػحء جكىظ ػ١س

Page 20: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

21أعداد المبرمج:مشتاق طالب رشيد العامري

طف١ آح ضفؼ غ جالؾجءجش، جح ضفؿ١ جكىظ ف ػ١سح جطغ١ جطىػحء جكىظ لر ظ Visual Basic فأؾ ج ال ،

ضطؼؿد آغز جطهىج ج جطف قط ي ج ف جمحتس جال٠ى١س طر ف١ ذحالحخ!

32

١ ج Form ذحرس حفز جيؼ، ض١س جقىجغح وجتح ح ضرىأ ذحىسذؾو نحت ٠ق طآز. آح ػح Name جيؼ جؾو ف جهح١س

ذ١ جالوجش، فح جالقىجظ ال ض ػ جمحػىز:

احذاس انفأسح جآجون جطؿحذس ضى وز فؼ الػحي وج١س لح ذح جطهى %50

ذحفأز. جي قىظ ضؼ ه ؼظ جالوجش ػى جم جوؼ ػ١ح جكىظClick ػ جألوجز ذ جفأز جال٠ . جكىظ ج ٠فؿ ف كظس جم DblClick ضؼطمى ج ال ٠فؿ جال ف قحس Click ٠ػ جم جوؼ . ال ضػك آغ١ج ف جكىظ

CheckBox الوجض١ Value جم ذ جفأز جال٠، فؼى ل١حه ذطغ١١ ل١س جهح١س OptionButton ٠م ، Visual Basic ١ جكىظضمحت١ح ذطفؿ Click جطحذغ ألوجز. ف

ListBox جطحذؼس الوجض١ ListIndex جالفؿح ٠كىظ ػىح ضم ذطغ١١ جهح١س.ComboBox

جآجو ف آال وطحذس جالح١د جهح٠ثس جط ٠طرؼح ل١ جرؿ١ Visual ف جألوجز، غ جه ضطط١غ ػ يه خ Click DblClick جكىغ١

Basic جال جح ٠٠مس غ١ س ضرد جط٠ ػ طهى ذحؿه ضإو ذ ، ج جالطغحء ػ جفأز . ف لح جطهى ذحم جوؼ ػ جألوجز، فحالذى أ. جيج DblClick ١ط ضف١ جال غ ضف١ جكىظ Click جكىظ

ز، فحض ١ لر ؼفس جكىظ جموجطهىج جكىغ١ ف أوجز جقى لر ضف١ قط ال ٠طغ جطهى ػ فأض:

Dim bDblClick As Boolean „طغ١ ػح Private Sub Form_Click)(

Dim X As Single bDblClick =False

„جػطحء س ف غح١س X =Timer

Do DoEvents

If bDblClick Then Exit Sub Loop Until Timer > X +0.5

جالآجو ح أوطدج „ „ ...

33 End Sub

Private Sub Form_DblClick)( bDblClick =True

جالآجو ح أوطدج „ „ ...

End Sub

جيج آص ض٠ى ؼفس ج٠ى جطفح١ قي ػ١س جم جط لح ذح جطهى،جطهى جطهى جء جال٠ ج جال٠ ....آلغ إ جفأز ج ج ج

MouseDownجم ضفح١ ول١مس، ف١ ج جػ ػ١ه جالقىجظ ،MouseMove MouseUp جط ضؼط١ه ضفح١ جآغ ػ ػ١حش جفأز ػ ى

Shift، جفحض١ف جغ٠س ، Button طغ١جش س : ع ج جطهى إجالقىجغ ج١ X . جالقىجغ جحو إY

Page 21: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

21أعداد المبرمج:مشتاق طالب رشيد العامري

، فمى ٠ى ج جال٠ /ج جال٠ /ج جال١ Button ذحرس جطهى فأز، ج جػحي ٠ؼط١ه فىز ػ ٠٠مس ؼفس جالج جغ٠س:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

If Button And vbLeftButton Then ' ج جال٠ غ٠

End If If Button And vbRightButton Then

' ج جال٠ غ٠End If

If Button And vbMiddleButton Then ' ج جال١ غ٠

End If End Sub

ح ذحقىجظ قس جفحض١فجه Shift ، ف ف جطغ١ Shift جح جفطحـ جغ٠ KeyUp KeyDown جػحي جططر١م طؼح ؼ ؾو ف فمز "جقىجظ قس

ف ضػ لغ X Y جفحض١ف" جط ط ج١ح ل٠د ج. ذحرس القىجغ١حش (0 ،0إ جفأز ذحرس ألوجز فح ١ جحس، ق١ع ضػ جمطس )

34

جؼ٠س ج١ ألوجز، ضوجو ل١سجج٠س X آح جضؿ إ جفأز ج ؾس آح جضؿ إ جفأز ج جالف. Y ج١١ ضوجو ل١س

ذؿو ج ٠م جطهى ذطك٠ه جإ فق MouseMove ٠ط ضفؿ١ جكىظقحسجألوجز، ح٠س جكىظ ضى كظس نؼ جإ ػ قىو جألوجز . جح ف

١ط ضفؿ١ قط ضؼى جإ MouseMove فح جكىظ Capturing جالطمح٠ ف قحس آ إ جفأز X Y قىو جألوجز ح ٠طضد ػ ل١ حرس القىجغ١حش

قف ٠ح ج فق جألوجز.جمى آس جالطمح٠: يالحظخ Capturing ػ١س جغ١ ذ جفأز

غ جطج جغ١ ػ ج.ػ جألوجز ف١ط ضفؿ١ح ذؿو جغ١ ػ MouseDown MouseUp ذحرس كىغ١ جفأز ضك٠ ج ػ جطج قط جنطفص جالج، ف لص ذحغ١ ػ

– جفأز جال٠ غ لص ذحغ١ ػ جفأز جال٠، -أذم١ط غ٠ ج ض١، ػى ضك٠ جالج، فح MouseDown ذطفؿ١ جكىظ Visual Basic ف١م

مرال. MouseUp جفؿح٠ كىظ ػ جألوجز، فح Double Click جن١ج، ف قحس ل١ح جطهى ذحم جوؼ

ضض١د لع ج جفؿح جالقىجظ ٠ط ػ جك جطح:MouseUp < - DblClick < - MouseMove < - Click < - MouseUp < - MouseDown

MouseMove < ز جن. -

احذاس انزشآض LostFocus ػىح ضطمر جألوجز جطآ٠، جكىظ GotFocus ٠ط ضفؿ١ جكىظ

يه ذحفأز ج قس جفحض١ف أ ذؿ ج. أح أػىح ضفمى جألوجز جطآ٠، جء ؼ ؾ١ىج ذح ٠طس ػى ؾو أ أوجزذحرس حفز جيؼ، ف جالقىجظ ض

لحذس الطمرحي جطآ٠. ضط ػ١س ضفؿ١ جالقىجظ ذحط٠مس جطلؼس جيج فمىش جحفز: يالحظخ

ضآ٠ح ذرد جالطمحي ج ضطر١ك جن ج جطمرص ضآ٠ح ذغ و جالطمحي ضطر١ك جن . ذحنطح، جقىجظ جطآ٠ ال ضؼ جال ذ١

ف جوجش ذحؿه فم١.ج

Page 22: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

22أعداد المبرمج:مشتاق طالب رشيد العامري

احذاس نىحخ انفبرح KeyPressحضؿس قس جفحض١ف ، Visual Basic غالغس جقىجظ س ٠فح ه

KeyDown KeyUp فؼىح ٠م جطهى ذحغ١ ػ أ جج قس . جفطحـ ذطك٠ Visual Basic ١ط ضفؿ١، غ ٠م KeyDown جفحض١ف، فحكىظ

، ذؼى ج KeyPress غ ٠ط ضفؿ١ جكىظ ASCII جىن ج محذ ف ؾىي ذحالفؿح. ٠KeyUpفغ جطهى جرؼ ػ جفطحـ ٠رىأ جكىظ

ف قحس ل١ح جطهى جغ١ Visual Basic ف١فؿ KeyPress ذحرس كىظCtrl+…[، ]ESCAPE[، ]BACKSPACEػ جفحض١ف ] ، ][ ENTER جكف ]

جطرػس، جح جفحض١ف جالن آجال ج فحض١ف جظحتف غ١ ج... فال ضإو ح ١د KeyDown KeyUp ى جالقىجظ KeyPress ج جفؿح جكىظ

طػس Integer ل١س ػىو٠س جع KeyPress جلع. ج٠ى ج٠ح، ٠ جكىظ ضػ جمحذ جؼىو كف جىن ف ؾىي KeyAscii ف طغ١ ػىو ذحال

:ASCII Private Sub Form_KeyPress(KeyAscii As Integer)

Print Chr$(KeyAscii )& " = "& KeyAscii End Sub

ذحؾغ ١ جم١س ج ٠ىه ضؼى٠ ل١ط ح ٠طضد KeyAscii جطغ١ىنالش جطهى، ج جىو ػال ٠كي ؾ١غػ١ س آذ١ ف جطكى ف

Capitalجكف جىنس ف أوجز ج ج قف آذ١ز :Private Sub Text1_KeyPress(KeyAscii As Integer)

KeyAscii =Asc(UCase(Chr$(KeyAscii))) End Sub

سجيج جىش ل١س جف ج ج جطغ١، فحه لى جغ١ص ػ١س جحي ل١ أ وطحذسجفطحـ ج جألوجز جطمرس . ج جىو ػال ٠غ جطهى

:9 ، ...،1 ،0 ة ف أوج ج ػىج جالػىجوPrivate Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii < Asc"(0 )"Or KeyAscii > Asc"(9 )"Then KeyAscii =0

End If End Sub

36

ضالقع ج جػطى ف جالػس جحذمس ػ جىجط١: يالحظخ Asc $ .Chr

غ يه، ٠ىه جالطغحء ػح جيج آص ضؼف جمحذ جؼىو ASCIIكف جطخ ف ؾىي .

ضػ جفطحـ KeyCode ذم١ط١ جال KeyDown KeyUp ٠ون جكىغ١فحض١ف ] ضػ قحس ج Shift جىن، جػح١س CTRL[، ]SHIFT [ ]ALT ف١ح ]

فؼس أضصجيج – ج ال آح ف جىو جطح: -جلى غ٠س Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

If Shift And vbShiftMask Then ' [ غ٠ SHIFTجفطحـ ]

End If If Shift And vbCtrlMask Then

' [ غ٠ CTRLجفطحـ ] End If

If Shift And vbAltMask Then ' [ غ٠ ALTجفطحـ ]

End If End Sub

جطػس ف جطغ١-ذحرس ج ل١س جفطحـ جىن KeyCode - جم١س

Page 23: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

23أعداد المبرمج:مشتاق طالب رشيد العامري

، جال KeyAscii جف٠١حت١س فطحـ ف قس جفحض١ف، ك١ف جح ػ ل١س جطغ١غ١ أال ضػ ػ١س جكف جىن جء جح Small Letter ج ػالحش آ

@#؟% .... جم، ج قط قف ػذ١س ج، خ، ش .... جم. ف ض وجتح جك ٠س .... جم . ج٠ى ج٠ح، ال ٠ىح ضؼى٠ C ،B ،A آ Capital كف جالؿ١ جىر١

فؼح ف جفكس جحذمس غ جطغ١آح آح KeyCode ل١س جفطحـ جىن .KeyAscii

٠ط ضفؿ١ح ػىح KeyDown ،KeyPress KeyUp جن١ج، جقىجظ قس جفحض١ف ٠ى جطآ٠ ػ جأل وجز جىطخ ف١ح جىو، جيج ؾىش جقىجظ جحف١س ضحذؼس حفز

ظ جطحذؼس حفزجيؼ أط أ جالقىجظ ١ط ضف١ح جال؟، جالقىج جيؼ ج جألوجز جط ػ١ح جطآ٠؟ فحنرن ذح ى٠ه ػم١س ر١س ؾىج ؾىج

ل١س جهح١س أضصذرر ج! فح Visual Basic ضطكك ج ضى رؽ KeyPreview جطحذؼس حفز جيؼ ضح True فح جحفز طفؿ جقىجغح جال ،

ل١س جهح١س أضص غ جألوجز جط ػ١ح جطآ٠، جح ج False فح حفز ، 37

ح غ١ ؾوز، ضفؿ جال جقىجظ جألوجزأجيؼ ططؿح جالقىجظ فم١.

Changeحذس انزغش ذؿو جم١ح ذطغ١١ كط٠حش جالوجز آضغ١ ج Change ٠ط ضفؿ١ قىظ جطغ١١

ظح ف جهح١سج Caption ج جهح١س Text ى جالػطحو ػ ج جكىظ ف١ . CheckBox ألوجض١ Value ء جهطأ، فؼى ضغ١١ ل١س جهح١س

OptionButton ٠م Visual Basic ذطفؿ١ ج جكىظ، آيه ػى ضغ١١ جى ضفؿ١ ج جكىظ.جظح الوجش آقؿح ج ججح ٠ط

بفزح انىرط ، ف جرإز جط Visual Basic حفز جيؼ ػ٠ز ػ لخ ؾ١غ رؿ

Visual Basic نالح غ جال جالذطىجت ح Form1 ج جقر . كر ح ضمى٠ ؼز جط٠س ذ١ ذ١ح، VB1 ػ جش غ ذىج٠حش

١ فمز نحس ذح ف ج جف ف آج "جالطهىج جطمىلش ضه حيؼ" ف ج جىطحخ، ػحح ج ض١ ذ١ جرؿ١ آح ١ضح ػ حت

جىحتحش! لر ج جن ف ضف١ حف ز جيؼ جضكىظ ػ نحتح، ٠لح جقىجغح،لجد جحيؼ ،ج Templates ذو جططق ج فىز جمجد Form Templates

ػرحز ػ حيؼ ؾحز جط١ ر٠س جهحت ضطهىح ف ذجؿه Add ج١١س ذز طىز و جكحؾس ج جػحوز ض١ح جف . جنط جال

Form لحتس Project طف جفىز لجد جحيؼ جؿحز. فف ىق ١ظ جحه، طؿى جؼى٠ى جحيؼ جط ضطهىح آغ١ج فجكج ج

ال ضأل ذ٠ك ػ١١ه، ٠ح جحيؼ آح ض٠ى، أضصذجؿه جالػط١حو٠س، جيج ج جحجكىو ف- \ VB98\Template\Forms غ ل ذكفظح ف جؿى

Options ف ىق جكج Environment نحس جطر٠د طالقع ؾو حفضه - ذ١ جمجد جحذمس. Template آلحد

خصبئص انىرط ذؼى ج ضرق حفز جيؼ جح ػ١١ه، طرىأ ذغ جالوجش ػ١ح غ

. جم١س BorderStyle ضكؿ١ح. ذؼى يه، ضم ذحنص ٠ح ى قىوح غ جهح١س0-None جالفططحق١سال جطهىح جال ف جحس Splash Screen رجؿ الح

38

، فطغ جطهى جىح١حش TitleBar ضهف قىوح قط ١٠ ػجح ضك٠ه جحفز ضرد قحس جى ػ ضغ١ ذحؿه ج ٠م ذحغ١

[ آ ٠طى جغالق Ctrl+Shift+Esc[ ج ] Ctrl+Alt+Delػ جفحض١ف ]

Page 24: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

24أعداد المبرمج:مشتاق طالب رشيد العامري

ؿه. جح جم١سذح 2-Sizable فطى جطهى ضك٠ه جحفز ذح١حذ١س ج–٠كس ضى ج٠ح جػحوز ضكؿ١ جحفز ذحى ج ٠حر ٠م

ذحطهىج جفحض١ف جحذمس. جم١ص ج -حء هللا 1-Fixed Single 3-Fixed Dailog جحفز غ جذمحء ١٠ جؼج ل١ ل١ح١سضغ جطهى جػحوز ضكؿ١

، جفق ذ١ جم١ط١ ٠ظ ؾ١ح Windows ضطر١محش Dialog Boxes حو٠ك قج ػ ١٠ Minimize جطغ١ Maximize ف ج جال ضف ذظ جطىر١

Fixed ToolWindow 5-Sizable-4 جؼج جح جػح١س فال. جطهى جم١ط١ToolWindow .طغ١ جضفحع ١٠ جؼج س جف ج٠س جالوجش ى غ قىو None-0 ضؾى ل١س حوس ى جكى جر ح ضى ذحم١س

جم١س جؾوز ف أضص، ضطط١غ حىضح جال ج D-3 غالغ١س جالذؼحو ، غ جنط١ح False ضح ControlBox نح١س، ل١س جهح١س Caption جهح١س

BorderStyle جهح١س جحذمس . Fixed Dailog-3 جم١س ضطط١غ جظح، جنفحء ج ضى١ ىق جطكى ج جج جطىر١ جطغ١ ػ ٠٠ك

. ج ج ١ظ ف ١٠ MaxButtom ،ControlBox MinButton جهحت جؾو ف جهح١سػج جحفز ف ج Caption ضطط١غ ض١١ .

ل١ جهح١س Center-2 جحفز ١ جحس ػ ٠٠ك جنط١ح جم١سStartupPosition ذحىحه غ جطهى ضك٠ه جحفز ػ ٠٠ك ضك٠ ،

ف ض١ف ShowInTaskBar . جح جهح١س False ج Moveable ل١س جهح١س ذك١ع ٠طى Start ذؿحد "جذىأ" ج Windows Task Bar ج ١٠ جح

جطهى ض١١ حفز ذحؿه ذؿو جم ػ ج ج . جن١ج، نح١سWindowState جط ضىه ضىر١ جحفز طغط آج جحس، ضغ١ح ج

جطؾحع جكؿ جطر١ؼ ح.:خصبئص انصىس

٠ك جهح١سػ ٠ AutoRedraw جػحوز حفز جيؼ ضط أضصضكىو ح جيج ذجطس جآجون . ف جكحس جال فح ػس جػحوز False ج ٠ى٠ح True ضمحت١ح

ج ضى جع جكحس جػح١س، جال جح ضطه جالف جى١ذح٠ص جش ف ججآز جطحقس رجؽ جالن، ه ج System Resources ح ٠م حو جظح

1406 ضطه True Color غ ػك 800x600 ضطه١ حفز قؿح جف ؾؼس ذحؿه 9 ج 5 ١ؿح، ه ج ضطه1١ ح ٠٠ى ػ–آ٠ذح٠ص

فطقس، آ طرد جر١ء ف جطك١ جكؿ جىر١ ف ججآز؟ 39

ح ذح جكىظج ج جيآ Form_Paint ل١س أضص ٠ط ضفؿ١ جذىج ٠حح . ذحنطح، ال ضطهى جهح١س جال ػى جكحؾس جحس True جهح١س

.... جم ذ١ ط جكىظ Line ،Print فم١، قحي غ جآجو جىطحذس ج آ.Form_Paint

... جم ذىػز، فحكه ذطغ١١ ل١س. Circle ،Line جيج آص ضطهى ٠ق ج قط ض٠ى ػس ٠ق ج ذمىج جؼف ال False ج ClipControls جهح١س

Visual Basic ٠م ذاحء طمس Clipping region ٠م ذحػحوز ج جال ح٠ك جط ضكطحؼ ج جػحوز ، جح جيج ضطهى ٠ق ج، فحم١س

True .ضى حرس جهح١س Device Context ضه١ن ف١ح آص ض٠ى ئحء ١حق HasDC جهح١س

حفز جيؼ ج ال، ١حق ج ػرحز ػ ضآ٠د نح ذظح جطغ١ ٠ك ، فحؾؼ Picture جفحش ذ١ححش جز . جيج آص ال ض غ ز ف جهح١س

هح١سل١س ج False آ ضم جطالن حو جظح غ جؼ ج ضؼ ؼه جال جيج لص ذطك١ ز ػ حفز جيؼ hDC جهح١س

ل١س إلطس ضي رحز ذؼى جي جز. hDC فطك جهح١سحفزجطحذغ Control Box ضػ ج ج ٠ظ ف ىق جطكى Icon جهح١س

جهح١س أضصجيؼ ج جظح ػ جحفز ف ١٠ جح ، ج ئيج

Page 25: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

25أعداد المبرمج:مشتاق طالب رشيد العامري

ShowInTaskbar ضح True ل١س جهح١س ) أضص، جح ج None فح ظح ) ضح ControlBox جطغ١ ٠غ جفطج ٠طس أ ضى ل١س جهح١سTrue ضه١ جرحؽ . ج أ ضؼ ج ال ٠ىه EXE File Icon

٠ه١ن ذ١ جقى جف جحيؼ جطحذؼس Visual Basic ذى طم، ف جؾوز ف ىق Make نحس جطر٠د Icon ػه ػ ٠٠ك جمحتس

Project Propertiesقج نحت جع . وجن حفز جيؼ،ضىه ضك١ ف ز ؼ ف Picture جهح١س

JPG ،GIF ،DIB ،BMPضىػ جهح١س ١ثحش هطفس جفحش : ،ICO ،EMF ،WMF CUR ضطط١غ ضك١ ف جز لص جط١ ذحنط١ح ج .

جف ىق قج جهح١س، ج جطهىج ٠٠مس جن جفح آغ١ج ٠ؼح ج جكحفظسجز جرحؽ ج Copy م Clipboard غ

. جيج جوش غ جز ف لص جطف١، Edit جمحتس Paste مح ذحنط١ح جال ضىه فؼ يه ج لس ز ضحذؼس ىحت آن: LoadPicture فحىجس

„ضك١ ز ؾ ج١! ( ” Form1.Picture =LoadPicture (“C:\Turki.BMP Form2.Picture =Form1.Picture „ Form1 ف جز جؾوز ف جيؼ

40

جهح١س: يالحظخ Picture ٠كط ػ نحت جحف١س آػ أحو

جز جضفحع غ١ح:Print Me.Picture.Height Print Me.Picture.Width

Icon ضىه جطهال LoadPicture طغ١جش ؾى ٠ىز ج جىجس VB6 جحف MSDNضؿى ـ جف ح ف ىطرس ، ICO ؿػس س ف ف

جط SavePicture ، فح جحغ يآ ١طح LoadPicture ذح ج يآش جىجس ضىه قفع جز ج ف:

SavePicture Form1.Picture, “C:\Aseeri.BMP”

ف ١ثس SavePicture جط ضكفع ذح جىجس Format ج١ثس: يالحظخ ف١ط GIF JPG جز جط قص ف جهح١س، ذحطػحء ج١ثحش

BMPضك٠ح ج ج١ثس .:خصبئص انشعى

ضػ جس جؾوز ػ حفز جيؼ جحضؿس جطهىج Image جهح١سطى وجتح فق جز جؾوز ف جهح١س.... جم، Cirle ،Line ٠ق ج Picture ضطط١غ جطهىج ج جالطفحوز ،– جهح١س جال -ج ف جطؼر١

ل١س جهح١س أضصج AutoRedraw . True ضكىو ػ ج ه جفحز جطهىس جهط٠ DrawWidth جهح١س ف ضكىو ForeColor جح جهح١س Line ،PSet Circle جالىحي ذطق ج

ف ضىه DrawStyle ج جالفطج طق جحذمس . ذحرس هح١س Line ، Cirlce ضكى٠ى ى جم جهط٠ جىجت ذحطهىج جط٠مط١

طمس جىجن ٠س جذغ ج جىجتز غ FillStyle آيه ضىه جهح١س CurrentX CurrentY . جح جهح١طح FillColor جطؼرثس جؾو ف جهح١س

Line ،Print فطػال جالقىجغ١حش جكح١س جط ضطهى طق جهؾحش ج .... جم، جطح ضطأغج ذى ػ١س ج نؼ ذحطهىج جطق جحذمس . جح

ىو جخ نؼ جطرحػس ذحطهىج جال ،ف ضك FontTransparent جهح١س Print ل١س جهح١س ضح أضصفا False ف١ى نف١س جطرحػس ف

ل١س جهح١س أضصيؼ، أح ئ BackColor جهف١س True فا نف١س جطرحػس طى فحفس.

41

:انخبصخ DrawMode نحت حفز جيؼ ج١س، فؼ ٠٠مح جل DrawMode ضؼطر جهح ز

Page 26: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

26أعداد المبرمج:مشتاق طالب رشيد العامري

غ جمح٠ - Line آ–ضكىو ٠٠مس جطفحػ ذ١ ج جط ضح ذطق ج Copy Pen-13 جؾوز ػ حفز جيؼ. جم١س جالفطج١س جهح١س

ضؼ ج ج ١ظ آح طخ، فحذغ جالذ١ ١ى جذ١ ػ ذغ جو، جىجتز جكجء ط قجء ػ طف جؾج . جال جه

ف ذؼ جكحالش جف١س ضو ج ض ضطأغ ذحالج جؾوز ػ قسشكم ج ج ػحي جلؼ ضؿى آغ١ج ف ذجؽ جطآ٠د 2 - 1:

)ج( )خ( )ؼ(

ضأغ١ جهح١س: DrawMode ج.ػ هؾحش ج جطط١ جالق ج ح ػ جطمس( ا)

جر١حء لى ذى ؾ١ى ؾىج، ٠ظ جفق ف جف جط١ جكح ذ١ جى١ )خ( )ؼ(، فف جى )خ( لح ذ جطط١ جالق آح ٠ى

ؤ٠ط، " ٠طى جطهى 50جق ح جغ غط ػ ج جىطخ "% ذك١ع DrawMode جح ف جى )ؼ( فمى جطهىح جم١س جحرس هح١س

ضمد ج جالق ج جذ١ ف قحس ج فق ج جالو . ؼفس آ٠ف ضط ػ١س ضغ١١ جالج، ػ١ه ج ضؼ ج جالج ف قم١مطح ج جال جػىجو ضطكي

ر١ خذحظح جػحت ج جلح ، ج ج ضطهى ٠ 10011101010 42

Screen ، ج جؾو ػ ـ ج طف ج ٠ Pen Color جمColor 15 ، فحم١س-MergePen هح١س DrawMode :ضم ذططر١ك جؼحوس جطح١س

S =S Or P

ج جطهى أف جؾو ػ جحس ج 170= 10101010 ١ى: MergePen-15 ضأغ١ جم١س–، فح ج جحضؽ 85= 01010101

S =01010101 P =10101010

S =S Or P S =10101010 Or 01010101

S =11111111

جوش ؼفس ؾ١غ جؼحوالش جص جذؼس م١ __________ . جيج 255 11111111 جالن،

DrawModeذح ؾىي ؾ١ ؾىج ض ج١ ذىطحذس جؿس " MSDN فىطرسProperty . ف جف "Index

:انخبصخ ScaleMode

ف ذىج٠س جف ذحطكى٠ى ػى فمز "نحت جلغ جكؿ " يآش ج جقىز جطهىس م١ح جقىجغ١حش جلغ ٠ي ػ جالوجش جـ وز جؾوز

Units ل١ ضػ قىجش 8 . ضف ه جهح١س ScaleMode ف جهح١س 0.72 ضؼحوي Point-2 ، 0.567 جط ضؼحوي Twip-1ضطهى م١ح :

Twips 120 ضؼحوي Character-4 ضؼحوي مطس جقىز ػ جحس، Pixel-3 ج،حوي ضؼ Milimeter-6 ضؼحوي ج جقى، Inch-5 ػحو٠ح، Twips 240 جفم١ح

قىز ل١ح نحس ٠ط ضؼ٠فح User-0 ضؼحوي جقى Centimeter-7 جقى، لر جرؽ.

Twipضؼوج ذؼ جضفحع جحفز وجتح ذحقىز ، Width Height جهح١طح ضإغ ػ جقىز جطهىس ف جالو جش ScaleMode فحم١س جطحذؼس هح١س

جكحس، جح ؼفس ػ جضفحع حفز جيؼ ذقىز غ١جكس فم١ ١ جطؼ ػ جؼ ػ ScaleMode ، ل ذطكى٠ى جقىز ف جهح١س Twip جي

ScaleHeightجالضفحع ػ ٠٠ك جهح١س : ٠٠ScaleWidthك جهح١س Private Sub Form_Paint)(

Page 27: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

27أعداد المبرمج:مشتاق طالب رشيد العامري

Cls ScaleMode =vbPixels „ذحرى

Print ScaleHeight

43 Print ScaleWidth

End Sub

ضؼوج ذؼ جضفحع ScaleWidth ScaleHeight ف جكم١مس، جهح١طح Width Height جحقس جىجن١س حفز جيؼ، ذ١ح ض جهح١طح

جحقس جىجن١س جهحؾ١س جطػس ف ه قىو ج جضفحع ١٠ ػج ج.، ضفق آغ١ج ؼه فحوج ح ضكطحؼ جحقس جهحؾ١س حفز، ػغ يه

جؼ ج جىو ٠طرغ جفق:Private Sub Form_Paint)(

Cls ScaleMode =vbTwips

Print Height - ScaleHeight Print Width - ScaleWidth

End Sub

طط١غ ضؼ٠ف قىز قىز ضؼف لر جرؽ، ض User-0 جن١ج، جم١س ScaleHeight ،ScaleWidthنحس ذه ػ ٠٠ك جحو ل١ ج جهحت ،

ScaleLeft ScaleTop لى ضكطحؼ ضؼ٠ف قىز ل١ح نحس ذه ف قحالش . حوز ضؼطى ػ ػ جهططحش ج١س ذى جطػحت.

غشق انىرطجطحذؼس هح١س ، ذح ج جفمز جحذمس ضكىغص ػ قىجش جم١ح ScaleMode

. جطق ضىه جؾجء ػ١س ScaleX ScaleY فأذىأ ذحطكىظ ػ جطق ضك٠ جم١ححش ذ١ جقىجش جحذمس جفم١ح ػحو ج. ج جم١س غ قىضح

جال١س غ جقىز جطذس: Twips „ج Pixels جطك٠

Print ScaleX(100, vbPixels, vbTwips)

ضهف١، طط١غ ج مي Hide ضإو ج جظح جيؼ جط٠مس Show جط٠مس ى ػ ى ٠ق: Visible ذى غمس جح ٠ػال جهح١س

Form1.Show „ Form1.Visible =True Form1.Hide „ Form1.Visible =False

44 غشق انشعى

جؾوز ػ جحفز ضف جالقىجغ١حش ضف ؾ١غ ج Cls جط٠مس CurrentX CurrentY ( جط٠مس0 , 0ج جالقىجغ ،) Point ضؼو ذحم١س جؼىو٠س

( ػ جحفز: x, y جؾو ف جالقىجغ ) Private Sub Form_Load)(

'ضك١ ز ؾ ج١! Form1.Picture =LoadPicture (“C:\Turki.BMP”)

End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single) Label1.BackColor =Point(X, Y)

Label1.Caption =Hex$(Point(X, Y)) End Sub

( مطس، X, Yضىه مطس ػ جحفز ذححي جالقىجغ ) PSet جط٠مس ج ذحىحه ForeColor ١ى جمطس ف ج جؾو ف جهح١س

جحي ج:Me.ForeColor =vbBlack

Page 28: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

28أعداد المبرمج:مشتاق طالب رشيد العامري

„مطس وجء ( 0 , PSet (0 PSet (500, 500), vbRed „مطس قجء

– PSet جط٠مس ضىػ جىس جكؿز -٠ق ج جالن Step جط ض١ف جؾوز ف جهح١طح–( ج جالقىجغ١حش جكح١س X, Yجالقىجغ١حش جس )

CurrentX : CurrentY Private Sub Form_Paint)(

Dim X As Integer Cls

Me.CurrentX =0 Me.CurrentY =0 For X =0 To 100

45 PSet Step(5, 5)

Next End Sub

( جح٠س X1, Y1ضىه جهط٠ ذححي جقىجغ١حش جرىج٠س ) Line جط٠مس(:X2, Y2)

ForeColor =vbGreen „ن١ جن ( Me.Line (0, 0 )- ( Me.ScaleWidth, Me.ScaleHeight

Me.Line (0, Me.ScaleHeight „ن١ جق )- ( Me.ScaleWidth, 0), vbRed

ح جم١ جكح١س هحت( ف X1, Y1ف قحس ضؿحه القىجغ ) CurrentX CurrentY :مطس جرىج٠س

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _ X As Single, Y As Single)

Me.Line - ( X, Y) End Sub

B ضىه جطط١الش ػح ػ جهط٠ ذححي جكف Line جط٠مسج جم ١ى جم جكىو ف جهح١سغ جؼ FillStyle : جFillColor

ForeColor =vbWhite Line (0, 0 „ذغ جذ١ )- ( 200, 200), , B

Line – Step (200, 200), vbBlue, B „ذغ جق

BFو جطهىج جهحت، ج جكف١ :–ط٠ جذغ رحز ForeColor =vbWhite

Line (0, 0 „ذغ جذ١ )- ( 200, 200), , BF Line – Step (200, 200), vbBlue, BF „ذغ جق

جط ججف جح ال ض ؿ ! جح Cirlce جنط فمز ٠ق ج ذحط٠مس وجت ذححي جقىجغ مطس آ جىجتز غ ٠ي لطح:

46 ForeColor =vbWhite

حء وجتز ذ١ „ 500 , (Circle (Me.ScaleWidth /2, Me.ScaleHeight /2 Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 200, vbGreen „وجتز نجء

، جح ذحم١س BF آح ف جط٠مس BF ػ١س ض٠ جىجتز ال ضط ذحطهىج FillStyleغ جم . FillColor جؾوز ف جهح١س

جىح١س جاللج ذطكى٠ى Cirlce جال١حء جط ضؼؿر ف جط٠مس Radianج٠س جح٠س جرىج٠س ذقىز ججو٠ح :

Const PI =3.14 „ف وجتز فطكطح ج جالػ

Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 1000, , 0, PI „ف وجتز فطكطح ج جالف

Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 800, , PI, 0 „ذغ وجتز

Page 29: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

29أعداد المبرمج:مشتاق طالب رشيد العامري

Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 500, , 0, PI /2

جىح ١س ج٠حي ج٠جف جاللج Circle جال١حء جط ض٠ى لز جط٠مسجهططحشذآ جىجتز ض٠ ؾء ؼ١ آح ٠كىظ غ Charts ؼ يه ،

٠ط٠ جطهىج جم١ جحرس:Const PI =3.14

FillStyle =0 FillColor =vbBlue

Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 1000, , - ( PI), - ( PI /2)

ذ١ جمط Ratio ، جطهى جطغ١ غ جرس Ellipse جك ٠غ جىحفة جؼو جالفم:

„جمط جؼو ٠ؼحوي ؼف جمط جالفم Circle (Me.ScaleWidth /2, Me.ScaleHeight /2), 1000, , , , 2

VB5ف جل ٠ق ج جط ظش جالىج ، PaintPicture جح جط٠مس ضطد ه Picture جغ جط٠مس ضحذؼس ىحت ج جهح١س

طغ١جش ! ال ضهف ضطؿد جطهىجح ىػز جطغ١جش، فحطذس جػالظ 10جز، جالذغ أحوجال جح جرحل١س ف جنط١ح٠س، ذحرس طغ١جش فحألي

47

جطح١س ضكىو ذح جطمس جط ط جز ػ١ح، جالذؼس جطح١س ضكىو٠ى ح فؼال جز جال١س، جطغ١ جالن١ ٠كىو جخجطمس جط ض

جز ػ جىف، ٠ططحذك ضحح غ ح جكط حذمح قي نح١س.DrawMode

فؼ ج١حء آغ١ز ػ ج، آ لرح، ػى PaintPicture ضىه جط٠مسف جىطحخججح، ضى٠ىح، ضك٠ىح .... جم، ضؿى ف Codes.ZIP ػحي ٠ؼ ه

ج جؿء جالح : PaintPicture ضطر١محش ػ١س ػ جط٠مسPrivate Sub Form_Paint)(

Cls PaintPicture Picture1.Picture, 0, 0, lWidth1, _

lHeight1, lX2, lY2, lWidth2, lHeight2, iDrawMode End Sub

يىعىد Printويبصال

ال ٠جي Print جمى٠س، فحال BASIC كطفظح ذحش غس Visual Basic حجي . ١ ج فم١، ذ حجص ج١غ VB6 ؾو طف جط١حش قط جالىج

Visual Basic" جؼحو٠س ىػس ف :;جمى٠س آجفج جم٠س " Print"فحس" ,"ػحو٠س"

Print"فحس" ;"م٠س"

غ ج: يالحظخ Print ف ٠ق جىحتحش، جال ج– ال ٠ؼطر -ضم ج

قط ضطج Visual Basic ٠٠مس. ف قحس نحس ضؼىح طج BASICجطجف١م١س غ غس .

، ف جم١ جؾوز ف جهح١س Print ع قؿ جه١ جحضؽ جالFont جىجي . TextHeight TextWidth ضف١ىج ؼفس جضفحع ػ ج ضهطف

ذحنطالف ع قؿ جه١ ططى جنط١ح جالقىجغ جحد رىء جىطحذس آح ف جىو جطح ج ٠ىطد ج ف ١ جحفز:

Dim sText As String Font.Size =20

" = جؼح"ضآ sText CurrentX ( =ScaleWidth - TextWidth(sText / ))2

CurrentY ( =ScaleHeight - TextHeight(sText / ))2

48 Print sText

Page 30: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

31أعداد المبرمج:مشتاق طالب رشيد العامري

جن١ج، ؾ١غ جهؾحش ج١س ػرحز ػ مح٠ ضطى ف ز قحح آقحي ٠قImage ج، جهح١س جثس ػ قفع جؼحش ج ىحس

جهؾحش.

احذاس انىرطجشأحو أحوحفز جيؼ جآغ Visual Basic ٠كط ػ جقىجظ، ؼظ

جقىجغح ض قح ف فمز "جالقىجظ جطآز ". جح جالقىجظ جهحس ذح فطفؿ ذىج٠س ضك١ جحفز قط جغاللح ذج جطض١د:

< - ( Deactivate )< - Paint < - Activate < - Resize < - Load < - Initialize .Terminate < - Unload < - QueryUnload

ذحرس كىظ: يالحظخ Deactivate فال ٠ط ضفؿ١ ذؼى جكىظ Paint جال

ف قحس ل١ح جطهى ذطكى٠ى حفز جن ف ف جرحؽ، جيج ػحو جطهى ج جحفز جال، فح جس جحذمس ضرىأ

> جكىظ ... - Paint < - Activate :انحذس Initialize

جيؼ ف جآجون ج جحء هس أحو٠ط ضفؿ١ ج جكىظ ذؿو جطهىج جيؼ، ٠م أحوؾى٠ىز Visual Basic ذطفؿ١ ج جكىظ رىج ؾىج أ لر

جحء حفز جيؼ غ جالوجش ػ١ح: Form2 „جطحذغ يؼ Initialize ٠ط ضفؿ١ جكىظ

Dim X As Form2 Set X =New Form2

لى ضطف١ى ج جكىظ طؼ١١ ل١ جذطىجت١س طغ١جش جطحذؼس حفز جيؼ لر جحء جحفز:

Dim sUserName As String Private Sub Form_Initialize)(

sUserName"طهى ؾى٠ى" =

49 End Sub

:انحذس Load

ف ػ١س ضك١ جحفز ذحطهىج جىجسذؿو جرىء Load ٠ط ضفؿ١ جكىظ :Load

Load Form2

ج قط ػى ل١حه ذحطهىج جقى نحتح ج جطىػحء ٠لح: Form2 „جطحذغ يؼ Load ٠ط ضفؿ١ جكىظ

Caption „لر ضؼى٠ ل١س جهح١س “جحفز جػح١س” = Form2.Caption

٠طرد ف ظ جحفز ف ٠مغ ػىال Load ج ؼفس ج جكىظ ضك١ جحء جحفز فم١، فال ضكحي جطهىج جالج جطحذؼس جؾس آ

SetFocus ج ٠ق ج .... جم. لى ضطف١ى ج جكىظ ذغ ل١ جذطىجت١س آ:

Private Sub Form_Load)( Text1.Text =sUserName

End Sub

:انحذس Resize

ج ضظ حفز جيؼ، فح جكىظذؿو Resize ٠ط ضفؿ١ ج آح لح جطهى٠ ذطكؿ١ جحفز ضغ١١ قؿح، لى ضطهى ج جكىظ ذىػز ػى

غرطه ف كحيجز جالوجش ج ضغ١١ قؿح آح لح جطهى ذطغ١١ قؿ جحفز:Private Sub Form_Resize)(

فزض١١ جالوجز ػ جح ' Command1.Move (Me.ScaleWidth - Command1.Width / )2, _

Page 31: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

31أعداد المبرمج:مشتاق طالب رشيد العامري

(Me.ScaleHeight - Command1.Height / )2 End Sub

50

:انحذس Activate

ج ذؿو آ جحفز - Resize ذؼى جكىظ–٠ط ضفؿ١ جكىظ ذؿو ظ جحفز جكىظ جيج جطم . غ يه، ٠ط ضفؿ١ Active Window جحفز جطس

جطهى ذحؽ آن ج ذحؿه، أ أ ج جكىظ ال ٠ط ضفؿ١ ئال ػى –جطم ذ١ جف ذحؿه فم١ . لى ٠ف١ىن ج جكىظ ف ضغ١١ كط٠حش جحفز

ذؿو ل١ح جطهى ذطغ١١ كط٠حش حفز جن ف ف -آضؿى٠ع جر١ح جش جرحؽ:

Private Sub Form_Activate)( Label1.Caption =Form2.Text1.Text

End Sub

:انحذس Paint

٠ط ضفؿ١ ج جكىظ آح وػص جكحؾس ج جػحوز جحفز، ف لص ذغ Paint جحفز فق جحفز ظ ضؼو ج جحفز ، فح جكىظ

جحفز غ ضظح ١ط ١د جلع، آيه ػىح ضهف جؾجء ضفؿ١ جكىظ . ج ؾىج ؾىج جنرحن ذح ف قحس آ ل١س جهح١س

AutoRedraw ضح True فح جكىظ Paint ٠ط ضفؿ١ قط ضكؽ جرمز ػ ل ج! جف جآجو ٠ىه ؼح ذ١ ط ج جكىظ جآجو ج،

وجتز ضغط ؼظ جؾجء جحفز: جىو جطح ٠ Private Sub Form_Paint)(

Cls FillStyle =0

Circle (ScaleWidth /2, ScaleHeight /2), _ IIf(ScaleWidth < ScaleHeight, ScaleWidth, ScaleHeight / )2, 0

End Sub

ف Paint جف١ى ج جيآ ح ذح ضغ١١ قؿ جحفز ٠إو ج ضفؿ١ جكىظ ال Paint قحس ج لح جطهى ذطىر١ جكؿ، جح ػى ضغ١ جكؿ فح جكىظ

٠ط ضفؿ١، يه ال ال ضؾى قحؾس الػحوز جؾجء جحفز، فمى ضالقع ف جىو جحذك جه جيج لص ذطغ١١ قؿ جحفز، فح جىجتز ٠ط جػحوز ح،

لى ضؿرجفىز جآ٠س جط Visual Basic الػحوز جىجتز ٠٠ك جكىظ :Resize

51 Private Sub Form_Resize)(

Form_Paint End Sub

غ ج جىو جحذك ك١ف، جال ج ال ٠هؼ جحذغ ذؽ ق٠ف، جرد ج ١ط ضف١ ض١ آح لح جطهى ذطىر١١ قؿ جحفز، Paint جكىظ

ذرد جػحوز ج جػح١س ذرد جالطىػحء جؾو ف جكىظفحأل Resize ه ضؿى ج جرؽ جآ ال ٠طىػ جكىظ ، Fomr_Paint رحز ذ

١Refreshفؼ ػى لص جكحؾس ذحطهىج جط٠مس : Visual Basic ٠طن جال يPrivate Sub Form_Resize)(

Me.Refresh End Sub

ضى حفز جيؼ ؾحز الطمرحي جالقىجظ Paint ذؼى جكىظ جطمحت جالن١ غ١ح، جح ف قحس ػى ؾو Click جهحس رحل جالوجش ج جقىجغح جالن آ

جهح ذحفز جيؼ ١ط GotFocus أ جوجز لحذس الطمرحي جطآ٠، فح جكىظ ضفؿ١ فج.

Page 32: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

32أعداد المبرمج:مشتاق طالب رشيد العامري

:انحذس Deactivate

٠ط ضفؿ١ ذؿو ج ٠طم جطآ٠ ج حفز جن Activate ػى جكىظ ضحذؼس رحؿه فم١ . لى ٠ف ج جكىظ ج٠ح ف قحس جالنفحء جإلص حفز

Falseج . Visible ج ضؼى٠ ل١س جهح١س Hide ذحطهىج جط٠مس:انحذس QueryUnload

ػىح ضى جحفز ػ ه جالجس جحت١س QueryUnload ٠ط ضف١ جكىظ ١ جالنفحء جإلص . ٠ىه ج جكىظ جالطؼال ػ جط٠مس جط–ججآز . ج٠ى ج٠ح، UnloadMode ضررص ف جغالق جحفز ػ ٠٠ك جطغ١ ج

ج جطغ١ True ضطط١غ جغحء فىز جغالق جحفز ػ ٠٠ك جحو جم١س ، فحىو جطح ٠ى جطهى جغالق جحفز ذحطهىج Cancel ج

" جؾو ف جػ جحفز:Xج ج جغالق " Control Box ىق جطكىPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If UnloadMode =vbFormControlMenu Then Cancel =True

52 End If

End Sub

ؾوز ف ضؼ١حش UnloadMode ٠ق جالطؼال جالن ػ ل١ جطغ١.MSDN

:انحذس Unload

Unload ج ضم ذحغحء ػ ٠س جغالق جحفز ف جكىظ جحذك، فح جكىظجحفز ػ ٠٠ك فجكىظ جطح، ؼط١ه فس جن١ز الغحء ػ١س جغالق

ف غ١ ؾو. UnloadMode ، جح ذحرس طغ١ Cancel جطغ١ ج:انحذس Terminate

جيؼ، ع ش جىحتحش جقى أحو٠ط ضفؿ١ ج جكىظ ذؿو ش ٠س جطؾ ."أحوفمجش جف جهح "جرؿس OOP

Menusانمىائى جف جحيؼ لص جط١ ػ Menu ض١ لحتس Visual Basic ٠ىه

، قىو حفز جيؼ غ جنط جال Menu Editor ٠٠ك ىق جكج ك جحيؼMenu Editor… لحتس Tools جيج آص ضؼح آغز جػحوز ضىج ضؼرثس .

دكط٠حش جمجت، ضطط١غ جطهىج لجد جمجت Template Menu ػ ٠٠ك VB6 Template Managerى٠ جمجد . Add-In جالحفس

جط ضػ Caption رىت١ح، آي قىز قىجش جمحتس ضكط ػ جهح١س " غ ن١ ضكص جكف ج ١٠&ج جظح ػ جمحت ز، جطهى ج "

محتس ذحغ١ ػ جفطحـقط ضى جطهى جي ج جال ف ج Alt ل١س جهح١س أضصجكف ج ٠ ج، جيج Caption " فم١، فح-ج "

ضػ جال جد ؿ Name جمحتس طى ػرحز ػ ن١ فح . جح جهح١س محتس ج ضطرك ػ١ ف ٠ جالوجش ف جط١س، فحمحتس ح جال

جآجو ضؼىي ف نحت جمحتس لص وطحذسع نح، فرحىحه أوجز ى جطف١:

“ف&” = mnuFile.Caption mnuEdit.Enabled =False

53

ؾوز ف جمجت ضإغ قط ف جمجت Visible Enabled آح ج جهحتػالس جنط١حضكىو ح جيج آص ض٠ى غ Checked جفػ١س جطحذؼس ج. جهح١س ف ضى جمحتس ػ WindowList ذؿحد ػج جمحتس . جح جهح١س

MDIؾ١غ ججف جكس ف جحفز جع .:انمىائى انجضمخ Pop-Up Menus

Page 33: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

33أعداد المبرمج:مشتاق طالب رشيد العامري

، فح لحتس غ١ز طظ ه . أحوجيج مش ذ جفأز جال٠ ػ أ ػ ٠٠ك Visual Basic . ضطط١غ ضطر١مح ف Pop-Up Menu جمحتس ض

غ ضكى٠ى جمحتس جط ضو ػح: PopupMenu جالPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, _

X As Single, Y As Single) If Button And vbRightButton Then

PopupMenu mnuView End If

End Sub

آح ٠ىه ػ لحتس ضحذؼس حفز يؼ جن:PopupMenu frmMain.mnuHelp

االدواد انذاخهخ ف١ح ٠ ػ ه ؿ١غ جالوجش جىجن١س جؾوز ف ىق جالوجش

ToolBox : جرىج٠س غ أوجز جؼجLabel

Labelأداح انؼىا ق١ع ضؼ ج Windowless Controls جوجز جؼج جالوجش جؼىس ججف

ج " وطحذسجطحذؼس ح، ف قحس Caption جؾو ف جهح١س " لر جقى& جكف ف جهح١س، فح ن١ غ١ ٠ط ضط١ ضكص يه ج كف ٠ى

جطهى م جطآ٠ ج جالوجز جط ض أوجز جؼج ف جهح١سTabIndex ١ ػ جفطحـ ] جيج غ Alt يه جكف، ضطط١غ جغحء جهىس ]

Falseج . UseMnemonic جحذمس ذطك٠ ل١س جهح١س54

جيج جوش ػ ج ": يالحظخ & ل١س جهح١س أضص" ػ جألوجز UseMnemonic ضح True ج ض١. وطحذس، ف١ط٠

جالوجز، جهح١سضظ قىو قي BorderStyle جهح١س Alignment ضكحي ج ، ج١١ ج Left Justify-0 جؾو ف جالوجز جح ج١ح ج ج١١

ف WordWrap . جح جهح١س Center-2 ج ف ج١ Right Justify-1 ج١ح ف١ىز ؾىج جط٠س ق١ع ضم ذحجقس ج ج ط ؾى٠ى آح

جألوجز . جهح١سقىو BackStyle ضكىو ح جيج آص ض٠ى ؾؼ أوجز جؼج فحفس ذك١ع ضظ جالوجش جط نفح ج ال.

ذحالحفس ج ػ ج، ٠ؾى جطهىج ؾ١ الوجز جؼج ج٠رم ذه غز ف ذجؿ، ق١ع جغ ؿػس جوجش جؼج ػ جحفز جط ضكط ػ ز

جل ذىطحذس ذؼ جالآجو ف جكىظالج Click ى أوجز، كره جك١س أل ذغ ى أوجز ح ٠ق طهى ج جالج جؾوز ػ جز ToolTip ض١ف

قم١م١س.

TextBoxأداح انص ذى Windows جآغ جالوجش جطهىجح ف ضطر١محش Text Box أوجز ج

جػ طفحػ غ جطهى جكي ػ ل١ جىنالشػح، ف ج١س . ذؼى ج ض١ف أوجز ؾى٠ىز ػ جحفز، جف ج جالذطىجت ح ػ . جيج جوش غ جطهى ضغ١١ كط٠حش أوجز ج، Text ٠٠ك جهح١س

ضكىو MaxLength ضف ذحغ . آح ج جهح١س Locked هح١س True فحم١س جؼىو جالل جكف جط ٠ى ج ٠ىطرح جطهى . ضطط١غ ضكى٠ى قف

ؼ١ آجؿس "*" طظ ذمىج ػىو جكف جىطذس ػ ٠٠ك جهح١سPasswordChar .ججف ج جغ جت١ ح ىحش ج ،

جيج جطهىص جهح١س: يالحظخ PasswordChar طهى ٠طى، فح ج جمحتس Copy لس ج جىطخ ػ جألوجز ذحنط١ح جال

جىس ذؼى جم ذ جفأز جال٠ ػ أوجز ج، أل يجآز

Page 34: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

34أعداد المبرمج:مشتاق طالب رشيد العامري

Visual Basic ال ض جغحء جج ج ل جم جمحتس جحذمس. جح جأش لجت ذح جج م ك، فجآضه

جإس ػ جغحء ج ػى ضى١ جظحتف.55

طى جطهى ضك٠ ج ػ ػىز ط، MultiLine جطهى جهح١س ف ضطكى ذظ ج جنفحء ج٠س جط٠. ScorllBars ال ض جهح١س

ل١س جهح١س أضصجيج : يالحظخ MultiLine True ل١س جهح١س ScorllBars 0-None 2 ج-Vertical فح ج ج ٠ىطر ،

جطهى ١ط ججقط ج ط ؾى٠ى ذؿو جي ج قىو الوجز جؼج. WordWrap آجهح١س–جالوجز

جطحذؼس الوجز ج نحت Run Time Properties نحت لص جطف١ف جهح١س ضىه ضكى٠ى ؼ١، ق١ع ضغ مطس جرىج٠س SelStart ٠ي

. جىو جطح ٠م ذطكى٠ى ج ذؿو جطمحي SelLength جطكى٠ى ف جهح١س جطآ٠ ج أوجز ج:

Private Sub Text1_GotFocus)( Text1.SelStart =0

Text1.SelLength =Len(Text1.Text) End Sub

فحطهى جهح١سجيج جوش ؼفس ج جطرىجي ج جكىو SelText جح جهح١س . Text كىوج ج ال، ف جوش أف ضػ آج ج جؾو ف جالوجز جء

١ثح ػ: أوطدجحفس ج جالوجز و قف ج جؾو ذح فح “ جحف” = Text1.SelText

حـ جؿىس ج جط٠ ح ذح جطهى ٠طط١غ جطهىج فط TAB[ [ جغحء جىطحذس ف نحس ج، جرد ف يه طم، فحفطحـ ] ]TAB

٠إو ج جطمحي جطآ٠ ج جالوجش جالن، ضطط١غ جطفحف قي جىس ؿ١غ جالوجش غ جػحوضح: TabStop جر١طس ذحغحء جهح١س

Private Sub Text1_GotFocus)( On Error Resume Next

Dim ctrl As Control For Each ctrl In Controls

ctrl.TabStop =False

56 Next

Err.Clear End Sub

Private Sub Text1_LostFocus)( On Error Resume Next

Dim ctrl As Control For Each ctrl In Controls

ctrl.TabStop =True Next

Err.Clear End Sub

جط ضجؾ طهى جحآي Windows 2000, XP جؼخ ػى ظ –جكف جؼذ١س ذحى جطخ ػى هح أوجز ج جحلح ج -جق١حح

ذحؽ آن، جرد ف يه ٠طؼك ذط٠غ فكحش جكحف جطحذؼس ط١UNICODE ال ض١ أوجش Visual Basic ح جي ر ػ ؾىي ASCII ال ج٠ى ،

ج جف ف جع جآغ يه قط ال هؼ ػ ؿحي جفمز، ىه ضطط١غ ق جىس ذطغ١ جغس ج جغس جؼذ١س ذحغ١ ػ جالج

Alt+SHIFT:ج ػ يه ذؿ١ح لر ػ١س جم ج جم ] ]

Page 35: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

35أعداد المبرمج:مشتاق طالب رشيد العامري

Declare Function LoadKeyboardLayout Lib "user32 "Alias _ "LoadKeyboardLayoutA( "ByVal pwszKLID As String, ByVal _

flags As Long )As Long Sub BeforeCopyOrCut)(

LoadKeyboardLayout "00000401", 1 End Sub

:انغطشح ػه انذخالد

جىس جط جو ج جكح جح ق١ رؽ طلغ جونحالش ؼ١س ضأو١ىجطهى. فػال، ؼص أوجز طؿؼ جطهى ٠ىطد ػ فرى

ططلغ ج ٠ى جؼ ل١س ػىو٠س، ى حيج جون جطهى قفح؟ فح جإآو أ طك ١ ن ضف١ جرحؽ ١طأغ ف جف جالقجي ج جيج

طط ىطحذس جآجو جحف١س ط ج. ه Run Time Error ضظ حس جهطأ 57

أوجز ج ال ضكط جال ػ جػىجو، ؼ جكىظ جحد ىطحذس آو جطكمك KeyPressقىظ :

Private Sub Text1_KeyPress (KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then

„جفطحـ جىن ١ ػىو KeyAscii =0

End If End Sub

ال ال جن جى٠، ػح جرؿس ؼرس ػم١س طم١س، جال ف١ ال ضط ذحس جط ضط لؼح! ال ح جص حه جىح١س ج ٠ىن جطهى قف

ف أوجز ج ذحنطح : ػ ٠٠ك ك ل١ قف١س جكحفظس أ ذحغ١ج طى جؾحذطه جآ٠س ؾىج ج ىطد جآجو. ف Ctrl +V ػ جفطحق١

غ ف١ جطهى جؾجء ػ١س جك . ف KeyDown جحف١س ف قىظ حه! ىه ١ص ٠٠مس جن ك ػ ٠٠ك جمحتس جهطز جط ج أوجز ج جط ضظ ػ ٠٠ك جفأز جال٠، جط Visual Basic ١٠فح

نالح ٠طط١غ جطهى ج ٠ك ج! ال ضؾى ىس جال ح ق فج ػح جرؿس حآي قي . ؾ ز ع

طكمك ع ل١س ج جىن -جلى قىظ-جه١س، ج ج جف ىح ، ى جىس ف١ ج ٠ططد ض٠ف طغ١ ٠ ػح١ ؼوز Change جكىظ

جم١س جؿى٠ىز ١ص ػىو٠س: أضص١س جمى٠س ألوجز ج جيج ذحم Dim OldText As String

Dim OldSelStart As Long Private Sub Text1_GotFocus)(

„ػىح ٠ى جطآ٠ ػ جالوجز „الذى قفع ل١طح

OldText =Text1.Text OldSelStart =Text1.SelStart

End Sub Private Sub Text1_Change)(

If Not IsNumeric(Text1.Text )Then „جفطحـ جىن ١ ل

58 „ل ذحػحوز ػ جم١س جمى٠س

Text1.Text =OldText „ضؾى ىس نط١ز ح Text1.SelStart =OldSelStart

Else „جم١س جىنس ل١س جيج

Page 36: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

36أعداد المبرمج:مشتاق طالب رشيد العامري

„ل ذكفظح OldText =Text1.Text

OldSelStart =Text1.SelStart End If

End Sub

آح ضالقع، ف جىو جحذك ه ح ج جطهى ٠طط١غ جونحي جالص جطؼ١ك "ضؾى ىس نط١ز ج" جرد جأوطرجاللح ى ف جقى جط

ف١ذط Visual Basic ، ١م Text1.Text =OldText ػىح ٠ط ضف١ جط ؾى٠ى ! أ ج ج جالؾجء ١ط ضف١ آح ٠ؼف ف Text1_Change جالؾجء

جقى جح١د جهج١حش جطجؾؼ١س Recursivly ػح جرؿس ضجؾؼRecursion قط ضطفحو جىس جطهى طغ١ طحض١ى ٠غ قىظ .

يه:Private Sub Text1_Change)(

„طغ١ ٠غ جطىػحء جالؾجء ضجؾؼ١ح Static bExitNow As Boolean If bExitNow Then Exit Sub

If Not IsNumeric(Text1.Text )Then „جفطحـ جىن ١ ل

„ل ذحػحوز ػ جم١س جمى٠س bExitNow = True

ح أضصيرص جىس جهط١ز جط „ Text1.Text =OldText bExitNow =False

Text1.SelStart =OldSelStart Else

„جم١س جىنس ل١س جيج „ل ذكفظح

OldText =Text1.Text OldSelStart =Text1.SelStart

59 End If

End Sub

جهح Caret حجص ضؾى ىس جن نط١ز ج٠ ج! ضطؼك ذلغ جإال ٠ك ذكفع لغ جإ جال ف قحس ضغ١١ جك ٠س ذأوجز ج . فحىو جحذك

ألوجز ج ح ٠طرد ف حآي ال ح٠س ح ػىح ٠م جطهى ذطغ١١ ىح جإ و ضغ١١ جم١س آضك٠ى ذال ف قس جفحض١ف ج ذ جفأز .

جك ػ ٠٠ك قفع ل١س لغ جإ ف قحس قىظ يه:Private Sub Text1_KeyUp (KeyCode As Integer, Shift As Integer)

OldSelStart =Text1.SelStart End Sub

Private Sub Text1_MouseUp (Button As Integer, Shift As Integer, _ X As Single, Y As Single)

OldSelStart =Text1.SelStart End Sub

Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer) OldSelStart =Text1.SelStart

End Sub Private Sub Text1_Click)(

OldSelStart =Text1.SelStart

End Sub

Page 37: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

37أعداد المبرمج:مشتاق طالب رشيد العامري

٠ى حن ق آن ح آص لى ػ ص جىس جرىج٠س، ال ضأو١ىذى ى جونحي جم١س ١ ف جغحءجك ٠ط ذحنطرح جم١س ذؼى ج ٠ط جطه

Visual Basic ج ظ آق رؿ Validate يه. ٠ط يه ػ ٠٠ك جكىظ ٠ؼ Validate جؾس ػ جحآي ذحطكى٠ى غ جىج جحو . قىظ

، ؼفس آ٠ف ٠ط يه، جلد ج CausesValidation ذحطىح غ جهح١سح ٠طم جطآ٠ أوج جج١ح٠: ػى Text1 ج جالوجز X٠م ، Visual Basic

X جطحذؼس الوجز CausesValidation ذحنطرح ل١س جهح١س ل١طح ، أضص، جيج True 60

ؼط١ح جرؽ Text1 جطحذغ ألوج ج Validate ذطف١ جكىظ Visual Basic ٠مفططط١غ جنطح جمحس ذج جىو:فس النطرح ع جم١س.

Private Sub Text1_Validate(Cancel As Boolean) If Not IsNumeric(Text1.Text )Then

„جفطحـ جىن ١ ل Cancel =True

End If End Sub

قط غ ػ١س جالونحي True ج Cancel فطالقع ج ح لح ذطغ١١ ل١س جطغ١جطهى ؼو ذحطآ٠ ج أوج ج Text1 لى ٠أي حت ٠مي حيج ال .

LostFocus ؟ جؿجخ ج جكىظ Validate ذىال LostFocus طهى جكىظ غ١ ! أ جه ضكطحؼ ج جآجو جحف١س طغ و٠ جه١حجش )فال ٠ؾى ذ جطغ١

Cancel ج٠ى ج٠ح، جكىظ ) LostFocus ١م وجتح ذحنطرح جم١س غ جه ال ضو جنطرح جم١س وجت ج، ػال ػىح ٠م جطهى ذحغ١ ػ ج جغحء جال

Cancel .جهح ذىق جكج ج ط

CommandButtonصس االوايش ٠ؾى. ال CommandButton ذؼى جوجض جؼج ج ضرىأ ذحطهىج جالج

، جال ضغ قى جحف Default Cancel جىػ١ النرن ذ ػح جال جهح١طح قي ج ضى جطهى ضف١ جالج ذؿو جغ١ ػ جفطحـ

ENTER [ جػح١س جفمس فطحـ ] ]ESC ، ذحرس هحت ج .]Picture DisablePicture DownPicture ى ؤ٠س طحتؿح قط ضغ١ ل١سف ضط

. Graphical-1 ج Style جهح١سذحرس هح١س: يالحظخ Caption " وجتح آح ضطأغ أوجز&ف ضطأغ ذح "

UseMnemonic ذج ج ػىح ضى ل١س نح١طح Label جؼج Trueضح .

CheckBoxأداح االخزبس طهى طكى٠ى جنط١ح ؼ١ جح ذطفؼ١ ج ال، ل١سضؼط جالوجز فس

ج Checked ،0-UnChecked-1 جط ضى جح Value جطفؼ١ ضكطؿ ف جهح١س61

2-Grayed ذحرس م١س جالن١ز، ف١ؼطمى ؼظ جرؿ١ جح ضر جم١ ز ، False هح١س Enabled م١س% ال ج 100 ، ج جالػطمحو نح٠ة False هح١س Enabled 2 ضغ جطهى جطؼح غ جالوجز، ذ١ح جم١س-Grayed ضى

يه، ضطط١غ جطهىج جهح١س ف قحالش ح ذ١ ضكى٠ى جالنط١ح ج ال، آضكى٠ى ؿػس جنط١حجش فػ١س آح ج ذؼح ج ػى ضكى٠ىح، ف جف

Codes.ZIP م١ح ػ جم١س.ضؿى ػحال ضطر١ ٠ط ضفؿ١ ػى ل١حه ذطؼى٠ Click ج ج ضغ ف يه ذح جكىظ قط ٠م جطهى ذحم ػ جالوجز . ذحرس Value ل١س جهح١س ف ضطى ؤ٠س DisablePicture ،Picture DownPicture هحت ج

جهح١سطحتؿح قط ضغ١ ل١س Style 1 ج-Graphical . ذحرس هح١س: يالحظخ Caption " ضحح آح ضطأغ أوجز&ف ضطأغ ذح "

Page 38: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

38أعداد المبرمج:مشتاق طالب رشيد العامري

ذج ج. CommandButton جالج

OptionButtonصس االخزبس ر١ ذأوجز Radio Button ٠ جق١حح ذ ججو٠ OptionButton جالنط١ح . آيه False ج True ضى جح Value ، جال ج ل١س جهح١س CheckBox جالنط١ح

الآغ جنط١ح جقى ف ف True ج Value ضطط١غ ؾؼ ل١س جهح١سأ ف جالوجز ج حفز جيؼ جكحس، ه ٠ف غ جالج-جؿػس

ؿػحش ضحد ض١ف جالنط١حجش .ضض١رح ػ Frame ف وجن جوجز جال٠ح ف ضطى DisablePicture ،Picture DownPicture ذحرس هحت ج

. Graphical-1 ج Style ؤ٠س طحتؿح قط ضغ١ ل١س جهح١سذحرس هح١س: يالحظخ Caption " ضحح آح ضطأغ أوجز&ف ضطأغ خ ج "

ذج ج. CommandButton جالج

ListBoxأداح انمبئخ ضؼ ه جالوجز ؿػس ج ف وجن ىق ٠كط ػ ج٠س

ضم ذف كط٠حش جالوجز ف ضحػى ذحالطحو Sorted . جهح١س ScorllBars ض٠–ػ قفح جالذؿى٠س، غ جؼ ج جكف جؼذ١س طى جف -الف

جكف جالؿ٠١س . ضطط١غ ػ آي كط٠حش جالوجز ػ ى جػىز ضغ ١٠ جط٠ جؼو طظ ١٠ جط٠ جالفم، ١ى ػىو جالػىز

62

غ ج ال جقر جط٠مس ؼ Columns ف جؼىو جؾو ف جهح١س كط٠حش جالوجز.

٠ى ول١مح آح جكحي غ جالوجش جالن، Heightضغ١١ جضفحع جالوجز ٠كحي ضؼى٠ جضفحع جالوجز قط ضؼ جط آجال ف Visual Basic جرد ج جمحتس، ف ضطط١غ ػ ف جط جال جيج لص ذحغحء جكحيجز جط ٠فؼح

Visual Basic ػ ٠٠ك ؾؼ ل١س جهح١س IntegralHeight . ضحFalse ج لص List ضطط١غ ضؼرثس كط٠حش جالوجز ف لص جط١ ػ ٠٠ك جهح١س

AddItemجطف١ ذحطهىج جط٠ك : List1.AddItem “جالي”

List1.AddItem “جػح” List1.AddItem “جػحع”

جيج آص ط١ف ثحش ج جالف جؼح لص جطف١، ف١ف ذحنفحء جالوجز إلطح ذؼى جحفس جؼح ضؼ١ى جظحح ؾى٠ى، يه أل جالوجز ضؼ١ى فح ضمحت١ح غ

جحفس أ ػ ئ١ح، ح ٠طرد ف ذ١ء جطف١ آيه جضؼح جالوجز:List1.Visible =False For X =0 To 10000

List1.AddItem X Next

List1.Visible =True

ل١س جهح١س أضصجيج -٠س س جؼح جؼح جؿى٠ىز ضحف ج ح Sorted ح ضكىو لؼح ذفه: - False ضح

List1.AddItem “جػحع” List1.AddItem “جالي”, 0

List1.AddItem “جػح”, 1

ضآ ج ضكى٠ى لغ جؼ ٠إغ ف ضض١د جؼح جالل . ذحىحه قف جؼ كف ؾ١غ جؼح: Clear ج جط٠مس RemoveItem ذحطهىج جط٠مس

List1.RemoveItem 0 List1.Clear

63

ج 1 -ضؼو ذم١س جؼ جكىو ف جالوجز، ضؼو ذحم١س ListIndex جهح١س

Page 39: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

39أعداد المبرمج:مشتاق طالب رشيد العامري

Text ٠ى حن أ ػ كىو، ذحىحه ضؼى٠ ل١س جهح١س ج٠ح، ج ج جهح١س ف ضؼو ذ جؼ جكىو:

List1.ListIndex =0 Print List1.Text

ف ضؼو ذؼىو ؾ١غ جؼح جؾوز، جط ListCount ذحرس هح١س جط ضىه جي ج جؼ: List ضطهى ذىػز غ جهح١س

For X =0 To List1.ListCount Print List1.List (0)

Next

ى جطهى ضكى٠ى ػىز ػحف ض MultiSelectذحرس هح١س ل١طح أضصططح١س ف جالوجز جيج 1-Simple ذحطهىج–ج ػىز ػح غ١ ططح١س

ل١طح أضصجيج -[ Ctrlجفطحـ ] 2-Extended ضطط١غ ؼفس جؼ جكىو ػ ، جمحتس، يج جىو ٠م ؾ١غ جؼح جكىوز جوجز Selected ٠٠ك جهح١س

ج جن:Private Sub cmdMoveLeft_Click)(

Dim iCounter As Integer iCounter =0

Do While iCounter < =lstRight.ListCount - 1 If lstRight.Selected(iCounter = )True Then

lstLeft.AddItem lstRight.List(iCounter) lstRight.RemoveItem iCounter

iCounter =iCounter - 1 End If

iCounter =iCounter +1 Loop

End Sub

64

CheckBoxes ج٠ح ؼفس جوجش جالنط١ح Selected ضطهى ف جهح١سل١س جهح١س أضصجكىوز ذؿحد جحء جؼح جط ضظ جيج Style ضح

.1-CheckBox جطهى ذحطهىج ج٠س جط٠٠ط ضفؿ١ ذؿو ل١ح Scroll جن١ج، جكىظ

ScrollBars .جطحذؼس الوجز

ComboBoxأداح انمبئخ جحذمس ؾوز ف جالوجز ListBox ؼظ جهحت جطق جطحذؼس الوجز

ComboBox يه ال جالوجز ، ComboBox ػرحز ػ أوجز ListBox ل١ح١س ضكط ح، ضطط١غ ػ نحس ج ذؼىز ٠قجحف١س ف جػال TextBox ػ نحس

ل١س جهح١س أضص. جيج Style ذحطهىج جهح١س Style 0 ضح-Dropdown Combo فح جوجز ج طظ غ ٠إو جم ػ١ ج ظ جؿء جػح

ل١س جهح١س ضح أضص، جيج ListBox جر١ ذحالوجز– جالوجز 1-Simple Combo 2 -ل١س جهح١س ضح أضص جؿت١ ١ظج طهى، جح جيج فىال

Dropdown List ف ػ جم١س جال ذحػحء ج جطهى ٠طى جىطحذس ف نحس ج.

Scorll جح جكى٠ع ػ جالقىجظ ف ضكط ؼظ جالقىجظ جم١ح١س جكىظف٠ك جطط٠ ي، جال ج ListBox جؾو ف جالوجز Visual Basic ج– -ج ف جطؼر١ MouseDownلى جحفس جالقىجظ ، ComboBox جط ج لح ذرؿس جالوجزMouseMove MouseUp جيج حوفط ٠ح جال٠ح فحؾ ج ضك ذطحي جفطح !

Microsoftلر جحخ ج ىطر ف .

PictureBoxأداح انصىسح ىه جػطرح جوجز جز٠ PictureBox ػ جح حفز يؼ Form ذى ١٠

Page 40: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

41أعداد المبرمج:مشتاق طالب رشيد العامري

ػج، فؼظ نحت، ٠ق جقىجظ حفز جيؼ ؾوز ف جالوجزPictureBox ه ال ٠ؾى وجػ الػحوز يآح ف جفمز ذحطػحء جهح١س

AutoSize ش جز جؾوز فجط ضؼىي قؿ جالوجز ذك١ع ضؼ ؾ١غ كط٠ح أ جز جؾوز ف جهح١س-جالوجز Picture آح ج جالوجز . PictureBox جوجز

قحس ٠ىح ج ضكط جوجش جن ف وجنح.

Imageأداح انصىسح ، ف PictureBox هس رطس جالوجز جحذمس Image جوجز جز

جال جح ال ضىػ جهحت جطمىس Picture ضؼ ج ػ ٠٠ك نح١طح65

Line.... جم آح جح ال ضىػ ٠ق ج ، DrawMode ،AutoRedraw ،HasDC آCirlce جم، جالقىجظ .... Resize ،Paint جم، جيج آص ال ض جطهىجح فمى .... ؼىس ججف جوجز جع Image ضه جىػ١! ال جالوجز Windowless

Control أ جح جع ذىػ١ جالوجز PictureBox آح ج جطالآح حو ، جطهىجه أ. فحيج PictureBox جل ذىػ١ جالوجز System Resources جظح

ػح ػ جالوجز Image الوجش جز لحج ػ ػ ج فم١، جطهى جالوجز.PictureBox

ScrollBarsاششغخ انزشش كحآجز ج٠س جط٠ جطز ف HScorllBar VScorllBar ضىه جالوجض١ طكى٠ى ؿحي جم١ جط Min Max . جذىأ ذحهح١ط١ Windows جف ضطر١محش

، جط ضػ جلغ جكح Value ٠ىه لجتطح ج آضحذطح ػ ٠٠ك جهح١س طط١ جطكن ف ١٠ جط٠ . ذؼى يه، قىو ل١س جطغ١١ جر١١ ػ

مىج جطغ١١ ف جم١س ػىح ٠م SmallChange ٠٠ك جهح١س ف LargeChange جطهى ذحم ع جقى جج ج٠س جط٠، جح جهح١س

م ػ ١٠ جط٠ ف.مىج جطغ١١ ف جم١س ػىح ٠م جطهى ذح ضؾى نح١س ضؼ ج٠س جالوجش ػ جف جحيؼ رحز، جح Delphi ف غس

فالف ال ضؾى، جيج آص ض٠ى غ ج ٠س جوجش ػ١ح، فحص Visual Basic غ جإي جالي جالن١ ػ ظح، جنفحتح ضك٠ه جالوجش، ذحرس طك٠ه

ف١ف جقطح جالوجش ف جوجزجالوجش PictureBox قط ض ػ١س جطك٠ه ػ١ه:

Private Sub Form_Resize)( If Me.ScaleHeight < picMain.Height Then

VScroll1.Move 0, 0, VScroll1.Width, Me.ScaleHeight - HScroll1.Height picMain.Left =VScroll1.Width

VScroll1.Min =0 VScroll1.Max =-( picMain.Height - Me.ScaleHeight)

VScroll1.SmallChange =50 VScroll1.LargeChange =500

Else picMain.Left =0

VScroll1.Move Me.ScaleWidth +VScroll1.Width End If

66 If Me.ScaleWidth < picMain.Width Then

HScroll1.Move VScroll1.Width, Me.ScaleHeight - HScroll1.Height, _ Me.ScaleWidth - VScroll1.Width

HScroll1.Min =0 HScroll1.Max =-( picMain.Width - Me.ScaleWidth)

HScroll1.SmallChange =50 HScroll1.LargeChange =500

Page 41: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

41أعداد المبرمج:مشتاق طالب رشيد العامري

Else HScroll1.Move 0, Me.ScaleHeight +HScroll1.Height

End If End Sub

انهفبدادواد غح DirListBox ،DriverListBox FileListBox ججف ج جوجش جفحش

جالح ػ فحش جؿح، ٠ؼ١رح جح جوجش لى٠س ؾىج، ىح جهحق ، غ ج ال جقر Windows ال ٠الت جوجش ػ جفحش جحتؼس ر١ثس

جطهىجح، جال ج ذقح ف – ضؼطر جالوجش جىجن١س، -ػ جالل آح ٠م: "٠ىح ضفه جس!".

DriverListBox ف جغد ججف، ضؼ جالوجش ؾرح ج ؾد فطرىأ ذحالوجز Driveػ ٠٠ك جهح١س : DiskDrive ضكىو قف كن جاللج جالذطىجت

Private Sub Form_Load)( Drive1.Drive = " C:\"

End Sub

قط ضغ١ ح جالوس جؾوز ف جالوجز Change غ ضطم ج جكىظDirListBox ف آي ز ٠م ذح جطهى ذطغ١١ جكن ف جالوجز

:DriveListBox Private Sub Drive1_Change)(

Dir1.Path =Drive1.Drive End Sub

67

جحذك، ف لح جطهى ذحنط١ح كن ج ؾىج ضلغ جهطأ ف جىو آجكن-جلج ال ٠ؾى ذ ل A فحس جهطأ طفؿ ف ؾ -: ػال

جطهى ض جرحؽ:Private Sub Drive1_Change)(

On Error Resume Next Dir1.Path =Drive1.Drive

If Err Then Drive1.Drive =Dir1.Path

Err.Clear End If

End Sub

ذؿو ضغ١١ ح جالوجز FileListBox جهطز جالن١ز ضغ١١ كط٠حش جالوجزDirListBox :ى ذه لى ذطح جالوجش جػالظ

Private Sub Dir1_Change)( File1.Path =Dir1.Path

End Sub

جح رحز هح١س وطحذس٠ىه : يالحظخ Path جطحذؼس الوجز DirListBox : قحح آقحي جالوجزFileListBox

Dir1.Path " =C:\Windows" File1.Path " =C:\Winnt”

جط Pattern ف ضكط ػ نح١س س ضىػ FileListBox ذحرس الوجز ضىه ضف١س جفحش ضكى٠ى ع ؼ١ جالطىجوجش جط ضظ ػ جالوجز:

File1.Pattern =“.*EXE” File1.Pattern =“.*TXT;.*DOC;.*RTF”

File1.Pattern =“ABC*.*”

Archive ،Normalج٠ى ػ١حش جطف١س ضىه ح جهحت جطم١س ،ReadOnly ،Hidden System فالنفحء فحش جمجءز فم١ . ReadOnly جظح

جىو جر١١ جطح: أوطدج Hidden جفحش جهف١س

Page 42: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

42أعداد المبرمج:مشتاق طالب رشيد العامري

68 File1.ReadOnly =False

File1.Hidden =True

ف ضػ جف جكىو ف جالوجز. FileName جح جهح١سجوجش جفحش جػالغس ر١ ذأوجش جمجت: يالحظخ ListBox ComboBox

ج٠ح. ListCount ،List ListIndex ف ضكط ػ جهحت

ادواد اخشيجط أو ج جنط ذح ج جف أوجز جال٠ح جالوجش جالن Frame جط

ضطهى ذىػز ك جالوجش ضم١ح ئ ؿػحش، ٠ىه جطكى ف . جوجز BorderStyle ظ ج جنفحء جكى جهحؾ ح ػ ٠٠ك جهح١س

آجط ال ٠ؾى وجػ آ جى ج ض ى ح وػح Line جهط٠ Top ،Leftف ١ص ، Y1 ،X2 ،X1 Y2 نحت جلغ جكؿ جطحذؼس حWidth Height ىح جقىجغ١حش مطط جرىج٠س جح٠س ه١ ج ض٠ى س ، جىحي هطفس 6 فططهى ى ذ١ Shape جح جوجز جالىحي

ضك ف ج جالوجز . أوجز جإلصضطط١غ ضكى٠ىح ػ ٠٠ك جهح١س جط Timer جط ضىه ضف١ جالج جؾوز ف قىغح جق١ى Timer آي فطز

غح١س. جح أوجز 0.001 قىضح Interval ؼ١س، ضكى٠ى جفطز ضؼ ف جهح١سطىجشغ OLE ف ضىه جطهىج ضم١س OLE ذ١ جىحتحش ض١ح

هطفس ضطر١محش هطفس ف حفز جيؼ . جطكىظ ػ ضفح١ جالوجز ج ضم١سOLE .نحؼ طحق ج جىطحخ

ال ضكحي جالآغح جالآجو جط٠س ذىجن جكىظ: يالحظخ Timer ألوجز

Timer فه ٠رد جطالن آذ١ ؼحؿس Processing حو ح ٠إو ج جذطحء ضف١ ذجؿه System Resources جظح

جرجؽ جالن ف ظح جطغ١.

Page 43: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

43أعداد المبرمج:مشتاق طالب رشيد العامري

انفصم انضبنش

BASICنغخ انجشيغخ Visual Basic ه١س ج١س ؼطز ذحؿحوح ضح٠هح، فح جص Visual Basic ج

جرؿس جؼ١حجط ضف غحش BASIC كطفظس ذحش غس جرؿس High level programming language ، غس BASIC ، ـ غس جرؿس Visual Basic ج ؾحد جحيؼ Visual Basic جغس جط جوش ج ؼر١س

Form Designer فؼظ ج١غ . Syntax جط ظش ذح جغس ذىج٠س جط١حش ١ى ف جقىظ جىججشحجص ىػس ذى ؾ Visual Basic ١ ج فم١، ذ .

Visual Basic ج١فص ج١ح جؼجش جىجي ج١غ جرؿ١س قط ضالت لز ف جىح١حضح. Windows ضكحآ ضطر١محش

انزغشاد وانضىاثذ جطغ١جش جػجذص جح أ غس ذؿس . ئ جط١ؼحخ ججع جطغ١جش

جحت ج٠س جط ضىه جنط١ح جالجع جحرس طغ١جش جء الحح ج جىجي ج إلؾجء جؼ١حش جكحذ١س ػ١ ج. ذو جطكىظ ػ رىتح

لحذ١س جؤ٠س ػ جك١حز لر جه ف ضفح١ جطغ١جش.

لبثهخ انشؤخ وػش انحبح جقى جرحوب ج٠س ف ؾ ع غحش جرؿس، لحذ١س جؤ٠س ػ جك١حز

Visual Basic .٠ؼطر غس ذؿس قم١مس ضىػ ج جرىتح طغ١ ضػ لىز جرحؽ ػ جي - Scope ج جى– Visibility لحذ١س جؤ٠س ي ج١جؾو ف جىو جطح ال ٠ى ج X ج جطغ١ جطهىج، فحطغ١

MySub1نحؼ جالؾجء :Sub MySub1 )(

Dim X As Integer X =20

71 End Sub

Sub MySub2 )( Print X „جحذك X ال ٠ػ جطغ١

End Sub

طغ١، ف ضػ جفطز جط ٠ظ ف١ح جطغ١ كطفظح LifeTime جح ػ جك١حز١ط ٠جي ضمحت١ح ج جآزجؾو ف جىو جحذك، X ذم١ط، فحطغ١ Visual Basic . ى ضف جالخ ج ٠طرؼ Sub1 ذؿو جهؼ جالؾجء

ططر١ك رىأ لحذ١س جؤ٠س ػ جطغ١جش، ػ١ه ؼفس ججع جطغ١جش ظ جؤ٠س ػ جك١حز:

:انزغشاد انحهخ انذبيكخ ٠ح١ى١سجطغ١جش جك١س جى Dynamic Local Variables طغ١جش ضى غ

جط ج ضؼ ػح ف١ وجن جالؾجء ضش ذؼى ح٠س جالؾجء رحز ٠ط ضك٠ جحقس جط قؿضح جطغ١جش ف ججآز، ذحرس محذ١س جؤ٠س

ج ـ ف١ ف ضطط١غ جي ج جطغ١جش ج ف ف جالؾجء ج ػ: وطحذسط٠ف جطغ١ غ Dim جطغ١. ضطهى جىس جكؿز

Dim sName As String

Page 44: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

44أعداد المبرمج:مشتاق طالب رشيد العامري

Dim iAge As Integer

جىس جكؿز أضصجيج Option Explicit ؾوز ف جػ طمس جالػالحش ذحط٠ف آح ف، فؼ١ه جالطج BAS جؼحس حفز جيؼ ج ف جرؿس

طز ف١ىه Option Explicit ج١غس جحذمس، ج ضى جىس جكؿز ضؼ٠ف جطغ١ رحز و جالطج ذؼ١س جط٠ف ذححو ل١س جذطىجت١س :

” جؼحضآ “ = sName iAge =99

كر ذى آذ١ ك١ف ج جىو جحذك ٠ف ػ١ه ػحء ض٠ف جطغ١ ال ج غ١ ى جرؿ١ جؿحو٠، لى ٠ؼ ج جػحي جقى جالرحخ:

“جآز جطؿح٠س” = sCompanyName Print sConpanyName „ 0 جحضؽ

72

ف جىو جحذك ٠ى آح طلغ "جآز Print جحضؽ ػ١س جطرحػس جطؿح٠س"، فحطغ١ جطهى ف جط جػح sConpanyName ١

sCompanyName ج جهطأ آف١ ف ججتد جرؿ١س Bugs .ف ذجؿه رد آن لى ٠ؿؼه ضكر جالطج ذؼ١س جط٠ف ج ؾ١غ جطغ١جش ضى

جذطأ ججع Variant ج ٠ط ض٠ف ع غ١ يه، جع Variant جع١أض القمح.جطغ١جش آح

ئ جالػال Option Explicit ف ػحح جحذك؛ ٠إو ف جالػال ػ جطغ١جشج جطغ١ أ وطحذسػ نطأ ضلف جرحؽ . ف ؾ١غ جكحالش فا جهطأ ف

جحو ل١س ئ طغ١جش ٠ط جالػال ػح رمح ١ططرد ف جإلػال ػؽ ج٠ح.نطأ، ١طلف جرح

ضف ه ذ١ثس جطط٠ جطىحس: يالحظخ IDE ن١ح ٠ه ذؼ١س جط٠ف أ

ف ؾ١غ قىجش ذجؿه Option Explicit ذىطحذس جىس جكؿز آجف جحيؼ، فحش جرؿس .... جم. طفؼ١ جالنط١ح، قىو

Editor نحس جطر٠د Require Variable Declaration جالنط١ح Optionsف ىق جكج .

، جكف ٠ى ل١س قف١س0 جن١ج، جم١س جالذطىجت١س طغ١ جؼىو جـ Nothingنح١س ""، جح جىحتحش ف ال ة .

:انزغشاد انحهخ انغزبركخ

ػ Static Local Variables لحذ١س جؤ٠س طغ١جش جك١س جطحض١ى١سحذ١س جؤ٠س طغ١جش جف ١س جى٠ح١ى١س أ ضطى جي ج١ح جال ل

وجن جالؾجء جـ ػح ف١، ذحرس ؼ ق١حز جطغ١ جالطحض١ى ف ١٠رمف ف ذؿس أكطفظح ذم١ط قط ح٠س جرحؽ جيج BAS ج قط ٠ش

طغ١ طحض١ى جطهى جىس جف ؾزجىحت جطحذغ . ط٠ف Static ػح Dimػ :

Static bStaticVariable As Boolean

ضطط١غ ؾؼ ؾ١غ جطغ١جش جطحذؼس الؾجء طحض١ى١س ذغ ف جىس جكؿز ػى ذىج٠س جالؾجء:

73 Static Sub Counter )(

„ؾ١غ جطغ١جش جطح١س طحض١ى١س Dim iCounter As Integer

Dim iCounter2 As Integer …

End Sub

ال ضكحي ضطر١ك جىو جحذك آغ١ج، فحطغ١جش جطحض١ى١س جذطأ جطغ١جش جى٠ح١ى١س ج ؾحد ل١حح ذكؿ جلغ جطغ١جش ف ججآز ٠جي فطز

ضف١ جؾجء ؼ١ػ جرحؽ، فال ضكحي جطهىجح جال ػى جكحؾس آجغرس ف

Page 45: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

45أعداد المبرمج:مشتاق طالب رشيد العامري

ز جقىز ػال ج جالقطفحظ ذم١س جطغ١ ف ػىجو:Sub PrintData )(

Static bIsPrinting As Boolean If bIsPrinting Then

Exit Sub Else

bIsPrinting =True End If

… End Sub

Sub Counter )( Static iCounter As Integer

iCounter =iCounter +1 End Sub

ال ضطرك جال ػ جطغ١جش جك١س فال ضكحي Static جن١ج، جىس جكؿز جطهىجح ػ طغ١جش ػحس ج ػ ط جقىز ف ذطر١ؼطح طحض١ى١س.

:انزغشاد ػه يغزىي انىحذح

جلى جقىز جرؿ١سModule جطػ ز ف ف ذؿس BAS ج حفز يؼ Form فثسج Class جم ....

جقىجش جىس ع . ٠ىه ض٠ف طغ١ ػ ط جقىز ف طمس جالػالحش جؼحس قىز أ نحؼ جالؾجءجش.

لحذ١س جؤ٠س ج جع جطغ١جش ٠ى ػح ؿ١غ جآجو جقىز ف قحس Privateج : Dim جطهىج جىس جكؿز

Dim sName As String Dim iAge As Integer

Sub SetData )( ” جؼحضآ “ = sName

iAge =99 End Sub

Sub PrintData )( Print sName

Print iAge End Sub

جح جيج آص ض٠ى ضؼ٠ف طغ١جش ػحس لحذس ي ؾ١غ جكحء جع ، ضف ذحغ: Public فحىس جكؿز

BAS „ف ف ذؿس Public iNumberOfUsers As Integer

Form1 „ف حفز يؼ Public sCurrentUser As String

Form2 „ف حفز جيؼ Private Sub Form_Load)(

If iNumberOfUsers < =0 Then Exit Sub

Else Me.Caption =Form1.sCurrentUser

End If End Sub

ذحرس ىس جكؿز: يالحظخ Global ف حجص ؾوز ح

، ضإو ف Visual Basic جطجفم١س غ جالىججش جمى٠س ي ، ىه ضطط١غ جطهىجح جال Public غ جىس جكؿز

فم١. BAS ف فحش جرؿس

Page 46: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

46أعداد المبرمج:مشتاق طالب رشيد العامري

ق١حز جىحت جطحذغ جح ػ جك١حز ج جع جطغ١جش ف١ى جفك ؼ آػ ق١حز جطغ١جش جطحض١ى١س، ذحرس طغ١جش جؼحس–جـ ف١

، فطظ كطفظس ذم١طح قط ح٠س ضف١ BAS جقس ف فحش جرؿس جرحؽ.

انزغشاد ٠ؼف جطغ١ ػ جذغىجوطط١غ ج ؼف جطغ١جش ذظ٠، ذحظ

–ؿي ٠كط ػ ل١س ؼ١س، جح ذحظ جرؿ ٠ؼف - جال جطغ١ ػ ج ل١س ضكفع ف يجآز جؿح . ضهطف جحقس جكؿز كفع

ال ٠طه ذح٠ص Byte جم١س ذحنطالف ع جطغ١، فطغ١ جععجقى يجآز جكحد، ف ق١ أ طغ١ String لى ٠كؿ حقس ض

ؾ١ؿحذح٠ص. 2 ج Visual Basicف١ح ٠ ػ ؿ١غ ججع جطغ١جش جىػس لر :

:انزغشاد ي انىع Byte

[ 255 ،٠0طط١غ ج جع جالقطفحظ ذح ل١س ك١كس جؿحي جؼىو ] ج٠س جطغ١جش عذح٠ص . ذى 1 جغ ججع جطغ١جش جي ال ٠كطؿ Byte أضص ؼظ جطهىجحضح ف هس أضص VB4 جالىج 16bit جالىج VB4 جي ،

جففس جع أضص Byte ضطهى آغ١ج ػى جالضحي ذحؾجءجش API جط ضطؼح غ جكف، ج ج غ جالىججش جالقىظ ف ضطى جالطفحوز ضطر١ك

جمى٠س ػ جطغ١جش جعجطق Byte ال جط١ جطرغ ، UNICODE . ذحنطح، ال ASCII ذح٠ص آض١ 1 ذح٠ص كف ججقى ١ 2 ٠طه حقس

Byte ػى جطهىجه طغ١جش ج ع Strings ضغ ف يه أ لح٠ح قف١س جطهىجه ح ػ، ف١ى ل API نحس ػى جغ ف جػحق جؾجءجش

Byteجالػىجو جغ١ز ج جر١ححش جػحت١س غ جطغ١جش ع .:انزغشاد ي انىع Integer

76

[ طغ١جش جع 32,767 ، 32,768 -جى أ ل١س ػىو٠س ك١كس ف جؿحي ]Integer ذح٠ص. ػى جكى٠ع ػ جؾجءجش 2 ف ضكؿ حقس API جهحس

. ذؼ١ىج ػ UNICODE جالد ط١ Integer ذحكف، فحففس جع جكف١س، ضف١ىن جطغ١جش ج جع ػى جطؼح غ جالػىجو API جؾجءجش

مىضح ػ جقطجء Long جك١كس، جال ج جقر جطهىج جطغ١جش جع ، آح جح جع جم١ح الغد Integer ل١ جآذ ذىػ١ جطغ١جش جع

. جح ف قحس جففحش جىر١ز، فح جف جطهىج جطغ١جش API جؾجءجش % حقس ججآز. 50 طف١ Integer جع

:انزغشاد ي انىع Long

-ضطط١غ ق ل١ ػىو٠س ك١كس ف جؿحي ] Long جطغ١جش ع ذح٠ص طغ١ 4 [ ف ضكؿ حقس لىح 2,147,483,647 ، 2,147,483,648

ججقى، آح يآش ف جفمز جحذمس ج جقر جطهىجح ػح ػ جطغ١جش ، ف ضك ل١ آذ١ز ؾىج مس جهف ظ نطأ لص Integer جعؼ١ آص جى١ ع ص آو ٠مأ قؿ فأوطر، ف Overflow جطف١

Integer فطحخ ذه١رس ج آذ١ز ػىح ضطؼح غ جفحش جط ض٠ى جقؿحح ، : 32,767 ػ

Dim iFileSize As Integer „ذح٠ص 32,676 ١ظ نطأ جيج جو قؿ جف ػ

iFileSize =FileLen (“C:\MyFile.DAT”)

:انزغشاد ي انىع Boolean

ى جم١ Integer ف جطغ١جش جع Boolean جطغ١جش جع ، قؿ جطغ١جش True 1 -ج False 0 جط ضىه جحوح ج١ح ضى جح

ذح٠ص، جال جح ال 2 أ Integer ػ قؿ جطغ١جش ججع Boolean جع

Page 47: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

47أعداد المبرمج:مشتاق طالب رشيد العامري

ن . ك١ف ج جكؿذص جال 15 ذص طؿحس جي 1 ضطهى ذح٠ص ٠ؼطر 2 ض ػ١ه ػ١س لجءز Boolean ٠حوز غ١ طهىس، جال ج جطغ١جش جع

ف جالآجو.77

:انزغشاد ي انىع Single

جقطجتح جالػىجو جؾرس Single ؿحي جم١ جط ٠ى طغ١جش جع 1.401298e-45 3.402823 جe38 ج جالػىجو جحرس- 3.402823e38 ج

-1.401298e-45 ذح٠ص. 4 ضطه حقس Double ػ جع Single جع Visual Basic ذح ٠ف ؼظ رؿ

الػطمحو ج جألي جع ف جطف١ جػح، ج جالػطمحو ك١ف ف جعضكط ػ حػى ٠ح ،جمى٠ جؼحؿحش جط ال Math Coprocessor نح ذحؼ١حشذغىجوجح جغد جؼحؿحش جؿى٠ى ضكط ػ جحػى

ح ٠ؿؼ جػس طمحذس Floating Point جكحذ١س الػىجو يجش جفحس جؼحتسػ ػح Double ، ه ٠ف ذحطهىج ج ع Single Double ؾىج ذ١ جػ١ ولس جػ الػىجو ىر ؿحي جم١ OverFlow قط ضطم جهطأ Single جع جع ذىػ١ Single جىس ذ ج. حق١س جن، لى ضى جطغ١جش جع

ػى جطؼح غ جهحت ج جطق جط ضكطه غ Double جطغ١جش جع CurrentX ،Circle ،Line ،ScaleWidth ،ScaleHeight جالقىجغ١حش ذى قظ آ

ؼح جذطأ Double ، جطهىج جع Single .... جم ف جالقىجغ١حش ضطهى جع ٠Singleط ج ضك٠ طغ١جش جع جحذك ج . Visual Basic ال

____________انزغشاد : جع Double

جع ؿحي جم١ جط ٠ى طغ١جش Double جقطجتح جالػىجو جؾرس 4.9406564581247e-324 1.79769313486232 جe308 ج جالػىجو جحرس

- 4.9406564581247e-324 ج- 1.79769313486232e308 ضطه ذح٠ص. 8 حقس

ه Double جهحس ذحالػىجو ضؼو ذم١س جع Visual Basic ؼظ وجي جع جف وجتح، جال ج ػ١ر جق١ى ف جحقس جىر١ جط ٠كطؿح، لى

٠Doubleظ ج جؼ١د ؾ١ح ف جففحش جىر١ز جع .:انزغشاد ي انىع Currency

Fixed -جالقطفحظ ذم١ ػ٠س فحس جػحذطس Currency ٠ى طغ١جش جعPoint [ 922,337,203,685,477.5808 -١٠ ز ج ضى كز ف وجن جؿحي ، ذح٠ص ج٠ ج. ٠ف ج جع جطغ١جش 8 [ قؿح 922,337,203,685,477.5808

.... جم جط ضطهىح Round ،Fix ػحء جطم٠د ذحطهىج وجي جطم٠د آ ح ٠رطة جؼ١حش جكحذ١س، غ Double Single ذىػز غ جطغ١جش جع جذطأ ن ج جذغ جش Currency يه جالطهىج جؿو طغ١جش جع

78

فال ضطهىح ذىػز ف قحس ضطر١ك آالف جؼ١حش Double Single جطغ١جش جكحذ١س ػ١ح.

:انزغشاد ي انىع Decimal

جحوح ج جطغ١ جش جعجالػىجو جط ٠ىه Decimal آذ١ز ؾىج، ال ٠ؾى ػ ل١ى جك١حز . ضطط١غ ض٠ف MSDN وجػ آح ح حوجص ىطرس

، جح Dim X As Decimal رحز ذحط٠مس جطم١ى٠س Decimal جطغ١جش جعج ٠طه- Variant ضطهى جع ضى ل١س : غ -ذح٠ص 16

Dim X As Variant X =CDec (Text1.Text * )CDec (Text2.Text)

جذطأ ججع جطغ١جش آح طمأ ف Variant ال ض ج جطغ١جش جع " ل٠رح. Varaint فمز "جطغ١جش جع

:انزغشاد ي انىع Date

Page 48: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

48أعداد المبرمج:مشتاق طالب رشيد العامري

ضرىأ جطح٠مج جع جطغ١جش ٠ك ل١ ضح٠ه١س 31 ج 100 ٠ ج٠ 1 قط 00:00:00 ٠ ف جطغ١ لص ٠رىأ جحػس 9999 و٠ر

ذح٠ص، ف قم١مس جال جطغ١جش 8 ضطه حقس 23:59:59 جحػس ، فحؿء جؼ ٠ػ لص Double ف جطغ١جش جع Date جع

٠ػ ضح٠م ؼ١، فحم س ؼ١ جؿء جك١ف ضػ جحػس جػح١س 37257.5 . جرد ج ؾؼ جيآ ضفح١ جطغ١جش 2002 ٠ح٠ ػح 1 ػ ظج ٠

ج جع جػطحته جفىح س ضىه جؾجء ػ١حش آغ١ز ػ ل١ جطح٠م لطجش ك١١ جالػس:

Dim dDateVar As Date dDateVar =Now „ج٠رغ جطح٠م فم١

Print Int(dDateVar) „ج٠رغ جلص فم١

Print CDate(dDateVar - Int(dDateVar)) „جف جرع جقى

Print dDateVar +7 „٠ 30 جقف

79 Print dDateVar - 30

„حػحش 6 جقفPrint dDateVar - 0.75

جالػىجو جحرس وطحذسج ضى ول١ك ف : يالحظخ نح جؼ ٠س،–

فح طحتؽ جؼ١حش جحذمس ضى طلؼس، ه ٠ف ذحطهىج آح ١فح VB VBA وجي جلص جطح٠م جس ف ىطرحش

ه جف جمحو.:انزغشاد ي انىع String

ع س؟ جؿجخ ذرد جطغ١جش جكف١س BASIC حيج غس جي String جيج ! فح آي ة طؼك ذم١س قؿ جحقس ف ججآز C آص د ؿ

و٠ح١ى١ح ج طحض١ى١ح ذحطهىج جففحش، ج جطكمك ٠ي ج أجء ط الحو ل١س ج طغ١ قف، ف 6 ج 3 غ١ح جال جط ضططد

Visual Basic جال ضمحت١ح ذؿو ض٠ف طغ١ جع جطىف ذ String ج جحو ل١ قف١س .

جركص جطغ١جش جكف١س -ذص 32 هس ػ١ح– VB4 جالىج Strings ضؼطى . ذفس ػحس، ٠ؾى ػح ججع جطغ١جش ASCII ١ UNICODE ض١جش غحذطس جطيه ح جطغ١ Visual Basic جكف١س ٠فح Fixed-length

Variable-Lengthجطغ١ز جطي . جطغ١جش غحذطس جطي طغ١جش قف١س ػىو قفح كىو ف جغحء ض٠كح ال

٠ى ج ٠طغ١:Dim FixedStr As String *12

” جؼحضآ “ = sFixedStr

ح 12 ج ٠ك FixedStr فحؼىو جالل جكف جط ٠ى طغ١ 2 ٠طه UNICODE ال ض ج–ذح٠ص ٠24إو ج جطالن حقس لىح

ذح٠ص كف ججقى . ػ١خ جطغ١جش غحذطس جطي ػى ضجفمح غ ضم١سCOM ؼظ وجي ىطرحش VB VBA جىجن١س جؾجءجش API ال ضىػ ج جع

ػىو قف جم١س جىز جل ػىو جكف أجطغ١جش، قط جقس، فح جحفحش " " طك ك جهححش جفحغس، ال ٠ى ج جع

، آح ال ٠ى Public جطغ١جش ج ضى ت١س ػ ط جقىز جعج١ز جط ضظ ذح ػى جحو آ٠ذح٠ص، جال ج 64 ق ػىو جكف جآذ

80

Page 49: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

49أعداد المبرمج:مشتاق طالب رشيد العامري

جم١ جكف١س ج جطغ١جش فطحتؿح ضى وجتح جع جطغ١جش جع ال ٠م ذح ػ١حش جقطؿح ف ججآز Visual Basic جطغ١ز جطي، يه ال

جطكمك جحقس جطفز .... جم.: يالحظخ COM جىسج ذؿس جىحتحش Component Object Model

Windows جط ضى ضطر١محش OLE جطم١حش جر١س ػ جالضحي ضرحوي جر١ححش ف١ح ذ١ح، جفال جػح ػ جػحع

" ٠هطح ذ جطم١س. COM ػ "ذؿس جىحشح ضغط ػف ذحنط Variable-Length ذحرس طغ١جش جطغ١ز جطي

10ؾ١غ ػ١خ جع جحذك، جال جح ضكطؿ جقس ضؼحوي ؼف ػىو جكف + ذح٠طحش جحف١س ضك ؼحش ػ جطغ١ جكف آقؿ غ١ح جطفح١ ػه، جؼىو جالل جكف جط ٠ى قفظح Visual Basic جط ٠هف١ح

ص.ؾ١ؿح ذح٠ 2 ف ج جع ٠ ئ :انزغشاد ي انىع Object

جش جء قص ذحعأحوؼظ جطغ١جش جط ضػ Object ج ذع فثحش Objectطغ١جش جع :

Dim X As Object Dim Y As Form Dim Z As Text

قط جي ج - Object جطغ١جش جع–جو ج جؤؾ ـ ضفح١ جىحتحش ج أحو٠س جطؾ " قط يه جك١، ال ضى أحوجف جهح "جرؿس

أحو Setجال ذحطهىج جؼرحز :

Set X =New MyClass Set Y =Form1 Set Z =Text1

” أحوجحو ل١س نح١س ١ “ = Z ” أحوجحو ل١س نح١س ١ “ = Z.Text

جحذك، فحف جهح لحو ج١ه.ال ضغ ذحه آغ١ج ذحىو 81

:انزغشاد ي انىع Variant

ضؼىص ذ١ط جطكط١س VB3 ف جالىج Variantظش جطغ١جش جع ، ٠طط١غ ق ؾ١غ ججع جر١ححش COM قط ضطجفك غ ضم١س VB4 جالىج

.... جم. Long ،Date ،Stringجحذك يآح ػ: ذح٠ص،جرح٠ص جالي ٠كىو ع جم١س Variant 16 جكؿ ج ٠طى جطغ١ ال ضطهى جال ف قحس آ جم١س 7 ج 2 جؾوز ف جطغ١، جرح٠طحش

ف ضػ جم١س جط ٠كح 15 ج 8 ، جح جرح٠طحش Decimal جع جطغ١.

جطغ١جش عج١ز جط ضط١ ذح Variant ١ فم١ ف جىح١س جطحح ػ ججع هطفس جر١ححش ذ جؾجء جؼ١حش جكحذ١س ج جطم١س ػ١ح،

ذحنطرح ع جطغ١جش غ جؾجء جؼ١س جكحذ١س ج Visual Basic ق١ع ٠م جطم١س جحرس ح:

Dim X As Variant Dim Y As Variant Dim Z As Variant

X =2000 „ Integer ل١س جع Y =CLng(2000 )„ Long ل١س جع

Z =X +Y „ Long ل١س جع X =CDbl(2.5 )„ Double ل١س جع

Z =X +Y „ Double ل١س جع

Page 50: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

51أعداد المبرمج:مشتاق طالب رشيد العامري

طحتؽ غ١ال ضكحي جالػطحو ػ جطق جحذمس ذى جطػحت، فمى ضؼط١ه ٠إو ج Variant طلؼس، فػال جطهىج ؼح جؿغ + غ طغ٠١ جع

ل١ ػىو٠س، جح جكف١س فطط ػ١س جىؽ ذ١ح آجطهىج أضصؾؼح جيج & ؼح جىؽ جقى جطغ٠١ قف جالن ػىو ف١م أ، جيج Visual

Basic ج ػىو٠س، ج ٠ططغ فحس جهطأ ذكحس ضك٠ جم١س جكف١س Type Mismatch :١ى ح ١د ف جظ

Dim X As Variant Dim Y As Variant Dim Z As Variant

X =20

82 Y " =20"

Z =X +Y „ Z =40 X " =20"

Z =X +Y „ Z =“2020” Print Z X =20

Y " =abcd" Z =X +Y „حس نطأ

ف جطغ١جش جعجيج فطص Variant جػؿرص ذح آغ١ج، فطآ جح جذطأ ججع جطغ١جش، فال ضكحي جالػطحو ػ١ح جال ػى جز جم ج ػى جكحؾس

Decimalالطهىج جطغ١جش جع . ذحطهىج Variant ضطط١غ ؼفس ع جم١س جؾوز ف جطغ١ جع

: جىجس VarType Dim X As Variant

X =20 Print VarType(X )„ Integer جع 2 ضطرغ

X " =20" Print X „ String جع 20 ضطرغ

جط Empty فح جم١س جالذطىجت١س Variant جيج ضى أ ل١س طغ١ IsEmptyضطط١غ جنطرحح ذحىجس :

Dim X As Variant Print IsEmpty(X )„ True

X " =20" Print IsEmpty(X )„ False

X =Empty Print IsEmpty(X )„ True

ال ضؼطر ل١س نح١س ف ل١س Null ، ال Empty ف ال ضؼ Null جح جم١س DataBasesؼ١س ضطهى ف جغحد غ لجػى جر١ححش :

83 Dim X As Variant

X =Null Print IsNull(X )„ True

Print VarType(X )„ Null جع 1 ضطرغ

جشأحو٠ى ح ج ضكط Variant جطغ١جش جع Objects ى ال ض ، ج طغ١، جيج جوش أحوػى جحو ل١س Set جطهىج جىس جكؿز

س جهح١سف ضؼط ع ل١ VarType جالطؼال ػ ع جطغ١، فال ضطهى ف ضف ذحغ جطخ: IsObject جالفطج١س ىحت، جح جىجس

Dim X As Variant Set X = Text1

Page 51: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

51أعداد المبرمج:مشتاق طالب رشيد العامري

Print IsObject(X )„ True Text1.Text „ "ج" = X.Text

٠ى ح ج ضك ففحش آح ١أض ف Variant جن١ج، جطغ١جش جعش "، ذحرس طآ٠رحش جعفمز "جطآ٠رحش جففح UDT ف١ى جقطحح

ـ ػ Public ٠طس ج ٠ى جطآ٠د جع Variant ف جطغ١جش Public ، أ ػ ط قىز جفثحش جؼحس Module ط جقىز جرؿ١س

.Classes

انضىاثذآضحذطح رحز ذحظح جذ١ ججع جػجذص جػجذص جؼىو٠س جط ٠ىه

ج Hexadecimal ظح جطؼ &H ج ذححفس جرحوتس Decimal جؼ ظح جػح: &O جرحوتس

„ 15 ؾ١غ جالػىجو جطح١س ضحPrint 15

Print &HF Print &O17

ج ج جر ح ذح ؾ١غ جالػىجو جطهىس ف جظح جطؼHexadecimal 1 ،0 آ، F ،E ....،2 جظح جػح Octal جط ضىطرح ف جآجون

84

ذؼى ح٠س & ح ض١ف ج Integer جػىجو جع Visual Basicضؼطر ف ظ ، لى ضى ؾط جحذمس ١ص يجش ج١س آذ١ز Long جؼىو ف١ى جع

ه ػ ج جى جطرح ذج جػحي:ػى ؼظ جرؿ١ جرطىت١، „طؼ

„ &HF000 =61440 Print &HF000 „ - 4096 ح ضطرغ

Print &HF000 & „ 61440 ح ضطرغ „غح

„&O170000 =61440 Print &O170000 „- 4096 ح ضطرغ

Print &O170000 & „ 61440 ح ضطرغ

١سذؼى جػجذص جؼىو٠س ضأض جػجذص جكف Strings جط ٠ط٠ آضحذطح ذ١ ، ػالط جط ٠ جوؾس " "، الطهىج ػالس جط١ " ف ف جػحذص

جكف، آح ض١: „هؾحش جىو جطح :

„غحذص قف „ 123”456

„ “ Print"غحذص قف" Print "123""456"

Print """"

ذفىز جطغ١جش، ٠ى جفق ذ١ح ف أ ل١فىز جػجذص جحز ر١ جػجذص ال٠ىه ضؼى٠ح لص جطف١ الح ل١ ١ص ؾوز ذحجآز آل١

جطغ١جش، جح ٠ط جطرىجي جالحء ذم١طح جفؼ١س ف جىو جغحء ػ١س رحؽ. EXE ، فحػجذص ضكفع رحز ف جف جطف١ Compiling جطؾس

Constضطط١غ ضؼ٠ف غحذص ؾى٠ى ذحطهىج جؼرحز :Const PI =3.14

Print PI

آح ٠ف ضؼ٠ف ع جػحذص ٠حوز ػس جطؼح ؼ:85

Const PI As Double =3.14 ” جؼحضآ “ = Const PROGRAMMER_NAME As String

Page 52: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

52أعداد المبرمج:مشتاق طالب رشيد العامري

Const SPECIAL_VALUE As Long =&H32FE&

ج ضط ذحم١س جحرس ػى ضكى٠ى ع جػحذص، فال ضى ل١س ػ٠س جؾ آجع-ػحذص ك١ف Integer ػال، ال ل١س جػحذص ططغ١ ج ضظ حس

Type Mismatchجهطأ : Const PI As Integer =3.14 „ 3 جم١س طى

Const PI As Integer =“abc ” „طظ حس نطأ

١ج، لحذ١س جؤ٠س جالفطج١س ػجذص ضىجن Private ،ػ ط جالؾجء جك ج ػ ط حفز جيؼ ج جفثس جيج ـ ػح ف طمس جالػالحش جؼحس،

. غ ض١ BAS ج ػ ط جع جيج ـ ػح ف فحش جرؿس Publicجىس جكؿز :

Public Const PI As Double =3.14

انزشآجبد وانصفىفبد ذحالحفس ج ججع جطغ١جش جحذمس، ضطط١غ ضه١ ججع ؾى٠ىز ضؼف

ذحطآ٠رحش، آح ٠ىه ذ١ س جطغ١جش ف ففحش جقحو٠س ج طؼىوز جالذؼحو.

Enumرشآجبد ٠كط ػ ل١س ؿػس ل٠١ىه ضؼ٠ف ع ؾى٠ى جطغ١جش ذك١ع

طؼ٠ف Enum . ضطط١غ جطهىج جىس جكؿز Enumeration ضؼف ذحي جطآ٠د ٠طس ج ٠ى ف طمس جالػالحش جؼحس، ج ػحي ٠ؼف ضآ٠د أل٠ح

جالرع:Private Enum enmDay

Saturday SunDay MonDay

86 TuesDay

Wednessday Thursday

Friday End Enum

جال ٠ىه جطهىج جطآ٠د جحذك طؼ٠ف ججع ؾى٠ىز جطغ١جش:Dim X As enmDay Dim Y As enmDay

X =Saturday Y =X

ج قط جطهىجح الطمرحي جطغ١جش ف جػ جالؾجءجش:Private Sub MySub(TheDay As enmDay)

If TheDay =Friday Then MsgBox"جؾحز"

Exit Sub End If

End Sub

Enum قم١مس جطغ١جش جع ضآ٠رحش ح جال طغ١جش ػىو٠س جع Long طغ١جش ػىو٠س: أضصفططط١غ جطؼح ؼح آح

Dim X As enmDay X =Saturday

Print X X =X +1

Print X

Page 53: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

53أعداد المبرمج:مشتاق طالب رشيد العامري

ؼىوآح ضالقع، ٠رىأ ضل١ ػح جطآ٠د ج ، طه١ ل١ ػىن، جؾغ0 ج ضؼ٠ف جطآ٠د غ جم١ ػىن:

87 Private Enum enmDay

Saturday =20 SunDay =30

MonDay TuesDay

Wednessday Thursday

Friday End Enum

.1 غ جؼ ج مىج ج٠حوز رحل جؼح ضى

UDTرشآجبد ي انىع جطآ٠رحش ذحالجع جؼفس لر جطهى٠ؼف ج جع User Defined

Types ،ق١ع ضىه جطآ٠رحش جالقطجء ػ ججع هطفس جر١ححش طؼ٠ف ضآ٠د ؾى٠ى: Type جطهى جىس جكؿز

Private Type typPerson sName As String

bSingle As Boolean iAge As Integer

End Type

٠ىه جطهىج رحز آح ف ج جىو:Dim Turki As typPerson

Dim Ali As typPerson " = جؼح"ضآ Turki.sName

Turki.iAge =99 Turki.bSingle =True

Ali.sName"ػ جؼ" = Ali.iAge =35

Ali.bSingle =False

88 Ali =Turki

Print Ali.sName

جطآ٠د، فحىجس ؼفس قؿ LenB :ضف ذحغ Print LenB (Turki)

ال ض ج ٠ى طآ٠رحش ج ضكط ػ ضآ٠رحش جن:Private Type typAdress

sCountrey As String sCity As String

End Type Private Type typPerson

sName As String bSingle As Boolean

iAge As Integer Address As typAdress

End Type

جي ج ػح جطآ٠د جك ٠ط نالي جطآ٠د جكح ح:Dim Turki As typPerson

" = جؼح"ضآ Turki.sName Turki.iAge =99

Page 54: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

54أعداد المبرمج:مشتاق طالب رشيد العامري

Turki.bSingle =True Turki.Address.sCity"جظج" =

Turki.Address.sCountrey"جىس جؼذ١س جؼو٠س" =

ذحرس محذ١س جؤ٠س ف ضطط١غ ضؼ٠ف جطآ٠رحش ذحطهىج جىس جكؿزPublic جال ف جفثحش Classes جيج آص ػ١ىج جش ػ جطهىج جىس ،

ذط٠ف Visual Basic ، ف١ف ه BAS ف فحش جرؿس Public جكؿز89

جؼح، ىه طحخ ذه١رس ج آذ١ز ج ػص جطغ١جش ؾى٠ىز جطآ٠د ال ٠ىه جطهىج جطآ٠رحش Public جالؾجءش جقس ػ ط جقىز

ح: Parameters آل١ طمرس„غ١ ى ( Public Sub MySub(P As typPerson

„ى ( Private Sub MySub(P As typPerson „ى ( Freind Sub MySub(P As typPerson

ذحرس فثحش: يالحظخ Classes ضطط١غ ضؼ٠ف جطآ٠رحش ػ ط ،

Public ٠طس ج ضى ل١س جهح١س Instancing 1 -ال ضح .Private

انصفىفبدجقحو٠س أضصجء Arrays جحء جطؼح غ جففحش Visual Basic ٠ىه

ذؼىج: 60 لى ض ج–جرؼى ج طؼىوز جالذؼحو Dim OneDim (99 )As Intger „ػ 100

Dim TwoDim (4, 9 )As Integer „غحت١س جالذؼحو Dim ThreeDim (2, 2, 2 )As Integer „غالغ١س جالذؼحو

Dim OneDArray(0 To 10 )As String Dim TwoDArray(0 To 10, 0 To 10 )As Long

Dim OneDArray(15 To 22 )As String

ضطط١غ جرىء ف ػ١س جحو جم١ ذؿو ض٠ف جففس غ جؼ ج ف Option ٠رىأ ف ح ضطهى جىس جكؿز Array Index جففس

Base 1 :ف طمس جالػالحش جؼحس قىز جرؿ١س فح ١رىأ ذجقى OneDim (0 = )100 OneDim (1 = )200

TwoDim (0, 0( = )100, OneDim (0 + )OneDim (1))

90

غ ج ذىء ضل١ ف جففس ٠ى ج ٠رىأ ذجقى، جال ج ال: يالحظخ

فؼ يه، فؼى م جالآجو ذ١ Visual Basic جقر رؿ جح٠غ جهطفس ج جقىجش جرؿ١س جهطفس لى ال ٠ط ضفؼ١

ح ٠طضد ػ ظ ػجش Option Base 1 جىس جكؿز جالنطحء جرؿ١س.

ضؼو ذل UBound ذ١ح جىجس LBound ؼفس ل جؼ جالي جطهى جىجس جؼ جالن١:

Dim lCounter As Long For lCounter =LBound (OneDim )To UBound (OneDim)

Print OneDim (lCounter) Next

UBound جح غ جففحش جطؼىوز جالذؼحو، ػ١ه جحي ل جرؼى غ جىجط١:LBound

Print UBound (TwoDim )„ 4 ضطرغ„ 4 ضطرغ ( Print UBound (TwoDim, 1 „ 9 ضطرغ ( Print UBound (TwoDim, 2

طحض١ى١س أ ففحش TwoDim ،OneDim ThreeDim جففحش جحذمس

Page 55: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

55أعداد المبرمج:مشتاق طالب رشيد العامري

غحذطس جكؿ ال ضطغ١ ف لص جطف١، ه فحس جكم١مس طى غ جط ضط١ف ه جطكى ف قؿ Dynamic Arrays جففحش جى٠ح١ى١س

جففحش آح وػص جكحؾس، ض٠كح ٠ى ذى يآ قؿح:Dim DynamicArray )(As String

و جم١، ػ١ه جطهىج جىس جكؿزلر ج ضرىأ ف ػ١س جح ReDim جال غ يآ جكؿ:

ReDim DynamicArray (2) ”“ ( = DynamicArray (0

91 “جؼو” ( = DynamicArray (1

“جف” ( = DynamicArray (2

ز جن ػ١ه ؼفس ReDim جوش ٠حوز ج ضم١ قؿ جففس، جطهىكط٠حش جففس ف ضغ:ج ؾ١غ

ReDim DynamicArray (4) “ؾح” ( = DynamicArray (3

“غي!” ( = DynamicArray (4 „ضطرغ "غي!" ( Print DynamicArray (4 „ال ضطرغ ١ة ( Print DynamicArray (2

جيج غرص ذطغ١١ قؿ جففس و جهح٠ز ذفمى جر١ححش جؾوز ف١ ج، ؾحز الطهىج: Preserve فحىس جكؿز

ReDim Preserve DynamicArray (4) “ؾح” ( = DynamicArray (3

“غي!” ( = DynamicArray (4 „ضطرغ "غي!" ( Print DynamicArray (4 „ضطرغ "جف" ( Print DynamicArray (2

ضطط١غ ضغ١١ جذؼحو جففس،٠مو النرحن جه Preserve جكى٠ع ػ فحففحش جى٠ح١ى١س جطح١س:

Dim OneDim )(As Integer Dim TwoDim )(As Integer

ReDim OneDim (4) ReDim TwoDim (2, 2)

Preserve ضطط١غ ضغ١١ جذؼحوح ذحطهىج :92

„طك١ ReDim Preserve OneDim (3, 3)

ReDim Preserve TwoDim (1) „ى ج ى

ReDim OneDim (3, 3) ReDim TwoDim (1)

ففحش جى٠ح١ى١س جىح١س VB6 جج٠ح جط ج١فص ج جالىج م ل١ ففس آجس ج جل ف ط جقى ٠طس ج ضىح ف

١ثح ػ: وطحذسجع، فرحىحه Dim MyArray (20 )As Integer Dim YourArray )(As Integer

MyArray (0 = )10 MyArray (1 = )20

… YourArray = )(MyArray )( Print YourArray (0 )„ = 10

مطس جن١ز قي جففحش جى٠ح١ىس جىح١س ضى١ح ذحطهىج جؼرحز

Page 56: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

56أعداد المبرمج:مشتاق طالب رشيد العامري

:Erase Erase OneDim

:يشح اخشي Variantانىع

٠ى ح ج ضػ ففحش جح ػ ٠٠ك جحو Variant جطغ١جش جع ففس ح:

Dim Cities(2 )As String Dim vCities As Variant

" = ) ذغىجو" Cities(0 Cities(1"ؾىز" = ) Cities(2"جذح" = )

vCities =Cities „ؾىز ( Print vCities(1

93

Arrayج ذحطهىج جىجس :Dim vCities As Variant

," ؾىز" ,)"جذح" "( ذغىجو" vCities =Array „ ذغىجو ( Print vCities(0

جحء ففحش Variant جال١حء جط ضؼؿر ف جطغ١جش جع ، ففحش جذؼحوح ضهطف Variable-Dimension Arrays هطفس جالذؼحو

جػح غحت جرؼى جػحع غالغػ الن، فمى ٠ى جؼ جالي جقحو جرؼى ػ Variant جرؼى ضطر١مح ؾىج، جطرهس آح جقطجء ففس جع

ػىز ففحش:Dim VarDim(2 )As Variant

VarDim(0"جقحو جرؼى" = ) VarDim(1 = )Array"(1 "غحت جرؼى," 2 )"غحت جرؼى

VarDim(2 = )Array"(1 "غالغ جرؼى," 2 "غالغ جرؼى," 3 )"غالغ جرؼىPrint VarDim(0)

Print VarDim(1()0), VarDim(1()1) Print VarDim(2()0), VarDim(2()1), VarDim(2()2)

انغىػبد ضؼد جف فحش وج ق٠١ح ف ذجؿه جؿى٠س نحس ذحال جط ضطؼك ذحكمحش

ضؼطر جآغ س جففحش Collections جطىج٠س غ١ ج. جال ج جؿػحش ق١ع جحفس ججس جؼح ج. جىف جفمز ضؼ٠فه ذحؿػحش

٠ق جطهىجحضح.:يضاب انغىػبد

جش طمس ىطرسأحوػرحز ػ Collections جؿػحش VBA ظ١فطح ، ج جح ضهطف ػح ف جمح٠ جطح١س:جت١١س ػ ظ١فس جففحش ضحح

94

جؿػحش ال ضكطحؼ ج ضكى٠ى قؿح ػى ػ١س ض٠ك ج. فؼى ض٠كه - ؿػس ؾى٠ىز ضطط١غ جحفس جؼح ح لص جطف ٠ و٠ح١ى١ح أ ذى ضكى٠ى

أ قؿ ح طحض١ى١ح.ض٠ى ف جؿػس . أضطط١غ جحفس جؼح ج جؿػحش ف أ ىح -

ص ط ج ؼح ف ح٠س جمحتس ػ جففحش، فحؿػحش ضؼط١ه ق٠سف ذىج٠س جؿػس ج ح٠ط ج ج قط أضصآذ١ز ف جحفس قف جؼح جء

ف طح.جؿػس ججقىز ٠ى ج ضكط ػحح ػ ججع ذ١ححش هطفس، أ لى -

جؼ جالي ف١ح٠ى String جػح Integer ذؼى جففحش جط الذى ضق١ى ع ػحح.

ضف جؿػحش ٠ق جن طكى٠ى ػحح ػ ٠٠ك فحض١ف - Key ذى

Page 57: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

57أعداد المبرمج:مشتاق طالب رشيد العامري

جطهىج جخ جطل١ ج ضطرؼ جففحش.جؿػحش ج جالذى !ذؼى جج٠ح لى ضك جطهىج جففحش ضطم ج

ى ج ؾىج ج ضغ ف يه ج جؿػحش جذطأ جففحش ذحآغ جػس ضؼ ه جة جىػ١ . ج٠ى أضصز ! ه، ال ضطهىح ج 100

ج٠ح، جؿػحش ضطه حقس جآذ ذىػ١ جحقس جطذس ف ججآز ،ػحح جحفس لحذس مجءز ى ١ص لحذس طؼى٠ ! ٠ؼ١د جؿػحش ج

فطؼى٠ ل١س ػ ػح جؿػس، ػ١ه جم١ح ذحخ غ١ رح آقف جؼ ججو ضؼى٠ جحفط ؾى٠ى ذؼى جطؼى٠.

:ثشيغخ انغىػبد ػ١ جؿػس ج ضك أحوجهطز جال جط ضكطحؾح جحء

: -جفثس-جع Collection Dim MyCol As New Collection

غ جحي ل١س جؼ ج. Add الحفس ػح ج جؿػس، جطهى جط٠مس جي ج جوش قط ضطهى آ٠٠مس جن ي Key آيه، ضطط١غ جحي فطحـ

ج جؼ ذى جالػطحو ػ ل:95

MyCol.Add "amazon.com", "shopping" MyCol.Add "hotmail.com", "mail"

MyCol.Add "yahoo.com", "Search"

-ج قط ضؿح ال- Item ضطط١غ جي ج ػح جؿػس ػ ٠٠ك جط٠مس جحي ل جؼ ج فطحق:

Print MyCol.Item(1 )' amazon.com Print MyCol.Item"(mail )"' hotmail.com

Print MyCol"(Search )"' yahoo.com

Removeكف جؼ جطهى جط٠مس :MyCol.Remove 1

MyCol.Remove "mail"

جؿػس: أحوجع ٠٠مس ضىه قف ؾ١غ جؼح، ل ذححء Set MyCol =Nothing

٠ىز:ى ضآ! ػ١ه ذحػحوز جحء جىحت قط ضطى جحفس ػح ؾى „نطأ ف ج جط

MyCol.Add "amazon.com", "shopping" „الذى جحء جىحت ؾى٠ى Set MyCol =New Collection

MyCol.Add "amazon.com", "shopping"

Countجن١ج، ؼفس ػىو جؼح ف جؿػس جطهى جط٠مس :Print MyCol.Count

96

االعشاءاد وانذوال Functionsوجي ، Sub‟s ضؼ٠ف جؾجءجش Visual Basic ٠ىه قر١د جمد

ق١ع ٠ى ىجي جؼوز ذم١س ذؼى ح٠س ضف١ جىجس، ع جم١س جط ضؼو ذح جىجس جع ج ضىطرط ف ح٠س ضؼ٠ف جىجس:

„وجس ضؼو ذم١س قف١س Function GetUserName )(As String

” جؼحضآ “ = GetUserName End Sub

UDT „وجس ضؼو ذطآ٠د Function GetPersonData )(As typPerson ” جؼحضآ “ = GetPersonData.sName

Page 58: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

58أعداد المبرمج:مشتاق طالب رشيد العامري

GetPersonData.iAge =99 End Function

جىو جؾو وجن جىجس، ٠طؼح غ ج جىجس آطغ١ ف ع جىجس:Function OddNumbers )(As String

Dim iCounter As Integer OddNumbers =“”

For iCounter =0 To 9 If iCounter Mod 2 <> 0 Then

OddNumbers =OddNumbers & iCounter End If

Next End Function

ضط ػ١س ضف١ جالؾجء ج جىجس ذؿو جي ج ح٠ط، ضطط١غ جحء Exit Function الؾجءجش جؼرحز Exit Sub ضف١ح لر يه ذحطهىج جؼرحز

الحء Exit Function ٠طهى Recursion ىجي، ج ػحي هج١حش جطجؾؼ١س ػ١س ضف١ جىجس:

97 Function Factorial(iNum As Integer )As Long

If iNum =1 Then Factorial =1 Exit Function

Else Factorial =iNum *Factorial(iNum - 1)

End If End Function

، أ ضطط١غ Public ذحرس محذ١س جؤ٠س الؾجءجش جىجي فحالفطج١س جطىػحتح أ ىح ف جع:

BAS „ف ف ذؿس Sub MySub1 )(

… End Sub

Form1 „ف حفز يؼ جىس جكؿز٠ىه ضؿح Public Sub MySub2 )(„ Public

… End Sub

Form2 „ف حفز جيؼ Private Sub Form_Load)(

MySub1 Form1.MySub2

End Sub

جحذمس ال جالؾجء ج جىجس، ف ضغ جرؽ Private جح جىس جكؿز جطىػحء جالؾجء نحؼ جقىز جرؿ١س:

Form1 „ف حفز يؼ Private Sub MySub )(

… End Sub

98 Form2 „ف حفز جيؼ

Private Sub Form_Load)( Form1.MySub „فم١ Form1 ضطط١غ جطىػحء جالؾجء ال نح ذحيؼ

End Sub

Page 59: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

59أعداد المبرمج:مشتاق طالب رشيد العامري

ف Public ف ف ضأغ١ جىس جكؿز Friend جح ضأغ١ جىس جكؿزح٠غ جم١ح١سج Standard EXE ٠ى جفق ذ١ح ف قحالش ذحء ح٠غ ،

٠ى ج ٠طىػ١ح جرؽ Public ق١ع ج جالؾجءجش جع ActiveX جع ف Friend ، جح جالؾجءجش جع COM نحؼ جع ػ ٠٠ك جالضحي

جو نحؼ جآجو ػه.٠طى أ ه جطىػحتح ح وجص جآ

االسعبل ثبنشعغ او انمخ . ضكى٠ى Parameters لحذس الطمرحي طغ١جش Functions ج Sub's جالؾجءجش

جطغ١جش جط ٠كطحؾح جالؾجء ٠ؼطى ذى آذ١ ػ جىف جظ١فس جط ٠مأضصذح جالؾجء . ذفس ػحس، جالؾجءجش جء Sub‟s ج Functions ٠ى ج

ججع ل١ح١س آ أضصضطمر ججع هطفس جطغ١جش جء Integer ج String Classesج فثحش . UDT .... جم، ج قط ججع ؼفس لر جطهى آضآ٠رحش

. ػ١س جحي جطغ١ Arrays ذحالحفس ج لحذ١س جالؾجءجش الطمرحي جففحشجالؾجء ضططد غ جم١ ذ١ ل١ ف قحس آ جالؾجء ١ؼو ذم١سج

طىػ يه جالؾجء، جح غ١ يه فال ٠ط٠ غ جاللج. جفطج١ح، ضطمر جالؾجءجش جطغ١جش جس ح ذحؾغ . ج غرص ف ؾؼح

جىس وطحذسضطمر جطغ١جش ذحم١س فالذى ByVal ض٠ف جطغ١ جػى ٠طمر جالؾجء . جح جفق ذ١ ػ١س جحي جطغ١ ذحؾغ جح ذحم١س ف

ضم ػ جح جحي Reference ذ١١ ؾى ج. فؼ١س جحي جطغ١ ذحؾغ إ طغ١ أ ػج جطغ١ ذحجآز ج ػ ٠٠م ضطط١غ ضؼى٠ ل١س

جء:جطغ١ جالؾ Sub Start)(

„ح مطس جرىج٠س Dim X As Integer

' X =0 Print X

MySub X ' X =5

99 Print X

End Sub Sub MySub (X As Integer)

X =5 End Sub

ضلغ جطمرحي ؾغ طغ١ ع MySub فىح ضالقع ف جىو جحذك، جالؾجءInteger جم١س جس . جىػ١ جكي ٠فحح ٠ؼط١ جمىز ػ ضغ١١ ه جخ جالطىػحء ذحؾغ ؼ جح جؾجء ٠م ذطرى٠ ل١ط١ ط١ :

Sub Swap (X As Variant, Y As Variant) „جؾجء ٠طرىي ل١ ججع هطفس

„ جطغ١جش جس Dim vTemp As Variant

vTemp =X :X =Y :Y =vTemp End Sub

Strings جح جالحي ذحم١س ف جذطأ جالحي ذحؼ ع نحس غ جكف ١ط م ل١س جطغ١ ج ىح إلص Visual Basic جرد ف يه ج

ف ججآز، آيه ضطط١غ ضؼى٠ ل١س جطغ١ ج ه . ؿؼ جالؾجءىس جكؿز :٠طمر طغ١جش ذحم١س جطهى ج ByVal

Sub Start)( „ح مطس جرىج٠س

Dim X As Integer, Y As Integer

Page 60: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

61أعداد المبرمج:مشتاق طالب رشيد العامري

' X =0, Y =0 Print X, Y

MySub X, Y ' X =3, Y =0

Print X, Y End Sub

Sub MySub (X As Integer, ByVal Y As Integer) X =5

100 Y =10

End Sub

اسعبل اىاع اخشيجم١ح١س طغ١جشؾ١غ جالجع Double ،Integer ،String جم ٠ى ج ....

جش ىطرحشأحو، Controls ضح ضطمرح جالؾجءجش، جح جالجع جالن آجالوجش VB VBA آ Screen ،Printer ،App جم جطآ٠رحش .... UDT فطكطحؼ ة

جطف١::اسعبل يزغشاد انكبئبد

ح٠غ جم١ح١سذحرس Standard EXE ف١ىه جحي طغ١جش ضحذؼس ىحتحش ActiveX جغس ج جالؾجءجش و أ حآي، جح ذحرس ح٠غ جالن آ

ActiveX OCX ،EXE جم فال ٠ىه ػ يه جال الؾجءش جطحذؼس ػه .... ، جرد ف يه Friend ج Private جالؾجءجش جط ضـ ذحىس جكؿز ٠ى ج ضطىػ ذجؽ Public ٠رى ذى٠ ج جيج ػص ج جالؾجءجش جع COM آح طؼف ف جف جػح ػ "ذؿس جىحش COM جن ػ ٠٠ك

".1 :اسعبل انزغشاد انزشآجبد UDT

٠ك جىس جكؿزجط ضثح ػ ٠ UDT جطغ١جش ع جطآ٠رحش Type ضطط١غ جحح ى ف قحالش نحس ٠ ؼ١س جنطح ف جمح٠:

ؿحي جطآ٠د ع أجيج - Private ؼف ف وجن قىز ذؿ١س آحفز يؼ، فثس، ف ذؿس جم .. فح جالؾجءش جط وجن ضه جقىز جرؿ١س ٠ى

جطغ١جش ع يه جطآ٠د.ح ج ضطمر جطآ٠د ؿح ػح أجيج - Public ؼف ف ف ذؿس BAS فح ؾ١غ

جالؾجءجش جط ف ف جع لحذس الطمرحي يه جطآ٠د ٠طس ج ال ضى Public جالؾجءجش جع .

ف قحس آ جطآ٠د ؼف ف فثس - Class عف ع ج ActiveX فح ، جالؾجءجش جؾوز ف ذ حؿه ضطط١غ ج ضطمر يه جطآ٠د جؼف ف

جهح١س أضصجيج COM وجن ى Instancing 1 ال ضح-Private . 101

رخصص انزغشاد انشعهخ ج غ١ كىوز Optional ضطط١غ ضه١ جطغ١جش جس جح ذؿؼح جنط١ح٠س

.جؼىو Unlimited Parameters :انزغشاد االخزبسخ

ػىو جطغ١جش جس الؾجء غ١ ػىو جطغ١جش جقس ف١ جط أجيج ٠طلؼح، فح حس جهطأ ح ١د . ه، ف قحالش آغ١ز ؾىج ض٠ى ج ضؿؼ

ضؼطجؾجءن ذح ف١ جىفح٠س يه ػ ٠٠ك ضؼ٠ف طغ١جش جنط١ح٠س ٠٠ى ج ٠ح ج ال . ضط جؼ١س ػ ٠٠ك أجطهى ق٠س ح جيج

جطهى لى ج ل١س أ. جيج جوش ؼفس ح جيج Optional جىس جكؿز ضؼو IsMissing ، ى جق ! وجس IsMissing ج جالؾجء ضكمك ػ ٠٠ك جىجس

ج ح ع ذم١ ك١كس ف قحس آ جطغ١ Variant :فم١

Page 61: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

61أعداد المبرمج:مشتاق طالب رشيد العامري

Sub Start)( „ح مطس جرىج٠س

' MyFunction =- 1 Print MyFunction)(

' MyFunction =4 Print MyFunction (2)

End Sub Function MyFunction (Optional X As Variant )As Integer

If IsMissing(X )Then „ ٠ط جحي ل١س طغ١ MyFunction =- 1

Else „ض جحي ل١س MyFunction =X ^ 2

End If End Function

قط طى جطكمك Variant جىس ح ج جطغ١جش الذى ج ضى ع جذطأ جالجع جطهىج . ه، ٠رى ج جك IsMissing جحح ػ ٠٠ك جىجس

فطج١س ضطم و ف قحس ٠ط جحي ل١جالف ػ ٠٠ك غ ل١س ج طغ١جش:

102 Sub Start)(

„ح مطس جرىج٠س ' MyFunction =- 1

Print MyFunction)( ' MyFunction =4

Print MyFunction (2) End Sub

Function MyFunction (Optional X As Integer =- 1 )As Integer -= If X „ ٠ط جحي ل١س طغ١ 1 Then

MyFunction =- 1 Else „ض جحي ل١س طغ١

MyFunction =X ^ 2 End If

End Function

جطغ١جش جالنط١ح٠س: يالحظخ Optional الذى ج ضى ف ح٠س س

أ ؾس ج١١.-جطغ١جش جس ج جالؾجء :يزغشاد غش يحذدح انؼذد

، فحه ال ضكىو ػىوج ؼ١ح جطغ١جش جط ١طمرح جالؾجءف جكحس ال جم١ طى ف ففس ضؼفح ذفه ػ ٠٠ك جطهىج جىس

. ج ػحي ىجس Variant ، ٠طس ج ٠ى جطغ١ ع ParamArray جكؿز ضؾى ؿع جم١ جس ح:

Function Sum (ParamArray args )(As Variant )As Long Dim iCounter As Integer

For iCounter =0 To Ubound(args) Sum = Sum +args(iCounter)

Next iCounter End Function

الطىػحء جىجس آي جالػس ك١كس:103

'Sum =10 Print Sum (5, 5)

'Sum =100

Page 62: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

62أعداد المبرمج:مشتاق طالب رشيد العامري

Print Sum (20, 20, 20, 20, 20) 'Sum =1000

Print Sum (250, 250, 250, 250)

انزحكى ف عش انجشبيظ جالؾجءجش ضى يجش ل١س ؼ٠س آذ١ز ح ضطهى ػرحجش جطفع %90 ططكى ف ١ Do … Loop ج For … Next ج جكمحش جطىج٠س آ If Select آ

ػرحجش جطىج Branch Statements جرحؽ، جفمجش جطح١س ضـ ػرحجش جطفع.Looping Statements

IFانزفشع ثبعزخذاو قد جح Visual Basic جؿ١س ال ٠طغ ػح ج رؽ، ١ ف If ؾس جآغ جؼرحجش جطهىج ج ف If ف ؾ١غ غحش جرؿس . ح ال ه ف١ ضؼطر

ى ج جرحؽ، ضؿ جح ف ط جق – ػىز ط: -جف „ف ط جقى

If X > 0 Then Y =0 If X > 0 Then Y =0 Else Y =X

If X > 0 Then X =0 :Y =0 Else Y =X „ف ػىز ط

If X > 0 Then Y =0 End If

If M > 0 Then T =1

Else T =- 1 End If

If M > 0 Then

104 T =1

ElseIf M < 0 Then T =- 1

Else T =0 End If

:اخزصبس انغم انششغخ

If ، True جيج ضكمك ج٠ ج جركص ط١كس جطؼر١ ج٠ ج ٠ ؾس ١ط ضف١ح: If … Then فح جآجو جط ض ػرحز

If Value =True Then End If

If x <> 0 Then End If

سضطط١غ جنطح جؿ ج١٠س، ف القع ش ف ؾ If جال جح جنطرح ف ج ن١ أ. جرؿ جط ٠ف أضصجي ج ج Value جم١س جطم١س

آضحذطح ذج جى:If Value Then

End If

٠ؼطر ج ل١س غ١ جف Visual Basic جىو جحذك ك١ف جرد ف يه، ج True جح جف ف False ج٠ غ ؾس ف قحس جنطرح If لى ضهط .

ؾس ج٠ جػح١س ج٠ح آح ف ج جىو:If x Then

Page 63: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

63أعداد المبرمج:مشتاق طالب رشيد العامري

End If

105

ك١ف ج جط١ؿس حغس، ى قحي ضؿد جالنطح ف قحس جطهىج ل١ غ١ طم١س قط ال ضظ ه طحتؽ غ١ طلؼس . ال جم١ جحرس النطحجش

فم١ ف١ح ػى يه لى ٠رد ه جىػ١ ججتد . جلد جىوجم١ جطم١س جطح:

x =3 y =4

If x <> 0 And y <> 0 Then „جط٠مس جك١كس If x And y Then „ىس ف ج جالنطح

مى جطهىص جخ جالنطح ٠رى ج ؾط ج ٠ طحغط١، ى هطفح ضح ج! جيج جوش ؼفس جرد ل ذحؾع ضىق ج ج١٠ جحذك ٠

طؼف جرد ، 0100 0011 ذظح جالػىجو جػحت x y ج ل١س جطغ٠١ ضم ذمحس And Or ج ططؽ ذحنطح ػ ج ؼحالش جذ١ آ

جم١ جػحت١س ؼىو ذغ جظ ػ ػ.

Selectانزفشع ثبعزخذاو Selectذحىحه ضطر١ك رىأ جطفع ذحطهىج ػرحز :

Select Case iDay Case 1

“جرص” = sDay Case 2

“جالقى” = sDay …

Case 7 “جؿؼس” = sDay

Case Else “غ١ ؼف” = sDay

End Select

ف جىح١س ضطر١ك جؼحالش جطم١س ج ضكى٠ى ؿحي Case ضى لز ػرحز م١:

106 Select Case iAge

Case Is < =0 “ ٠ى” = sDesc

Case 1 To 11 “٠ف” = sDesc Case 15 To 20

“جك” = sDesc Case 21 To 50 “ؾ” = sDesc Case Is > =51

“ح٠د” = sDesc End Select

ج٠ى ج٠ح، ٠ىه ضكى٠ى ؿػس ل١:Select Case sLetter

Case “A” To “B”, “a” To “b” “قف جذؿى” = sLetter

Case “0” To “9” “ػىو” = sLetter

Case “.”, “:”, “ “, “;”, “?”

Page 64: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

64أعداد المبرمج:مشتاق طالب رشيد العامري

”“ = sLetter Case

“غ١ ؼف” = sLetter End Select

١ ج فم١، ذ ٠ىه ضكى٠ى ؿػس ؾ ١٠س:Select Case True

Case x > 0, Y < 0 „ضؼحوي

„ If (X > 0 )Or (Y < 0) End Select

Select Case False Case x > 0, Y < 0

„ضؼحوي

107 „ If (Not (X > 0 ) )Or (Not (Y < 0) )

End Select

انحهمبد انزكشاسخ For … Nextقىو جم١س جالذطىجت١س جم١س جحت١س كمس :

Dim iCounter As Integer For iCounter =2 To 4

Print iCounter „١طى ضف١ جال غالظ جش Next

ػ١ه ؼفس ج مىج ج٠حوز ١حف ج طغ١ جكمس قط ذؼى ح٠طح:Dim iCounter As Integer

For iCounter =1 To 3 Print iCounter

Next Print iCounter „ 3 ١ 4 ل١س جطغ١ ذؼى ح٠س جكمس

ف مىج ج٠حوز ج جمح ذحطهىج :ضطط١غ جطكى Step Dim iCounter As Integer

For iCounter =10 To 0 Step -1 Print iCounter

Next

آج جىو ج ٠طرغ ؾىي Nested Loops ٠ىه ضطر١ك فىز جكمحش جطىجنس جخ:

Dim A As Integer Dim b As Integer

108 For A =1 To 5 For b =A To 5

Print A, "x", b, "=", A *b Next Next

Exit Forذحىحه جحء جكمس ف أ لص ض٠ى ذحطهىج جؼرحز :Dim iCounter As Integer For iCounter =0 To 100

vbYesNo = )vbYes Then , )"ض٠ى جحء جكمس؟ "If MsgBox Exit For

End If …

Next

Page 65: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

65أعداد المبرمج:مشتاق طالب رشيد العامري

جش جؿػحش :أحوف ضطرك ػ For Each جح قمس Collections Dim ctrl As Control

„كحيجز ؾ١غ جالوجش ج ج١ح For Each ctrl In Controls

ctrl.Left =0 Next

Variantج قط جففحش ٠طس ج ٠ى طغ١ جكمس جع :Dim X(100 )As Integer

Dim Y As Variant حو ل١ ففس آو ال „

… „٠رحػس كط٠حضح For Each Y In X

Print Y Next

109

، اله ال For … Next ف جآغ س جكمس Do … Loop جح ذحرس كمس Untilج : While ضكىو ػىو ؼ١ جطىج جح ؾس ١٠س ذحطهىج

vbYesNo = )vbYes , )"ض٠ى جحء جكمس؟ "Do While MsgBox …

Loop vbYesNo = )vbNo , )"ض٠ى جحء جكمس؟ "Do Until MsgBox

… Loop

ف قحي True طط ػ١س ضف١ جكمس حوجص جؿس ج١٠ ك١كس ف قحي جطهىج جىس جكؿز False ج While جطهىج جىس جكؿز

Until .جيج جوش ضف١ جكمس جطىج٠س ز جقى ػ جالل، غ ق ج٠ ف جف جكمس:

Do …

vbYesNo = ) vbNo , )"ض٠ى جحء جكمس؟ "Loop While MsgBox Do …

vbYesNo = )vbYes , )"ض٠ى جحء جكمس؟ "Loop Until MsgBox

ذحطهىج ػرحز ذحىحه غ ؾس ج٠ ف وجن جكمس ج٠ح If ، جSelect Exit Doى ال ض جحء جكمس ذحؼرحز :

Do vbYesNo = )vbYes Then , )"ض٠ى جحء جكمس؟ "If MsgBox

Exit Do End If

… Loop

110

:و For … Nextانزحىم ث Do … Loop

ك١ف، ىجؼى Do … Loop ج قمس For … Next ضطط١غ ضك٠ قمس ضػ ػىو For … Next ػ١ه جالطرح ج ج جم١ جط ضكىوح ف ذىج٠س جكمس

جطىج قط ج ضغ١ش، فرحغ ج جكمط١ جطح١ط١ طحذط١:A =5

For iCounter =1 To A …

Next

Page 66: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

66أعداد المبرمج:مشتاق طالب رشيد العامري

iCounter =1 Do …

iCounter =iCounter +1 Loop Until iCounter > A

ج جالنطالف ١ظ ف قحي ح جيج ض ضغ١١ ل١س جطغ١ جال A فحكمس ،… For Next جش قط ج ضغ١ش ف١س جطغ١ 5 ١ط ضف١ وجتح A ف وجن

Do …جكمس، ذ١ح ضغ١١ جم١س ٠إغ ذى آذ١ ػ ػىو جش ضىج جكمس .Loop

رحغ انكفبءحضك١ جىفحءزذفس ػحس، فح جطف Optimization ٠طك ػ جح١د

ذؿ١س ضطرغ ٠حوز ػس ضف١ جىو ج جطم١ جطالن حو جظحSystem Resources غ١ح. جح ف ع جفمز فحل ضم١حش

نالي Visual Basic طك١ جىفحءز جهحس ؼ١س جطؾس جط ٠فحجطر٠دنحس Compile جؾوز ف ىق قج نحت جع Project

.Properties

P-Code وNative Code ذحغ١ ػ-ػىح ضم ذطف١ جرحؽ F5 - ١م ف Visual Basic ذطف١

ذطك٠ ١فز Visual Basic ط ض جالن. لر ػ١س ضف١ جط، ٠مع جط ج ١فز P-Code قط ٠فح جف ٠ف جط . جح

111

Native Code ف ضك٠ ج١فز جى٠س ج غس جالس Machine Language قؿح P-Code ٠فح جؿح رحز . ج١ز ف جفحش جطف٠١س ع

س .جغ١ ر١ح آيه ضجفم١طح جطمس غ جآجو جطف١ وجن ذ١ث Visual Basic ضى ػس القىجظ ج١ح جرحؽ ذرس جل ذىػ١ P-Code ج٠ى ج٠ح، جآجو

Native Code جذطأ جآجو P-Code . حق١س جن، جآجو Native Code جآجو Visual Basic قم١م١س ذ غس ف Machine Language الح ١ص جآجو

ن طؾس ج جآجو عفم١. ف قحس جنط١ح Native Code ف١ف ه ، Visual Basic ن١حجش جحف١س ضؿىح ف نحس جطر٠د Compile جؾوز ف

Project Propertiesىق جكج ::Optimize for Fast Code

١كحي جطؾ ف ج جالنط١ح ذطظ١ ضؼ١حش غس جالس ذك١ع ضؼط جل EXEطحتؽ ػس ضف١ جالآجو ذغ جظ ػ قؿ جف جطف١ .

:Optimize for Small Code ١كحي جطؾ ف ج جالنط١ح ذطم١ قؿ جف جطف١ جل ح ٠طط١غ

ذغ جظ ػ ػس ضف١ جالآجو ف١.٠طردضؾى ػاللس ػى١س ذ١ جه١ح٠ جحذم١، فغحرح ح : يالحظخ

ضم١ قؿ ج١فز ف ضهف١ ػس جرحؽ، ف جالضؿحز ج٢ن، غحرح ح ٠طرد ضك١ ػس ضف١ جرحؽ ئ ٠حوز

قؿ جف.:No Optimization

ف Optimization ٠م جطؾ ذح كحالش ؼ١حش ضف ١ جىفحءز جطف١.

:Favor Pentium Pro جرحؽ ١ؼ ػ ؼحؽ ع أجيج Pentium Pro فج جالنط١ح ٠١ى

٠س ح.ذغىجوػس ضف١ جطؼ١حش نح 112

Page 67: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

67أعداد المبرمج:مشتاق طالب رشيد العامري

:Create Symbolic Debug Info ١١ف ج جالنط١ح ضؼ١حش جحف١س ج جف جطف١ الػطحء جىح١س جطم١ف

Debug جطف٠١س آذحؽ جطم١ف ج ضف ذ١ثسذحطهىج ذجؽ ضم١ف جفحش Microsoft Visual C .١كس ه، جغ ج جالنط١ح .

Advanced Optimizationئػذاداد ضه١ ذؼ ن١حجش ضك١ جىفحءز جطمىس جط Visual Basic ٠ىه

Advanced Optimizationضؿىح ف ىق قج ::Assume No Aliasing

جالنط١ح ٠١ى ػس ضف١ جرحؽ ى ج ؾىج ػى ضطر١كج –رىأ جالطؼحز . جالطؼحز ػ١س جطؼحز ج طغ١ ػح -ذى ر١

ByRefجح ج جؾجء ذحؾغ :Dim X

Sub MySub (Y As Integer) Y =4

End Sub Sub AliasingSub)(

„ػ١س جالطؼحز MySub X End Sub

:Remove Array Bound Checks ح ٠٠ى ػس جطؼح Array Index ػى جطكمك ل ف جففس

غ جففحش.:Remove Integer Overflow Checks

جآذ أضصػى جطكمك جك ٠س جس ج جطغ١جش جك١كس ف١ح جؿحي ال.

:Remove Floating Point Error Checks Floating Pointػ جالنط١ح جحذك، ى نح الػىجو ع جفحس جؼحتس .

113

:Allow Unrounded Floating Point Operations كي ػ ولس جآذ الػىجو جفج جؼحتس.

:Remove Safe Pentium™ FDIV Checks ى لى ٠إو ج طحتؽ نح٠ثس ؼحؿحش ٠١ى ػس ػ١س جمس

Pentium . جط ضؼح ىسFDIV ٠طك ػ جح١د نج١حش Optimization جػ١ى جآ، طف ضك١ جىفحءز

ذؿ١س ضطرغ ٠حوز ػس ضف١ جىو ج جطم١ جطالن حو جظحSystem Resources مز فهص جح١د طك١غ١ح. جح ف جف

نالي نحس جطر٠د Visual Basic جىفحءز جهحس ذؼ١س جطؾس جط ٠فحCompile جؾوز ف ىق جكج نحت جع Project Properties ضآ .

–ج جالنط١ح جش لى ضرد حآي ج طحتؽ غ١ طلؼس -ف جق جالقجي ضغ١١ح ذى ول١ك، ال ضمي ج ضآ ح ر! فحق ػ

114

انفصم انشاثغ

VBAو VBيكزجبد VB VBA ثحش جالؾجءجش جىحتحش جس ف ىطرحش Visual Basic ٠ف ه جط ال غ ػح ف ذجؿه جؿى٠س، ك١ف جه ضطط١غ كحآجز ؼظ

ج جطهىج جالؾجءش جىجي جس فجىجي ذىطحذس جآجو الؿحح، جال ٠ؼطر جف ذىػ١ جؿحح ذفه ظ ضك١ Visual Basic ىطرحش

Page 68: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

68أعداد المبرمج:مشتاق طالب رشيد العامري

، ف جىجي ح رؿ كطف ذغحش جن ح Optimization جىفحءز . ٠أنن ج جف Visual Basic ٠ؿؼ ضف١ح جع ذىػ١ جآجون جىطذس خ

ف ؾس غ جؼجش جىجي جالؾجءش جط أضطق ج١ح ذحنطح ذحطظحن قط ضرك ف MSDN ذحنطح، جح جيج جوش قح جف١ح ح فىطرس

فكحضح.

انزؼبيم يغ االػذاد جىجي جهحس ذحالػىجو Operators ػجش جؼحالش Visual Basic ٠ف ه

.... جم، ذحالحفس ج وجي ٠ح١س آوجي Long ،Integer ،Byte ذحنطالف ججػح جػػحش ج جىجي جال١س.

خثغذادانؼبيالد ، * /، ف قحس ضطر١ك ح-جؼحالش جالذغ جت١١س +، Visual Basic ٠ف ه

–ػ ججع هطفس جم١، فح جم١ جالذ١ ططكي إلطح ج جالػمى Integer ج Long Single ج Double ذحرس ؼح جمس / ف ٠م ،

، ه Double ذطك٠ ؾ١غ جم١ جطػس ف جكى٠ جال٠ جال٠ ج جع Integer ،Byte ع جطغ١جش جك١كس \ ٠ف ذحطهىج ؼح جمس جك١كس

Long ف جع جذغ جش جؼح :/ 115

Dim X As Long, Y As Long, Z As Long Z =X /Y

Z =X \ Y „ج جع

، ف جق١ح آغ١ز Double ف ٠كي ؾ١غ جم١ ج جع ^ آيه ؼح جال ضكطحؼ جال طغ١جش جك١كس، ه ٠ ف ذحطهىج ؼح جخ ػح ػ

جال:Dim X As Long, Y As Long,

Y =X ^ 3 Y =X *X *X

ح ال ٠ؼط ولس Long ف١م ذطك٠ جم١ ج MOD جح ؼح ذحل جمس ، ضطط١غ ضط٠ Double Single ف جطؼح غ ججع جفحس جؼحتس جالن آ

Longوجس جن ضؼو ذرحل جمس الػىجو غ١ :Function ModEx (dN As Double, dD As Double )As Double

ModEx =dN – Int(dN /dD * )dD End Function

ص ؼحالش طم١س =، Visual Basic ذحرس ؼحالش جطم١س، ف١ف . ذحرس ؼح جحجز = ف ١ آؼح جحو<> >، => ،<، =<

Visual Basic جم١ ج جطغ١جش، فؼح جحجز = جؼح ج ٠طرم ف وجن جؿ ج١٠س ج قط جيج رم ؼح جحو آن، فحىو جطح:

Dim X As Integer, Y As Integer X =Y =10

٠ر١ ح ج جؼح = جػح جؾو ف جط جػح ؼح ي محس جحجز ١ جحو جم١.

ن ذ١ ؼح جحجز ؼحضفق ؼظ غحش جرؿس جال: يالحظخ ؼح جحجز == ؼح C جحو جم١، فؿى ف غس جي

جحو جم١ =.116

ف ىػس ج٠ح ذ١ جؿ جطم١س XOR ،AND NOT جح ؼحالش جذ١ جط ضػ ل١س جؼىو Bits ٠ىه جطهىجح الػىجو ق١ع ضإغ ػ جرطحش

Binaryذحظح جػحت .:اعجمخ انؼبيالد

Page 69: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

69أعداد المبرمج:مشتاق طالب رشيد العامري

جف١ى ج جيآ ح، ج جالنطحء جحتؼس جط ٠مغ ف١ح جغد جرؿ١ ضط And ، فمحس جؼح Or جػ جؼح And ١ح ج جرم١س جؼح

جؼح أقط Or لر محس جؼح Or س جحذك ج ف جؿ ،فف ج جػحي: And ج١ لر جؼح

Print True Or False And False

ذ١ح جط١ؿس جكم١م١س False س جال ٠ؼطمى جرؽ ج جط١ؿس True يه، ال جؼح ج٠ And . ٠ط جنطرح لر جؼح ج٠Or

طؿد يه، جطهى جاللج:Print (True Or False )And False

ج ٠ط ضف١ And جػ جرم١س جؼح Not ج٠ى ج٠ح، جرم١س جؼح فحؼرحز : And وجتح لر ؼح

Print Not True And False

False And جال فم١ قط ضى True ػ آس Notطم ذطف١ جؼح False ذؼى يه ٠أض و جؼح And . آح جف فط١ؿس جطؼر١ False

غ ػى جط١ؿس فططط١غ ج ضطهى And جح جيج جوش ضف١ جؼح جاللج جط ح جألرم١س جأل ػ ؾ١غ جؼحالش ػ:

Print Not (True And False)

Trueف جكحس، ١ى جحضؽ جحت .117

خثغذادانذوال ٠س جط ٠فح هذغىجو جىجي Visual Basic وجس جم١س جطمس Abs وجس

أجيج 1 ف ضؼو ذحم١ Sgn ، جح جىجس Exp جىجس جال١س Sqr جؿ جطذ١ؼ جؼىو ج ح حد، ف جيج أجيج 1 -جؼىو ج ح ؾد، جم١س

جؼىو ج ف. أ رس ىجس جغحغذح Log ف ضؼو ذحغحغ جطر١ؼ ؼىو، جح الػىجو

جالن، فططط١غ ضط٠ جىجس:Function LogEx (dN As Double, dBase As Double )As Double

LogEx = Log (dN / )Log (dBase ) End Function

ج٠ح، ق١ع ٠ى ج ضؼو Sqr جىو جحذك ٠آ ذطط٠ وجس جؿ جطذ١ؼ ذحؿ ج ؼىو:

Function NthSqr (iNum As Integer, iRoot As Integer )As Double NthSqr =iNum ^ (1 /iRoot)

End Function ' ػحي جكي ػ جؿ جطىؼ١ر

' 8 ؼىو Print NthSqr (8 , 3) ' 2 ضؼو ذحؼىو

جط ضؼو ذحم١س جحرس جطحوج Tan ،Cos ،Sin Atn جن١ج جىجي جػػ١س Secج جج٠س جس ح ذحجو٠ح، جح ذحرس ىجي جػػ١س جالن ،

Cosec جم ف١ىه جطمحلح ذططر١محش ؼحوالض ج جؼفس، جقىز .... ، ػى، جرم١س ػ١ه:

Function Sec (X As Double )As Double Sec(X = )1 /Cos(X)

End Function

118

رغك االػذاد جط ضف ه ن١حجش ال حت١س ط١ك Format جل وجي جط١ك وجس

جالػىجو، جكف، جلص جطح٠م ج٠ح، حو ه ف ي جفمز ٠ق ض١ك جالػىجو فم١.

Page 70: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

71أعداد المبرمج:مشتاق طالب رشيد العامري

٠٠مس جط١ك: -ج جم١س-جؼرحز ضططد Format ج١غس جرطس ىجس Formatجم١س ( , ) ٠٠مس جط١ك

٠ؾى ػح ٠ق جط١ك . جع جالي جط١محش جم١ح١س جػح جط١محش جهحس . جط١محش جم١ح١س ػرحز ع ل١ كىو ع ض١ك جاللح آ

General Number ج ط١ك جل ذى ػح Currency ط١ك جل ػ MSDNى ػس غ١ح جم١ جط ضؿىح ف ىطرس :

„ 1234567 Print Format(1234567, "General Number)"

1,234,567.00 ..„ Print Format(1234567, "Currency”)

„ 1,234,567 Print Format(1234567, "Standard”)

ض١محش ضكىوح ذفه . جط ضطهى ػالحش آجح جط١محش جهحس ف MSDN.... جم، ضؿىح ج٠ح ف ىطرس : 0 ، %،#

' 1, 234.57 Print Format(1234.567, "#,##.00)"

' 23.4% Print Format(0.234, "#.#)"%

' 020.0 Print Format(20, "00#.00)"

دوال اخشيجال ضكف جفحس ضكي جؼىو ج ، Int Fix وجي قف جفج جىجط١

ػىو ك١ف جل ج ٠ح جؼىو ج ذ١ح جػح١س ضكف جفحس فم١:119

Print Int(1.2 )' 1 Print Int (- 1.2 )' -2

Print Fix(1.2 )' 1 Print Fix (- 1.2 )' -1

ضكى٠ى ػىوجط ضىه VB6 فمى ظش ف جالىج Round جح وجس جطم٠د جاللح جؼ٠س:

Print Round(2.12567, 2 )' 2.13

فح جىجط١ Octal جػح١س Hexadecimal ػى جكى٠ع ػ جالػىجو جطؼ٠سHex Oct :ضكي جػىجو جظح جؼ ج جالظس جحذمس

Print Hex$(100 )' 64 Print Oct$(100 )' 144

جػحتطك٠ ج جظح Binary فؼ١ه ذىطحذس جىجس Bin :ذفه Public Function Bin(iNum As Integer )As String

Dim iCounter As Integer Do

If (iNum And 2 ^ iCounter = )2 ^ iCounter Then Bin " =1 "& Bin

Else Bin " =0 "& Bin

End If iCounter =iCounter +1

Loop Until 2 ^ iCounter > iNum End Function

جآذ ج ضح ف، 1 ف ضؼو ذم١س ػجت١س جغ Rnd جح جىجس ضطط١غ ضه١ ؿحي ؼ١ جالػىجو ذحطهىج جؼحوس:

–+ جغ ل١س Rnd( * 1)جغ ل١س + جػ ل١س(( Int

Page 71: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

71أعداد المبرمج:مشتاق طالب رشيد العامري

120

4 ،2 -فكي ػ جػىجو ػجت١س ف جؿحي ] ١ثح ػ: أوطد[ ج Print Int(7 *Rnd +- 2)

، ى جف جطهىج وجي Val جن١ج، وجي ضك٠ جم١ ج جػىجو ؼ جح Integer CLng الػىجو CInt جطك٠ جط ضىه ضكى ٠ى ع جم١س آ

.... جم. Double الػىجو CDbl ،Long الػىجو

انزؼبيم يغ انحشوفال ٠طهى جكف؟ ضف ه ىطرحش ح VB VBA ػجش جىجي جهطس

. جػ ػ١ه ف جفىز Strings ف جطؼح غ جطغ١جش جػجذص جكف١س Find and Replace ؼظ جىجي ذحالحفس ج ضطر١ك فىز جركع جالطرىجي

ى أذىأ ذحؼحالش جكف١س.

حشفخانؼبيالد ان م١ جكف١س: Combine Operator ٠ػ ؼح جىؽ & ج

Dim sMyName As String “ضآ” = sMyName

” sMyName =sMyName & “ جؼح” جؼحضآ “ „ Print sMyName

ع جم١ قف١س أجح ؼح جؿغ "+" فأح ال جقر جطهىج آغ١ج، فحيج جؿغ "ف١طكي ج ؼح & جقى جم١ ػىو٠س جػح١س قف١س لحذس أضص"،جيج

جقى جم١ ػىو٠س أضصطك٠ ج ػىو٠س ف١ى ؼح ؾغ، جح جيج ح Type Mismatch جالن قف١س ال٠ى ضك٠ح ج ػىو٠س، فح حس جهطأ

١د جظ:Print “20” + “30” „ “2030”

Print “20” + 30 „ 50 ”Print “X „حس نطأ + 100

121

، = .... جم ف١ى ضطر١مح ػ جم١<> ،< ذحرس ؼحالش جطم١س ج ASCII جكف١س ج٠ح، ق١ع ضى ل١س جكف جمحذ ح ف ؾىي

:UNICODE Print "Turki "> "TURKI "„ True Print "Turki "< "TURKI "„ False Print "Turki" = "TURKI "„ False

False „ "ضآ" Print"جقى" >True „ "ضآ" Print"جقى" <False „ "ضآ" = "جقى" Print

ضطط١غ ج ضؿؼ: يالحظخ Visual Basic ٠طؿح محس ى جكف

وطحذسجىر١ز جغ١ز ػى جطهىج ؼح جحجز ٠طس ف طمس جالػالحش Option Compare Text جىس جكؿز

جؼحس ى قىز ذؿ١س. جق١حح ضو ضؿح جىلس جط ٠فح ػ١ه ؼح جحجز ضطهى ؼح

أ ل # ج ٠ط١ف ه جطؼحي جكف جطؼ١٠س، ف١ػ ج Like جطحذاللح:ج ؟ أ قف، ج * أ ػىو ؼ١ جكف ج

Dim sMyString As String sMyString =…

A1234” “ ج ” If sMyString Like “A????” Then … „ “Abcde Aabce1234” “ ج ” If sMyString Like “A*” Then … „ “Ab

A1234” “ ج ” If sMyString Like “A####” Then … „ “A0000

ذحطهىج جاللج ] [:ج ذحىحه ضكى٠ى قف ؼ١س ج ؿحي ؼ١ Dim sMyString As String

Page 72: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

72أعداد المبرمج:مشتاق طالب رشيد العامري

sMyString =… B1234” “ ج ” If sMyString Like “[AB]###” Then … „ “A1234

122 BY” “ ج ” If sMyString Like “[AB[]XY]” Then … „ “AX

D3” “ ج ” If sMyString Like “[A-D]#” Then … „ “C9

س ج ؿحي ؼ١ ذحطهىج ج !:قط ٠ىه جطػحء قف ؼ١ Dim sMyString As String

sMyString =… Z1234” “ ج ” If sMyString Like “![0-9]###” Then … „ “A1234

انجحش واالعزجذال InStr ضطط١غ جركع ػ آس ج قف ؼ١س وجن ل١س قف١س ػ ٠٠ك جىجس

جىس:جط ضؼو ذلغ يه جكف ج ذىج٠س Dim lPosition As Long

Dim lStartPoint As Long lStartPoint =1

lPosition =InStr (lStartPoint, Text1.Text ,)"ضآ" If lPosition > 0 Then

Text1.SelStart =lPosition - 1 Text1.SelLength =4

End If

ػ١س جركع ضىف ر١ ذحىجس جحذمس ى InStrRev جح جىجس أ ضرىأ ح٠س جم١س جس.-ؼحآس

جط ضىه Replace ذحرس ؼ١س جطرىجي ج، ف ضؿى جع جىجس جطرىجي قف ػ١س ذكف جن . ح طرىي ؾ١غ آحش "كى" ج

"كى هللا ػ١ " جؾوز ف أوجز ج: هللا ػ١ " )"كى Text1.Text =Replace(Text1.Text ,"كى" ,

123

رغك انحشوف ج٠ح ط١ك جكف، ى ال ضؾى ذح ض١محش Format ططهى جىجس

ج ٠ػ قف ج @ ل١ح١س كف، جح جط١محش جهحس ف ضطهى جة:ج ٠ػ قف ج ال & حفس ج

Print Format"(ABCD", "@ @ @ @ )"„ “A B C D” Print Format"(ABCD", "@ &&& )"„ “A BCD”

Print Format"(9661234567", "&&&-&-@@@@@@ )"„ “966-1-234567”

دوال اخشي ، جكف ج١ Left $ جىجي جكف١س جالن وجي جطهال جكف ج١

Right$ جكف جط $ :Mid Dim sMyString As String

sMyString =“ABCDEFGHIJKLMNOPQRSTUVWXYZ” Print Left$ (sMyString, 5 )„ ABCDE

Print Right$ (sMyString, 5 )„ VWXYZ Print Mid$ (sMyString, 20, 5 )„ TUVWX Print Mid$ (sMyString, 20 )„ TUVWXYZ

، ف جؼف ج جىجط١ػى جكى٠ع ػ قف غطح جؿ١س Right Left ؿس "قد ج" Right $ ضؼط١ح طحتؽ ػى١س غ جكف جؼذ١س . فحالطىػحء رىأ جالف فحرحء فحكحء جم .. ح ٠رد جط٠ ػ جرؽ جؼذ .ذ١س،جفىز ذى ذح٠س ؿؼ ح ض١ جىجص ٠ ضؼال ذى ك١ف غ جكف جؼ

ArRight : ArLeft ػ ٠٠ك ضط٠ وجط١ ػذ١ط١Function ArLeft(sString As String, lLength As Long )As String

Page 73: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

73أعداد المبرمج:مشتاق طالب رشيد العامري

ArLeft =Right$(sString, lLength) End Function

Function ArRight(sString As String, lLength As Long )As String ArRight =Left$(sString, lLength)

End Function

124 Private Sub Form_Click)(

' ػحي الطىػحء, 4) ' ضآ "(جؼح"ضآ $ Print ArRight

, 7) ' جؼح "(جؼح"ضآ $ Print ArLeft End Sub

ج٠ح، Statement ػرحز Mid $ ز جن، فؼ١ه ؼفس ج Mid $ جػو ىجس١ثح ػ: وطحذسف١ىه

Dim sMyString As String sMyString " =abcde"

Mid$(sMyString, 2, 3" = )BCD" Print sMyString „ “aBCDe”

جطغ١ جف ف نح١ح ذحطهىج ػالحش جط١، أذىال ؼفس ح جيج جط ضؼو ذؼىو قف جم١س جس ف جع ض١ Len جطهى جىجس

ط٠مس جال:ج If sMyString =“” Then …

If Len(sMyString = )0 Then … „ جع

LTrim $ ، جحفحش ج١ RTrim $ جح كف جحفحش ج١ جطهى جىجس Trim: $ جحفحش ج١ ج١

sMyString =“ 12345 ” Print RTrim$ (sMyString )„ “ 12345” Print LTrim$ (sMyString )„ “12345 ”

Print Trim$ (sMyString )„ “12345”

ف ط١ AscW ، جح ASCII ضؼو ذحؼىو جمحذ كف ف ؾىي Asc جىجسUNICODE جىجي ، $ Chr $ ChrW أ جؼى:–ضؼو ذحكف جمحذ ؼىو

202 „ )"ش"( Print Asc 1578 „ )"ش"( Print AscW

„ش ( Print Chr$(202

125 „ش ( Print ChrW$(1578

جطح ضمح ذطىر١ جكف جالؿ٠١س UCase $ LCase $ جىجي جالن وجط ضغ١ح. جطهىج حضح جىجطح أس ٠س نحس ػى محس جم١

“ Turki ”جكف١س، فال ض ج ال ضح ” : “TURKI طهى قف آذ١ز لى ال ٠ىطد ج „ … If Text1.Text =“TURKI” Then

If UCase$ (Text1.Text = )“TURKI” Then … If LCase$ (Text1.Text = )“turki” Then …

ضم ذطغ١ ؾ١غ LCase $ ضم ذطىر١ ؾ١غ جكف جىجس UCase $ جىجسضىر١ جكف جالي آيجكف آح أ٠ح ف جػحي جحذك، جح جيج آص ض٠ى

StrConvج جىجس : vbProperCase آس، فح جػحذصsMyString " =I like Visual Basic"

Print StrConv(sMyString, vbProperCase )„ “I Like Visual Basic” Print StrConv(sMyString, vbLowerCase )„ “i like visual basic”

Print StrConv(sMyString, vbUpperCase )„ “I LIKE VISUAL BASIC”

ذححي UNICODE ج ASCII ج٠ح ضك٠ ج StrConv ضىه جىجس vbFromUnicodeذححي جػحذص . ASCII ج UNICODE ج vbUnicode جػحذص

Page 74: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

74أعداد المبرمج:مشتاق طالب رشيد العامري

ذؼ جىجي جكف١س ضطف ح هط١، جال ضؼو ذم١س : يالحظخ

. قحي وجتح Variant جػح١س ضؼو ذم١س جع String جع–جطهىج جهس جال جىجس ػ ٠٠ك جحفس -جيج ضفش

ذؼى ج جىجس طفغ ػدء ضك٠ ع جم س ج ٠م ذ $ جVisual Basic ح ٠إو ج ٠حوز ػس جطف١.

ؾ١غ جىحش م آي آس ج ففس، جفطج١حضىه ف Split جىجس جفح ذ١ جىحش جحفس آح ٠ىه ضكى٠ى فح ؼ١:

Dim X )(As String Dim iCounter As Integer

X =Split(Text1.Text)

126 „ضكى٠ى فح غ١ جحفس

„ X =Split(Text1.Text, )"*" For iCounter =0 To UBound(X)

Print X(iCounter) Next

حذمح: أضؼ١ى جغ آح Join جيج ىص ػ ضم١ جىحش، فحىجس sFromArrayToString =Join (X)

„ضكى٠ى فح غ١ جحفس ( “*“ , „ sFromArrayToString =Join (X

جال، جفق ذ١ح ج Str CStr $ جن١ج، وجط ضك٠ جم١ ج قف١س ؾد ج جػح١س فال. أض١ف حفس ٠ح جؼىو ج ح ج

انزؼبيم يغ انىلذ وانزبسخ ػ ل١ جلص جطح٠م ف جىح١س ض٠ف طغ١ Visual Basic ال لط وػ

، ذ ٠كط ػ ػجش جىجي جهحس ذؼ، ضؼى٠، قحخ Date جع.ض١ك ل١ جلص جطح٠م

دوال انىلذ وانزبسخ ل١ ضػ لص ؼ١ ج ضح٠م ؼ١ ج آالح ؼح جء Date جم١ جع

ف طغ١ جع أضص Date ج غحذص ذ١ جؼالط١ # #: Dim MyDate As Date

MyDate =#1/20/2001# Print MyDate

MyDate =#2:30:00 AM# Print MyDate

MyDate =#1/20/2001 2:30:00 AM# Print MyDate

127

لر ج جذىأ ف جكى٠ع ػ وجي جلص جطح٠م، جو ج جػفه ػ جهح١سCalendar جطحذؼس ىحت VBA جط ضىه ضغ١١ ظح جص ج٠م جطحذغ رحؿه

ج ١الو ج ؿ:Dim MyDate As Date

MyDate =#1/20/2001 2:30:00 AM# VBA.Calendar =vbCalHijri ' ؿ

Print MyDate VBA.Calendar =vbCalGreg ' ١الو

Print MyDate

غ جؼ ج جم١س جط ضؼح ف جهح١س ضإغ ػ ع جم١س جط ضؼو ذح وجي جطح٠م جالن ىح ال ضإغ ف ل١ جلص جطح٠م:

Dim MyDate As Date VBA.Calendar =vbCalHijri

Page 75: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

75أعداد المبرمج:مشتاق طالب رشيد العامري

MyDate =#1/ 16/ 1421 # „جم١س ح ذحطح٠م ج١الو ١ جؿ Print MyDate „هؾحش جال ح ذحؿ

جطح ضؼوج Date Time جال جػ ه وجي جلص جص ج٠م رطىتح ذحىجط١ ذطح٠م ج١ جلص جكح:

Print Date Print Time

، ف طغ١ ل١س جلص Statement آػرحجش Date Time جح جيج ضؼحص غ جطح٠م ف جظح:

Date =#1/20/2001# Time =#12:00:00 AM#

ضؼو ذم١س ض ضح٠م ج١ جلص جكح: Now جىجسPrint Now

128

لص جطىػحتح ف ضؼو ذؼىو جػج طف ج١ قط Timer جح جىجس أ ضؼ آػىجو، لى ضطف١ى ح ضط جؾجء جطظح إلص لر ضف١ آو

ؼ١:Sub Wait (iSeconds As Integer)

Dim sStartTime As Single sStartTime =Timer

Do :DoEvents :Loop Until Timer – sStartTime > =iSeconds End Sub

حز ػ ػىجو ٠رىأ جحػسػر Timer ضآ ج جىجس ٠ط ضف١ 00:00:00 جحذك لى ٠إو ج Wait ، فحالؾجء 23:59:59 ؾى٠ى ذؼى غح١س جحػس

لر ح٠س جكمس جؾوز ف جالؾجء . Timer قمس ال حت١س جيج ض ضف١ ج ىجسضؿد ججتد جك١ف ج رس قىظ جىس جحذمس ث١س، جال ج

، آح ٠م "جذؼى ػ ججتد غ ح":Sub Wait (iSeconds As Integer)

Const NUMOFSEC As Single =24 *60 *60! Dim sStartTime As Single

sStartTime =Timer Do :DoEvents

Loop Until (Timer +NUMOFSEC – sStartTime )Mod NUMOFSEC > =iSeconds End Sub

رحز جيج آص ضغد ف # # ضطى جطهىج جػحذص ذ١ جؼالط١ ٠ىه DateSerial ضؼ١١ ل١ طغ١جش ذحطهىج جطح٠م جؿ، ى غ جىجس

VBAجطحذؼس ىحت : Calendar ػ يه ف ضطأغ ذم١س جهح١سDim MyDate As Date

VBA.Calendar =vbCalHijri „ 1422 جي 27 ( 27 , 10 , MyDate =DateSerial(1422

Print MyDate VBA.Calendar =vbCalGreg

Print MyDate „ 2002 ٠ح٠ 11 ٠جفك

129

. جح ذحرس ىجط١ TimeSerial آح ضطف وجس جن لص جىجسDateValue TimeValue جطح٠م ج جلص جؾو ف جم١سفح ضؼوج ذم١س

جس ج١ح:Print DateValue(Now +2)

Print TimeValue(Now)

جط ضطهؼ ؾء ؼ١ ل١س جلص ج DatePart ذحىحه جطهىج جىجس ف Minute ،Hour ،Year ،Month ،Day Second جطح٠م، ى جف جىجي

Page 76: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

76أعداد المبرمج:مشتاق طالب رشيد العامري

ج، جس، جحػس، جىل١مس جػح١س جؾوز ف جم١سضؼو ذم١س ج١، جس ج١:

Print Month (Date) Print Hour (#1:20:00 AM#)

:خ ػه انىلذ وانزبسخثغذادانؼهبد ٠س ػ ل١ ضح٠ه١س آ جؿغ ذ١ذغىجوآغ١ج ج ضكطحؼ ج جؾجء ذؼ جؼ١حش

ذحالحفس ج محس جطج٠م . ذحىحه ضطر١ك ح يآض فضح٠ه١ ج ٠ـ ضح٠ه١ ، –" ف جف جػح ال جم١س ج جع Date فمز "جع ضم -آح يآش ج ل١ ػىو ك١ف ػىو ػ ، جؼىو جك١ف ٠طؼك ذحطح٠م جح جؼ

ػحي:ف نح ذحلص، ؾخ جطهىج ؼح جؿغ آح ف ج ج „حػس جال 12 جحفس ١٠

Print Now +2 +#12:00#

DateAdd ططر١ك ػ١حش ٠ح١س جآغ ولس س، ٠ف جطهىج جىجط١DateDiff جال الحفس ضح٠م ػ ضح٠م جػح١س ؼفس جفحق ذ١ ج. وجس ،

DateAdd : ح ١غس ػحس DateAddجفطز( , جؼىو, )جطح٠م

d" ٠ " "yyyy " "mجفطز جقىز جطهى جط لى ضى س " ....جم، جح جؼىو ف ػىو جقىجش جفطز جط ض٠ى جحفط ج، جح جطح٠م ف

جم١س ج ض٠ى جحفس جطح٠م ػ١ح:130

Print DateAdd "(m", 3, Now)

١ ضح٠ه١ فحطهى وجسجح ؼفس جفق ذ DateDiff ١غطح جؼحس ر١ ذحال، جال جح ضطد ل١س جطح٠م ىح ل١س جؼىو:

٠ 60 „ ( # 2001 /18 /2# ,# 2000 /20 /Print DateDiff"(d", #12

رغك انىلذ وانزبسخذحرسز جن، Format ال جػطمى ج ذكحؾس ج ضؼ٠فه ػ جىجس

ط١محش جم١ح١س ف ىػس م١ جلص جطح٠م:Dim sMyDate As Date

sMyDate =Now Print Format$(sMyDate, "General Date)"

Print Format$(sMyDate, "Long Date)" Print Format$(sMyDate, "Long Time)"

Print Format$(sMyDate, "HH:MM -> MMMM DD, YYYY)"

ح جحف جالىجآ VB6 وجس جحف١س ط١ك جلص جطح٠م FormatDateTime جط ضؼو ذح ج جمحذ ل ج ح: MonthName جىجس

VBA.Calendar =vbCalHijri „ك ( Print MonthName(1 VBA.Calendar =vbCalGreg „٠ح٠ ( Print MonthName(1

انهفبد وانغهذادانزؼبيم يغ أ وجي ج ػرحجش ؾى٠ىز طؼح غ جفحش جؿىجش، VB6 ٠ف جالىج

Visual فؼظ ح أط ف جفمجش جطح١س ضف جالىججش جمى٠س يBasic أذىأ ذؼ و جي ػرحجش ضىه جطؼح غ جفحش آضؼى٠ .

ػ جقؿحح .... جم، غ جضطق ج ػرحجش نحسنحتح، جحتح، جالطؼال 131

٠٠مس جركع ػ جفحش جؿىجش، غ جنط جفمز ذطق Folders ذحؿىجش جي ج جفحش ضك٠ح.

انزؼبيم يغ انهفبد

Page 77: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

77أعداد المبرمج:مشتاق طالب رشيد العامري

FileCopy جػحوز ض١س جف ج م، جال Name … As ٠ىه جالذ١ح جالم جف، Kill :٠كف جف

„جػحوز ض١س ف Name “C:\MyFile.EXT” As “C:\MyFile.DAT”

„م ف Name “C:\MyFile.EXT” As “D:\MyFile.EXT”

„م ف FileCopy “C:\MyFile.EXT” As “D:\MyFile.EXT”

„م ضغ١١ ج ف FileCopy “C:\MyFile.EXT” As “C:\MyFile2.EXT”

„قف ف Kill “C:\MyFile.EXT”

„قف ؿػس فحش Kill “.*TMP”

SetAttr جىجس File Attributes ؼفس نحت جف GetAttr ضىه جىجس ٠طس ج ال ٠ى فطقح:–طغ١١ نحت جف

Dim sFile As String sFile =“C:\File.EXT”

If GetAttr(sFile )And vbHidden Then … „هف If GetAttr(sFile )And vbReadOnly Then … „مجءز فم١

If GetAttr(sFile )And vbArchive Then … „ج١ف …

SetAttr sFile, vbHidden „هف SetAttr sFile, vbArchive +vbReadOnly „ج١ف مجءز فم١

SetAttr sFile, GetAttr(sFile )Xor vbReadOnly „ػى نح١س مجءز فم١

ذلص ضح٠م FileDateTime ذم١س ضػ قؿ جف، جىجس FileLen ضؼو جىجس جحء جف:

132 Print FileLen (sFile )

Print FileDateTime (sFile )

لحذ١طح ػ جؼوز ذكؿ جفحش FileLen ج١ز جط ضغ ؾر ف جىجسقس، جؼ١د ج ال ٠ؼؿر ف ف جىجس ج جم١سفط أضصقط ج

أ ضؼو ذم١س ك١كس ف قحي-جط ضؼو ذح قؿ جف لر جفطف ل١ح جرحؽ ذطغ١١ قؿ جف.

انزؼبيم يغ انغهذاد ذم١س قف١س ضػ جى١ جكح م ج ٠ف CurDir $ ضؼو جىجس

ج كن جلج آن ض ج جىجس:جرحؽ Print CurDir $ „جى١ جكح ف جم جكح

Print CurDir$ (“d” )„ Dجى١ جكح ف جم :

، جالي ChDrive ChDir لى ضغد ف ضغ١١ جى١ جكح ذحطهىج جال٠ طغ١١ جم جػح طغ١١ جى١:

ChDrive “D:” ChDir “D:\MsgFolder”

ج لص ذطغ١١ جى١ جكح ذحطهىج جال: يالحظخ ChDir فم١ و

، فطم ذطغ١١ جى١ ChDrive ضغ١١ جم ذحطهىج جال جكح ه جم فم١، جح جى١ جكح ج طؼو ذ جىجس

CurDir$ .٠طغ١ ؼفس جى١ جكح م، ف١رى ج ػ جرؿسجيج آص ال ضؼف ح جفحتىز

ضى جحذؼه جل١مس . ذى ر١، جفحتىز جط لى MS-DOS ضكص جظح ضؿ١ح ضغ١١ جى١ جكح ػى جكحؾس ج ضكى٠ى ح جف جش ف يه

Page 78: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

78أعداد المبرمج:مشتاق طالب رشيد العامري

جى١، فج جىو:ChDrive “C:”

ChDir “C:\UnwantedFolder” Kill “*.*”

133

–١كف ؾ١غ جفحش جؾوز ف جى١ جكح م C:\UnwantedFolder جض ١ لر جك ج ال ضؿؼ و١ جظح ،

Windows .جى١ جكح ضطرك جىو جحذك

انجحش ػ انهفبد وانغهذاد. ٠٠مس جطهىجح ٠ط جركع ػ جفحش جؿىجش Dir ضىه جىجس

ذهطض١: جال ضكى٠ى جف /جفحش/جؿى نحتح، جػح١س ذحطىػحء جىجس و جحي أ ل١س ح، جىو جطح ٠ركع ػ ؾ١غ جفحش جطف٠١س جؾوز

C:\WinNTف جؿى : Dim sFileName As String

„جهطز جال sFileName =Dir$ (“C:\Winnt\.*EXE”)

„جهطز جػح١س Do While Len (sFileName) List1.AddItem sFileName

sFileName =Dir$ Loop

رحشش انهفبد ذحالحفس جج وجي جالطؼال ػ جفحش جؿىجش جحذمس، ضف ه ىطرحش

VB VBA ذ١ححش ذجؿه ف١حجج وجي جن ضىه ضك٠ جفحش كفع ذحط١ك ج١ثس جط ض٠ى ج. لر جؾجء أ ػ١حش ضك٠ ػ جف، الذى

جط ١غطح: Open فطك ذحطهىج جؼرحز Open ج جف For ع جي Lock جاللفحي As #ل جف

آجفس جكحء ذحرس ل جف، ف ل ٠ػ جف ذك١ع ٠ىه جي ج١ جرحؽ، ال ٠ى ج جل ج ٠ جآغ ف جقى، ه قط ضطفحو

جط ضؼو ذل غ١ كؿ فطف FreeFile جنطحء جطؼح، ٠ف جطهىج جىجس جف. ذحرس اللفحي، ف ض وه ضكى٠ى نح١س جاللفحي ػ جف ذك١ع

جالن جمجءز جف٠ىه غ آجفس جرجؽ Lock Read جىطحذس ج ، 134

. جح ع Lock Read Write ج جمجءز جىطحذس ج جف Lock Write جف جي، ف جط٠مس جط ضو ج ضطؼح غ جف ذح غالغس ججع:

:انىصىل انززبن Sequential Access ي جططح ٠ؼف ذحمجءز جىطحذس ط ط . فطفجالخ جطرغ غ ج

مجءز جف، جىس جكؿز Input جف، جطهى جىس جكؿزOutPut ىطحذس ج جف جىس جكؿز Append :الحفس ج جف

Open “MyFile.TXT” For Input As #1 Open “MyFile2.TXT” For OutPut As #2 Open “MyFile3.TXT” For Append As #3

جفطقس ذحىس جكؿز-ذحىحه لجءز ط جفحش Input - ذحطهىج EOFقط ح٠س جف ج ضهطر ػ ٠٠ك جىجس : Line Input جؼرحز

Dim sLine As String Open “MyFile.TXT” For Input As #1

Do While Not EOF(1) Line Input #1, sLine

Text1.Text =Text1.Text & vbNewLine & sLine

Page 79: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

79أعداد المبرمج:مشتاق طالب رشيد العامري

Loop

جىو جحذك ال جطهى آغ١ج فأح جف لجءز جف آجال ذىجس جقىز ضInput$ جطهى ف يه جىجس ، LOF :جط ضؼو ذحكؿ جى ف

Dim sFileData As String Open "C:\MyFile.TXT "For Input As #1

sFileData =Input$ (LOF(1), 1) Text1.Text =sFileData

جفطقس ذحىس جكؿز-ط ج جفحش وطحذسذحىحه OutPut Append - ذحطهىج جؼرحز # :Print

Open “C:\MyFile.TXT” For Append As #1

135 Print #1, Text1.Text

جف ذحطهىج جؼرحزال ض جغالق Close جط طغك آجفس جفحش جفطقس ج ض ح ل ف ؼ١:

„ 1 جغالق جف لClose #1

„جغالق آآفس جفحش Close

:انىصىل انضبئ Binary Access

،جالخ جطرغ غ جي جػحت ٠ؼف ذحمجءز جىطحذس ذح٠ص ذح٠ص . فطف جف مجءز جىطحذس ج جف: Binary جطهى جىس جكؿز

Open "C:\MyFile.DAT "For Binary As #1 Open "D:\YouFile.DAT "For Binary As #2

ػ١س جمجءز جىطحذس جف طحذطح حق١س ج ١غس ج قى آذ١ . آي حجف قؿ جؼ١س . ػىح ضم ذفطف طخ ه ؼفس جلغ ف

، جي ذح٠ص1 جف الي ز، فح لغ إ جمجءز جىطحذس جف جط ضؼو LOF ؾو ف نح٠س جف . ؼفس لغ جن ذح٠ص جطهى جىجس

ذكؿ جف ج ذى١٠ح ٠ ج لغ جرح٠ص جالن١:Print LOF (1) Print LOF (2)

ج آص جلى "قؿ جؼ١س " قؿ جرح٠طحش جط ض٠ى لجءضح جف ىطحذس. جلد Put مجءز ج Get ج آضحذطح ج جف . آي ج ٠ط ذحطهىج جال

ج جىو:Dim X As Long

Get #1, 1, X Print X

136 Get #1, , X „ 5 لغ جإ

Print X

ج جط٠ ح ذح ػ١س جمجءز جف ضإو ج ٠حوز جلغ جكح إ ذمىج قؿ جؼ١س . فف جط جػح جقىو لغ جإ، ال ذح٠ص 4ذح٠طحش يه ذرد ج قؿ جؼ١س جحذك = 4 ٠١ى ذى ضمحت

٠م ذمجءز ؾ١غ جاللح ف آضحذطح . ج جىو Long مجءز ل١س ع ف ف جن:

Dim lCounter As Long Dim X As Long

For lCounter =1 To LOF(1) Get #1, , X Put #2, , X

Next

Page 80: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

81أعداد المبرمج:مشتاق طالب رشيد العامري

٠Seekىه ضغ١١ لغ إ جف ػ ٠٠ك جؼرحز : Seek #1 , 1 „ج ذىج٠س جف

„ج ح٠س جف ( Seek #2, LOF(2

جط ضط ذف جط٠مس Strings ذى ه ضكطحؼ ج جطؼح غ جم١ جكف١س ؼحش ػ قؿ جم١س جكف١س . ٠ىه Visual Basic ىه ذكحؾس ج جػطحء

. آح ف Fixed Length String ػ يه؟ ذحطهىج جع جكف جػحذص جكؿ ذح٠ص جف: 100 جػحي جطح ج ١مأ

Dim Y As String *100 Get #1, , Y

جيج آص ال ضف جطهىج ج جع جطغ١جش ، ف١ىه ػ أ ة ضهر يه ػ ٠٠ك جحو أ ل١س 100 ج قؿ جطغ١ جكف Visual Basic ف١

إلطس:Dim Y As String

137 Y =String (100, )"*"

Get #1, , Y

جم١ جكف١س ج جف ٠ى ح ج ضط ذى رح ػ: وطحذسػ١س Put #1 , , “ف غحت”

ض١ جقحو ف ججآز ح ٠إو ج ذطة ػ١س String ضآ وجتح ج جع جطك٠ نحس ف قحس آ جم١ جكف١س آذ١ ؾى ج. ٠حوز جػس جآغ

جع-١س جففحش ع ج جع جم١ ، جطهى ػ %50 Byte ذىال :String

Dim MyArray(1000 )As Byte Open "MyFile.DAT "For Binary As #1

كط٠حش جففس ج جف وطحذس ' Put #1, 1, MyArray

' ج لجتس كط٠حش جف ج جففسGet #1, 1, MyArray

:انىصىل انؼشىائ Random Access

جالخ جطرغ غ جي جؼجت ٠ؼف ذحمجءز جىطحذس ؿ ؿ . فطف مجءز جىطحذس ج جف غ Random جف، جطهى جىس جكؿز

جحي قؿ جؿ:Open "C:\MyData.DAT "For Random As #1 Len =200

جف جؼرحزىطحذس ج Put جطهى جؼرحز Get مجءز جف آح آص ضفؼ غ جفحش جػحت١س، ى ػ١ه ؼفس ج قؿ جؼ١س نطجش جطمحي

Lenجإ ضطأغ ذحكؿ جـ ػى فطف جف ذحطهىج جىس .138

٠ف١ىن ج جع جفحش كحآجز لجػى جر١ححش ذط٠مس رطس، ػال ٠ىه جىطحذس ج جف: UDT ضؼ٠ف ضآ٠د

Private Type typRCD sName As String *20

iAge As Integer End Type

Dim Record As typRCD Open "C:\MyData.DAT "For Random As #1 Len =Len(Record)

Record.sName"ضآ" = Record.iAge =99 Put #1, 1, Record

Record.sName"ػرىهللا" = Record.iAge =20

Page 81: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

81أعداد المبرمج:مشتاق طالب رشيد العامري

Put #1, , Record

لجءز جؿالش ضط ذ جط٠مس:Dim Record As typRCD

Get #1, 1, Record Do While Not EOF(1) Print Record.sName

Print Record.iAge Get #1, , Record

Loop

اد اخشيأعبد ؿػس ال غ VB VBA ج ؾحد جىجي جالؾجءجش جحذمس، ضف ه ىطرحش

ػح جىحتحش جطهىس ف ذجؿه جؿى٠س.139

انجشبيظ أعبد App جرحؽ أحو App ٠ػ جرحؽ جكح ج ٠ط ضف١ . ٠كط ػ ؿػس

جهحت جطق جط أضطق ج ذؼح ح، جح جرم١س ف طمىس ذؼج جفي جالقمس. جة جف ضأؾ١ح

ضؼو Path ، جهح١س EXE ضؼو ذح ف جرحؽ جطف١ EXEName جهح١س ذحح جىح ج ف جرحؽ :

Open App.Path & “\” & App.EXEName & “.EXE” For Binary As #1

جىو، فف Path " لر جطهىج جهح١س\ ج جطكمك ج " يه ال ح جرحؽ ٠حف ج١ Path جحذك جفح ج ج ذؼى جهح١س ج ج، ى ضظ جىس ف جىو جحذك جيج ضص ػ١س ضف١ جرحؽ

" ف ل١س جهح١س\م، جظ ج ج " Boot Directory جى١ جؿPath ١ ؾ ج فػ:جيج ف جرحؽ و

App.Path =“C: \” „ج حف App.Path =“C:\MyProgram ” „ج غ١ حف

قط ضطؿد جىس جحذمس، ٠ جىجس قحي جالػطحو ػ١ ػح ػ ؿوز: Path جهح١س

Function PathEx )(As String If Right(App.Path, 1" = )\ "Then

PathEx =App.Path Else

PathEx =App.Path & "\" End If

End Function Open PathEx & App.EXEName & “.EXE” For Binary As #1

هس جن جرحؽ أضصضىه ؼفس ح جيج PrevInstance جهح١س جطف١ ل١ى جؼ ج ال، لى ضطط١غ غ جطهى ضغ١ جآغ هس

ف ف جلص ذج جىو: رحؽ 140

If App.PrevInstance Then MsgBox “ال ٠ىه ضغ١ هس جن جرحؽ”

End End If

غ يه، ال ضػك ف جىو جحذك آغ١ج، فحطهى ذحه ج ضغ١ جآغ هس ف جرحؽ جيج لح ذم ف جرحؽ ج ؿى جن ج قط ج

جؿى ذح آن.ف جط ضىه TaskVisible جهحت جط ٠ىه ضؼى٠ ل١ح جهح١س

Page 82: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

82أعداد المبرمج:مشتاق طالب رشيد العامري

جحفز جط - Task List جنفحء ج جظح ج ج جرحؽ ف لحتس جرجؽ ضىه ػ ؾ١غ جرجؽ جؼحس ػ ٠٠ك جغ١ ػ جفحض١ف

Ctrl+Alt+Del [ ج ] ]Ctrl+Shift+ESC :فالنفحء ج جرحؽ ف أ لص ،] App.TaskVisible =False

Task جط ضىه ضكى٠ى ج جظح ف لحتس جرجؽ Title آيه جهح١سList ٠ى ج جالفطج ج جؾو ػى نحس ج جع ، Project

Name ف ىق قج نحت جع Project Properties لر ػ١س جطؾس.

App جهحت جالن جط ضؿىح ف ىق جكج جحذك جىحت .... جم، نحت قمق جى١س Minor ،Major نحت ل جىج جرحؽ

Trademarks ،LegalCopyRight .جم مجءز فم١ لص جطف١ ....

انحبفظخ أعبد Clipboard ذحىح١س جالضحي ضرحوي جر١ححش ف١ح ذ١ح، ك١ف Windows ضط١ ؼظ ضطر١محش كىو جالىح١حش، جال ج جخ Clipboard ج ضرحوي جر١ححش ػ ٠٠ك جكحفظس م ك Visual Basic . ٠ىه Windows حجي طرغ ف ؼظ ضطر١محش

٠٠ك جىحت .جر١ححش ج جكحفظس ػ Clipboard SetTextرىأ أال ذم ج ج جكحفظس ذحطهىج جط٠مس :

Clipboard.Clear Clipboard.SetText Text1.Text, vbCFText

141

٠ف وجتح ذحطهىج جط٠مس: يالحظخ Clear ف كط٠حش جكحفظس لر ضطى مم جر١ححش ح، يه ال ف قحالش ؼ١س

ذ١ححش ؾى٠ىز ج جكحفظس ح ٠ط ف كط٠حضح. vbCFRTFفحطهى جػحذص : RTF م ج غ ض١مح ػ ١ثس

Clipboard.Clear Clipboard.SetText RichTextBox1.Text, vbCFRTF

جطهىس: SetData جح م ج، فحط٠مسClipboard.Clear

Clipboard.SetData Picture1.Picture

جطهىس، ى ػ١ه GetText الؾجء ػ١س ك ج، فحط٠مس GetFormat جنطرح ع ١ثس جر١ححش جؾوز ف جكحفظس ذحطهىج جط٠مس

لر جم١ح ذؼ١س جك:If Clipboard.GetFormat (vbCFText )Then

Text1.SelText =Clipboard.GetText (vbCFText) ElseIf Clipboard.GetFormat (vbCFRTF )Then

RichTextBox1.SelRTF =Clipboard.GetText (vbCFRTF) End If

جط ضط٠ ١ثس جز: GetData ك ج جطهى جط٠مسIf Clipboard.GetFormat(vbCFBitmap )Then

Set Picture1.Picture =Clipboard.GetData(vbCFBitmap) End if

٠ىح ػ ججع ١ثحش هطفس ج، جال PictureBox غ ج أوجز جز١ثس جز جع أضصج جىو جحذك ٠ؼ جال جيج vbCFBitmap ه ،

٠ف ضى١ ؾ١غ ج١ثحش جالن:Dim picFormat As Variant

142 For Each picFormat In Array(vbCFBitmap, vbCFMetafile, vbCFDIB, vbCFPalette)

If Clipboard.GetFormat(picFormat )Then Set Picture1.Picture =Clipboard.GetData(picFormat)

Page 83: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

83أعداد المبرمج:مشتاق طالب رشيد العامري

Exit For End If

Next

انشبشخ أعبد Screen جحس ٠ػ ؾ١غ ححش جف ذحؿه ٠كط ػ نحت ضطؼك أحو

جط ضؼو FontCount ذحظ جؼح طف ىطد ظح جطغ١، آجهح١س Font ذؿع جهط٠ جطفز ف ظح جطغ١ جط ضطهىح غ جهح١س

جط ضؼو ذححء جهط٠:Dim iCounter As Integer

For iCounter =0 To Screen.FontCount - 1 List1.AddItem Screen.Fonts(iCounter)

Next

ضػ حفز جيؼ جطس ف جرحؽ، ؾغ ج ActiveForm جهح١سحفز جيؼ، جح جهح١س أحو ActiveControl ف ضػ جالوجز جط ػ١ح

جطآ٠:“جحفز جطس” = Screen.ActiveForm.Caption

حع ػ جىػحفس جمط١سضؼوج ذحضف Height Width جن١ج، جهح١طح Resolution :حس

Print "Width " =& ScaleX(Screen.Width, vbTwips, vbPixels) Print "Height " =& ScaleY(Screen.Height, vbTwips, vbPixels)

انطبثؼخ أعبد Printer ذؼ١ىج ػجطرحػس جج٠ح ج٠س جط الذى ضف١ح ف ذجؿه جؿى٠س .

جطحذؼس أحو Visual Basic جؼمىز، ٠ف ه API جؾجءجش Printer Object ج ج ٠ؼف غ.

143

جطحذؼس جو ج جضطق ج ؿػس جطحذؼحش أحولر جطغ ف جػحء Printers Collection جؿػس ضػ ؾ١غ جطحذؼحش جؾوز ف جؿح جكح .. الضطط١غ ضؼى٠ ج٠ح جطحذؼحش ذى رح . فالذى ف جرىج٠س ضكى٠ى

جطحذؼس ضؼ١١ح الطهىج غ ضطط١غ ضؼى٠ جهحت. نح١س ج جطحذؼس Printers جهحت جؾوز ف ؿػس جطحذؼحش

DeviceName ج ج جغDeriverName ل جف ، Port آخ ػ١ج جطحذؼس ....جم:

Dim X As Integer „جطهىج جؿػس „ Printers Collection

For X =0 To Printers.Count -1 Print Printers(X.)DeviceName

Next

ضو جطهى ضكى٠ى ج طحذؼس جط ٠٠ى جطهىج ج. آي ح ػ١ه ضأو١ىذى جؾوز ف جؿػسضف١ آو حد طؼ١١ جطحذؼس Printers ج جىحت

Printer : ج ػحي ؼ يه ذحطهىج جالوجز .ListBox Private Sub Form_Load)(

Dim X As Integer „جطهىج جؿػس „ Printers Collection

For X =0 To Printers.Count -1 List1.AddItem Printers(X.)DeviceName

Next End Sub

Page 84: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

84أعداد المبرمج:مشتاق طالب رشيد العامري

Private Sub List1_Click)( „ضكى٠ى جطحذؼس جؿػس

Set Printer =Printers(List1.ListIndex) End Sub

144

طؼى٠ نحت ج طحذؼس جكح١س ج Printer جال آي ح ػ١ه جطهىج جىحت جط ضؼف ػ ColorMode جرىء ف ػ١س جطرحػس . جهحت ، نح١س

جطحذؼس وجػس الج ج ال . جهح١س أضص٠مح ح جيج ٠ PrinterQuality جط ضؼو ذع جىػحفس جمط١س ؾوز جطرحػس . جهحت جالن ضؿىح ذى ف

MSDNف ىطرس .جطحذؼس ف جطق أحوجح ػ١س جطرحػس جفؼ١س فطط ذحطهىج ٠ق

جيؼ أحوجؾوز ف Cirlce ،Line ،Print جم جطهىجح ٠ط ذف .... جط٠مس جط جطهىحح غ حفز جيؼ ف جف جػح "جحيؼ جالوجش ".

رىء EndDoc ذؼى ج ضط جحي جر١ححش ج جطد جػس، جطهى جط٠مس ػ١س جطرحػس جفؼ١س:

Printer.RightToLeft =True Printer.FontSize =40

” جؼحضآ “ Printer.Print „جذىأ ػ١س جطرحػس

Print.EndDoc

جف جح NewPage ضم ذححء ػ١س جطرحػس، جط٠مس KillDoc جط٠مس جح ضهؼ فكس ؾى٠ىز.

اآرشبف االخطبءؤح ال ه ف١، ج ج جرحخ جطح جؼ١جش جر١حء ف

جرؿ١ جالنطحء جرؿ١س . فى رؽ آ حس ؾح ذرد آغز جالنطحء غ١ جطىجآز ف ذحؿ، آ رؽ ضلف ػ ئآحي ح٠ؼ

ذحؽ و جنطحء ء ٠طكمك ف جه١حي وطحذسذرد ػى ؼفس ى جه١ أ. جالنطحء لص رس ظح.فم١! ى آح جوش جقط١ح٠حضه طفحو

فكشح ػبيخ ضف جالنطحء ف أ غس ذؿس ج ف١ ػ جح لص قىغح جح ف

لص جط١ ج لص جطف١ . جالنطحء ضرد ج١ح ذحؿه جحء ضف١ . ذحالحفس ج يه، ٠ؾى ع جالنطحء جط ال ضظ ه ذى رح ضؼف

. م ظز ػ جالحف: Bugs ذحجتد145

:اخطبء ولذ انزصى Design Time Errors

ج ججع جالنطحء جآضحفح Syntax Errors ضؼف ج٠ح ذحالنطحء جك٠س جالقح. لص قىظ جالنطحء ٠ى ف قس جط١ ج جطؾس رحؽ .

جؼرحجش جرؿ١س جهح٠ثس . فػال لى ضىطد ج وطحذسررح جت١ ف ٠٠مس Nextذى جلفحح ذحطهىج . For وجس ١ص ؾوز، ج ضة قمس

ضم١س ف لس جػس ىفح ل Visual Basic ضف ه ذ١ثس جطط٠ جطىحس ي ENTER جالنطحء ضمحت١ح ذؿو جلع ف١ح يه ذؼى جغ١ ػ جفطحـ ] .]

[ طالقع ظ حس ضف ه ENTERجغ١ فطحـ ] X ==4 ػال، ل ذىطحذس جهطأ لى لد جط ذحالق . ضؼف جطم١س ذحطىل١ك جك جطمحت

Auto Syntax Check جط ضطط١غ جغ جت ج ع ٠٠ك جالنط١ح Auto Syntax Check جؾو ف نحس جطر٠د Editor ف حفز جه١حجش Options ال جػطمى جه .

طغ١ح ٠ح جال٠ح ج١ آيه؟!:اخطبء ولذ انزفز Run Time Errors

وطحذسلص ظ جالنطحء هطف . ف ضظ جحس جػؿس جحذمس لص

Page 85: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

85أعداد المبرمج:مشتاق طالب رشيد العامري

ىجىو جح ف لص جطف١ . ػىح ٠ جف ػى ط ك١ف ك٠ح ٠ظ ضكى٠ى ىح Run Time Error نح٠ة طم١ح طظ حس ن١ أ ذؼج

ج جىو: أوطدجط ج لغ ف١ جهطأ. ػال ج Dim X As Byte

X =256

ججف ج ج١غس جك٠س ج جىو ك١كس ى ج جق١س ج طم ز ن١ أ.حس نطأؾخ ضف١ جرحؽ طالقع ظ OverFlow يه ال جم١س

. ٠رؼح جنطحء لص Byte 255 جم جط ٠ى ج ٠كح أ طغ١ ع جطف١ آغ١ز ؾىج ؾىج، فحص ػىح ض جرحؽ ضطلغ ج آي جالقطحالش

جهحؾ١س آح ف قحس ض جرحؽ . ػال ؾى ف جقى ط ذحؽص ج جىو:أوطرم ذف ف ؼ١ ج ٠

Kill “FileName.EXT ”

لى ػ ؼه ذحى جطخ، ى جفط ج جف ٠ى ؾو؟ فح حس جهطأ ١ى ح ١د ػ ضف١ جرحؽ . ف آص يآ٠ح ططأآو ؾو

غ قف: Dir جف ذحطهىج وجس146

If Dir$(“FileName.EXT” )Then Kill “FileName.EXT ”

جط ى٠ أوطد٠رى ج يآجته نحق ؾىج ٠ح لحب جط ى ال آ جف ؾو ى نح١س أة جن ١هرن ذ . حيج ReadOnly ىػس ذ

أ ج غ١ لحذ كف؟؟ جأ٠ص جس جهطأ طظ ؾى٠ى . جي ططهى ReadOnlyيآجته جهحق ضطأآو ؾو جف غ ػى ؾو نح١س :

If Dir$(“FileName.EXT” )Then If Not (GetAttr"(FileName.EXT” )And vbReadOnly )Then

Kill “FileName.EXT” End If End If

ؼسقح ٠ح لحت جفح ي، ه فحتك جطمى٠ جالقطج ػ كحطه ججت طؿد جهطأ ى غ يه فحن جقطحي جن لع جه١ أ! جفط ج جف

FileName.EXT ٠ط جطهىج لر ذحؽ جن Process ػ١ نح١س أضص فحه ضطط١غ فطف ج ف -أ ـ رحؽ ج ٠طهى فم١ -جاللفحي

غرطه ف ج جطكى.طظ حس جهطأ جط جنرضه ذح جآ لى جم١س ١ص ٠غد ، فىح رؿ١ آغ١ ج. ى الذى أل رؽ

غ ؾ١غ آجفس جالقطحالش جىس طفحو ضؿد جالنطحء آح القمح.:انشىائت Bugs

لى ٠ى جىو ١ حق١س ك٠س ال ضؾى ذ أ جنطحء ف لص جطف١ ىجتد . ال ٠ؾى ذحؽ جال ذ جتد . ججتد جنطحء ف ن ضف١ذ

جرحؽ ىح ال ضرد ف ج٠محف، ؼرس جال٠ؿحو جالآضحف . ه، ضؿى ضع ػ ج نح Beta غحرح ف جرجؽ جطؿح٠س جىر١ز ى م ضؿ٠ر١س

طكمك جآضحف ججتدآجش ؼ١س جىف ح ضؿذس جرحؽ ج جؾوز ف١ . جآذ جالنطحء ج ٠مغ ف١ح جرؽ كحس جآضحف

ججتد ذف ، أله ضطط١غ جآضحف ججتد جال ػ ٠٠ك غ١ن ، فف قحس ضؿذس ذجؿه جه١س فحه جآغ ٠ؼف ٠٠مس جطؼح ؼح، ى ف

حؽ ػى ه جن فحغ ٠هطف، ضرىأ ججتدقحس ؾو هس جر ذحظ ى٠.

Visual Basic ذ جتد. حن جىػ١ ججتد جط ضىطف ٠ح ضى ، ذؼح ض MSDN ضمح٠ ػح ضؿىح ذى و ف ىطرس Microsoft آز

147

طجن ف أجالق جي ذؼ جالن ال. جمى ج جىال، ج ح جرؿس الذى ؾو جتد ف ذحؿه.

Page 86: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

86أعداد المبرمج:مشتاق طالب رشيد العامري

جلى-٠ؾى جىػ١ جىطد جط ضحل أس ججتد جرؿ١س آ٠ف١س ضفحو٠ح جال جح ج١غ نحؼ طحق جىطحخ. -جاللالي ح

Errانكبئ ع جنطحء لص ج طغ١ ذحطكى٠ى ف ػحي جف ،ػوج ج FileName.EXT

جهطأ أحوػجش جالط طأآو لحذ١س قف جف، جطهى وطحذسذىال Err لر ضطر١ك ج جىحت ، ػ١ه ؼفس أ آي نطأ جنطحء لص جطغ١ .

هط ه١ أ، ػىل نح ١٠ز ػ غ١ز جالنطحء ذ آيه ف ف جىحت -جهحس ذحه١ أ-قىظ جهطأ ٠ط غ جر١ححش Err ػى غرطه .

وطحذسف جالطج ف ػ١س ضف١ جرحؽ قط ػى لع جهطأ الذى ػى ذىج٠س آي جؾجء ضطلغ قىظ نطأ ف١ قط On Error Resume Next جطؼ١س

ط جرحؽ جلد ج جػحي:٠ط ف ضف١ On Error Resume Next

Kill “FileName.EXT” If Err Then

MsgBox Err.Description Err.Clear

End If

Err ح م ذكحس قف جف ، ج ٠ططغ جرحؽ فؼ يه فح جىحتجه١ أ. ١كط ػ نحت ضطؼك ذه جه١ أ ظ حس ضف ف

قط هر Clear ػ ٠٠ك جطىػحء جط٠مس Err ج جطأآو ضظ١ف جىحت جرحؽ جح جط١ح ل جهطأ ج ال ٠ؾى نطأ جن.

جآجو جالؾجء ٠٠س ال ضو ج ضىطد جؿس ج١٠س أضصجح جيج If Err Then جط ضإو ج جالطمحي ج On Error Goto X جش طؼىوز، ف١ف جطهىج

ط ؼ١ ف قحي قىظ أ نطأ ف ضف١ جآجو جالؾجء:148

Sub LongSub )( On Error Goto X:

… … … X:

MsgBox Err.Description Err.Clear End Sub

149

انفصم انخبيظ

خ انزىعه أعبدانجشيغخ OOP غس ذؿس ر١س ػ Visual Basic ج VB2 ،VB1 VB3 ػفص جالىججش

، جح مطس جطكي OBP ضهط– Object Based Programming Language جىحتحش جطالق جالىج أضص VB4 ج ىح جػطرح Visual Basic ػ جح غس

٠س جطؾأحوذؿس Object Oriented Programming Language – -ضهط OOP ػ جغس، جال ج جرؼ ٠ؼط ػ Classes ذؼى جحفس ١ز ضؼ٠ف جف تحش

OOP ؼى وػح رؼ ج١جش جالح١س غحش OOP ذحح Visual Basic ف .... جم، حق١س جن ف OverLoading ، ئػحوز جطؼ٠ف Inheritance آججغس

جطغ١ف OOP ٠ىػ جرىأ جالح غحش Encapsulation ػ ٠ ٠ك ضؼ٠ف Interfacesججؾحش . Classes جفثحش

٠س جطؾأحوال ٠ؼطر غس Visual Basic نالس جمي، OOP ، ++ قم١م١س آغحشC

Page 87: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

87أعداد المبرمج:مشتاق طالب رشيد العامري

SmallTalk ج JAVA ى ٠ىه كحآجز غحش ، OOP .ضطر١ك ؼظ رحوت ج ٠س جطؾ "،أحوك ذؿس -ؿ١غ Visual Basic طك ػج ج جىطحخ "

ز جطؾأحوفج جف ىنه جت١ ج جرؿس OOP ضطر١مح خ Visual Basic .طى ؾ١غ جفي جالقمس ج جىطحخ ر١س ػ ج جف ،

ؼط ظج أل ؾ١غ جفي جالقمس ج جىطحخ طى ر١س ػ ح ض ج جف، فح جؾ ه أ ضطمر حض١ ج١كط١:

ال ضكحي ضؿح ئ فمز . جيج ؼش أه غ١ طػد فىز، قحي لجءز - جفمز ؾى٠ى غ ضطر١ك جألػس جىؾس.

قحي جذطىح جػس ؾى٠ىز ق جفىحن، ل ذططر١مح، طط ػ ج - ؿس.جألخ جر

OOPيمذيخ ان ٠س جطؾأحوجيج آص ػ وج٠س آ جف١س ذطف جرؿس OOP فططط١غ جالطمحي

ف١ى ج جػف OOP ج فمز ذحء جي فثس رطس، جح ج آص ؾى٠ىج ػجش ج جىجف، فى ةأحو٠س جطؾ ػ جح ذؿس ؾ ك أحوه جرؿس

150

أحوف ذحؿه ػرحز ػ Object ج ة Thing ذ١ححش جفؼحي نحس ذ أ فحش ؼ١س )نحت أحوجر ذحؼح جكم١م ج ضج ١٠ح، فحالح

Properties آجال، جؼ، ج، جطي، ج، .... جم، جفؼحي ٠م ذح ) جكه، جرىحء، ج، .... جم، آح ج جالح ( آج، جىطحذس، Methods )٠ق

( ضإغ ف١ ٠طؽ ػح وو فؼ آجطمرحي حس Events ضكىظ ػ١ ق جتغ )جقىجظ فقس ج كس، جطؼ ؿطس ف جم، ي ىس نطحف١س ف جفه جال٠،

فؼس ل٠س ف جهى جال٠، .... جم.جشأحوآيه جكحي غ Visual Basic ف ضكط ػ نحت ضك ذ١ححش ،

.... جم، ٠ق طفؼ جفؼحي نحس ذح BackColor ،Height ،Leftنحس ذح ػ : MouseMove ،Click.... جم، جقىجظ ضمغ ػ١ح آ ، ZOrder ،Refresh ،Moveػ:

KeyPress .جم ضطؽ ػح وو فؼ نحس .... ،

OOPنبرا ؟جقس جفجتى جط ضؿ١ح ذ OOP :آغ١ز ؾىج ى حنط غالغس ح

ػىح ضىر قؿ جرجؽ ضوجو ػ١س جوجضح ضؼم١ىج، ى غ - OOP فحرحؽ جش ذك١ع ج قىغص ىس ف جقىح فى حأحو٠طى ؿػس

ن، قط جوشطخ ضؼى٠ يه جىحت و ج ضطأغ جىحتحش جال ضط٠ جقى جىحتحش فص طج ج ضم١ف آالف جالط جرحؽ، آي ح

٠طؾد ػ١ه جم١ح ذ جالطمحي ج آو جفثس ضط٠ فم١.ض١ جرجؽ جطهط١١ ر١طح جركص ج جرؿس جالؾجت١س جلخ -

حؽ ؾى٠ى فظضه طى ذؼ١ىز ػج جؼح جكم١م، فؼىح ضهط١ ر جالآجو ل٠رس ج جط١ ذك١ع ضؿ جه ذػس جآذ س جآغ .

فؼىح ض فثس ؾى٠ىز، ف ٠غه أ آو ج طغ١ نحؼ جفثس لى ٠إغح جؿءأػ ن ضف١ جالآجو، ١ى آي ضآ٠ن ػ جفثس

ف جرحؽ، ح ٠م رس ججتدجق١ى جؾو Bugs ػى ضأغ طغ١جش ذ١ححش ذحؿه.

OOP - طؿؼ ق١حضه ج، ف ضه١ص Visual Basic جش جوش ضغ١١أحوو ج جحفز، فمى ضىطد ١ثح ػ:

151 Dim hWND As Long

hWND =FindWindow (“Form1”) ChangeCaption (hWND, “Main Menu”)

ج أحوفحه ضطكىظ ػ OOP ى غ Form1 ضم ذطغ١١ نح١ط Caption

Page 88: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

88أعداد المبرمج:مشتاق طالب رشيد العامري

ج جال ج ض٠ى ذس ى٠ىز.

OOPعبد ذى–، فحفثس Object جىحت Class ج ج جف جفق ذ١ جفثس

قىز ؿو ف هحت، ٠ق جقىجظ جىحت، ذ١ح جىحت -ر١ ضكط ػ ذ١ححش جآجو ؼفس ف جفثس . جػو ػحي جحذك، فحالح فثس

جش طمس ح، فأح أحونمح هللا ػ ؾ جفس هحت، ٠ق جقىجظ جػي–ى نحت فثس جالح آجال ضآ، جؼ أحو -ذحهلل آس ج ج 99 ....

ى٠ه نحت ف جفثس "جالح " آجه ، ػن أحوجم، جص ج٠ح Text1 Text2 ، فحوجش ج Visual Basic .... جم. آيه جكحي غ

جش جفثسأحو TextBox جوجش جؼج ، Label2 ،Label1 Labe3 جشأحو Label جفثس .

OOPذو ج جػ ػ١ه ذحنطح جحش جػالظ ي ::انزغهف

Putting ذغ ؾ١غ جال١حء ؼح OOP ف غحش Encapsulation ٠مى ذحطغ١فeverything together ذك١ع ضكمك جطمال١س جىحت جطمس ذر١ححض جهحس ذ ،

قط جآجو، جج٠ح جط ٠مىح ه جطغ١ف جىح١س ضط٠ جر١س جطكط١سضآ٠د ذحؿه و جكحؾس ج ضؼى٠ ط جقى جآجو ىحت ذى ج ٠طأغ

جرحؽ، ػال لص ذط١ فثس ذكع ػ جفحش جػطىش ػ١ ذىؾس آذ١ز ف ذحؿه، ذؼى فطز جالنطرحجش جطؿحخ جم٠س القظص ذ١ء ف ػ١س

هحس ذحركع ضط٠جطف١، فى ح طفؼ ضؼى٠ جر١س جطكط١س فثس ج نج١حش جآجوح و ضغ١١ ط جقى ط جرحؽ جالن جط

ضطؼ جفثس ذحطكى٠ى. آح جوش جطمال١س جفثس، آح جوش آفحءز جػحوز جطهىجح ف ذحؽ آن

جطهىج. رىأ جػحوز Code Reusability ضطر١ك جخ جػحوز جطهىج جالآجو جالآجو جقى جرحوب ج٠س جط ٠طؾد ػ١ه كحس جطؼو ػ ضطر١مح

وجتح ف ذج ؾه ح٠ؼه ج١١س، ذك١ع ضطى جالطفحوز جفثس جط طح ف جآغ ع جآغ ذحؽ . قط ضة فثس لحذس الػحوز

رىأ ذىطحذس ط جقى جفثس ذحن جقط١ح٠حضهجالطهىج، قحي وجتح لر ج ض 152

طمر جأي فه جثس ر١ خ : آ٠ف ٠ى جالطفحوز جفثس ف ذحؽ آن؟ آ٠ف ج جقىو جهحت، جطق جالقىجظ ذك١ع ضى لحذس

مس لىؼ غ جآغ ذحؽ لحذس طط٠ ج٠ح ؟ آ٠ف جؾؼ جفثس ط جش جن ف جرحؽ ذك١ع ٠ى جطهىجحأحوجططحع ػ أ جآجو ج

ف ذحؽ آن؟ ....جم جالثس جالػطرحجش جط الذى ؼح ف جالػطرحآي جؾجء جؾجءجضح. وطحذسلر ذحء جفثس ػى

:رؼذد انىاعهبد

لىز جفثس ػ جقطجتح جآغ Polymorphism ذرحطس رىأ ضؼىو ججؾحش جؾس ذك١ع ضىه ضق١ى ػىز فثحش هطفس ذححء جػحء طحذ، ف

طؿى جح هطفس جح جالؿحجش جال Visual Basic جؼص جظ ل١ال ف جوجش ح Move ،Left Click جح ضكط ػ نحت، ٠ق جقىجظ طآز آ

٠ ػ١ه آرؽ قفظح ضق١ى جالؾجءجش جط ضطهى جالػحء . جف جمحو ٠حل رىأ ضؼىو ججؾحش ذحطف١.

:انىساصخ

لىز فثس ػ جطمحق جػحء فثس ج ذك١ع ض٠ى Inheritance ججغسى٠ه فثس ل٠س جوش ألز جفثس ججغس ض١ف جػحء ؾى٠ىز فثس جال، ف

جحفس ٠٠مس ج نح١س ح، فال ٠ؾى وجػ الػحوز ذحء جفثس ؾى٠ى جحفس جهح١س ج جط٠مس جطذس، فى ح طم ذ ػ١س جحء فثس نح١س

Page 89: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

89أعداد المبرمج:مشتاق طالب رشيد العامري

ض١ف ج١ح جهح١س ج جط٠مس جط ض٠ىح غ ضطمح جفثس جط ض٠ىجهح١س ج جط٠مس ح. جف جمحو ٠حل رىأ ججغس ذحطف١.ضط٠ح جحفس

ثبء اول فئخ يجغطخ آ رىأ ذط١ جي فثس ضػ ه ١ح Visual Basic جال غ

CPerson جنط جال . Add Class Module لحتس Project ىق جكج ، –ج ٠ظ جحه، جنط ج -لى Class Module جم ػ ج Open طظ ه

[ ؼ حفز نحت جفثس، F4حفز جآجو ضؼ٠ف جفثس، جغ١ ػ جفطحـ ] ج جىو ف جفثس: أوطد، ج CPerson ج Class1 ػىي نح١س جال

Public sName As String Public dBirthDate As Date

153

جي فثس ذحالذج ى لى جؿح CPerson ضكط ػ جهح١ط١ sName dBirthDate ضطط١غ جطهىج جفثس . CPerson ،ف أ ىح وجن ػه

ج جىو: أوطدجطحذغ حفز جيؼ ج Click جيد ج جكىظ Private Sub Form_Click)(

Dim Turki As New cPerson Dim Khaled As New cPerson

" = جؼحآ "ض Turki.sName Turki.dBirthDate =#1/1/1900# Khaled.sName"نحى جالذج١" =

Khaled.dBirthDate =#1/1/1979# Print Turki.sName, Turki.dBirthDate

Print Khaled.sName, Khaled.dBirthDate End Sub

٠أحوذححء -ف جىو جحذك -لح Turki Khaled جفثس جط حح ى sName dBirthDate ، غ لح ذطؼ١١ ل١ هح١ط١ CPerson ط

ػ قىز، نطح جىو ذطرحػس ل١ جهحت جطحذؼس ىحت١ أحو Turki .Khaled

–ك١ف ج جفثس جحذمس ضطرمح ف ق١حضه جرؿ١س طرحػس ل١ -ذى ؾحو جال ج جغ جالح ؿو ض١ف فىز جفثحش ٠٠مس جطهىجح.طغ١جش،

ثبء انفئبد رىأ ذحطغ ف Classes جال ذؼى ج ػفطه ػ جفىز جالح١س جفثحش

ضفح١ ذحء نحتح، ٠لح جقىجغح قط ض٠ى لز جفثس.

ثبء انخصبئصحذك، فالقع ج جرؽ ٠طط١غ جحوج CPerson جيج ػىح ج ػحي جفثس

، لى ٠ؼط فس طهى ذحونحي جؼ dBirthDate أ ل١س هح١س نحس :

Turki.iAge =CDate (Text1.Text )

154

جىس ف جىو جحذك، ج جطهى ذحىح جونحي أ ػىو ٠ػ ضح٠مذؼى، ه ػ١ه جطكمك ضح٠م ج١الو ١الو جه لى ٠ى ضح٠م ٠ك

dBirthDateف آي ز ضى جطهى جونحي ل١س هح١س :If CDate (Text1.Text )> Date Then

MsgBox “نطأ ف جم١س”Else

Turki .dBirthDate =CDate(Text1.Text) End If

ف آي ز ض٠ى جحو ٠ؼ١د جىو جحذك ج ٠ه ذؼ١س جطكمك جم١س

Page 90: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

91أعداد المبرمج:مشتاق طالب رشيد العامري

، جك ذحطهىج ع نح جالؾجءجش ٠ dBirthDate ل١س هح١س جهحت جط ضػ نحت جىحت طك١ جم١ جهح٠ثس:

Private m_dBirthDate As Date Public Property Get dBirthDate )(As Date

dBirthDate =m_dBirthDate End Property

Public Property Let dBirthDate (ByVal dNewValue As Date) If dNewValue > Date Then

MsgBox “نطأ ف جم١س”m_dBirthDate =Date

Else m_dBirthDate =dNewValue

End If End Property

ف جكم١مس، جظح حس: يالحظخ MsgBox آح ف جىو– وجن جفثس

٠ؼطر جخ غ١ جقطجف ض١ ء ؾىج فثحش -جحذك نحس ػىح ض٠ى جقؿحح، ٠ف جحي حس نطأ ذحط٠مس

Err.Raise ذىال MsgBox جال ج جطهىص جىجس . MsgBox ف جػحي طم٠د جفىز ج١ه.

155

ذطؼ١١ ج ١ح٠ ضف١ جالؾجءجش جحذمس ١ى آجطح : ف آي ز ضم Let dBirthDate ، ١ط جطىػحء جالؾجء dBirthDate جحو ل١س ؾى٠ىز هح١سز ضم ذمجءز ل١س أي ، ف dNewValue جحي جم١س جؿى٠ىز ج جطغ١ ج ٠ؼو ذم١س Get dBirthDate ، ١ط جطىػحء جالؾجء dBirthDate جهح١س

جحفس نح١س ؾى٠ىزجهح١س. ذحىحه ج٠ح iAge و جكحؾس طؼ٠ف طغ١ نح Private :ح

Public Property Get iAge )(As Integer iAge =DateDiff"(yyyy", m_dBirthDate, Date)

End Property

Let iAge ضؿحص جالؾجء Get iAge ضالقع ج جطهى جال جؾجء جقى جهح١سيه ال ج٠ى ج جؾؼ iAge مجءز فم١ Read Only ف قحي جرؽ ،

ل١س ؾى٠ىز هح١س طظ حس نطأ : وطحذسضؼ١١ ج Read Only Property Print Turki.iAge „ى ؾىج

Turki.iAge =80 „حس نطأ

Property و جالؾجء Property Let ذحىحه ضطر١ك جؼى، أ جطهىج جالؾجءGet : طؿؼ جهح١س ىطحذس فم١Write Only Property

Private m_sPassword As String Public Property Let sPassword (sNewValue As String)

m_sPassword =sNewValue End Property

Functions ج Sub‟s ج٠ى ج٠ح، ٠ىه جطؼح غ جؾجءجش جهحت آجؾجءجشح جطمرحي ل١ :ػحو٠س طى Parameters

Private m_sAddress (2 )As String Public Property Get sAddress (iIndex As Integer )As String

sAddress =m_sAddress (iIndex ) End Property

156 Public Property Let sAddress(iIndex As Integer, sNewValue As String)

m_sAddress (iIndex = )sNewValue End Property

Page 91: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

91أعداد المبرمج:مشتاق طالب رشيد العامري

ذ جط٠مس: sAddress ذحىحه جطىػحء جهح١س–ق ج ” حع جكم١مس “ ( = Turki.sAddress (0

–ال٠س ف٠ىج ” ذحآطح “ ( = Turki.sAddress (1 “ 999 حضف ي” ( = Turki.sAddress (2

حو ل١ ىحتحش، فؼ١ه جطهىجػى جكى٠ع ػ جهحت جط ضىه ج Property Letػح ػ جالؾجء : Property Set جالؾجء

Private m_PersonParent As CPerson Public Property Get PersonParent ) (As CPerson

Set PersonParent =m_PersonParent End Property

Public Property Set PersonParent (ByVal objNewValue As CPerson ) Set m_PersonParent =objNewValue

End Property

:يىاصفبد انخصبئص Property Attributes Procedure Attributes ذحىحه ضؼى٠ جفحش جهحت ػ ٠٠ك ىق جكج

ذؼى ضك٠ه إ جىطحذس ج ىح جؾجء Tools ج ض ج١ جمحتس ، جنفحء Default Propertey جهح١س. ججفحش: ؾؼ جهح١س جف ضج١س

ف هح١س وطحذس، Object Browser جهح١س حفز طؼ جىحتحش ....جم، ذحىحه جطىحف ذحل جه١حجش ف ىق جكج، ػ١ه ج ضؼ ػ

ف جفثسج١م١ ج ؾ١غ جه١حجش طكفع ف CLS فم١ ضظ ه ف . حفز ك جآجو جفثس، ف لص ذؼ١س م ك جآجو جفثس ج فثس جن،

ػ١ه جػحوز ػ١س ضك٠ جفحش جفثس.157

ثبء انطشق ؼفس وجن جفثس، ال Function ج وجي Sub‟s ح جال جؾجءجش Methods جطق

جػحوز جف جػحع "غس جرؿسجػطمى جه ذكحؾس ج BASIC طفح١ ذحء " CPersonجالؾجءجش جىجي. غ يه، ج ػحي ط٠مس ضحذؼس فثس :

Public Sub SetData(sName As String, dBirthDate As Date, sAddress As Variant) Me.sName =sName

Me.dBirthDate =dBirthDate Me.sAddress(0 = )sAddress(0) Me.sAddress(1 = )sAddress(1) Me.sAddress(2 = )sAddress(2)

End Sub

ذحىحه جطىػحء جط٠مس ذىال ضؼ١١ آي نح١س ػ قى: „ذىال ضؼ١١ جهحت

Turki.sName =txtName.Text Turki.dBirthDate =CDate (txtBirthDate.Text )

Turki.sAddress (0 = )txtAddress1.Text Turki.sAddress (1 = )txtAddress2.Text Turki.sAddress (2 = )txtAddress3.Text

„جطىػ جط٠مس Turki.SetData txtName, CDate(txtBirthDate), Array(txtAddress1, _

txtAddress2, txtAddress3)

جطق آح فقط ضمطغ ذفىز ضؼ١١ جهحت ذحطهىج : يالحظخ جػحي جحذك، ضآ ج جطىػحء جط٠مس جحذمس جع ذه

جش ضؼ١١ ل١س آي نح١س ػ قى، طإغ جػسجآجو جىحت جذؼى أضصآح DCOMج . COM آىحش–

158

ثبء االحذاس

Page 92: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

92أعداد المبرمج:مشتاق طالب رشيد العامري

الحءقىظ ج VB4 ػىح ذ١ ذ١ آط جالقىجظ جفثحش ٠طرحو رؿ Class_Initialize جالحء Class_Terminates ى غ جالىججش جالقىظ، جركص .

Clients جفثحش لحذس ػ جحء ضؼ٠ف جقىجظ ؾى٠ىز لحذس ط٠ف جؼالء ج٠ لى ضى جص جقى.–جطهى١ طه جفثس

جالوجش ، أن ػال حفز جفىز ١ص ؼرس ج هطفس ػ جالقىجظ جؾوز ف الطمحق جطهىج يه جكىظ Click ، ض ضؼ٠ف قىظ ف١ح ذح Form جيؼ

آي ح طخ ه غ ج جىحت غ ٠س ف١س غ ج جكىظ آح ف ج جىو:

Private Sub Form_Click)( جيؼ أحوجطمحق قىظ جم „

End Sub

ح ٠طف ح ج جكىظ ذى ذح٠س ػرحز ػ جؾجء Sub لى ٠كط ػ KeyPressج . MouseDown آجؾوز ف قىظ Parameters طغ١جش جحف١س

ؾو ف DataHasBeenSent ج فؼ ح ذحر١ ضؼ٠ف قىظ ذحجىس جكؽ ز. طؼ٠ف ج ج كىظ جؿى٠ى ف جفثس طهى CPerson جفثس

:Event „ضؼ٠ف قىظ ؾى٠ى

Event DataHasBeenSent(objTo As CPerson, bSuccess As Boolean)

ى ال ! ط ٠ط ضف١ ج جكىظ؟ ١ى يه ػى جطهىج نحت طفؿ١ جالقىجظ؟ Visual Basic ٠ق جىحت آي ز؟ ج ػىح ضوجو ز

ض٠ى ػ ٠ ٠ك جطهىج جؼرحز جؿجخ ف أ لص RaiseEvent ف وجن ج جىو ف جفثس : أوطدجفثس. ج CPerson

Option Explicit „ضؼ٠ف قىظ ؾى٠ى

Event DataHasBeenSent(objTo As CPerson, bSuccess As Boolean) „ضؼ٠ف ٠٠مس ؾى٠ىز ف جفثس

Public Sub SendData(objTo As CPerson)

159 „ح م ذطفؼ١ جكىظ If objTo Is Nothing Then

RaiseEvent DataHasBeenSent(objTo, False) Else

RaiseEvent DataHasBeenSent(objTo, True) End If

End Sub

جال طم ج جؿس جالن ؼفس آ٠ف١س جطفحػ غ ج جكىظ آح ضطفحػ غ١ ج، ضط جؼ١س ذف جط٠مس جط ضطؼح Click غ جقىجظ جالوجش جالن آ

غ جالوجش ٠طس:جطهىج جىس جكؿز - WithEvents .غ ضؼ٠ف جىحت

ال ٠ى جىحت ضحذغ ففس. - أ .-ج ٠ط جالػال ػ جىحت ػ ط جقىز - Public

ذح أحوة Caller جفثس CPerson جالطؿحذس القىجظ يه ف جي ج جىو: أوطدجىحت، ف حفز جيؼ ج

Option Explicit Dim WithEvents Caller As CPerson

Private Sub Form_Click)( Dim Khaled As CPerson

Set Khaled =New CPerson “نحى” = Khaled.sName Caller.SendData Khaled

Page 93: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

93أعداد المبرمج:مشتاق طالب رشيد العامري

End Sub Private Sub Form_Load)( Set Caller =New MyClass

End Sub

160 Private Sub Caller_DataHasBeenSent(objTo As CPerson, bSuccess As Boolean)

If bSuccess Then CPerson.sName " :ض جحي جر١ححش ذؿحـ ج"MsgBox

Else MsgBox “ جضى جحي جر١ححش”

End If End Sub

٠ؾى وجػ ىطحذس ج جكىظ جط٠ ذقس جفحض١ف، فرؿوال : يالحظخ

جطم ج جمحتس WithEvents ضؼ٠فه ط ج ضؾى ذ آس ف جػ ٠ح حفز جطك٠ قط ض Combo Box جىس

غ ذحل جحء جالوجش جؾو ز ف MyCallerج جىحت جحفز.

٠٠مس جالطؿحذس كىظػحي ر١ ؾىج ٠ف Caller_DataHasBeenSent ج ، ٠SendDataط ضفؿ١ ذؿو ؿحـ جط٠مس .

:انمبء االحذاس

ضطط١غ ضطر١ك رىأ جمحء جالقىجظ WithEvents ػ ٠٠مس جىس جكؿزEvent Multicasting أحوج جوجز ج فثس أحو، ػ١س جالقىجظ

و ضفؿ١ جكىظ لر ج ضف١ جآجو . أف جفىز ذحػحي جمى٠آن ذؿ جؾو ف جف جػح "جحيؼ جالوجش " ذحطكى٠ى ػى فمز "ج١طز ػ

"، ضالقع ج جىو جطهى TextBoxجىنالش" جطحذؼس فمز "أوجز ج ح ٠٠ ؾىج، لى جضفم أ١طز ػ ج ىنالش – ج غ١ - جرىج٠س

جؼمي جطهىج آي جالآجو طكمك جم١س جط ٠ىطرح جطهى ف نحس ج، ى ح طهى جىو ز جقىز فم١، ؼ ف فثس ذح

:CNumTextBox „جالوجز جط طم جقىجغح ج١ح

Public WithEvents TextControl As TextBox جال جاللح وطحذسجآجو ضغ جطهى „

Private OldText As String Private OldSelStart As Long

161 Private Sub TextControl_GotFocus)(

„ػىح ٠ى جطآ٠ ػ جالوجز „الذى قفع ل١طح

OldText =TextControl.Text OldSelStart =TextControl.SelStart

End Sub Private Sub TextControl_Change)(

„طغ١ ٠غ جطىػحء جالؾجء ضجؾؼ١ح Static bExitNow As Boolean If bExitNow Then Exit Sub

If Not IsNumeric(TextControl.Text )Then „جفطحـ جىن ١ ل

„ل ذحػحوز ػ جم١س جمى٠س bExitNow =True

TextControl.Text =OldText

Page 94: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

94أعداد المبرمج:مشتاق طالب رشيد العامري

bExitNow =False TextControl.SelStart =OldSelStart

Else „جم١س جىنس ل١س جيج

„ل ذكفظح OldText =TextControl.Text

OldSelStart =TextControl.SelStart End If

End Sub Private Sub TextControl_KeyDown(KeyCode As Integer, Shift As Integer)

OldSelStart =TextControl.SelStart End Sub

Private Sub TextControl_KeyUp(KeyCode As Integer, Shift As Integer) OldSelStart =TextControl.SelStart

End Sub Private Sub TextControl_MouseUp(Button As Integer, Shift As Integer, _

162 X As Single, Y As Single)

OldSelStart =TextControl.SelStart End Sub

Private Sub TextControl_Click)( OldSelStart =TextControl.SelStart

End Sub

ؾى٠ىز ال ضمر جال جالػىجو، فال ٠ؾى TextBox جال ف آي ز ض٠ى جحء جوجز جوجز ج ج جفثس:وجػ ىطحذس آي جالآجو جحذمس، جح ل ذحمحء ؾ١غ جقىجظ

Dim NumText As New CNumTextBox Dim NumText2 As New CNumTextBox

Private Sub Form_Load)( Text1 =“0” Text2 =“0”

Set NumText.TextControl =Text1 Set NumText2.TextControl =Text2

End Sub

ال Text1 Text2 ضىح ذرح٠س ى٠ىز ف جىو جحذك ؾؼ جالوجض١ Event Multicastingضمرال جال جػىجو ذف جمحء جالقىجظ .

يضبل رطجم ذحىحه ضطر١ك ثحش جالػس جحء ثحش جفثحش قط ضؿؼ ق١حضه ج، جال

ج أآضف ذططر١ك ػحي ذ١١ ؾىج ٠طؼح غ جفحش جػحت١س.:انفئخ CFile

ش جػحت١س جط ضططد ولس ف جطهىج وجح،لى ضطؼح آغ١ج غ جفح جالنطحء جغ١ز ضرد ج ضغ١١ ١ثس جف ح ضأو١ىػرحجضح ججح، ذى

ضىح ضك٠ جفحش CFile ٠طؽ ػ جتد جنطحء لص جطف١ . فثس جالآجو جؼمىز: وطحذسجػحت١س ذط٠مس ج، فرىال

163 Dim iFree File As Integer

iFreeFile =FreeFile Open “MyFile.TXT” For Binary As #iFreeFile

„ىطحذس ج جف Put #1 , , “جخ جؾجت مف!”

„مجءز Dim sTemp As String

Page 95: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

95أعداد المبرمج:مشتاق طالب رشيد العامري

sTemp =String (18, “ “) Get #1, , sTemp

Print sTemp

ح أ٠ه ذىطحذس جالآجو:Dim MyFile As New CFile

MyFile.OpenFile “MyFile.TXT” ” ؾ١أحوجخ “ MyFile.PutData

Print MyFile.GetData (16)

ال ٠مط جفق ذ١ جالخ جالؾجت جالي جالخ جىحت جػح ػ جنطحجالج ج٠س، فػال وطحذسػىو ط جال آجو فم١، ذ قط ف قحالش ١ح

ح ٠إو ج جقطؿح حقس Close ضالقع ج جغك جف ذحطهىج جال ذحجآز، جف ج يه جقطؿح ل جف ػى جىح١س جطهىج فطف ف آن .

جح غ جالخ جىحت، فال ٠ؾى وجػ ال جغك جف ذحطىػحء جط٠مسCloseFile جىحتحش جع، ال CFile ضم ذحغالق فحضح ضمحت١ح ذؿو ش

CFileجىحت، فج جىو لى جفط ف قىظ جطى١ فثس :Private Sub Class_Terminate)(

Me.CloseFile End Sub

164

جهحس ذحغالق جف: CloseFile ج ٠م ذحطىػحء جط٠مسPublic Sub CloseFile)( If Me.iFileNum Then

Close #iFileNum m_iFileNum =0

End If End Sub

لى ض١ف CFile.CLS طؿى جىػ١ جهحت جط لى جفطح ف جف جط ضكىو lCursorLoc ػجش جهحت ذمى ح ٠ك ه . ن ػال جهح١س

لغ إ جمجءز جىطحذس ج جف:Public Property Get lCursorLoc )(As Long

lCursorLoc =Seek(Me.iFileNum) End Property

Public Property Let lCursorLoc(ByVal lNewValue As Long) Seek Me.iFileNum, lNewValue

End Property

جػس ػ جطهىجح: MyFile.lCursorLoc =1 „ذىج٠س جف

MyFile.lCursorLoc =MyFile.lLOF „ح٠س جف

CFileقط ضك ػ جالؿح جىح فثس . Codes.ZIP جؾغ جف165

اعزخذاو انكبئبد ضؼفص ف جفكحش جحذمس ػ جفثحش جفىز ح آ٠ف١س ذحتح، جال قح

جطؼمسو جطهىج جفثحش جحء جىحتحش ح جطؼف ػ ذؼ جطفح١ ذحىحتحش.

ػجبساد وآنبد خبصخ ثبنكبئبد ج جطؼف ػ جؼرحجش جىحش جكؿز جهحس ذحىحتحش قط

ضطهىح جالطهىج جالػ، رىأ غ جحء جىحتحش ذحطهىج جى ز جكؿز:New

:انكهخ انحغىصح New

Page 96: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

96أعداد المبرمج:مشتاق طالب رشيد العامري

حء هسج ضأو١ىلر جطهىج جىحت ػ١ه ذى Instance ٠ىه ، Visual Basic جحء جىحتحش ذىجط١ ح CreateObject GetObject جضكىظ

"، جط٠مس جالن COM 1 ػح جال ف جف جػح ػ "ذؿس جىحش جء غ New جط ضىه جحء جىحتحش ذحطهىج جىس جكؿز

جىحت ج غ جؼرحز :ض٠ف Set Dim Turki As New CPerson

Dim Khaled As CPerson Set Khaled =New CPerson

جال١حء جؼؿ١رس ؾىج ؾىج جط ضغح١ جطك جرؿ، ج ػ١س جحء جىحت ػ جىو Dim أ غ ػرحز–ف ف لص جط٠ف New ذحطهىج جىس

ج ضفؿ١ قىظ جالحء ال ضإو -جحذك Class_Initialize جطحذغ ىحت ! ٠ط –ضفؿ١ قط ضطهى جىحت ف جآجون . جرد جغ٠د ؾىج -ذحرس

٠م فؼ١ح ذححء جىحت قط ضآ ضطهى ف جآجون، Visual Basic جى جط٠ف الحء!ػ New ذحغ جح جطهىح جىس جكؿز

:انؼجبسح Set ج آن: أحوف جؼحوز الحو Set ضطهى جؼرحز

Set Khaled =Turki

166

ػى جحو جىحتحش، اله ج ضطهىح لى Set ج جطهىج جؼرحز Turki ضظ ه حس نطأ ج قط طحتؽ غ١ طلؼس، ف جفطح ج جىحت١

Khaled ح نح١س جفطج١س جقىز sName لص ذححو ل١س جىحت جالي ، Setج جػح و جطهىج جؼرحز :

Khaled =Turki

فحه ف جكم١مس ضى جال ل١س نح١س جىحت جالي جالفطج١س ج جهح١س جالفطج١س ىحت جػح، أ ج قم١مس جىو جحذك :

Khaled.sName =Turki.sName

:انؼبيم Is

ح جطغ١ج ١٠ج ج ف جىحت:أضطهى ج جؼح ؼفس ح جيج If Khaled Is Turki Then …

جىحت ق ٠ق ٠طرغ فثس ج ال: أ٠ىه ج٠ح ؼفس ح جيج If Khaled Is Nothing Then …

فىز جطهىج طكمك حجزجح ؼح جحجز فحؾ ج ض جىحتحش، فحىو جطح:

If Khaled =Turki Then …

ص:أوطره أىحتحش، -ج ؾىش-ال ٠مح جال جهحت جالفطج١س If Khaled.sName =Turki.sName Then …

:انؼجبسح TypeOf … Is

جىحت:ضىه جؼرحز جنطرح ع جفثس جط ضػ If TypeOf Turki Is CPerson Then …

167 If TypeOf MyCtrl Is TextBox Then

MyCtrl.Text =“…” Else

MyCtrl.Caption =“…” End If

:انذانخ TypeName

ضؼو ذم١س قف١س ضػ ج جفثس جطحذغ ح جىحت: TypeName جىجسPrint TypeName(Turki )„ CPerson Print TypeName(Text1 )„ TextBox

Page 97: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

97أعداد المبرمج:مشتاق طالب رشيد العامري

:انمخ Nothing

ج١: Nothing ذحىحه جغحء جىحت ف أ لص ذؿو جحو جم١سSet Khaled =Nothing

ج٠ى جطفح١ قي ش جىحتحش طمأح ل٠رح.

يبه حممخ انكبئ؟٠ح ض؟ جؿجخ -جطؼر١ طغ١ جىحت ج ف -ف جرىج٠س جو ج جػف ح جىحت

ذى ذح٠س : طغ١ جىحت ػرحز ػ طمس ؾوز ف ججآز ضك ذ١ححش ضطؼك ذه جىحت . لى ضى جؾحذس جإجي طرطس رىأ ضؼ٠ف جطآ٠رحش

UDT ف طغ١ جىحت ح 100 جال ج جالؾحذس جحذمس غ جالف جى٠ى نح٠ثس ! % ػ فح قؿ ال ٠٠ى ػ أ ذص ( ال ػرحز ػ إ 32 ذح٠ص )ف ظ 4

ج طمس ف ججآز ضك ذ١ححش ضطؼك ذه جىحت جى١ جلد ج جىو:Dim X As New MyClass Dim Y As New MyClass

„جإج „ X, Y

„١٠ج ج ف جىحت Set Y =X

168 Y.Value =100

„ Y.Value =100 Print Y.Value

X.Value =200 „ Y.Value =200 !!

Print Y.Value

١٠ ح أفح جطمس ججآز جط Set Y =X ػىح ٠ط ضف١ جط Y -جىحت-جركص ف جطمس جط ١٠ ح جطغ١ X -جإ-جطغ١

ل١س جهح١س جى١ ػ يه، ج ػىح لص ذطؼى٠ X.Value =200 فح ج، إج (أحوطغ١ج ) X Y ضأغش ذرد جطؼى٠ يه ال Y.Value جهح١س

X ١٠ج ج ف جطمس ججآز جط ضكط ػ ذ١ححش ضطؼك ذحىحتأضصطأي فه ػ جطمس جط ضأو١ى١ طمط١ هطفط١. ذى

تهس ىح Y ! ح جنرحح ٠ح ض؟ جنرحح ٠ح لحت جؼ٠ ف ج الح لى جنطفص ججآز جطص أ ذؼرحز غ٠س حضص طؼف جرد القمح.

صىسح انكبئ ف انزاآسح جىحتحش ١ص آجطغ١جش جؼحو٠س ف ضكؿ فح طمط١ ف ججآز جال

قؿ-جىحت ف ججآز نحس إ ذ١ححش جػح١س نحس ر١ححش -ذح٠ص 4 فال كطحؼ جال Long ج Integer جىحت ف . جح ػىح ضؼ ػ طغ١ ػحو آ String طمس جقىز ذحجآز نحس ذم١س جطغ١ ذحطػحء جطغ١جش ع

ف ضكطحؼ ج طمط١ ججآز ػ جىحتحش.مس جػح١س جط ٠كطؿح جىحت ضؼف ذطمس هس جر١ححشجط Instance Data

Area جمس ج غالغس جلح : ل نح ذحإ VTable ل نح ، . ف١ح ٠ Data Area ، ل نح ذحطغ١جش جطحذؼس ىحت Counter ذحؼىجو

ضفح١ جاللح::انإشش VTable

ج جإ الض رؿضفح١ Visual Basic ذمى ح ض رؿ COM Cى ح جطط١غ ل ج ، ++ VTable ػرحز ػ إ ج ضآ٠د ف طمس

جطق-جن ذحجآز ضػ جلغ ضف١ جالؾجءجش Methods - ذىج٠س آي جؼ جء قط 169

جطحذؼس ىحتحش ض١ ج ف جطآ٠د VTable ٠ط ضف١ جآجو . آي إجش

Page 98: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

98أعداد المبرمج:مشتاق طالب رشيد العامري

طم نح VTable ف قحس آ جىحتحش ف جفثس . فى فثس ؾىيإ نح ذ ١٠ ج جطآ٠د أحوذحؾجءجش ضه جفثس، ى VTable

جطجفك غ جفثس جأ ح، فح:Dim X As MyClass, Y As MyClass, Z As YourClass

VTable ض١ ج ضآ٠ر١ X Y Z نحس ىحتحش VTable ضؾى غالظ إجش MyClass . YourClass نح١ فثط١

:انؼذاد Counter

ذح٠ص ػرحز ػ ػىجو ٠ػ ػىو 4 جم جػح جطمس قؿػىح ضةجإجش جط ض١ ج جطمس . ٠رىأ جؼىجو ذحم١س جقى

جىحت، ٠٠ى آح ؾى إ جن ١٠ ج يه جؼىجو . ػىح ٠ جؼىجو ج جف )أ ال ٠ؾى إ ١٠ ج ضه جطمس ( فح جطمس ٠ط ضك٠ح

ججآز ضهطف، ج ؾجخ جف إجي ط ٠ش جىحت؟ جلد ح:Dim X As MyClass, Y As MyClass

„جؼىجو ٠رىأ ذجقى Set X =New MyClass

„جال جؼىجو ذحغح ذرد „ؾو إج ١٠ج ج

„ف جطمس Set Y =X

„جؼىجو جال ٠م ذجقى Set X =Nothing

„جؼىجو جال ذف ح ٠إو ج „ش جىحت

Set Y =Nothing

:يطمخ انجببد Data Area

جط ضكط ػ ؾ١غ جطغ١جش جؼحس جطمس Public جطحض١ى١س Static ٢ن ذحالػطحو ػ ػىو أحو٠هطف قؿح ضأو١ىجهحس ذحىحت، ذى

170

Longقؿ جطغ١جش جطحذؼس . فػال، جيج جقط جىحت ػ طغ٠١ ع ، ذح٠ص. 8 فح قؿ ج جم

:يضبل رىظح جو ج جف جاللح جػال غس ذػحي غ ى ض١ك . ذحفطج ج ى٠ح فثس ذحالحفس ج MyMethod1 MyMethod2 ضكط ػ ٠٠مط١ MyClass ذح

. فحىو جطح: Value1 Value2 ذح Public طغ٠١ ػح١Dim X As MyClass, Y As MyClass, Z As MyClass

„قؿ جحء م ىحتحش ف ججآز Set X =New MyClass

Set Y =X Set Z =New MyClass

„ضآ ج آالح إج طمس جقىز „ X, Y

“ضآ” = X.Value1 “جؼح” = X.Value2

„جن١ج ضؼ١١ ل١ ىحت „ Z

“ػرح” = Z.Value1 “ج٠غ” = Z.Value2

انشكم ٠ى ج ف جطمس جهحس ذحىحتحش آح ف 5 - 1: 171

5شكم - 1 ض١ك ز جىحتحش: Y ،X Z .ذحجآز

Page 99: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

99أعداد المبرمج:مشتاق طالب رشيد العامري

5 لى ال ضه آغ١ج جذؼحش جؾوز ف جى ، ى جط١ؼحذح أس1 -– Binding ٠س طؼ٠ف فىز جذ١ جالقطجف فج قص -ػج جفمز جطح١س

ح ططق ئ١ ف جفي جالقمس. COM ذؿس ىحش

Bindingانشثػ نحت ج ٠ق أضصجىحت جء Members ػ١س جذ١ ذحنطح ذ١ جػحء

. VTable ذحإ ج ٠ػ جىحت ضكى٠ى جلغ جالؾجءجش ف جؿىيججآز ف جؿىي جؼف ج جطق ؾوز ف جلغ ف VTable ى ػ١س

جي ح ١ص رحز جق١حح، جلد ح:Dim X As Object

If Y =True Then Set X =New MyClass

Else Set X = New YourClass

End X.MyMethod

172

، ى ح X جطحذؼس ىحت MyMethod ف جط جالن١ لص ذحطىػحء جط٠مس ؟ ال طط١غ ؼفس يه YourClass ج جفثس MyClass ؟ ضحذغ فثسX جىحت

، ال ٠كطحؼ ج ؼفس Visual Basic جال ف لص جطف١ قط ضطف جال ي٠ؾى ذ وػ ط٠مس أح جيج VTable ضآ٠د جؿىي MyMethod ج ال،جط

ي ج جؾجء ىحت ؼف جع حذك ج.ذىح طأن لص ج٠ي ذىػ١ ج ه، جضى ػ ػ١ ججع جذ١ ح:

:انشثػ انجكش Early Binding جط ضم ذطكى٠ى Compiling time ػ١س جذ١ جرى ضط ف لص جطؾس

VTable جفحش جطآ٠د ح ٠إو ج ي جع ذىػ١ الػحء جىحت . ٠رؼح يه، الذى ج ضكىو ذـ ع جفثس جط ١ػح جىحت.ؼ

„جط٠ف ججف ع جىحتحش Dim X As MyClass, Y As YourClass

Set X =New MyClass „ذحفطج ؾو جضحي

„ COM „٠رؼح جذطأ ى ٠ؼطر ذ١ رى ج٠ح

Set Y =CreateObject (“YourServer.YourClass”)

:انشثػ انزأخش Late Binding

ف لص جطف١ ف آي ز ضـ ف١ح VTable ح ٠ط ضكى٠ى جفحش جطآ٠دؾى٠ى، ح ٠إو ج ذ١ء ف ضكى٠ى جؿىي أحوػ VTable ،جحد ىحت

ج Object جطكمك ؾو جطق جطىع ج. جطغ١جش جؼفس عVariant جش ضطط١غ ج ضذطح جال ػ ٠٠ك جذ١ جطأن. طغ١

„ض٠ف غ١ جف ىحتحش Dim X As Object, Y As Variant

Set X =New MyClass „ذحفطج ؾو جضحي

„ COM Set Y =CreateObject (“MyServer.YourClass”)

173

والدح ويىد انكبئجىحت ذ ج ذحطهىج جىس جكؿزالوز جىحت جكظس جط ضة New

، ٠ش جىحت CreateObject GetObject ج جىجي جالن جط جضطق ح ذؿو ضك٠ جطمس جهحس ذ ف ججآز آنؾ ػ ؿح ج ضؼ١١ جم١س

Page 100: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

111أعداد المبرمج:مشتاق طالب رشيد العامري

Nothing ىحت:. جػ ه ذؼ جطفح١ جىل١مس جهحس ػ جحء جحء ج :اشبء انكبئ واعزخذايه

ذكؿ طمس ف ججآز Visual Basic ػىح ضم ذححء جىحت الي ز ٠م Visual Basic فثس جط ضػ يه جىحت . ذؼى يه، ٠م VTable ضػ جطآ٠د

Instancing Data Area ذكؿ طمس جن ذحجآز نحس ذطمس هس جر١ححش جط ٠م ذطم ح ج غالغس جلح غ ضؼرثس جؼحش جطذس ف

VTable إ VTable ىحح جحد ف آي ل . جم جالي غ ػج Class_Initialize جػح ٠رىأ ػىجو . ال ٠رىأ ف جم جالن١ جال ذؼى ضفؿ١ جكىظ

ف ذف ضؼ٠ف جإ .ال يه جالؾجء جرف ػج ؼ VTable ز جن، فح جؼ١س ضط ذى جع يه ذرد ج أحوجح ف قحس جحء

Visual Basic ال ٠م ذكؿ جطمس ذحجآز جهحس خVTable ف ؾوز ؾى٠ى ١ أ ف ع جفثس جحذك . جن١ج، ضطط١غ أحوؾحز ال

جطىػحء ٠ل ضؼ١١ نحت قط جطظح جقىجغ.جطهىج جىحت :هبخ وعىد انكبئ ثبنزاآسح

Class_Terminate ذطفؿ١ جكىظ Visual Basic ػىح ٠ جؼىجو ج ف ١م جهح ذحىحت ط١كح ه فس جن١ز ؼ أ ة لر ش جىحت غ

ججآز فم١، أ ال Instancing Data Area ٠م ذطك٠ طمس هس جر١ححش الح طى ذحجآز VTable ذطك٠ طمس جطآ٠د Visual Basic ضطلغ ج ٠م

جػطمى ج ج رد جف ف آ ػ١س جحء End قط ح٠س جرحؽ ذؼرحز VTable جىحت ز جن جع ذىػ١ جز جال ذرد ػى ز جحء جي

ؾى٠ى. . فف ج جكىظ ضطط١غ فؼ ح Class_Terminate ى مطس جن قي جكىظ

ض٠ى لر ش جىحت ى ج ؼفس جه ضطط١غ جػحوز ق١حز جىحت ػ ٠٠ك ج جكىظ . جفىز ذرح٠س آجالح ػىح ٠كط، فح ق هللا

جالقطح ٠طك ذح غ ٠ش ى ٠طط١غ جؼوز١٠ جحوز لص جح غ - ضأو١ىجال ذؼؿز جهحك ج ٠ك١ ١٠ص ذى -ج جك١حز ؾى٠ى

Visual Basic ف١ف ه جكىظ Class_Terminate فس جن١ز ؼ ح ض٠ى لر ج ٠ش جىحت ىه ضطط١غ جػطحت جك١حز ؾى٠ى.

174

ج جىحتحش ح ظح -أي هللا ٠س جؼ -مطس جن قي ش جىحتحش جقى جؾجءجض ل١ى جطف١ . ذؼ آن، فط ج جقى أ٠غ ش جىحت جيج ح

إ ػح ( X )جآ٠ى جطغ١ Set X =Nothing جؾجءجش جىحت ٠م ذمط ف جل ؾىج ؾىج ٠ؼ آ٠ف ٠طؼح غ جع Visual Basic فالذى ج ضؼ ج

جىحتحش!، ف١م ذحخ خ ؾىج جػطحء فس ىحت قط ٠ جؾجء ج لط جىحت . جق هللا Class_Terminate ٠ط ضف١ غ ٠م ذطفؿ١ جكىظ

ػجآ.

اسعبل انكبئ ثبنشعغ او ثبنمخ"غس جرؿسضكىغص ف جف جػحع BASIC ذحطكى٠ى ف ل جالؾجءجش "

جىجي ػ جفق ذ١ جحي ؾغ جطغ١ ج جالؾجء جحي ل١س جطغ١ ج جالؾجء، يآش ذح جطغ١جش جس ذحؾغ ٠ى ه جطؼى٠ ف ل١ح

ذ١ جالحيف جالؾجء، ى ػى جكى٠ع ػ جىحتحش فكحي ١ح جفق جىحت Pointer ذحؾغ جم١س، ال جىحت ف آال جكح١ ١ إ

١طى جالؾجء ضؼى٠ ؾ١غ كط٠حش جىحت. ف ByRef جىس جكؿز ByVal جح جفق ذ١ جطهىج جىس جكؿزو ج جحء٠إ ByVal فق ضم ذكص، جي ج جحي جىحت ذحىس جكؿز جطحذغ طمس ذ١ححش Counter هس ؾى٠ىز جإ ضإو ج ٠حوز جؼىجو

فح جإ ف جإ ج ByRef جىحت، جح جالحي ذحىس جكؿز ج ج جالؾجء، ج جىو لى ٠ف جفق:

Page 101: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

111أعداد المبرمج:مشتاق طالب رشيد العامري

„جالحي ذحؾغ ( Sub MySub (objPerson As Person Set objPerson =Nothing „ضإو ج ش جىحت ج

End Sub „جالحي ذحم١س ( Sub MySub (ByVal objPerson As Person

Set objPerson =Nothing „ال ضإو ج ش جىحت ج End Sub

175

انفصم انغبدط

رؼذد انىاعهبد وانىساصخجفثس أضصضكىغص ف جف جحذك ػ جفثحش جىحتحش، يآش ج آح

طمس آح جوش جىح١س جػحوز جطهىجح ف ضطر١محش جن، جال جه ف قحالش آغ١ز ضو ض٠غ جالآجو ذ١ ػىز فثحش ضكحي ضطر١ك جذ١ ذ١ جفثحش طف

ض١ ق١حضه جرؿ١س ذى جف . فجالآجو جطىز وطحذسػ١ه ػحء جػحوز ٠س جطؾ جضكىظ ػأحوج جف أضطق ج ج ع طمىس ف جرؿس

رىأ ضؼىو ججؾحش رىأ ججغس، جنط جف ذحطكىظ ػ فىز جالج جىحت١س.

رؼذد انىاعهبد ضفح ف أ غس جرحوب جط الذى Polymorphism رىأ ضؼىو ججؾحش

٠س جطؾأحوذؿس OOP ق جكع . Visual Basic ٠ىػ جفىز جالح١س ج جرى أ، أـ ف جفمز ٠٠مس ضطر١ك رىأ ضؼىو جؾحش آح

Abstract Classesجضطق ج جفثحش جؿوز .حذس ى جؿحجش هطفسجطؼ٠ف جرؿ رىأ ضؼىو ججؾحش : جحء ط

Same names but different implementations جمى يه، جح طط١غ . جطىػحء ٠ق نحت طحذس جال فثحش هطفس جر١ح أ ذحؿحجش

، آال جفثط١ CCar جػح١س CPerson هطفس. ػحي، فط ج ى٠ح فثط١ جالحس ذحطك٠ه ض٠ؾى ذح ٠٠مس ن Move ذحطح طط١غ جطىػحء ،

. ى جم١س ح ج ػ١س CPerson.Move CCar.Moveجط٠مط١ ذح جتح: جؿح جط٠مس هطفس غ ضحذ جحتح، ف جؼف ج جه ٠طكن ػ

ج ٠٠ك لى١ جح ج١حز فرال ه ضطكن ػ ٠٠ك جالذغ ػؿالش ذح، رىأ ضؼىو جؾحش.

جج٠ح جط ضؿىح ضؼىو ججؾحش آغ١ز ؼ ج١ز جكم١م١س جح ضهط غ١ ج. فمى ضالقع ج رىأ Select Case ػ١ه جىػ١ ثحش ؾ ج٠ آ

ضؼىو ججؾحش طرك ف جالوجش جط ضؼح ػ حفز جيؼ يه ذرد جهحت جطآز ذ١ جالوجش آنح١سؾو جىػ١ Left ج Name ،غ١ ج

176

جؾجء ٠م ذكحيجز جوجز ج وطحذسف ٠رص ه جقى جال٠ح TextBox ف ١ جحفز، فطى ق١س جحذؼه جحػس جىو جطح:

CenterTextBox ( txtTextBox As TextBox ) txtTextBox.Move ScaleWidth - txtTextBox.Width / )2, _

ScaleHeight - txtTextBox.Height / )2 End Sub

ػاللطح ق١س ؾىج ٠رص ه جؾجء آن ٠م ذكحيجز جوجز جؼج أضص Label :فحػطمى جه طىطد جالؾجء جطح ،

CenterLabel (lblLabel As Label) lblLabel.Move ScaleWidth - lblLabel.Width / )2, _

ScaleHeight - lblLabel.Height / )2 End Sub

جؾجء جن ط١١ جالوجش جػح١س ػ 18 ال جػطمى جه ػ جطؼىجو ىطحذس

Page 102: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

112أعداد المبرمج:مشتاق طالب رشيد العامري

جطؾ جآغ ضىطدأحوػاللطح ػح٠ف١س ! ذ طى رؽ أضصجالن قط ػح: أجؾجء جقى ٠ى ج ٠طمر أ جوجز ح

CenterControl (ctrlControl As Control ) ctrlControl.Move ScaleWidth - ctrlControl.Width / )2, _

ScaleHeight - ctrlControl.Height / )2 End Sub

أ ضؼىو جالؾجء جحذك ٠طف ح ؾحي، لز، جذىجع، س، ف، ك رى ضكط ػ جط٠مس Control ح جؾس جن ذح TextBox ججؾحش فحفثس

Move قحح آقحي ؾ١غ جالوجش جالن . ججؾس Control ػرحز ػ فثس ىح Abstract Class Control ال ضكط ػ ج٠س جآجو، ه ض فثس جؿوز

ضطط١غ ج ضكمك رىأ ضؼىو جؾحش الذى، فكط Interfaceضكط ػ جؾس ؾو فثس ؿوز جط ضؼف ججؾس فثحش جالن ح.

:رطجك ػه

جط ضػ قس ITrip جال رىأ ذحط١ ذ١ك، ة فثس ؿوز )جؾس( ذح ضؼ٠ف ٠٠مس ذح ؼفس جطىح١ف:

177 Function GetCost(iDistance As Integer )As Integer

„ال ضىطد ١ثح ح ف ؿو جؾ End Function

ؾ جؼف ػى رؿ: يالحظخ OOP ذط١١ ججؾس ػ جفثس ػ ٠٠ك

لر ج جفثس، جح جفثحش فح جي قف I جحفس قف جرحوتس جالآغ ؼر١س. C جرحوتس

CCar ض ج ض١ح خ :جال جحء فثس جن ضػ قس ذح١حز ال „ال ذى ج ض١ف جؼرحز قط

„طهى ججؾس جطحذؼس فثس „ ITrip

Implements ITrip Private Function ITrip_GetCost(iDistance As Integer )As Integer

„ جىجس أنيز جؾس „ ITrip

ITrip_GetCost =iDistance *15 End Function

وطحذسجالؾجء جحذك ذفه، فرؿو وطحذسال ٠ؾى وجػ : يالحظخ ذحىحه جي ج آجف ز جؾجءجش Implements جىس جكؿز

جؾوز ف جػ حفز ComboBox ججؾس ػ ٠٠ك جالوجز ك جالآجو.

CPlaneج٠ح فثس جن ضػ قس ذحطحتز : „ال ذى ج ض١ف جؼرحز قط

„طهى ججؾس جطحذؼس فثس „ ITrip

Implements ITrip Private Function ITrip_GetCost(iDistance As Integer )As Integer

„ جىجس أنيز جؾس

178 „ ITrip

ITrip_GetCost =iDistance *100 „القع ٠حوز ؼ جطىفس ح End Function

، الطهىجح جطم ج CCar CPlane جفثحش ITrip جط١ح ض١ ججؾسج جىو: أوطدحفز جيؼ غ غ جوجز جج ج

Private Sub Command1_Click)(

Page 103: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

113أعداد المبرمج:مشتاق طالب رشيد العامري

Dim NewTrip As ITrip Set NewTrip =New CCar „جقس جال ذح١حز

Print NewTrip.GetCost(50) Set NewTrip =New CPlane „جركص ذحطحتز

Print NewTrip.GetCost(50) End Sub

جحفس أضصطالقع جنطالف جطىح١ف ذ١ قس ذح ١حز جن ذحطحتز آ٠ ط(. 50طحذ )

انىساصخػ جطمحق - Derived جفثس جطمس– لىز جفثس Inheritance ججغس

جفثس جال-جػحء فثس جن Base Class - ذك١ع ضطى جفثس جطمس جي ج ؾ١غ جػحء )٠ق/نحت( جفثس جال ، ح ٠إو ج ضط٠ جفثس جال جآحي

ى٠ح جفثس ٠ى جحفس جهح١س ف١ح، فال ٠ؾى وجػ أجلح. فػال ؾى٠ى، جح ة فثس ع ضكط ػ جهح١س جػحوز ذحء جفثس

ضى جفثس ع طمس جفثس ذك١ع ضطه آجفس نحتح جالن . ط١ف جفىز، جفط ج ى٠ح جفثحش جػالظ:

Move، ٠لح: Name Age، نحتح: CPerson( ج جفثس: 1٠لح: ، Major، نحتح: CStudent( ج جفثس: 2 ChangeCollege

ChangeDepartment، ٠لح: Salary، نحتح: CWorkman( ج جفثس: 3179

طمس CWorkman CStudent طرك ػ١ح رىأ ججغس جال ذؿؼ جفثط١ لحذطح CStudent CWorkman . أ ج جفثطح CPerson جغس الػحء جفثس جال

جفثس جالي ج جػحء CPerson ه ؾ١غ جالآجو ك١كس ، جحق١س جطم١س:

“كى” = CStudent.Name CStudent.Age =25

CStudent.Move)( “ػ جكحد” = CStudent.Major

CStudent.ChangeCollege)( “ػرىهللا” = CStudent.Name

CWorkman.Age =30 CWorkman.Move)(

CWorkman.Salary =10,000 CWorkman.ChangeDepartment)(

لحذس ي ج CWorkman CStudent جرد ف يه، ج جفثحش جطمس ال CPerson ، جؼى غ١ ك١ف! فحفثس جال CPerson ؾ١غ ػح جفثس جال

ضطط١غ جي ج جػحء جفثس جطمس ح، فال ضىطد ف جقى جال٠ح ١ثح ج جمر١:

CPerson.Salary =20,000 „ج

CPerson.ChangeCollege)(

ج٠ى ج٠ح، جفثحش جطمس ضظ جفثحش جطك ح )جفثحش جال ( فم١ . ال ٠ى ال فثس ح CStudent CWorkman فف ػحح جحذك، جفثحش

جي ج جػحء جفثس جالن فال ضىطد ػ ج:CStudent.Salary =10,000

CWorkman.ChangeCollege)(

فم١ . ج ذحنطح ف رىأ جج غس ف CPerson الح طمح جفثس جالجالآجو جط١ ف وطحذسؾ١غ غحش جرؿس ج ٠مى ه جىػ١ جنطح

180

Page 104: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

114أعداد المبرمج:مشتاق طالب رشيد العامري

ال ج ى٠ه فثسػ١س جطم١ف ضط٠ جفثس ف ج ج٠ ج، ضه١ ػ MyClass جوش ضط٠ح ذححفس ػح ؾى٠ىز ح، آي يه ٠ى ج ٠ط ػ ٠٠ك جطمحق فثس

جن ؾى٠ىز ح جحفس جال.

Visual Basicيحبآاح انىساصخ ة ال ٠ىػ رىأ ججغس ذى ، ج فؼ Visual Basic الف جى٠ى

ججغس ػ جفثحش . جفىز ف كحآجز ججغس س ، فرحح ػ١س كحآجز رىأ ج جفثحش جطمس طظ ف جآجو جفثحش جال، فحيج ال م ذم ؾ١غ

كط٠حش جفثس جال مح ف جفثحش جطمس . ططر١ك يه، جة فثس ذحCPerson ف١ح ج جىو: أوطدج

Private m_sName As String Private m_iAge As Integer

Sub Move)( MsgBox"ض ضف١ جؾجء جطك٠ه"

End Sub Property Get iAge )(As Integer

iAge =m_iAge End Property

Property Let iAge (iNewValue As Integer ) m_iAge =iNewValue

End Property Property Get sName )(As String

sName =m_sName End Property

Property Let sName (sNewValue As String ) m_sName =sNewValue

End Property

181

مح CPerson ، ل ذم ؾ١غ كط٠حش جفثس جال CStudent الحء فثس جي ف جفثس جطمس:

„نحت جفثس جال Private m_sName As String Private m_iAge As Integer

Property Get iAge )(As Integer iAge =m_iAge

End Property Property Let iAge (iNewValue As Integer )

m_iAge =iNewValue End Property

Property Get sName )(As String sName =m_sName

End Property Property Let sName (sNewValue As String )

m_sName =sNewValue End Property

„نحت جفثس جطمس Private m_sMajor As String

Property Get sMajor )(As String sName =m_sName

End Property Property Let sMajor (sNewValue As String )

m_sName =sNewValue

Page 105: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

115أعداد المبرمج:مشتاق طالب رشيد العامري

End Property „٠ق جفثس جال

Sub Move)( MsgBox"ض ضف١ جؾجء جطك٠ه"

182 End Sub

„٠ق جفثس جطمس Sub ChangeCollege)(

MsgBox"ض ضف١ جؾجء ضك٠ جى١س" End Sub

CWorkmanف جفىز ٠رمح ػ جفثس : „نحت جفثس جال

Private m_sName As String Private m_iAge As Integer

Property Get iAge )(As Integer iAge =m_iAge

End Property Property Let iAge (iNewValue As Integer )

m_iAge =iNewValue End Property

Property Get sName )(As String sName =m_sName

End Property Property Let sName (sNewValue As String )

m_sName =sNewValue End Property

„نحت جفثس جطمس Private m_lSalary As Long

Property Get lSalary )(As Long lSalary =m_lSalary

End Property Property Let lSalary (lNewValue As Long )

183 m_lSalary =lNewValue

End Property „٠ق جفثس جال

Sub Move)( MsgBox"ض ضف١ جؾجء جطك٠ه"

End Sub „٠ق جفثس جطمس

Sub ChangeDepartment)( MsgBox"ض ضف١ جؾجء ضغ١١ جم"

End Sub

__________ جال جآجو ػ: وطحذسلح ذؼ١س كحآجز رىأ ججغس، فططط١غ Dim X As New CStudent

Dim Y As New CWorkman “كى” = X.sName

X.iAge =25 X.Move)(

” جكحدػ “ = X.sMajor X.ChangeCollege)(

“ػرىهللا” = Y.sName

Page 106: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

116أعداد المبرمج:مشتاق طالب رشيد العامري

Y.iAge =30 Y.Move)(

Y.lSalary =10,000 Y.ChangeDepartment)(

"حزى ػه"ػاللخ Source جىس ف فىز جكحآجز جحذمس ز ؾو ج١فز جى٠س

Code .جح ف قحس آ جفثس ف فثس جال قط ضطى جطمحق جفثحش ج آوجن ى-ف ضف١ COM ج ضى طك١س .-فحؼ١س ؼك وز ؾىج -ػال

٠س جطؾأحوجك ػ ٠٠ك ضطر١ك ػاللس ضؼف ف ػح جرؿس OOP ذح ض ذحنطح ػ ج جفثس ٠ى ح ج ضكط ػ Has a ٠كط ػ

184

طه جفثس . جال ل ذحػحوز أحون ػ ٠٠ك ضؼ٠ف طغ١ ٠ػ فثس ج أحو ذ جط٠مس: CStudent CWorkman ض١ جفثحش جطمس

„جفثس جال Public objPerson As New CPerson

„نحت جفثس جطمس Private m_sMajor As String

Property Get sMajor )(As String sName =m_sName

End Property Property Let sMajor (sNewValue As String )

m_sName =sNewValue End Property

„٠ق جفثس جطمس Sub ChangeCollege)(

MsgBox"ض ضف١ جؾجء ضك٠ جى١س" End Sub

جؼ١د جق١ى ف جط٠مس ج جطهى جفثس ٠طط١غ كحآجزجؼرحز ػال وطحذسججغس ذىح جك١ف، ف ٠طط١غ X.sName ي ج

جػحء جفثس جال، جح ١ط ج جطهىج جىحت جك ف جفثس جطمس. وطحذس X.objPerson.sName

Delegationانزفىط حء فجفثس جال هف كحآجز ؾ١غ جػ أحو٠رى ج جك جالػ ذؿؼ

جفثس جطمس، غ جحح ج جىحت، جفىز جال ج١س رى أ CStudentجطف٠، ف١رف جىو جحت فثس جطمس :

„جفثس جال Private objPerson As New CPerson

„ضف٠ نحت جفثس جال

185 Property Get iAge )(As Integer

iAge =objPerson.iAge End Property

Property Let iAge (iNewValue As Integer ) objPerson.iAge =iNewValue

End Property Property Get sName )(As String

sName =objPerson.sName End Property

Property Let sName (sNewValue As String ) objPerson.sName =sNewValue

Page 107: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

117أعداد المبرمج:مشتاق طالب رشيد العامري

End Property „نحت جفثس جطمس

Private m_sMajor As String Property Get sMajor )(As String

sName =m_sName End Property

Property Let sMajor (sNewValue As String ) m_sName =sNewValue

End Property „ضف٠ ٠ق جفثس جال

Sub Move)( objPerson.Move

End Sub ق جفثس جطمس ٠ „

Sub ChangeCollege)( MsgBox"ض ضف١ جؾجء ضك٠ جى١س"

End Sub

186

جو ج جنرن -غ جالف -ى Visual Basic جال لص ذكحآجز رىأ ججغس ف % ف ج جػحي فم١ ! ال ف قحس آ فثس جال 100 ج ج فؼح ك١ف

رىأ ضؼىو ججؾحش-جؾس جن جؾس فػ١س Polymorphism - ضطط١غ جي ج جػحء ججؾس جالن فثس، جك ضؿى ف جفمز جطح١س.

وساصخ انىاعهبد ج٠ى ج جذىأ ح ضمى٠ كط٠حش جػحي ج ١ظ ح ىس جغس ججؾحش

جؾس جقىز ذح آ٠ف١س ضالف١ ج، ١ى ى٠ح ف ج جػحي IMyInterface CDerivedClassفثس طمس ذح . CBaseClass فثس ج ذح

، جفثس جال ضكط MyMethod ضكط ػ جؾجء ذح IMyInterface ججؾس . جن١ج، جفثس جطمس ضكط ػ جؾجء ذح BaseMethod ػ جؾجء ذح

DerivedMethod جالػطرح ػ ج جفثس جال ضكط ػ جؾس، غ ف ػ١ أ ج جطق جطحذؼس ىحت جفثس جال IMyInterface جحف١س ججؼ س

MyMethod . BaseMethod :رىظح انشكهخ

ؼفس ح جىس . جال م ضأو١ىقط م ذك جىس الذى ذى آح ػح ف جفمز جحذمس ؾؼ جفثس -ججغس كحآجز -ذؼ١س جطف٠

CDerivedClass طمس جفثس جال CBaseClass ١رف جىو جحت فثس ، CDerivedClass :

Private BaseClass As New CBaseClass „ضف٠ ٠ق جفثس جال

Sub BaseMethod)( BaseClass.BaseMethod

End Sub جطمس ٠ق جفثس „

Sub DerivedMethod)( ح ض٠ى ح أوطدج „

End Sub

187

٠رى ج جىس جضكص ه جال ج جفثس جطمس ال ضىػ جط٠مسMyMethod جطحذؼس جؾس IMyInterface جط ضؼطر جقى جؾحش جفثس جال

CBaseClass :جيج آص ضفى ذطف٠ جؾجء ؼ يه آج . Sub MyMethod)(

Page 108: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

118أعداد المبرمج:مشتاق طالب رشيد العامري

BaseClass.MyMethod End Sub

فحؾ ج ضلف جمجءز ف جكحي ! اله ذكحؾس حس ج ؼفس جط١ؼحخ رىأ CBaseClass ؼف جفثس BaseClass ، فحىحت Polymorphism ضؼىو ججؾحش

ضطط١غ ػ يه. IMyInterface ١ ججؾس:حم انشكهخ

ج ضى جىس لى جضكص ه ، ٠ى جك ذحالطج ذؼ١س ض ٠جض ف جفثس جطمس، ٠رف جىو جحت ذج جى: IMyInterface ججؾس

Private BaseClass As New CBaseClass „الذى ض١ ضه ججؾس Implements IMyInterface

„ضف٠ ٠ق جفثس جال Sub BaseMethod)(

BaseClass.BaseMethod End Sub

„ضف٠ ججؾس جالن فثس جال Private Sub IMyInterface_MyMethod)(

Dim TempInf As IMyInterface Set TempInf =BaseClass

TempInf.MyMethod „جال ٠ىه ػ يه End Sub

Sub MyMethod)( IMyInterface_MyMethod

End Sub

188 „٠ق جفثس جطمس

Sub DerivedMethod)( ح ض٠ى ح أوطدج „

End Sub

Subclassingانزصف انفشػ OOP ذال ه غ١ مرس ذى آذ١ ى رؿ Delegation ػ١س جطف٠

ذحطكى٠ى طهىج رىأ ججغس ذىػز ، جال جح ضط١ ذحػطحءن ضكى جآذ لرجطحذغ فثس جال وجن جفثس جطمس . فع ال، جفثس جطمسضف١ جالؾجء

ضكط ػ ج جىو:Sub BaseMethod)(

BaseClass.BaseMethod End Sub

ضكط ػ طغ١جش Function فط ج جط٠مس جحذمس ػرحز ػ وجس:Parameters

Function BaseMethod (X As Long, Y As Long )As Long BaseMethod =BaseClass.BaseMethod (X, Y)

End Sub

ج آص جلى جطكى جالآذ جه ف جىو جحذك ضطط١غ جغحء ػ١س جطىػحء جط٠مس جؾوز ف جفثس جال ج ضؼى٠ ل١ جطغ١جش جسArguments ، ج قط ضغ١١ جم١س جط ضؼو ذح جط٠مسReturned Value

فططط١غ ج ضىطد ١ثح ػ:Function BaseMethod (X As Long, Y As Long )As Long

If X =0 Then BaseMethod =0

ElseIf Y =0 Then

Page 109: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

119أعداد المبرمج:مشتاق طالب رشيد العامري

BaseMethod =BaseClass.BaseMethod (X, 1) Else

BaseMethod =BaseClass.BaseMethod (X, Y)

189 End If

End Sub

ض جؼ١س ذحط١ف جفػ فثس جال ف رىأ ججغس، Subclassing the base class ٠سأحو، جطم١حش جطمىس جط ضفح ه غحش جرؿس

Visual جط ٠رمحح ذى فؼحي ف غطح جؿ١س Cآغس جي ++ OOP جطؾ.Basic

جفػ ػ ؾ ٠غ جػحء ىطرحشج٠ى ج٠ح، ٠ىه ضطر١ك رىأ جط١ف VB VBA فػال جىجس ، Hex قف جالػىجو جطؼ٠س جط ضؼو ذح ضى جؿ٠١س لى ضى جطؼر١ ج غطح جؿ١س ذك١ع ضو ج ضؼو F ، ....B ،A وجتح

ؼ٠فذط Hex جىجس ذحكف جؼذ١س، فططط١غ ضطر١ك رىأ جط١ف جفػ ىجس BAS جىجس ف ف ذؿس :

Function Hex(lNum As Long )As String Hex =VBA.Hex$(lNum)

Hex =Replace(Hex, "A" ,)"ج" Hex =Replace(Hex, "B" ,)"خ" Hex =Replace(Hex, "C" ,)"ش" Hex =Replace(Hex, "D" ,)"ظ" Hex =Replace(Hex, "E" ,)"ؼ" Hex =Replace(Hex, "F" ,)"ـ"

End Function

٠ىه جطىػحتح ذف جط٠مس:Dim lCounter As Long

For lCounter =0 To 15 Print Hex(lCounter)

Next

االهشاو انكبئخ جطؾ، فح ظضه ج ػ١س ذحء ض١ جرحؽأحوػىح ضرف رؽ

ؿػس جىحتحش جط ضح ضضططك ك آج تحض ١ جآجو، 190

جهحس ذرحؿه. ف ضظ ج ؼظ جرجؽ Object Hierarchies جالج جىحت١س .... جم ج Microsoft PowerPoint ،Microsoft Excel ،Microsoft Word جطؿح٠س آج ػ.... جم، ضالقع ج ى طؽ DirectX ،DAO ،ADO قط ضم١حش جن آ

٠س نحس ذ ضر١ ذؼح ذرؼ.أحو إالء جج ذحء ججه جىحت١س جهحس ذه ج ف غح٠س جال١س آي ح ٠ه جطآ٠ ف ض١ ج جىحت ١ ف جآجو، فحط١ جؿ١ى جؼح جت١ ؿحـ

١س . غ يه، جح١د جط١ه جىحت، جح جآجو فطأض ف جقس جطح جػىجو جهططحش جال١س الحء ج جىحت نحؼ طحق جىطحخ، ى أؾن

ح ذى ح ضكطحؾ رحء جالج جىحت١س أذىج ذحؼاللحش ذ١ جفثحش.

انؼاللبد ث انفئبدز جطؾأحوف ػح جرؿس OOP ط ػ٠ؾى ع جؼاللحش ض "٠ك

Has a لى يآضح ف فمز "ججغس" ف ج جف، جىف جؼاللس " . ٠٠مس جذ١ ضط ذسأحوذ١ جفثحش ذؼح ذرؼ قط ضطى ذحء

فثس جن ف وجن جفثس أحوى٠ىز، فى ح ػ١ه جم١ح ذ ضؼ٠ف جالن. ٠ؾى ػ١ ػاللس "٠كط ػ" ح:قط ض ج جػحء جفثس

Page 110: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

111أعداد المبرمج:مشتاق طالب رشيد العامري

:1 ان 1 ػاللخ

جش ؾوز ف جفثسأحو ػاللس ذ١ فثس فثس ضذطح 1 ج 1 ػاللس ى٠ح جفثس أ ط ج جػحء جفثس ، فػال CCar جوح ذطح ذحفثس

CPerson ض١ف نحط١ذك١ع ضػ حه ج١حز حتك ج جز فمى objOwner objDriver ف جفثس CCar :ضىطد ١ثح ػ

CCar „جفثس Public objOwner As CPerson Public objDriver As CPerson Public sCarModel As String

شكم ذح ضى لى آص ػاللس ف ج جىحت جر١١ ؾىج 6 - 1.

6شكم - 1 جض.أحو ذ١١ ٠ر١ جؼاللس ذ١ أحو : ج جىحت ٠كط ػ جآغ أ٠رؼح جيج MFCػ ىطرس ،–فثس 200

ف١ى جط١ آح ف جى جحذك ج ف غح٠س جال١س ٠رف ضآ٠نCCar ػ جط١ جآغ جؿح جالآجو . جح جيج جوش جطهى جفثحش CPerson

١ثح ػ: فمى ضىطد Dim Turki As New CPerson

Dim Abbas As New CPerson Dim BMW As New CCar

” جؼحضآ “ = Turki.sName “ػرح ج٠غ” = Abbas.sName

… …

BMW.sCarModel =“BMW - 7” Set BMW.objOwner =Turki Set BMW.objDriver =Abbas

جص ف وجن objOwner objDriver ذ ٠ىه جي ج جػحء جىحت جش ، فمى ض١ف ٠٠مس ج جفثس طرحػس ج جحه جحتك: CCar جفثس

CCar „ضؼ٠ف ٠٠مس ف جفثس Public Sub PrintRelatedPeople (frmForm As Form)

Me.sCarModel & ” جو٠: “ frmForm.Print Me.objOwner & ” جحه: “ frmForm.Print

Me .objDriver & ” جحتك: “ frmForm.Print End Sub

٠س جطؾأحوفؼال، جرؿس OOP ذؿس طؼس غح٠س جلخ ج جؼح جكم١م جرؿس جالؾجت١س جؼمىز.

:ان 1 ػاللخ

لى ضى حن جآغ ػاللس ذ١ ف جىحتحش طػ ػاللس جآغ ضؼم١ىج ضؼفجش ف جع . فأحوج ، ق١ع ٠كط جىحت ػ ؿػس 1 ذؼاللس

ح حه جقى CCar ػىح ج جػحي جحذك، القع ج ج١حز ججقىزobjOwner حتك جقى objDriver جحتك ذك١ع ٠ى أحو، طط١غ ضط٠ –١حز ج ٠ى ح جآغ حتك ج خ جففحشى ؼس ! لى ضطهى

آح ف جىو جطح: objDriver طؼ١ى ضؼ٠ف جىحت CCar „جفثس

Private m_objDrivers (5 )As CPerson Public Property Get objDriver (iDriverNum As Integer )As CPerson

Set objDriver =m_objDrivers (iDriverNum ) End Property

Public Property Set objDriver (iDriverNum As Integer, ByVal objNewValue As CPerson)

Set m_objDrivers (iDriverNum = )objNewValue

Page 111: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

111أعداد المبرمج:مشتاق طالب رشيد العامري

End Property

ذحىحه جي ج جهح١س ذىطحذس ١ثح ػ:Set BMW.objOwner =Turki

Set BMW.objDriver (0 = )Abbas Set BMW.objDriver (1 = )Ahmed

Set BMW.objDriver (2 = )Ali … …

Array based 1ج ر١س ػ جففحش " 1 ٠ؼف جع جحذك ذح "ػاللسto many relationship ٠ؾى ع جن ،– ٠ؼف "ذؼاللس -جف آغ١ج ج ر١س 1 ٠س، ق١ع ضى جهح Array based 1 to many relationshipػ جؿػحش "

objDriver ػرحز ػ ؿػس Collection :ذىال ففس CCar „جفثس

Public objDrivers As New Collection

رحز: objDriver ذحىحه جحفس جىحتحش ج جهح١سBMW.objDrivers.Add Turki

BMW.objDrivers.Add Ali

For … Eachذحطهىج قمس : objDriver ج قط جي ج آجفس ػح جهح١سDim objDriver As CPerson

For Each objDriver In BMW.objDrivers Print objDriver.sName

Next

جىس ف جؼاللحش جر١س ػ جؿػحش ضظ ػىح ؼ ج جؿػس٠١ىح ج ضك أ ع جم١، فج جىو ١ط ضف objDriver)جهح١س(

ذى ك١ف:Dim BMW As New CCar

Dim Mercury As New CCar … …

BMW.objDrivers.Add Mercuty „حتك ج١حز ١حز جن!

CPersons Collection Class جك ٠ط ذححء فثس نحس ض فثس جؿػسشح ٠ق نحت ل١ح١س ٠طرؼح آي جرؿ١ ؾ١غ جىص ذحش جىحتح

آح ف COM غحش جرؿس جالن جطجفمس غ Visual Basic جطفز ف جفمز جطح١س.

فئبد انغىػبد Collection Classes فثحش جؿػحش ح جال فثحش ػحو٠س ى ح نحت ٠ق ل١ح١س ػ١ه

حػح قط ٠طك ػ جفثس جمد "فثس ؿػس"أوطر Collection Class ، ج جش حع ججفحش جم١ح١س فثس، فحؾ ج ضؼو ج ىن ض١أوطرػ ػى

COM ػحون ل١ال، فؿ١غ جفثحش جؿز ذغحش جرؿس جهطفس جىجػس طم١س Visual Basicضطرغ ج جالخ ذح ف١ .

ىحتحش ؼ١س جي لحػىز ػ١ه ؼفطح ج فثس جؿػس ضع ي ؿػس ٠ى ج ضى ضحذؼس فثس CPerson "، فحفثس١١sح ػ فثس جىحتحش ذحكف "

CPersonsؿػس ذح .ج جىو أوطدج CPerons جة فثس ؾى٠ىز ح CPersons جح رحء جؿػس

Collectionsجكحآ طق نحت جؿػحش : CPersons „فثس جؿػس

Private m_Col As New Collection Public Sub Add(objNewItem As CPerson, Optional vKey As Variant, _

Optional vBefore As Variant, Optional vAfter As Variant) m_Col.Add objNewItem, vKey

Page 112: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

112أعداد المبرمج:مشتاق طالب رشيد العامري

End Sub Public Sub Remove(vIndexKey As Variant)

m_Col.Remove vIndexKey End Sub

Public Property Get Count )(As Long Count =m_Col.Count

End Property Public Property Get Item(vIndexKey As Variant )As CPerson

Set Item =m_Col(vIndexKey)

195 End Property

ضطط١غ جطهىج جالحفس: يالحظخ Add-Ins جحزClass Builder Utility

٠ق نحت فثس جؿػس ضمحت١ح غ وطحذسط١ ػ١س ضؼى٠ح ذفه.

ج objDrivers Collection ضغ١١ ع جىحت CCar ذحىحه جالطمحي ج جفثس:CPersons

Public objDrivers As New CPersons

١ثح أذف جط٠مس جحذمس CCar CPerson جال جطهى جفثحش ٠كىظ:

Dim BMW As New CCar Dim Driver1 As New CPerson Dim Driver2 As New CPerson

… …

“كى” = Driver1.sName “ػرىهللا” = Driver2.sName

… …

BMW.objDrivers.Add Driver1 BMW.objDrivers.Add Driver2

:ظشوسح االنزضاو ثبنؼبش انمبعخ

ػ أس جالطج ذحجفحش جؼح١٠ جم١ح١س فثحشف ذىج٠س جفمز جآوش جؿػحش، لى لح ذؼ١س كحآجز ؼظ ٠ق نحت جؿػحش آح

جطحذؼس Item ٠رغ، ى ذم١ص مطط١ ذو ض١كح، جال ضطؼك ذحهح١س Default Property ، ف١ؿد ج ضى جهح١س جالفطج١س CPersons ؿػس

ذكع ٠ى رؽ ضؿحح: CPersons ؿػس196

Print BMW.objDrivers.Item(1.)sName Print BMW.objDrivers(2.)sName

آح يآش ف Procedure Attributes ذحىحه ػ يه ػ ٠٠ك ىق جكج٠س جطؾ ."أحوجف جحذك "جرؿس OOP

جو ج جيآح لحذ١س جطهىج جكمسجح جمطس جػح١س جط For … Each غ ص ج جىو:أوطر، ف CPersons جؿػس

Dim objDriver As CPerson For Each objDriver In BMW.objDrivers

Print objDriver.sName Next

١ص ىػس ف For … Each حس نطأ، ال جكمس Visual Basic ١ظ هجىو جطح ف جؿػس وطحذس، ه ػ١ه CPersons ؿػطح جؿى٠ى

:CPersons

Page 113: mushtaq talib58@yahoo.com## #Mushtaq Talib …yahoo.com## #Mushtaq Talib Rashed 2009: فلؤملل ةظوفحم قوقحلا عيمج 3يرماعلا ديشر بلاط قاتشم:جمربملا

##Mushtaq Talib Rashed 2009 [email protected]# جميع الحقوق محفوظة للمؤلف :

113أعداد المبرمج:مشتاق طالب رشيد العامري

Public Property Get NewEnum )(As IUnknown Set NewEnum =m_Col[._NewEnum]

End Property

جم١س وطحذس 4 ف جهحس - Procedure ID جطحذؼس الؾجء NewEnum ف ىق ، Hide this member ضكى٠ى جالنط١ح Procedure Attributes جكج

CPersonsغ جؿػس . For … Each ضى ذه لحو ػ جطهىج جكمسضؼى٠ جفحش جالؾجء .: NewEnum

جط١ؼحخ جهطجش جحذمس نحؼ طحق جىطحخ، ال ٠ططد ف: يالحظخ جهحس OLE Automation جطحذؼس ي COM جر١س جطآ٠رحش ىحش

ج ذحطكى٠ى ججؾس IUnknown ذجؾحش جىحش آججؾسIEnumVariant جيج جوش ٠ى جطفح١ جطمىس قي ج .

جع جكه ذىطحخ:Advanced Visual Basic 6

Power Techniques for Everyday Program By :Matthew Curland ISBN :0-201-70712-8

ف١ف CPersons ،CPerson CCar جن١ج، جيج جوش جػحوز ج جىحت جطهىج ١٠ فثحش جؿػحش ػ جفثحش جؼحو ف جالخ

جط أ٠طح.–جطرغ ف فحش جطؼ١حش جلغ جالطص ج جىحت ذؼى جحفس جؿػس .: CPersons

ض١١ى ذ١س جح١س طى رؽذج جآ لى جط١ص Visual Basic قم١م Visual Basic ذؼىح ضطلص ج جرحوب جالح١حش جط الذى ػ آي رؽ

. ح٠س جؿء جالي Visual Basic ؼفطح جضمحح الذكح ف ذؿسذحكي ػ "جالح١حش" ج جىطحخ، جال ذحىحه ضؼ١ فه يجض١ح جح

.طهس ف ؿحي ؼ١، ج لجءز محالش طمىس وطد

تم بحمد هللا و نعمته