You are on page 1of 220

Microsoft

Visual Basic.Net 2005

(‫ﻛﺘﺎﺏ )ﳎﺎﱐ‬
‫ ﻣﺼﺮ‬- ‫ﺑﻮﺭﺳﻌﻴﺪ‬
٢٠٠٩ – ٢٠٠٨ ‫ﺍﻟﻄﺒﻌﺔ ﺍﻷﻭﱄ‬

 
 

   
 

Prog: Mohamed Youssef ٢ E_Mail: Mohamed.yoyo@gmail.com
‫‪Content ‬‬
‫‪‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪Introduction‬‬

‫‪ -١‬ﻣﻘﺪﻣﺔ ﻓﻲ اﻟﺪوت ﻧﺖ‬


‫‪ - ٢‬ﻣﻘﺪﻣﺔ أﻃﺎر ﻋﻤﻞ ‪.Net Framwork‬‬

‫‪ VB.Net 2005‬‬

‫‪ - ١‬ﻃﺮﯾﻘﺔ ﺗﺜﺒﯿﺖ ‪Visual Basic.Net 2005 Express‬‬

‫‪ - ٢‬اﻟﺘﻌﺮف ﻋﻠﻲ واﺟﮭﺔ ‪IDE‬‬

‫‪ -٣‬اﻟﺘﻌﺮف ﻋﻠﻲ اﻟﻘﻮاﺋﻢ اﻟﺒﺮﻧﺎﻣﺞ‬


‫‪ -٤‬ﺻﻨﺪوق اﻷدوات ﻓﻲ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‬
‫‪ -٥‬أﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻲ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬

‫‪ Programming Basics ‬‬

‫‪ -‬ﯾﺘﻜﻮن ﻣﻦ ﻓﺼﻠﯿﻦ ‪-‬‬ ‫‪ -١‬اﻟﻤﺘﻐﯿﺮات واﻟﺜﻮاﺑﺖ‬


‫‪ -٢‬ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ‬
‫‪ -٣‬اﻟﺜﻮاﺑﺖ واﻟﺘﺮﻛﯿﺒﺎت‬
‫‪ -٤‬اﻟﻤﺼﻔﻮﻓﺎت‬

‫‪ Applications‬‬

‫‪ -١‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ‬


‫‪ - ٢‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻗﺎرئ اﻟﻜﺘﺐ اﻟﻜﺘﺮوﻧﯿﺔ ‪PDF‬‬

‫‪ -٣‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ أﻟﺔ ﺣﺎﺳﺒﺔ ﺑﺴﯿﻄﺔ وﻣﺘﻘﺪﻣﺔ‬


‫‪ -٤‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻟﻌﺒﺔ ﺑﺴﯿﻄﺔ ﻣﺘﻄﻮرة‬
‫‪ -٥‬ﻛﯿﻔﯿﺔ ﺣﺴﺎب اﻟﺰﻣﻦ ﻣﻦ أي ﺗﺎرﯾﺦ ﺑﺈﺳﺘﺨﺪام اﻟﻨﺘﯿﺠﺔ‬
‫‪ -٦‬ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ ﻣﺨﺘﺒﺮ ﻟﺠﺪول ﺿﺮب ﻣﺘﻄﻮر‬
‫‪ -٧‬ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ أﺧﺘﺒﺎر ﺧﺎص ﺑﺄﻋﻼم اﻟﺪول‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


 Database and Reports

SQL Server 2005 ‫ ﺷﺮح ﺑﺮﻧﺎﻣﺞ‬- ١

ADO.Net 2 Programming ‫ ﺷﺮح اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﺒﺔ‬- ٢

Crystal Reports ‫ ﺑﺈﺳﺘﺨﺪام‬Reports ‫ اﻟﺘﻘﺎرﯾﺮ‬- ٣

Help 

Help ‫ اﻟﻤﺴﺎﻋﺪة ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ‬- ١

‫ ﻛﯿﻒ ﯾﻤﻜﻨﻚ اﻟﺤﺼﻮل ﻋﻠﻲ اﻟﻤﻌﻠﻮﻣﺎت‬-٢

 

SQL ‫ ﻣﻠﺤﻖ أواﻣﺮ‬- ١

VB.Net 2005 ‫ ﻣﻠﺤﻖ ﻗﺎﻣﻮس وﻣﺼﻄﻠﺤﺎت اﻟﺒﺮﻧﺎﻣﺞ‬- ٢



Prog: Mohamed Youssef ٤ E_Mail: Mohamed.yoyo@gmail.com


‫‪‬‬ ‫‪‬‬
‫ﻣﺮﺣﺒﺎً ﺑﻚ ﻓﻲ ھﺬا اﻟﻜﺘﺎب اﻟﺬي ﯾﺸﻜﻞ ﻣﻘﺪﻣﺔ ﺷﺎﻣﻠﺔ إﻟﻲ ﺑﺮﻣﺠﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﺑﺄﺳﺘﻌﻤﺎل اﻟﺒﺮﻧﺎﻣﺞ‬
‫اﻟﺒﺮﻧﺎﻣﺞ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪. ٢٠٠٥‬‬
‫ﻟﻘﺪ ﺻﻤﻤﺖ ھﺬا اﻟﻜﺘﺎب اﻟﺘﻌﻠﯿﻤﻲ ﻣﻊ اﻷﺧﺬ ﻓﻲ اﻷﻋﺘﺒﺎر ﻣﺠﻤﻮﻋﺔ ﻣﺘﻨﻮﻋﺔ ﻣﻦ ﻣﺴﺘﻮﯾﺎت اﻟﻤﮭﺎرات و اﻟﻤﻮﺿﻮﻋﺎت‬
‫اﻟﻤﺘﻨﻮﻋﺔ ‪ .‬واﻟﻨﺘﯿﺠﺔ ھﻲ أن اﻟﻤﺒﺮﻣﺠﯿﻦ اﻟﺠﺪد ﯾﺴﺘﻄﯿﻌﻮن ان ﯾﺘﻌﻠﻤﻮا أﺳﺎﺳﯿﺎت اﻟﺒﺮاﻣﺞ ﻓﻲ ﺳﯿﺎق ﺑﺮاﻣﺞ ﺣﻘﯿﻘﯿﺔ و‬
‫ﻣﻔﯿﺪة ‪ ،‬و ﯾﺴﺘﻄﯿﻊ ﻣﺒﺮﻣﺠﻮا اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬اﻟﺨﺒﺮاء أﺟﺎدة ﺑﺴﺮﻋﺔ أدوات وأذا ﻛﻨﺖ ﻣﺒﺪئ ﻓﻲ ﻋﺎﻟﻢ اﻟﺒﺮﻣﺠﺔ ﻓﺘﻜﻮن‬
‫ﺳﻌﯿﺪ اﻟﺨﻂ ﻻﺳﺘﺨﺪام ك ﺗﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ ‪.‬‬

‫ﻣﺎ ﯾﻜﻤﻞ ھﺬا اﻷﺳﻠﻮب اﻟﺸﺎﻣﻞ ھﻮ ﺑﻨﯿﺔ اﻟﻜﺘﺎب ‪ ٦‬ﻓﺼﻮل و ﻣﻠﺤﻘﯿﻦ ﻣﻨﻈﻤﯿﻦ ﺣﺴﺐ اﻟﻤﻮﺿﻮع ‪ ،‬و ﺑﺈﺳﺘﻌﻤﺎل‬
‫ھﺬا اﻟﻜﺘﺎب ‪ ،‬ﺳﻨﺘﻌﻠﻢ ﺑﺴﺮﻋﺔ ﻛﯿﻔﯿﺔ أﻧﺸﺎء ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ذات ﻧﻮﻋﯿﺔ ﻣﺘﻄﻮرة و ﺑﺮاﻣﺞ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫و ﺗﻄﺒﯿﻘﺎت اﻟﻮﯾﻨﺪوز‪ -----------.‬أن ﺟﻤﯿﻊ اﻟﻤﻠﻔﺎت ﻣﻔﺘﻮﺣﺔ اﻟﻤﺼﺪر واﻟﺒﺮاﻣﺞ ﻣﻌﻠﻮﻣﯿﺔ اﻟﻤﺼﺪر وﻏﯿﺮ ﻣﺨﺼﺼﮫ ﻟﻠﺒﯿﻊ‬
‫ﻣﻊ اﻟﻌﻠﻢ أن اﻟﻜﺘﺎب ﻣﺤﺘﻮي اﻟﻜﺘﺮوﻧﻰ ﻋﻠﻰ اﻷﻧﺘﺮﻧﺖ ﻟﯿﻌﻢ اﻟﺨﯿﺮ واﻟﻔﺎﺋﺪة ﻋﻠﻲ اﻟﺠﻤﯿﻊ‪.‬‬

‫‪ ‬‬

‫اﻟﺒﯿﺴﻚ ‪ BASIC‬وھﻲ أﺧﺘﺼﺎر ‪ Beginners All-Purpose Symbolic Instruction Code‬ﻓﻲ ﻋﺎم ‪ ١٩٦٥‬ﻗﺪﻣﮭﺎ‬
‫‪ Gohn Kemeny and Thomas Kurtz‬ﻓﻲ اﻟﻮﻻﯾﺎت اﻟﻤﺘﺤﺪة اﻻﻣﺮﯾﻜﯿﺔ ﻋﻠﻲ اﺳﺎس اﻧﮭﺎ ﻟﻐﻮ ﺑﺴﯿﻄﺔ ﯾﺴﮭﻞ ﺗﻌﻠﻤﮭﺎ ‪،‬‬
‫ﻛﻤﺎ ﺗﺴﻤﺢ ﺑﺎﻟﺘﺨﺎﻃﺐ ﻣﻊ اﻟﺤﺎﺳﺐ اﺛﻨﺎء ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ و اﻟﻤﺸﺎرﻛﺔ ﻓﻲ أﺳﺘﻐﻼل وﻗﺘﮫ ‪ ، Time Sharing‬ﻛﻤﺎ ﯾﺴﮭﻞ ﻓﻲ‬
‫ھﺬه اﻟﻠﻐﺔ ﻋﻤﻞ اى ﺗﻌﺪﯾﻼت او أﺿﺎﻓﺎت ﻋﻠﻰ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫وﺳﺮﻋﺎن ﻣﺎ أﻧﺘﺸﺮت ھﺬه اﻟﻠﻐﺔ وﻟﻢ ﺗﺼﺒﺢ ﻣﻦ اﻟﻠﻐﺎت اﻷﺳﺎﺳﯿﺔ ﻟﻠﺤﺎﺳﺐ اﻻﻟﻜﺘﺮوﻧﻲ ﻓﺤﺴﺐ ﺑﻞ أﺻﺒﺤﺖ اﻟﻠﻐﺔ اﻻﺳﺎﺳﯿﺔ‬
‫ﻓﻲ اﻟﺤﺎﺳﺒﺎت اﻻﺑﻜﺘﺮوﻧﯿﺔ اﻟﺼﻐﯿﺮة وﺟﺰاءاً رﺋﯿﺴﯿﺎً ﻣﻦ ﺗﻜﻮﯾﻨﮭﺎ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﻓﻲ أﺣﺪى ﺻﻮرھﺎ اﻟﺘﻰ ﺗﻌﺮف ﺑﺎﺳﻢ‬
‫‪١‬‬
‫‪ ، MSBASIC‬اﻟﺘﻲ ﻗﺎﻣﺖ ﺑﻮﺿﻌﮭﺎ ﺷﺮﻛﺔ ‪.Microsoft‬‬
‫ﺣﯿﻨﻤﺎ أﺻﺪرت )ﻣﯿﻜﺮوﺳﻮﻓﺖ( أول ﻧﺴﺨﺔ ﻣﻦ ﻟﻐﺔ ‪ Visual Basic‬ﻋﺎمَ ‪ ،١٩٩١‬ﻟﻢ ﯾﻜﻦ ﻓﻲ ﺣﺴﺒﺎﻧِﮭﺎ أﻧّﮭﺎ ﺳﺘﻜﺘﺴﺐُ ﻛﻞّ‬
‫ھﺬه اﻟﺸﮭﺮةِ وﺳﺘﺤﻘّﻖ ﻛﻞّ ھﺬه اﻟﺸﻌﺒﯿّﺔ!‬
‫إنّ ﻟﻐﺔ ‪ BASIC‬اﻟﻘﺪﯾﻤﺔ ﺗُﻌَﺪّ ﻣﻦ أﺳﮭﻞ ﻟﻐﺎتِ اﻟﺒﺮﻣﺠﺔ ‪ ،‬وﻟﻜّﻨﮭﺎ ﻟﻢ ﺗﺴﺘﻄﻊ اﻟﺼﻤﻮد ﻓﻲ اﻟﻤﻨﺎﻓﺴﺔ ﻣﻊ ﻟﻐﺎتِ اﻟﺒﺮﻣﺠﺔ‬
‫اﻷﺧﺮي ﺑﺴﺒﺐ ﻗﺪراﺗِﮭﺎ اﻟﻤﺤﺪودة‪.‬‬
‫ﻛﺎنَ ذﻟﻚ ﻛﺬﻟﻚ‪ ،‬ﺣﺘّﻲ أﺻﺪرت )ﻣﯿﻜﺮوﺳﻮﻓﺖ( إﺻﺪارات ‪ VB‬اﻟﻤﺘﺘﺎﺑﻌﺔ ‪ ،‬ﻟﺘﻨﺘﻘﻞ ﻟﻐﺔ ‪ BASIC‬ﻣﻦ ﻗِﻔﺎر اﻟﺪوس اﻟﻤﺠﺪﺑﺔ‬
‫إﻟﻲ ﻣﺮاﻋﻲ اﻟﻮﯾﻨﺪوز اﻟﺨﺼﺒﺔ ‪ ،‬ﻣﺎﻧﺤﺔً ﻟﻠﻤﺒﺮﻣﺞ اﻟﻘﺪرة ﻋﻠﻲ إﻧﺸﺎءِ ﺑﺮاﻣﺞ ذات واﺟﮭﺔ ﻣﺮﺋﯿّﺔ‪ ،‬ﺑﺄﺳﮭﻞِ ﻃﺮﯾﻘﺔٍ وﻓﻲ أﺳﺮعِ‬
‫وﻗﺖ‪.‬‬
‫وﻣﻨﺬﺋﺬٍ وﻟﻐﺔ ‪ VB‬ﺗﺘﺼﺪّر ﻗﺎﺋﻤﺔ ﻣﺒﯿﻌﺎت ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ‪ ،‬ﻟﺘﺪﺧﻞَ ﻓﻲ ﺑﻨﺎءِ اﻟﺘﻄﺒﯿﻘﺎتِ اﻟﺘﺠﺎرﯾّﺔ وﺗﻄﺒﯿﻘﺎتِ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎتِ‬
‫اﻟﺒﺴﯿﻄﺔ‪ ،‬وﺑﺮاﻣﺞ اﻟﻮﺳﺎﺋﻂ اﻟﻤﺘﻌﺪدة ‪ Multimedia‬واﻟﻜﺜﯿﺮ ﻣﻦ اﻷﻟﻌﺎب‪.‬‬
‫وﻟﻜﻦ ﻟﻸﺳﻒ ‪..‬داﺋﻤﺎ وأﺑﺪا ﻛﺎﻧﺖ ‪ VB‬أدﻧﻲ ﻣﻦ ﺑﺎﻗﻲ ﻟﻐﺎتِ اﻟﺒﺮﻣﺠﺔ‪ ،‬ﻓﺘﻄﺒﯿﻘﺎﺗُﮭﺎ أﺑﻄﺄ ﻧﺴﺒﯿّﺎ وأﻛﺒﺮ ﺣﺠﻤﺎ‪ ،‬وﺗﻌﺎﻧﻲ ﻣﻦ‬
‫ﺑﻌﺾ أوﺟﮫِ اﻟﻘﺼﻮرِ ﻓﻲ اﻷداء‪.‬‬
‫وﻟﻘﺪ اﺳﺘﻤﺮّت )ﻣﯿﻜﺮوﺳﻮﻓﺖ( ﻓﻲ ﺗﻄﻮﯾﺮ ‪ VB‬ﻋﺒﺮَ ﺳﺖّ إﺻﺪاراتٍ ﻣﺨﺘﻠﻔﺔ ‪ ،‬وﻓﻲ ﻛﻞّ إﺻﺪارٍ ﺟﺪﯾﺪٍ ﻛﺎﻧﺖ ﺗﻌﺎﻟﺞُ ﺑﻌﺾَ‬
‫اﻟﻤﺸﺎﻛﻞِ اﻟﻘﺪﯾﻤﺔِ وﺗﻀﯿﻒُ اﻟﻤﺰﯾﺪَ ﻣﻦ اﻟﻘﺪرات‪ ،‬ﻟﺘﻀﯿﻖَ اﻟﻔﺠﻮةُ ﺷﯿﺌًﺎ ﻓﺸﯿﺌﺎ ﺑﯿﻦ ‪ VB‬وﺑﺎﻗﻲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ‪.‬‬
‫ﺛﻢّ أﺧﯿﺮا أﻗﺪﻣﺖ )ﻣﯿﻜﺮوﺳﻮﻓﺖ( ﻋﻠﻲ اﻟﺨﻄﻮة اﻟﺘﻲ ﻃﺎل اﻧﺘﻈﺎرھﺎ‪ ..‬أﺻﺪرت ﻧﺴﺨﺔ ﺟﺪﯾﺪةً ﺑﻜﻞّ اﻟﻤﻘﺎﯾﯿﺲ ﻣﻦ‪ ، VB‬ﺑﻨﺘﮭﺎ‬
‫ﻣﻦ ﺟﺬورھﺎ ‪ From scratch‬ﻟﺘﺠﻌﻠﮭﺎ ﻧﺪّا ﺣﻘﯿﻘﯿّﺎ ﻟـ ‪ ، VC++‬ﺑﺤﯿﺚُ ﯾﻤﻜﻨﻚ أن ﺗﻘﻮلَ ﺑﺜﻘﺔ ‪ :‬إنّ اﻟﻌﺼﺮَ اﻟﺬھﺒﻲﱠ ﻟـ ‪VC++‬‬
‫آﺧﺬٌ ﻓﻲ اﻷﻓﻮل ﺑﻸ رﺟﻌﺔ‪ ،‬ﺣﯿﺚُ ﺳﯿﻨﺤﺼﺮُ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ ﺗﺼﻤﯿﻢ اﻟﻤﺤﺮّﻛﺎت ‪ Engines‬اﻟﺘﻲ ﺗﺪﺧﻞ ﻓﻲ ﺑﻨﺎء ﺗﻄﺒﯿﻘﺎت‬
‫أﺧﺮي‪ ،‬أو ﻓﻲ ﻛﺘﺎﺑﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﯾﺘﯿﺢ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ اﻟﺘﺤﻜﻢّ ﻓﻲ آﻷت أﺧﺮي ‪ ،‬وﻟﻜﻦّ اﺳﺘﺨﺪاﻣﮭﺎ ﺳﯿﺘﺮاﺟﻊ ﺑﻸ ﺷﻚّ‬
‫ﻓﻲ ﺗﻄﺒﯿﻘﺎت اﻹﻧﺘﺮﻧﺖ واﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﺠﺎرﯾّﺔ وﺗﻄﺒﯿﻘﺎت ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت واﻟﻮﺳﺎﺋﻂ اﻟﻤﺘﻌﺪّدة وﻣﻌﻈﻢ اﻷﻟﻌﺎب وﻣﺎ ﺷﺎﺑﮫ ‪،‬‬
‫‪2‬‬
‫ﻧﻈﺮًا ﻟﺼﻌﻮﺑﺘِﮭﺎ وﺗﻌﻘﯿﺪِھﺎ وﻃﻮل اﻟﻮﻗﺖ اﻟﻼزم ﻟﻠﺒﺮﻣﺠﺔ ﺑﮭﺎ !‬
‫وأﻋﺘﻘﺪُ أنّ ھﺬا ھﻮ اﻟﺴﺒﺐ اﻟﺬي دﻓﻊ )ﻣﯿﻜﺮوﺳﻮﻓﺖ( ﻷﺻﺪار اﻟﻠﻐﺔ اﻟﺠﺪﯾﺪة ‪ ، C#‬اﻟﺘﻲ ﺗُﻌﺘﺒﺮ ﺗﻮاﻣﺎ ﻟـ ‪ VB‬إﻷ إﻧّﮭﺎ ﺗﺴﺘﺨﺪم‬
‫ﻗﻮاﻋﺪ ‪ C++‬ﻓﻲ ﻛﺘﺎﺑﺔ اﻷواﻣﺮ‪ ،‬ﻣﻤّﺎ ﯾﺸﻜّﻞُ ﻟﻤﺒﺮﻣﺠﻲ ‪ VC++‬إﻏﺮاءً ﺗﺼﻌﺐُ ﻣﻘﺎوﻣﺘﮫ ﻟﻸﻧﺘﻘﺎلِ إﻟﯿﮭﺎ‪.‬‬
‫وﻟﻜﻦ ﻣﮭﻤﺎ ﻛﺎﻧﺖ ﺳﮭﻮﻟﺔ ‪ ، C#‬ﻓﺈنّ ‪ VB‬ﯾﺼﺮﻋُﮭﺎ ﻓﻲ ھﺬا اﻟﻤﻀﻤﺎر‪ ،‬ﻓﮭﻮ أﻗﺮبُ ﻣﺎ ﯾﻜﻮنُ ﻟﻠّﻐﺔِ اﻷﻧﺠﻠﯿﺰﯾّﺔ اﻟﻌﺎدﯾّﺔ ‪ ،‬وﻻ‬
‫ﯾﺤﺘﻮي ﻋﻠﻲ اﻟﺮﻣﻮزِ اﻟﻜﺜﯿﺮةِ اﻟﻤﻤﻠّﺔ اﻟﺘﻲ ﺗﻤﻸ ‪ ، C++‬ﻣﺜﻞ ; ‪ || .... ، == ،++ ،‬إﻟﻲ آﺧﺮ ھﺬه اﻟﺮﻣﻮزِ اﻟﺘﻲ ﺗﺠﻌﻞُ‬
‫اﺣﺘﻤﺎﻻت اﻟﺨﻄﺈ ﻋﻨﺪ ﻛﺘﺎﺑﺔِ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ أﻋﻠﻲ ‪ ،‬وﺗﺠﻌﻞُ اﻟﺒﺮﻧﺎﻣﺞَ أﺻﻌﺐَ ﻓﮭﻤًﺎ وأﻗﻞﱠ أﻟﻔﺔً ﻋﻨﺪَ ﻗﺮاءﺗﮫ‪.‬‬

‫‪ - 1‬د‪/‬ﺟﻤﺎل ﻋﺒﺪ اﻟﻌﻈﯿﻢ ‪ :‬اﻟﺒﺮﻣﺠﺔ اﻟﮭﯿﻜﻠﯿﺔ اﻟﻤﺘﻘﺪﻣﺔ ‪ ،‬ص‪. ١٦‬‬


‫‪2‬‬
‫‪ -‬أﻧﺪروﻓﻮس ‪ ،‬ﺗﺮﺟﻤﺔ م‪ /‬ﻣﺤﻤﺪ ﻋﻠﻲ ﯾﻮﺳﻒ ‪ :‬ﻣﻘﺪﻣﺔ ﻓﻲ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪ ، PDF File ، ٢٠٠٦‬ص‪٤‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪  ‬‬

‫ﺑﯿﺴﻚ اﻟﻤﺮﺋﻲ )ﺑﺎﻹﻧﺠﻠﯿﺰﯾﺔ‪) (Visual BASIC :‬أو ﻓﯿﺠﻮال ﺑﯿﺴﻚ( ھﻰ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ و ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﻦ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﺗﺴﺘﻨﺪ إﻟﻰ ﻟﻐﺔ‬
‫اﻟﺒﯿﺴﻚ اﻟﺸﮭﯿﺮة‪ .‬و ھﻰ ﺗﺼﻨﻒ ﺿﻤﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﺸﯿﺌﯿﺔ‪ .‬ﻣﻨﺬ أن ﺑﺪأت ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﻲ اﺻﺪار اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ و ھﻰ ﺗﻼﻗﻰ‬
‫ﻧﺠﺎﺣﺎ ﺑﺎھﺮا و ﺷﻌﺒﯿﺔ ﻻ ﺑﺄس ﺑﮭﺎ ﺑﯿﻦ اﻟﻤﺒ ﺮﻣﺠﯿﻦ ﻧﻈ ﺮا ﻟ ﺴﮭﻮﻟﺘﮭﺎ اﻟ ﺸﺪﯾﺪة ﻓ ﻲ ﻣﻘﺎﺑ ﻞ اﻟﺘﻌﻘﯿ ﺪ اﻟ ﺸﺪﯾﺪ اﻟ ﺬى ﯾﻮاﺟﮭ ﮫ أى ﻣﺒ ﺮﻣﺞ‬
‫ﯾﺴﻌﻰ ﻟﺒﺮﻣﺠﺔ وﯾﻨﺪوز ﺑﺎﺳﺘﺨﺪام اﻟﺴﻰ أو اﻟ ﺴﻰ‪ .++‬اﻻ أن اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ رﺑﻤ ﺎ ﺗﻜ ﻮن ھ ﻰ ﻣ ﻦ أﺳ ﺆ اﻟﻠﻐ ﺎت اﻟﺘ ﻰ ﺗﻜﺘ ﺐ ﻋﻠﯿﮭ ﺎ‬
‫ﺑﺮاﻣﺞ اﻟﻮﯾﻨﺪوز اﻵن ﻃﺒﻌﺎ ﺑﻌﺪ اﻟﺠﺎﻓﺎ‪.‬ﻋﻤﻮﻣﺎ ﺗﻨﺎﺳﺐ اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ ﺗﻄﺒﯿﻘ ﺎت ﻗﻮاﻋ ﺪ ﺑﯿﺎﻧ ﺎت و اﻟﺘﻄﺒﯿﻘ ﺎت اﻟﻤﺨﺼ ﺼﺔ ﻟﻠ ﺸﺮﻛﺎت‬
‫اﻟ ﺼﻐﯿﺮة و ﺑ ﺮاﻣﺞ اﻟﺤ ﺴﺎﺑﺎت و ھ ﻰ ﻣﺮﯾﺤ ﺔ و ﺳ ﮭﻠﺔ و ﺗ ﺆدى اﻟﻐ ﺮض ﺑﺎﻻﺿ ﺎﻓﺔ إﻟ ﻰ أﻧﮭ ﺎ ﺗ ﺴﻤﺢ ﻟﻠﻤﺒ ﺮﻣﺞ ﺑ ﺎﻟﺘﺮﻛﯿﺰ ﻋﻠ ﻰ ﺣ ﻞ‬
‫اﻟﻤﺸﻜﻠﺔ ﻓﻐﺎﻟﺒﺎ ﻣﺎ ﻻ ﯾﻮاﺟﮫ ﺻﻌﻮﺑﺎت ﻓﻨﯿﺔ أﺛﻨﺎء ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ‪ .‬و ﻟﻜﻦ ﺑﻘﻰ أن ﻧﺬﻛﺮ أن ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿ ﺴﻚ ﻻ‬
‫ﺗﺘﻢ ﺗﺮﺟﻤﺘﮭﺎ ﻛﺎﻣﻠﺔ إﻟﻰ ﻟﻐﺔ اﻷﻟﺔ ﻣﺜﻞ اﻟﺴﻰ‪ ++‬أو اﻟﺪﻟﻔﻰ و اﻧﻤﺎ ﺗﺘﺮﺟﻢ إﻟﻰ ﻛﻮد وﺳ ﻄﻰ ﯾﺘ ﺼﻞ ﻣ ﻊ ﻣﻜﺘﺒ ﺔ رﺑ ﻂ ﺗ ﺴﻤﻰ ب" ‪Run‬‬
‫‪ "Time library‬و اﺳﻤﮭﺎ ‪ MSVBMnn.dll‬ﻣﻊ ﻣﻼﺣﻈﺔ أن ﺣﺮﻓﻰ ال"ان" ﯾﺸﯿﺮان إﻟﻰ رﻗﻢ اﻻﺻﺪارة‪.‬‬

‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ھﻲ ﻟﻐﺔ ذات ﺗﺼﻤﯿﻢ ﻣﺮﺋﻲ واﺟﮭﺔ رﺳﻮﻣﯿﺔ ﺑﻌﻜﺲ ﺑﻌﺾ اﻟﻠﻐﺎت ﻣﺜﻞ اﻻﺳﻤﺒﻠﻲ ذات اﻟﺸﺎﺷﺔ اﻟ ﺴﻮداء‬
‫ﺣﯿﺚ ﺗﺤﺘﻮي ھﺬه اﻟﻠﻐﺔ ﻋﻠﻰ اﻟﻌﺪﯾﺪ ﻣﻦ اﻻواﻣﺮ ﺑﺪاﺧﻠﮭﺎ وﻟﻐﺔ ﺳ ﮭﻠﺔ اﻟﺘﻄﺒﯿ ﻖ ﺗ ﻢ ﺗﻄ ﻮﯾﺮ ھ ﺬه اﻟﻨ ﺴﺨﺔ ﻣ ﻦ اﻟﺒﺮﻧ ﺎﻣﺞ ﻋ ﻦ اﻟﻨ ﺴﺨﺔ‬
‫اﻟﻘﺪﯾﻤﺔ ‪ basic‬و اﻟﺘﻲ ﺗﻌﻤﻞ ﺗﺤﺖ ﺑﯿﺌﺔ ‪ dos‬إﻟﻰ ھﺬه اﻟﻨﺴﺨﺔ اﻟﺘﻲ ﺗﻌﻤﻞ ﺗﺤﺖ ﺑﯿﺌﺔ وﻧﺪوز ‪ .‬ﺗﻌﺘﻤﺪ اﻟﻠﻐﺔ ﻓﻲ ﺗﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎﺗﮭﺎ ﻋﻠﻰ‬
‫اﻟﻜﺎﺋﻨﺎت ﻓﮭﻲ ﺗﺸﺒﮫ اﻟﻌﺪﯾﺪ ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﺤﺪﯾﺜﺔ ﻣﻦ ﺣﯿﺚ اﻋﺘﻤﺎدھﺎ ﻋﻠﻰ اﻟﺪﯾﻨﺎﻣﯿﻜﯿ ﺔ و اﻻﺣ ﺪاث‪ .‬ﺗﻌﻨ ﻲ اﻟﺪﯾﻨﺎﻣﯿﻜﯿ ﺔ ﻓ ﻲ ھ ﺬه‬
‫اﻟﻠﻐﺔ اﻟﻘﺪرة ﻋﻠ ﻰ اﺳ ﺘﺪﻋﺎء اي اﻗﺘ ﺮان او اﺟ ﺮاء اﻋﺘﻤ ﺎدا ﻋﻠ ﻰ اﻟﺤ ﺪث‪ .‬اﻟﺤ ﺪث ھ ﻮ اي ﻋﻤﻠﯿ ﺔ ﯾﻘ ﻮم ﺑﮭ ﺎ ﻣ ﺴﺘﺨﺪم اﻟﺘﻄﺒﯿ ﻖ ﻋﻠ ﻰ‬
‫اﻟﺘﻄﺒﯿﻖ ﻣﺜﻞ اﻟﻀﻐﻂ ﺑﺰر اﻟﻔﺎرة او اﻟﻀﻐﻂ ﻋﻠﻰ أﺣﺪ ازرار ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ او ﺣﺘﻰ ﺗﺤﻤﯿﻞ ﻧﻤﻮذج‪ .‬ﻟﺘﻌﻠﻢ اﻟﻠﻐ ﺔ ﯾﻔﺘ ﺮض ﺑ ﻚ اﺗﻘ ﺎن‬
‫اﻟﺘﺎﻟﻲ‬

‫‪ ‬‬

‫ﻟﻐﺔ ﺳﮭﻠﺔ و ﺳﺮﯾﻌﺔ ﻻﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت وﯾﻨﺪوز‪.‬‬ ‫•‬


‫ﺗﺪﻋﻢ اﻟﺒﺮﻣﺠﺔ اﻟﺸﯿﺌﯿﺔ اﻻ أن ذﻟﻚ ﻟﯿﺲ ﺑﺸﻜﻞ ﻛﺎﻣﻞ‪.‬‬ ‫•‬
‫ﺗﺠﺮﺑﺔ ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺳﮭﻠﺔ و ﺳﺮﯾﻌﺔ ﻻﻋﺘﻤﺎدھﺎ ﻋﻠﻰ ﻣﻜﺘﺒﺔ اﻟﺮﺑﻂ ﺧﻼل و ﻗﺖ اﻟﺘﺸﻐﯿﻞ‪.‬‬ ‫•‬
‫ﺗﻌﺘﺒﺮ ﻟﻐﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻐﺔ ﻛﺎﺋﻨﯿﺔ اﻟﻤﻨﺤﻨﻰ‬ ‫•‬
‫ﺳﮭﻠﺔ اﻟﺘﻌﻠﻢ واﻟﻔﮭﻢ‬ ‫•‬
‫ﺳﮭﻮﻟﺔ اﻛﺘﺸﺎف اﻻﺧﻄﺎء ﻓﯿﮭﺎ‬ ‫•‬

‫‪ ‬‬

‫‪Visual Basic 1‬‬

‫اﻻﺻﺪار اﻻول ﻣﻦ ‪ Visual Basic‬ﻛﺎن ﻣﺤﺪود ﻟﻠﻐﺎﯾﺔ‪ .‬وﻟﻢ ﯾﻜﻦ ﻣﻮﺟﮫ ﻟﺘﻄﻮﯾﺮ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺤﻘﯿﻘﺔ ﻟﺒﯿﺌﺔ ‪ .Windows‬ﻣﻊ اﻧﮫ ﻛﺎن‬
‫ﺳﮭﻞ اﻻﺳﺘﺨﺪام ذو واﺟﮭﺔ رﺳﻮﻣﯿﺔ وﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺮﺋﯿﺔ إﻟﻰ اﻧﮫ ﻛﺎن ﯾﻌﺘﺒﺮ ﻛﻠﻌﺒﺔ ﻣﺴﻠﯿﺔ ﻟﻠﻤﺒﺮﻣﺠﯿﻦ‪.‬‬

‫‪Visual Basic 2‬‬

‫اﻻﺻﺪار اﻟﺜﺎﻧﻲ ﻣﻦ ‪ Visual Basic‬ﻟﻢ ﯾﻈﮭﺮ اي ﺟﺪﯾﺪ ﺑﺎﺳﺘﺜﻨﺎء اﺿﺎﻓﺔ اﻟﻘﻠﯿﻞ ﻣﻦ اﻟﺨﺼﺎﺋﺺ ودﻋﻢ أﻓﻀﻞ ﻟﺒﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ اﻟﻤﺘﻜﺎﻣﻠﺔ‬
‫‪ .IDE‬ﻟﻜ ﻦ ﻓ ﻲ ﺗﻠ ﻚ اﻟﻔﺘ ﺮة‪ ،‬ﻇﮭ ﺮ ﻣﻮﻟ ﻮد ﺟﺪﯾ ﺪ وھ ﻮ اﻟﻨﻈ ﺎم ‪ Access 1.0‬ﻟﻘﻮاﻋ ﺪ اﻟﺒﯿﺎﻧ ﺎت اﻟﻌﻼﺋﻘﯿ ﺔ وﻛ ﺎن ﻛ ﻞ ﺗﺮﻛﯿ ﺰ ﺷ ﺮﻛﺔ‬
‫‪ Microsoft‬ھﻮ اﻟﺪﻣﺞ ﺑﯿﻨﮭﻤﺎ‪.‬‬

‫‪Visual Basic 3‬‬

‫ﯾﻌﺘﺒﺮ اﻻﺻﺪار اﻟﺜﺎﻟﺚ ھﻮ ﺑﺪاﯾﺔ ﻃﺮﯾﻖ اﻟﻨﺠﻮﻣﯿﺔ او اﻟﺸﮭﺮة ﻟـ ‪ !Visual Basic‬ﺣﯿﺚ ﻗﺪم دﻋﻢ ﻟﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت واﺻ ﺒﺢ ذو ﻧﮭﺎﯾ ﺔ‬
‫ﻣﻔﺘﻮﺣﺔ ﺑﻔﻀﻞ اﻻﺿﺎﻓﺎت اﻟﺘﻲ ﻛﻨﺖ ﺗﺴﻄﯿﻊ دﻣﺠﮭﺎ ﻣﺜﻞ ‪ VBX‬واﻟﺘﻲ ﺗﻄﻮرت ﻓﯿﻤﺎ ﺑﻌ ﺪ إﻟ ﻰ ‪ .OCX‬ﻇﮭ ﺮت اﻟﻜﺜﯿ ﺮ ﻣ ﻦ اﻟﺘﺤ ﺴﯿﻨﺎت‬

‫‪1‬‬
‫‪ -‬ﻣﻮﺳﻮﻋﺔ وﯾﻜﺒﯿﺪﯾﺎ ‪ : wikipedia‬ﻣﺼﻄﻠﺢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻧﺼﯿﺎً ﻛﻤﺎ ﺟﺎء ﻓﯿﮭﺎ‬
‫‪http://ar.wikipedia.org/wiki/%D9%81%D9%8A%D8%AC%D9%88%D8%A7%D9%84_%D8%A8%D9%8A%D8%B‬‬
‫‪3%D9%83 , Viewed 27/1/2009‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻓﻲ ﺑﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ اﻟﻤﺘﻜﺎﻣﻠﺔ ‪ IDE‬وھﺎﺟﺮ ﻣﺌﺎت ان ﻟﻢ ﯾﻜﻦ اﻻف اﻟﻤﺒﺮﻣﺠﯿﻦ إﻟﻰ ‪ .Visual Basic‬وﺑﺪأت ﺗﻠﻚ اﻟﻠﻐﺔ ﻛﻤﻨﺎﻓﺲ ﺿﻌﯿﻒ‬
‫ﻟﺘﻄﻮﯾﺮ اﻟﺒﺮاﻣﺞ اﻟﺤﻘﯿﻘﯿﺔ او اﻟﺘﺠﺎرﯾﺔ ﻻﻧﮫ ﻛﺎن ﻣﺎ زال ﯾﻨﻘﺼﮭﺎ اﻟﻤﺰﯾﺪ‪.‬‬

‫‪Visual Basic 4‬‬

‫ﻛﺎن اﻟﮭﺪف اﻻﺳﺎﺳﻲ ﻣﻦ اﻻﺻﺪار اﻟﺮاﺑﻊ ھﻮ ﻣﺮﺣﻠﺔ اﻧﺘﻘﺎﻟﯿﺔ إﻟﻰ ‪ Windows 95‬او ان ﺻﺢ اﻟﺘﻌﺒﯿﺮ‪ ،‬اﻟﻘﺎﺑﻠﯿﺔ ﻟﺘﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت ﻣﻦ‬
‫ﻧﻮع ‪ .bit ٣٢‬وﻛﺎن أول اﺻﺪار ﻣﻦ اﺻﺪارات ‪ Basic Visual‬ﺗﻮﻟﺪ ﺷﯿﻔﺮة ﻟﻠﻌﻤﻞ ﺗﺤﺖ ﻣﻌﺎﻟﺠﺎت ﻣﻦ ﻧﻮع ‪ .Bit٣٢‬ﻟﯿﺲ ھﺬا ﻓﻘﻂ!‬
‫ﺑﻞ اﺿﺎف اﻻﺻﺪار اﻟﺮاﺑﻊ اﻣﻜﺎﻧﯿﺔ ﻻﻧﺸﺎء ﻣﻜﺘﺒﺎت ﻣﻦ ﻧ ﻮع ‪ ActiveX DLL‬واﻟﺘ ﻲ زادت ﻓ ﻲ اﺳ ﮭﻢ ﺷ ﮭﺮة ‪ Basic Visual‬ﺣﺘ ﻰ‬
‫اﺻﺒﺢ ﻣﻌﺘﺮف ﻛﻠﻐﺔ ﺑﺮﻣﺠﺔ ﻻﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ﺣﻘﯿﻘﯿﺔ ﺣﯿﺚ اﺿﺎف اﻟﻤﯿﺰة اﻟﺘﻲ اﻧﺘﻈﺮھﺎ اﻟﻤﺒﺮﻣﺠ ﻮن وھ ﻲ اﻟﺒﺮﻣﺠ ﺔ ﻛﺎﺋﻨﯿ ﺔ اﻟﺘﻮﺟ ﮫ‬
‫‪ OOP‬ﻟﻜﻨﮭ ﺎ ﻛﺎﻧ ﺖ ﻣﺤ ﺪودة ﺑ ﺴﺒﺐ اﺳ ﺘﻄﺎﻋﺘﻚ ﺑﺎﻧ ﺸﺎء اﻟﻔﺌ ﺎت ‪ Class‬ﻓﻘ ﻂ دون اي اﻣﻜﺎﻧﯿ ﺔ اﺿ ﺎﻓﯿﺔ ﻛﺘﻌ ﺪد اﻟﻮاﺟﮭ ﺎت‬
‫‪ Polymorphism‬او اﻟﻮراﺛﺔ ‪.Inheritance‬‬

‫‪Visual Basic 5‬‬

‫اﻻﺻﺪار اﻟﺨﺎﻣﺲ ﻛﺎن ﺑﻤﺜﺎﺑﺔ اﻻﻋﻼن اﻟﺮﺳﻤﻲ ﻓﻲ ان ﻟﻐﺔ ‪ Visual Basic‬ھﻲ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻟﺘﻄﻮﯾﺮ اﻟﺘﻄﺒﯿﻘﺎت اﻟﺤﻘﯿﻘﯿﺔ واﻟﺘﺠﺎرﯾﺔ‪.‬‬
‫ﺣﯿﺚ اﺿ ﺎف اﻟﻌﺪﯾ ﺪ ﻣ ﻦ اﻧ ﻮاع اﻟﻤ ﺸﺎرﯾﻊ ﻛ ـ ‪ ActiveX Controls‬و ‪ ActiveX Documents‬وﻏﯿﺮھ ﺎ‪ ..‬واﺿ ﺎﻓﺔ ﻣﺰاﯾ ﺎ ﻋﺪﯾ ﺪة‬
‫ﻟﻠ ﺘﺤﻜﻢ ﺑ ﺸﯿﻔﺮة ﻣﻠ ﻒ اﻟ ـ ‪ EXE‬اﻟ ﺬي ﯾﺨﯿ ﺮك ﻣ ﻦ ﺗﺤﻮﯾ ﻞ اﻟ ﺸﯿﻔﺮة اﻟﻤ ﺼﺪرﯾﺔ إﻟ ﻰ ‪ P-Code‬او ‪ .Native-Code‬ﺑﺎﻻﺿ ﺎﻓﺔ إﻟ ﻰ‬
‫اﻟﺘﺤﺴﻦ اﻟﺤﻘﯿﻘﻲ ﻟﺒﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ اﻟﻤﺘﻜﺎﻣﻠﺔ ‪ IDE‬واﻟﺪﻋﻢ اﻻﺿﺎﻓﻲ ﻟﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫‪Visual Basic 6‬‬

‫اﻻﺻﺪار اﻟﺴﺎدس ﻻ ﯾﺨﺘﻠ ﻒ ﻋ ﻦ اﻻﺻ ﺪار اﻟﺨ ﺎﻣﺲ ﻛﺜﯿ ﺮا ﻟﻜ ﻦ ھﻨ ﺎك اﻟﻌﺪﯾ ﺪ ﻣ ﻦ اﻟﺘﺤ ﺴﯿﻨﺎت وﻋ ﻼج ﻟﻠ ﺸﻮاﺋﺐ ‪ Bugs‬اﻟﺘ ﻲ ﻛﺎﻧ ﺖ‬
‫ﻣﻮﺟﻮدة ﻓﻲ اﻻﺻﺪار اﻟﺨﺎﻣﺲ‪ .‬ﻣﻦ أھﻢ اﻻﺿﺎﻓﺎت ﻓﻲ اﻻﺻﺪار اﻟﺴﺎدس ھﻲ اﻟﺰﯾﺪ ﻓﻲ ادوات ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت واﻟﻤﺒﻨﯿﺔ ﻋﻠﻰ ‪.ADO‬‬
‫ﻛ ﺬﻟﻚ ﺗﺤ ﺴﻦ واﺿ ﺢ ﻓ ﻲ ادوات اﻟ ﺘﺤﻜﻢ‪ .‬وھﻨ ﺎك اﻟﻌﺪﯾ ﺪ ﻣ ﻦ اﻟﺘﻄ ﻮﯾﺮ ﻓ ﻲ ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﺔ ﻛ ﺪﻋﻢ اﻧ ﻮاع اﻟﺒﯿﺎﻧ ﺎت اﻟﻤﻌﺮﻓ ﺔ ﻣ ﻦ ﻗﺒ ﻞ‬
‫اﻟﻤﺴﺘﺨﺪم ‪ UDT‬واﻟﺰﯾﺪ ﻣ ﻦ اﻟ ﺪوال ‪ .Functions‬واﺿ ﺎﻓﺔ اﻟﻤﺰﯾ ﺪ ﻣ ﻦ اﻟ ﻮﯾﺰارد ‪ Wizards‬ودﻋ ﻢ ﻟﺘﻄﺒﯿﻘ ﺎت اﻧﺘﺮﻧ ﺖ ‪.Internet‬‬
‫واﻟﻜﺜﯿﺮ واﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﺤﺴﯿﻨﺎت‪ .‬واﺧﯿﺮا‬

‫‪Visual Basic.NET‬‬

‫ﺗﻢ اﻧﺘﺎج ھﺬا اﻻﺻﺪار ﻣﻊ ﺗﻐﯿﯿﺮ ﺟﺬري ﻋﻤﺎ ﺳﺒﻘﺔ ﻣﻦ اﻻﺻﺪارات وﻟﻘﺪ ﺻﺪر ﻓﻲ ﺿﻞ ھﺬة اﻟﺘﻘﻨﯿﺔ ﺛﻼﺛﺔ اﺻﺪارات إﻟﻰ اﻻن‬

‫‪ vb2005،Vb 2003‬واﻷن ‪vb 2008‬‬

‫‪ Visual Basic‬‬

‫‪ Visual Basic‬اداة ﻗﻮﯾﺔ وﻓﻌﺎﻟﺔ ﻟﺘﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت ﻣﺘﻮاﻓﻘﺔ ﻣﻊ ﺑﯿﺌﺔ ‪ .Windows‬ﯾﻮﻓﺮ ﻟﻚ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ ﻣﺘﻜﺎﻣﻠﺔ ﺳﮭﻠﺔ اﻻﺳ ﺘﺨﺪام‬
‫ﻻﻧ ﺸﺎء اﻟﺤﻠ ﻮل ﺳ ﻮاء ﻛﺎﻧ ﺖ ﺷﺨ ﺼﯿﺔ او ﺗﺠﺎرﯾ ﺔ ﻓ ﻲ وﻗ ﺖ ﻗﯿﺎﺳ ﻲ ﻋ ﻦ ﻃﺮﯾ ﻖ ﻓﻠ ﺴﻔﺔ اﻟﺒﺮﻣﺠ ﺔ اﻟﻤﺮﺋﯿ ﺔ‪ .‬ﺣﯿ ﺚ ﺗ ﺼﻤﻢ اﻟ ﺸﺎﺷﺎت‬
‫وﻧﻮاﻓﺬ ﺑﺮﻧﺎﻣﺠﻚ ﻋﻦ ﻃﺮﯾﻖ ﻧﻘﺮات وﺗﺤﺮﯾﻜﺎت ﺧﻔﯿﻔﺔ ﺑﺎﻟﻔﺄرة ﻛﺄﻧﻚ ﺗﺮﺳﻢ ﻣﺮﺑﻌﺎت ودواﺋﺮ ﺑﺎﺳﺘﺨﺪام ﺑﺮاﻣﺞ رﺳﻢ وﻏﯿﺮھﺎ‪.‬‬

‫‪ Visual Basic‬‬

‫ﻟﻌﻠﻚ ﺳﻤﻌﺖ ﻛﺜﯿﺮا ﻋﻦ ﻟﻐﺔ اﻟـ ‪ ،BASIC‬وﻗﺪ ﺗﺠﻨﺐ ﺗﻌﻠﻤﮭﺎ ﺑﺴﺒﺐ ﺣﺪودھﺎ اﻟﺘﻲ ﺗﻘﺼﺮ اﻣﻜﺎﻧﯿﺎﺗﮭ ﺎ ﻛ ﺴﺎﺋﺮ ﻟﻐ ﺎت اﻟﺒﺮﻣﺠ ﺔ‪ .‬ﻟﻜ ﻦ ﻣ ﻊ‬
‫اﻻﺻﺪارات اﻟﺤﺪﯾﺜﺔ ﻣﻦ ‪ Visual Basic‬ﻓﺎن اﻻﻣﺮ اﺧﺘﻠﻒ! ﻓﺎﻻن اﺻﺒﺤﺖ اﻣﻜﺎﻧﯿﺎت اﻟﻠﻐﺔ ﺑﻼ ﺣﺪود‪ .‬وﻗﺎﺑﻠﯿﺔ اﻟﺘﻄﻮﯾﺮ ﻻ ﻧﮭﺎﺋﯿﺔ اي‬
‫اﻧﮫ اﺻﺒﺢ ذو ﻧﮭﺎﯾﺔ ﻣﻔﺘﻮﺣ ﺔ‪ .‬ﻓﻌ ﻦ ﻃﺮﯾ ﻖ اﻻﺿ ﺎﻓﺎت ‪ Add-Ins‬وادوات اﻟ ﺘﺤﻜﻢ اﻟﺨﺎرﺟﯿ ﺔ ‪ ActiveX Control‬وﻣﻜﻮﻧ ﺎت ‪COM‬‬
‫ﺑﺼﻔﺔ ﻋﺎﻣﺔ ‪ ،‬ﺗﺴﺘﻄﯿﻊ اﻧﺠﺎز ﻛﻞ ﻣﺎ اﺳﺘﻄﻌﺖ اﻧﺠﺎزه ﺑﺎﻟﻠﻐﺎت اﻟﻤﺨﺘﻠﻔﺔ‪ .‬ﻓﻼﺿ ﺎﻓﺔ ﻣﻜ ﻮن ‪ COM‬ﺟﺪﯾ ﺪ ﻻ ﯾﺘﻄﻠ ﺐ اﻻﻣ ﺮ ﻣﻨ ﻚ ﺳ ﻮى‬
‫ﺗﺤﺪﯾﺪ اﺳﻢ وﻣﻠﻒ اﻟﻤﻜﻮن وﻣﻦ ﺛﻢ اﺳﺘﺨﺪاﻣﮫ ﻣﺒﺎﺷﺮة!ﺣﻘﯿﻘﻰ أﺻﺒﺤﺖ أﻛﺜﺮ ﺗﻄﻮر‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ Windows‬‬

‫اﻟﺘﻄﺒﯿﻘ ﺎت اﻟﺘ ﻲ ﺗﻨ ﺸﺌﮭﺎ ﺑﻮاﺳ ﻄﺔ ‪ Visual Basic‬ﻣﺘﻮاﻓﻘ ﺔ ‪ %١٠٠‬ﻣ ﻊ اﺻ ﺪارات ‪ Windows‬اﻟﻤﺨﺘﻠﻔ ﺔ‪ .‬ﻓ ﺎﻟﻨﻮاة اﻟﺪاﺧﻠﯿ ﺔ‬
‫ﻟﻠﺘﻄﺒﯿﻘﺎت اﻟﻤﻨﺸﺌﺔ ﺑﻮاﺳﻄﺔ ‪ Visual Basic‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﺳﯿﻞ ﻣﻦ اﺟﺮاءات ‪ API‬اﻟﺘﻲ ﻋﺒﺎرة ﻋﻦ روح ﻧﻈﺎم ‪ .Windows‬اﻣﺎ‬
‫ﻋﻦ اﻟﺪوال اﻻﺿﺎﻓﯿﺔ اﻟﺘﻲ ﺗﻮﻓﺮھﺎ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﮭﻲ ﻣﻮﺟﻮدة ﻓﻲ ﻣﻜﺘﺒﺔ ﻣﺴﺘﻘﻠﺔ ‪ MSVBVM60.DLL‬وھﻲ اﻟﻤﺴﺆوﻟﺔ ﻋﻦ ﺗﺸﻐﯿﻞ‬
‫ﺑﺮاﻣﺠﻚ اﻟﺘﻲ ﻃﻮرﺗﮭﺎ ﻋﻦ ﻃﺮﯾﻖ ‪.Visual Basic‬‬

‫‪ ‬‬

‫‪ Visual Basic‬ﯾ ﻮﻓﺮ ﻟ ﻚ اﻟﻌﺪﯾ ﺪ ﻣ ﻦ اﻟﺤﻠ ﻮل واﻟﺨﺎﺻ ﺔ ﺑﺎﻻﻧﺘﺮﻧ ﺖ‪ .‬ﻓﯿﻤﻜﻨ ﻚ ﻣ ﻦ اﻧ ﺸﺎء ادوات ﺗﺤﻜ ﻢ ‪ ActiveX Controls‬ﯾ ﺘﻢ‬
‫ﺗﻨﻔﯿ ﺬھﺎ ﻓ ﻲ ﺻ ﻔﺤﺔ وﯾ ﺐ‪ .‬او ﺗ ﺼﻤﯿﻢ ﺗﻄﺒﯿﻘ ﺎت ﻣﺘﻘﺪﻣ ﺔ ﻛ ـ ‪ ActiveX Documents‬ﻟﻠﻌﻤ ﻞ ﻋﻠ ﻰ ﻣﺘ ﺼﻔﺢ ‪.Internet Explorer‬‬
‫اﻟﻤﺰﯾﺪ اﯾﻀﺎ‪ Visual Basic ،‬ﯾﻮﻓﺮ ﻟﻚ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ ﺧﺎﺻﺔ ﻟﺘﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت اﻧﺘﺮﻧﺖ ﺳﻮاء ﻛﺎﻧﺖ ﻟﻠﻌﻤﯿﻞ ‪ Client‬ﻛﺘﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت‬
‫ﻣﻦ ﻧﻮع ‪ DHTML Applications‬او ﻟﻠﺨﺎدم ‪ Server‬ﻛﺘﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت ‪.Applications ASP‬‬

‫‪ Visual Basic‬‬

‫ﺣﻘﻖ ‪ Visual Basic‬ﺷﻌﺒﯿﺔ ﻻ ﻣﺜﯿﻞ ﻟﮭﺎ ﺑﯿﻦ ﻣﻄﻮروا اﻟﺘﻄﺒﯿﻘﺎت ﺗﺤﺖ ﺑﯿﺌﺔ ‪ .Windows‬واﻟﻔﺮص اﻟﻮﻇﯿﻔﯿ ﺔ ﻟﻤﺒﺮﻣﺠ ﻲ ‪Visual‬‬
‫‪ Basic‬ھﻲ اﻻﻋﻠﻰ‪ .‬ﻛﺬﻟﻚ‪ ،‬اﻟﻤﻮاﻗﻊ اﻟﺘﻲ ﺗﻨﺎﻗﺶ ھﺬه اﻟﻠﻐﺔ ﻓﻲ زﯾﺎدة اﺳﯿﺔ! واﻋ ﺪاد اﻟﻤﺒﺮﻣﺠ ﻮن اﻟﻤﮭ ﺎﺟﺮون إﻟ ﻰ ‪Visual Basic‬‬
‫ﯾﻮﻣﻲ اﻟﺰﯾﺎدة‪ .‬اﻟﻤﺰﯾﺪ اﯾﻀﺎ ‪ ،‬ادوات اﻟﺘﻄﻮﯾﺮ اﻟﺨﺎﺻﺔ ﺑـ ‪ Visual Basic‬ﻛﻤﻜﻮﻧﺎت ‪ COM‬ﻓﻲ ﻛ ﻞ ﻣﻜ ﺎن وﯾﻜﻔﯿ ﻚ وﺟ ﻮد أﻛﺜ ﺮ ﻣ ﻦ‬
‫ﺛﻼث ﻣﺠ ﻼت ﻋﺎﻟﻤﯿ ﺔ ﺗﻨ ﺎﻗﺶ ھ ﺬه اﻟﻠﻐ ﺔ!! وھ ﺬا ‪ Visual Basic.NET‬ﻗ ﺮب ان ﺗﺒ ﺼﺮ اﺻ ﺪارﺗﮫ اﻟﻨﮭﺎﺋﯿ ﺔ اﻟﻨ ﻮر‪ ،‬واﻟﺘ ﻲ ﺑ ﺪورھﺎ‬
‫ﻃﺮﯾﻘﻚ إﻟﻰ ﻣﺤﺎذاة اﻟﺮﻛﺐ وﺗﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت اﻧﺘﺮﻧﺖ اﻟﺬﻛﯿﺔ‪.‬‬

‫‪ ‬‬

‫ﻋﺪم ﻣﺠﺎﻧﯿﺔ ﺑﺮاﻣﺠﮭﺎ ‪ ،‬أي أﻧﻚ ﺗﺤﺘﺎج ﻏﺎﻟﺒﺎ ﻟﻠﺪﻓﻊ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻠﻔﺎت ﻣﻔﺘﻮﺣﺔ اﻟﻤﺼﺪر‬ ‫•‬
‫ﻻ ﯾﺘﻢ ﺗﺮﺟﻤﺘﮭﺎ ﺑﺸﻜﻞ ﻛﺎﻣﻞ إﻟﻰ ﻟﻐﺔ اﻷﻟﺔ‪.‬‬ ‫•‬
‫ﻻ ﺗﺪﻋﻢ ﻛﺎﻓﺔ أﺷﻜﺎل اﻟﺒﺮﻣﺠﺔ اﻟﺸﯿﺌﯿﺔ‪.‬‬ ‫•‬
‫اﻟﻤﺘﺮﺟﻢ ﻧﻔﺴﮫ ﺑﮫ ﺑﻌﺾ اﻟﺸﻮاﺋﺐ و اﻟﺘﻰ ﺗﻈﮭﺮ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﻜﺘﻮب ﺣﺘﻰ ﻓﻲ ﺣﺎﻟﺔ ﺧﻠﻮ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺼﺪر ﻣﻦ‬ ‫•‬
‫اﻷﺧﻄﺎء‪.‬‬

‫‪ ‬‬

‫أﻧﺘﺠﺖ ﺷﺮﻛﺔ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ أول إﺻﺪار ﻣﻦ ﻟﻐﺔ اﻟﺒﯿﺴﻚ ﻋﺎم ‪١٩٧٠‬م ‪ ،‬وﺳﻤﻲ ‪ Basic‬واﻷﺳﻢ ﯾﻌﺘﺒﺮ اﺧﺘﺼﺎر ﻟﻠﻜﻠﻤﺔ ﻟﻠﻐﺔ‬
‫اﻟﺒﺮﻣﺠﺔ اﻟﻌﺎﻣﺔ اﻟﺘﺴﻠﺴﻠﯿﺔ ﻟﻠﻤﺒﺘﺪﺋﯿﻦ ) ‪ ، (Symbolic Instruction Code Beginner’s All-Purpose‬وﺗﻮاﻟﺖ اﻹﺻﺪارات‬
‫ﻓﻈﮭﺮ اﻹﺻﺪارات ‪ ، QuickBasic and QBasic ،GW-BASIC‬و ﻛﻠﮭﻢ ﯾﻌﻤﻠﻮن ﻓﻲ ﺑﯿﺌﺔ ‪ ، Dos‬و ﻣﻊ اﻧﺘﺸﺎر ﺑﯿﺌﺔ وﯾﻨﺪوز‬
‫ﻇﮭﺮت ﻓﯿﺠﻮال ﺑﯿﺴﻚ اﻟﺘﻲ اﺣﺘﻮت ﻋﻠﻲ ﻛﺜﯿﺮ ﻣﻦ أواﻣﺮ ‪ QBASIC‬وأﺿﺎﻓﺖ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻮﻇﺎﺋﻒ اﻟﺘﻲ ﺟﻌﻠﺖ ﻣﻦ اﻟﺒﺮﻣﺠﺔ ﺑﻔﯿﺠﻮال‬
‫ﺑﯿﺴﻚ ﯾﺴﺮه و ﺳﮭﻠﺔ ‪ .‬ھﻨﺎك اﻻآﻻف ﻣﻦ اﻟﻤﻮاﻗﻊ اﻟﺘﻌﻠﯿﻤﯿﺔ ﻟﻠﻔﯿﺠﻮال ﺑﯿﺴﻚ و ﻣﻨﮭﺎ ‪Visual Basic Tutorials‬‬

‫ﻓﻲ ﻋﺎم ‪ ١٩٩٩‬ﺗﻢ اﻓﺘﺘﺎح أول ﻣﻮﻗﻊ ﻋﺮﺑﻲ ﻋﻠﻰ اﻹﻧﺘﺮﻧﺖ ﯾﮭﺘﻢ ﺑﻠﻐﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ وھﻮ ‪/http://www.vb4arab.com‬‬

‫ﻓﻲ ﻋﺎم ‪ ٢٠٠٠‬ﻗﺎﻣﺖ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﺑﺈﻧﺘﺎج اﻟﻨﺴﺨﺔ اﻟﻤﻄﻮرة ‪ VISUAL BASIC.NET‬واﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﺒﺮﻣﺠﺔ اﻟﺸﯿﺌﯿﺔ‪.‬‬

‫‪1‬‬
‫‪ -‬ﻣﻮﺳﻮﻋﺔ وﯾﻜﺒﯿﺪﯾﺎ ‪ : wikipedia‬ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻧﺼﺎُ ﻣﻦ اﻟﻤﻮﻗﻊ‬
‫‪http://ar.wikipedia.org/wiki/%D9%81%D9%8A%D8%AC%D9%88%D8%A7%D9%84_%D8%A8%D9%8A%D8%B‬‬
‫‪3%D9%83 , Viewed 27/1/2009‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪١‬‬
‫‪‬‬

‫إنّ اﻟﺘﻄﻮﯾﺮات اﻟﺘﻲ ﻟﺤﻘﺖ ﺑـ ‪ VB.Net‬ﻣﻦ اﻟﻜﺜﺮةِ ﺑﺤﯿﺚُ ﻟﻦ ﻧﺴﺘﻄﯿﻊ أن ﻧﺤﯿﻂَ ﺑﮭﺎ ﻛﻠّﮭﺎ ھﻨﺎ‪ ..‬وﻟﻜﻦ ﯾﻜﻔﻲ أن ﻧﺬﻛﺮ ﻣﻨﮭﺎ ﻣﺎ ﯾﻠﻲ‪:‬‬

‫ﻟﻢ ﺗﻌﺪ ﻟـ ‪ VB‬واﺟﮭﺔ اﺳﺘﺨﺪام ﻣﺴﺘﻘﻠّﺔ‪ ،‬ﻓﻜﻞّ ﻟﻐﺎت ‪ VS.Net‬ﺗﺴﺘﺨﺪم واﺟﮭﺔ واﺣﺪة‪ ،‬ﻣﻠﯿﺌﺔ ﺑﺎﻷدواتِ اﻟﺘﻲ ﺗُﺴﮭّﻞ ﺑﻄﺮﯾﻘﺔ‬
‫ﻣﺪھﺸﺔ ﻋﻤﻠﯿّﺔَ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ‪ ..‬إنّ ھﺬه اﻟﻤﯿﺰة ﺗﺴﻤﺢ ﻟﻚ ﺑﺈﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ﺗﺪﺧﻞ ﻓﯿﮭﺎ أﻛﺜﺮ ﻣﻦ ﻟﻐﺔ ﺑﺮﻣﺠﺔ‪ ،‬دون أن‬
‫ﺗﺤﺘﺎج ﻟﻔﺘﺢ أﻛﺜﺮ ﻣﻦ واﺟﮭﺔ‪ ..‬إﻧّﮭﺎ واﺟﮭﺔ واﺣﺪة ﻓﻘﻂ ﻟﻜﻞّ اﻟﻤﺒﺮﻣﺠﯿﻦ‪.‬‬
‫ھﻨﺎك إﻣﻜﺎﻧﯿّﺎت ﺟﺪﯾﺪةٌ ﻓﻲ ﻧﺎﻓﺬة ﻣﺤﺮّر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‪ ،‬ﻣﻨﮭﺎ ﻗﯿﺎم اﻟﻠﻐﺔ ﺑﻜﺘﺎﺑﺔ ﺟﻤﻠﺔ ﻧﮭﺎﯾﺔ اﻟﻤﻘﻄﻊ ﺗﻠﻘﺎﺋﯿّﺎ‪ ،‬ﺑﻤﺠﺮّد ﻛﺘﺎﺑﺘﻚ‬
‫ﻟﺒﺪاﯾﺘﮫ وﺿﻐﻂ زرّ ‪ Enter..‬ﻓﻤﺜﻼ‪ :‬ﻟﻮ ﻛﺘﺒﺖ ﺟﻤﻠﺔ‪:‬‬
‫‪If X = 0 Then‬‬
‫ﻓﺈنّ ﻣﺤﺮّر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﺳﯿﻀﯿﻒ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ ﺗﻠﻘﺎﺋﯿّﺎ‪:‬‬
‫‪End If‬‬
‫ﺑﻞ إﻧّﻚ ﻟﻮ ﻟﻢ ﺗﻜﺘﺐ ﻛﻠﻤﺔ ‪ Then‬ﻓﺴﯿﻜﺘﺒﮭﺎ ﻟﻚ ﻣﺤﺮّر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﺗﻠﻘﺎﺋﯿّﺎ !‬
‫ھﺬا ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ أﻧّﮫ ﺳﯿﻀﻊ ﻣﺆﺷّﺮ اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﻣﻘﻄﻊ ‪ ، If‬وﺳﯿﻘﻮم ﺑﺘﻨﺴﯿﻖ اﻟﻤﺴﺎﻓﺎت اﻟﺒﺎدﺋﺔ ﺗﻠﻘﺎﺋﯿّﺎ‪ ،‬ﺑﺤﯿﺚ ﯾﺒﺪو اﻷﻛﻮد‬
‫اﻟﺒﺮﻣﺠﻲ ﻣﻨﻈّﻤﺎ وواﺿﺤﺎ ﻋﻨﺪ ﻗﺮاءﺗﮫ‪.‬‬
‫ﻛﻤّﺎ أنّ ھﻨﺎك ﺗﺤﺴﯿﻨﺎتٍ ﻛﺜﯿﺮةً ﻓﻲ ﺗﻠﻤﯿﺤﺎت اﻟﺸﺎﺷﺔِ اﻟﺘﻲ ﺗﻌﺮضُ ﻗﯿﻢَ اﻟﻤﺘﻐﯿّﺮاتِ وأﻧﻮاﻋَﮭﺎ وﻣﻌﺎﻣﻼت اﻷﺟﺮاءاتِ واﻟﺪوالﱢ‬
‫وﻗﯿﻤَﮭﺎ اﻟﻤﻌﺎدة‪ ،‬ﻣﻊ ﻧﺒﺬة ﻋﻦ وﻇﯿﻔﺔ ﻛﻞّ داﻟﺔ وﻛﻞّ ﻣﻌﺎﻣﻞ‪ ..‬ﺑﺎﺧﺘﺼﺎر‪ :‬ﻟﻘﺪ أﺻﺒﺤﺖ ﻛﺘﺎﺑﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻣﺘﻌﺔ‪.‬‬

‫ھﻨﺎك ﺗﺤﺴﯿﻨﺎتٌ ﻛﺜﯿﺮةٌ ﻓﻲ ﻣﻈﮭﺮ اﻟﻨﻤﻮذج واﻷدوات‪ ،‬وھﻨﺎك اﻟﻌﺪﯾﺪُ ﻣﻦ اﻟﺨﺼﺎﺋﺺ واﻟﻮﺳﺎﺋﻞ اﻟﺠﺪﯾﺪة اﻟﺘﻲ ﺗﻤّﺖ إﺿﺎﻓﺘﮭﺎ‬
‫ﻟﮭﺬه اﻟﻌﻨﺎﺻﺮ‪ ،‬ﺑﺤﯿﺚ ﺗﻤﻨﺤﻚ ﺗﺤﻜّﻤﺎ أﻛﺒﺮ ﻓﯿﮭﺎ‪ ..‬ﻓﻤﺜﻼ‪ ،‬أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﺗﺤﺪﯾﺪ درﺟﺔ ﺷﻔﺎﻓﯿﺔ اﻟﻨﻤﻮذج‪ ،‬ﻛﻤﺎ ﺻﺎر ﺑﺈﻣﻜﺎﻧﻚ‬
‫ﺗﺤﺪﯾﺪ اﻟﻤﻨﻄﻘﺔ اﻟﺘﻲ ﺳﺘﻈﮭﺮ ﻣﻨﮫ ﻋﻠﻲ اﻟﺸﺎﺷﺔ‪ ،‬ﺑﺤﯿﺚ ﯾﻤﻜﻨﻚ ﺗﺼﻤﯿﻢ ﻧﻤﺎذج ﺑﺄيّ ﺷﻜﻞ‪ ..‬وﻟﻢ ﺗﻌﺪ ﻣﻀﻄﺮّا ﻟﻜﺘﺎﺑﺔ اﻷﻛﻮد‬
‫اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﯾﺤﺎﻓﻆ ﻋﻠﻲ ﺗﻨﺎﺳﺐ ﻣﻘﺎﯾﯿﺲ اﻷدوات ﻣﻊ ﻣﻘﺎﯾﯿﺲ اﻟﻨﻤﻮذج ﻛﻠّﻤﺎ ﺗﻐﯿّﺮ ﺣﺠﻢ اﻟﻨﻤﻮذج‪ ،‬ﻓﻘﺪ ﺻﺎرت ھﻨﺎك‬
‫ﺧﺼﺎﺋﺺُ ﺟﺎھﺰةٌ ﻣﺴﺌﻮﻟﺔً ﻋﻦ ھﺬا‪ ..‬ھﺬا ﺑﺨﻸفِ اﻟﻌﺪﯾﺪ ﻣﻦ اﻷدوات اﻟﺠﺪﯾﺪة ‪ ،‬ﻣﺜﻞ اﻟﻔﺎﺻﻞ ‪ Splitter‬اﻟﺬي ﯾُﻤﻜّﻨﻚ ﻣﻦ ﺗﻐﯿﯿﺮِ‬
‫ﺣﺠﻢِ اﻷدوات اﻟﻤﺘﺠﺄورةِ أﺛﻨﺎء ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬

‫ﺻﺎر ﺑﺈﻣﻜﺎﻧﻚ إﺿﺎﻓﺔ اﻷزرار واﻷدوات ﻟﻠﻨﻤﺎذج ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ ‪ ، Run Time‬ﻣﻊ ﻗﺪرﺗﻚ ﻋﻠﻲ رﺑﻄﮭﺎ ﺑﺄيّ إﺟﺮاء‪ ،‬ﻟﯿﺘﻢّ‬
‫اﺳﺘﺪﻋﺎؤه ﻋﻨﺪ ﺿﻐﻄﮭﺎ‪.‬‬

‫ﻟﻢ ﯾﻌﺪ ھﻨﺎك أيّ ﻗﺼﻮر ﻓﻲ ﻣﺘﺮﺟﻢ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ‪ ، Compiler‬ﻓﻜﻞّ ﻟﻐﺎت ‪ VS.Net‬ﺗﻌﻤﻞ ﻋﻠﻲ ﻣﺘﺮﺟﻢ واﺣﺪ‪ ،‬ﻣﻤّﺎ ﯾﻌﻨﻲ‬
‫أنّ ‪ VB‬ﻗﺪ ﺻﺎر ﺑﻘﻮّة وﺳﺮﻋﺔ وﻛﻔﺎءة ‪ VC++..‬وﻛﻤﺜﺎل‪ ،‬ﺻﺎر ﺑﺈﻣﻜﺎﻧﻚ اﺳﺘﺨﺪام اﻟﺒﺮﻣﺠﺔ اﻷرﺗﺪادﯾّﺔ ‪Recursive‬‬
‫‪ Programming‬دونّ أن ﺗﺨﺸﻲ ﻣﻦ ﺑﻄﺌﮭﺎ أو اﺳﺘﮭﻼﻛﮭﺎ ﻟﺤﺠﻢ اﻟﺬاﻛﺮة‪ ،‬ﻓﻘﺪ ﺻﺎرت ﻓﻲ ﻣﻨﺘﮭﻲ اﻟﺴﺮﻋﺔ واﻟﻜﻔﺎءة‪.‬‬
‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﻣﻌﺎﻟﺠﺔ اﻷﺧﻄﺎء‪ ،‬ﻋﻦ ﻃﺮﯾﻖ اﺳﺘﺨﺪام ﻣﻌﺎﻟﺠﺎت اﻷﺳﺘﺜﻨﺎءات ‪ Exception Handlers‬ﻓﻲ ﺟﻤﻠﺔ ‪Try..‬‬
‫‪Catch.. End Try.‬‬
‫‪ VB.Net‬ﻣﺒﻨﯿّﺔٌ ﺑﺎﻟﻜﺎﻣﻞِ ﻋﻠﻲ ﻣﻔﮭﻮمِ اﻟﺒﺮﻣﺠﺔِ ﺑﺎﻟﻜﺎﺋﻨﺎت ‪ ، Object Oriented Programming‬ﻟﺪرﺟﺔ أنّ اﻷﻋﺪادَ‬
‫اﻟﺼﺤﯿﺤﺔ ‪ Integers‬واﻟﻨﺼﻮص ‪ Strings‬واﻟﻤﺼﻔﻮﻓﺎت ‪ Arrays‬ﻗﺪ ﺻﺎرت ﺧﻼﯾﺎ ‪ ، Classes‬وﺻﺎرت ﻟﮭﺬه اﻟﻌﻨﺎﺻﺮِ‬
‫ﺧﺼﺎﺋﺺُ ووﺳﺎﺋﻞُ ﺟﺎھﺰة‪ ..‬ﻓﻤﺜﻼ‪ ،‬أﺻﺒﺤﺖ ﻟﺪﯾﻚ وﺳﺎﺋﻞ ﺟﺎھﺰة ﺗﻨﺘﻤﻲ ﻟﻠﻤﺘﻐﯿّﺮ اﻟﻨﺼّﻲّ‪ ،‬ﺗﺴﻤﺢ ﻟﻚ ﺑﺎﻟﺒﺤﺚ ﻓﯿﮫ أو ﺗﻘﻄﯿﻌﮫ‬
‫أو اﺳﺘﺒﺪال أﺟﺰاء ﻣﻨﮫ‪ ...‬إﻟﺦ‪ ...‬ﻛﻤﺎ ﺻﺎرت ﻟﺪﯾﻚ وﺳﺎﺋﻞُ ﺟﺎھﺰةٌ ﻟﻌﻜﺲِ اﻟﻤﺼﻔﻮﻓﺔِ وﺗﺮﺗﯿﺒِﮭﺎ واﻟﺒﺤﺚِ ﻓﯿﮭﺎ!‬

‫ﺻﺎر ﺑﺈﻣﻜﺎﻧﻚ اﺳﺘﺨﺪام ﻛﻞّ ﻣﻔﺎھﯿﻢ اﻟﻮراﺛﺔ ‪ Inheritance‬وﺗﻌﺪّد اﻷﺷﻜﺎل ‪ Polymorphism‬ﺑﻸ أيّ ﻣﺸﺎﻛﻞ ‪..‬وإن ﻛﺎن‬
‫ﻣﺴﻤﻮﺣﺎ ﻟﻚ ﺑﻮراﺛﺔ ﺧﻠﯿّﺔ واﺣﺪة ﻓﻘﻂ ‪ Single Inheritance‬ﻟﻠﺘﺴﮭﯿﻞ‪.‬‬
‫ﯾﻤﻨﺤﻚ إﻃﺎر اﻟﻌﻤﻞ ‪ .Net Framework‬ﺛﺮوة ھﺎﺋﻠﺔ ﻣﻦ اﻟﺨﻼﯾﺎ ‪ ، Classes‬ﺗﻘﺪّر ﺑـ ‪ ٣٥٠٠‬ﺧﻠﯿّﺔ‪ ،‬ﺗﻔﻌﻞ ﻛﻞّ ﻣﺎ ﺗﺤﻠﻢ ﺑﮫ‬
‫وأﻛﺜﺮ‪ ،‬ﺑﺤﯿﺚ ﺗﺮﯾﺤﻚ ﺑﺪرﺟﺔ ﻛﺒﯿﺮةٍ ﻣﻦ اﻷﺣﺘﯿﺎج ﻻﺳﺘﺨﺪام دوال ‪ API‬اﻟﺨﺎﺻّﺔ ﺑﺎﻟﻮﯾﻨﺪوز‪ ،‬ﺑﻤﺎ ﻓﯿﮭﺎ ﻣﻦ ﺗﻌﻘﯿﺪ وﻣﺸﺎﻛﻞ ‪..‬‬
‫وأﺣﺪث ﻣﺎ ﻓﻌﻠﺘﮫ )ﻣﯿﻜﺮوﺳﻮﻓﺖ(‪ ،‬ھﻮ إﺻﺪار ﻧﺴﺨﺔ ﺟﺪﯾﺪة ﻣﻦ ‪ DirectX‬ﻣﺒﻨﯿّﺔ ﺑﺎﻟﻜﺎﻣﻞ ﺑﺎﻟﺨﻼﯾﺎ ﺑﺪﻷ ﻣﻦ‪APIs .‬‬
‫ھﺬا ﺑﺨﻸف أنّ ﻣﻌﻈﻢ ھﺬه اﻟﺨﻼﯾﺎ ﻗﺎﺑﻞ ﻟﻠﻮراﺛﺔ‪ ،‬ﺑﻤﺎ ﻓﯿﮭﺎ اﻷدوات ‪ Controls‬ﻧﻔﺴﮭﺎ‪ ،‬ﻣﻤّﺎ ﯾﻤﻨﺤﻚ اﻟﻘﺪرة ﻋﻠﻲ ﺗﻄﻮﯾﺮ‬
‫أداﺋﮭﺎ ﺑﻤﺎ ﯾﻨﺎﺳﺒﻚ ‪.‬‬

‫وﻣﻦ اﻟﺨﻼﯾﺎ اﻟﺠﺎھﺰة اﻟﻌﺪﯾﺪة اﻟﺘﻲ ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪاﻣﮭﺎ ‪ ،‬اﻟﺨﻼﯾﺎ اﻟﺘﺎﻟﯿﺔ ‪: Stack‬ـ ‪ Queue‬ـ ‪ ، BitArray‬و ‪ArrayList‬‬
‫وﻏﯿﺮھﺎ‪.‬‬

‫‪ - 1‬اﻷﻓﺎق ﻣﻮﻗﻊ اﻟﻤﻨﺘﺪي ‪ :‬ﺗﻌﻠﻢ اﺳﺎﺳﯿﺎت اﻟﺒﺮﻣﺠﺔ ﻓﻲ اﻟﻔﺠﻮل ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ،‬ﺗﺎرﯾﺦ ‪. ٢٠٠٨/٩/١٢‬‬
‫‪http://www.montada.com/forumdisplay.php?f=212‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﺗﻌﺮﯾﻒ اﻟﻤﺘﻐﯿّﺮات داﺧﻞ ﻣﻘﺎﻃﻊ اﻟﺠﻤﻞ اﻟﺸﺮﻃﯿّﺔ ‪ If Statements‬واﻟﺠﻤﻞ اﻟﺘﻜﺮارﯾّﺔ ‪ ، Loops‬ﺑﺤﯿﺚ ﺗﻜﻮن‬
‫ﻣﻌﺰوﻟﺔ ﻋﻦ اﻟﻤﺘﻐﯿّﺮات اﻟﻤﻮﺟﻮدة ﺧﺎرج ھﺬه اﻟﻤﻘﺎﻃﻊ‪.‬‬

‫ﺑﻞ أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﺗﻌﺮﯾﻒ اﻟﺨﻼﯾﺎ داﺧﻞ اﻟﺨﻼﯾﺎ ‪ ، Nested Classes‬وأيّ ﻧﻮعٍ ‪ Type‬داﺧﻞ أيّ ﻧﻮع آﺧﺮ‪.‬‬

‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﺗﻌﺮﯾﻒ اﻟﻮاﺟﮭﺎت ‪ Interfaces‬وﻛﺘﺎﺑﺔ اﻟﺨﻼﯾﺎ اﻟﺘﻲ ﺗﻄﺒّﻘﮭﺎ وﺗﻨﻔّﺬھﺎ‪.‬‬

‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ اﺳﺘﺨﺪام اﻟﻤﻨﺪوب ‪ Delegate‬ﻛﻤﻌﺎﻣﻞ ﻟﻸﺟﺮاءات واﻟﺪوال‪ ،‬ﺑﺤﯿﺚ ﯾﻤﻜﻨﻚ ﺗﻤﺮﯾﺮ اﺳﻢ أيّ إﺟﺮاء أو داﻟﺔ‬
‫ﻛﻤﻌﺎﻣﻞ !‬

‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ اﺳﺘﺨﺪام اﻟﺴﻤﺎت ‪ Attributes‬ﻓﻲ ﺗﻌﺮﯾﻒ اﻟﺨﻼﯾﺎ واﻟﻮﺳﺎﺋﻞ واﻟﺨﺼﺎﺋﺺ واﻷﻧﻮاع اﻟﻤﺨﺘﻠﻔﺔ ‪ ،‬ﻣﻤّﺎ ﯾﺨﺘﺼﺮ‬
‫ﻟﻚ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻌﻤﻞ ‪ ،‬وﯾﻤﻨﺤﻚ اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻘﺪرات‪.‬‬

‫ﻟﺪﯾﻚ إﻣﻜﺎﻧﯿّﺎت ﺟﺪﯾﺪة وﻋﺪﯾﺪة ﺗﻤﻨﺤﮭﺎ ﻟﻚ ﺧﻼﯾﺎ ﺟﺎھﺰة ‪ ،‬ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔّﺎت واﻟﻤﺠﻠّﺪات‪ ..‬وﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ‪ ،‬ﯾﻤﻜﻨﻚ أن‬
‫ﺗﺮاﻗﺐ أيّ ﺗﻐﯿﯿﺮ ﯾﻄﺮأ ﻋﻠﻲ ﻣﻠﻔّﺎت اﻟﻤﺠﻠّﺪ اﻟﺬي ﺗﺮﯾﺪ ‪ ،‬ﺑﺎﺳﺘﺨﺪام اﻷداة ‪ ، FileSystemWatcher‬ﻛﻤﺎ ﯾﻤﻜﻨﻚ أن ﺗﺨﺰّن‬
‫ﻛﺎﺋﻨﺎ أو ﻣﺼﻔﻮﻓﺔ أو ﻣﺠﻤﻮﻋﺔ ‪ Collection‬ﻣﻦ أيّ ﻧﻮعٍ إﻟﻲ ﻣﻠﻒّ ﻣﺮّة واﺣﺪة ‪ ،‬وإﻋﺎدة ﻗﺮاءﺗﮭﺎ ﺣﯿﻨﻤﺎ ﺗﺮﯾﺪ ‪ ،‬ﺑﺎﺳﺘﺨﺪام‬
‫ﺧﻼﯾﺎ اﻟﺴﻠﺴﻠﺔ‪.Serialization‬‬

‫ھﻨﺎك إﻣﻜﺎﻧﯿّﺎت ھﺎﺋﻠﺔ ﻓﻲ ﻣﺠﺎل اﻟﺮﺳﻢ واﻟﺘﻠﻮﯾﻦ ﺗﻤﻨﺤﮭﺎ ﻟﻚ ﻣﻜﺘﺒﺔ ‪ GDI+..‬ﯾﻜﻔﻲ أن ﺗﻌﺮف أنّ ﺑﺈﻣﻜﺎﻧﻚ اﻷن رﺳﻢ ﻣﻨﺤﻨﯿﺎت‬
‫ﻣﻌﻘّﺪة ‪ ،‬وﺗﻜﻮﯾﻦ أﺷﻜﺎل ﻣﺮﻛّﺒﺔ ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﺧﻄﻮط وﻣﻀﻠّﻌﺎت وﻣﻨﺤﻨﯿﺎت ‪ ،‬وﺗﻠﻮﯾﻦ اﻟﺴﻄﻮح ﺑﺄﻟﻮان ﻣﺘﺪرّﺟﺔ ‪ ،‬وﺗﺤﺪﯾﺪ‬
‫ﺷﻜﻞ ﻣﺴﺎﺣﺔ اﻟﺮﺳﻢ ‪ ،‬وﺗﺤﺪﯾﺪ درﺟﺔ اﻟﺸﻔﺎﻓﯿﺔ ‪ ،‬وﺗﺪوﯾﺮ اﻟﺮﺳﻮم وﺗﻐﯿﯿﺮ ﻣﻘﺎﯾﯿﺴﮭﺎ ﺗﻜﺒﯿﺮا أو ﺗﺼﻐﯿﺮا‪ ....‬إﻟﺦ‪.‬‬

‫ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام اﻟﻤﺆﺷّﺮات ‪ Pointers‬ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن ‪ ،‬ﻟﻠﻘﺮاءة واﻟﻜﺘﺎﺑﺔ ﻓﻲ اﻟﺬاﻛﺮة ‪ ،‬ﻛﻤﺎ ﯾﻤﻜﻨﻚ أداء ﻋﻤﻠﯿّﺎت ﻣﻌﻘّﺪة‬
‫ﻋﻠﻲ اﻟﻨﻈﺎم ‪ System‬ﻟﻢ ﺗﻜﻦ ﻟﺘﺤﻠﻢ ﺑﮭﺎ !‬

‫أﺻﺒﺢ ﺑﺈﻣﻜﺎﻧﻚ ﺗﻘﺴﯿﻢ ﺑﺮﻧﺎﻣﺠﻚ ﻟﻤﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻤﻠﯿّﺎت اﻟﻤﺴﺘﻘﻠّﺔ ‪ ، Threads‬ﻣﻤّﺎ ﯾﻌﻨﻲ أنّ ﺑﺮﻧﺎﻣﺠﻚ ﯾﺴﺘﻄﯿﻊ اﻟﻘﯿﺎم ﺑﺄﻛﺜﺮ‬
‫ﻣﻦ ﻋﻤﻠﯿّﺔ ﻓﻲ ﻧﻔﺲ اﻟﻠﺤﻈﺔ ‪. Multithreading‬‬

‫ھﻨﺎك إﻣﻜﺎﻧﯿّﺎت ﺟﺪﯾﺪة راﺋﻌﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪ ،‬ﺗﻤﻨﺤﮭﺎ ﻟﻚ ﺗﻘﻨﯿﺔ ‪ ، ADO.Net‬ﺑﺎﻷﺿﺎﻓﺔ ﻟﻠﻌﺪﯾﺪ ﻣﻦ اﻷدوات‬
‫اﻟﻤﺮﺋﯿّﺔ اﻟﺘﻲ ﺗﺴﺎﻋﺪك ﻓﻲ إﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺄﻗﻞّ ﻗﺪر ﻣﻦ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‪.‬‬

‫أﻣّﺎ اﻟﺠﺪﯾﺪ ﺗﻤﺎﻣﺎ ‪ ،‬ﻓﮭﻮ ﻗﺪرﺗﻚ ﻋﻠﻲ ﺗﺼﻤﯿﻢ ﺻﻔﺤﺎت اﻹﻧﺘﺮﻧﺖ ﺑﻨﻔﺲ اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﺗﺼﻤّﻢ ﺑﮭﺎ اﻟﻨﻤﺎذج اﻟﻌﺎدﯾّﺔ ‪ ،‬ﻣﻊ ﻛﺘﺎﺑﺔ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ‪ VB‬ﺑﻤﻌﻈﻢ إﻣﻜﺎﻧﯿّﺎﺗﮫ ‪ ،‬ﻷﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ‪ ASP‬ﺗﻌﻤﻞ ﻋﻠﻲ اﻟﺨﻮادم ‪ Servers‬ﺑﺪون ﻛﺘﺎﺑﺔ ﺣﺮف واﺣﺪ ﻣﻦ‬
‫ﻟﻐﺔ ‪!! ASP‬‬

‫‪ ‬‬

‫ﺻﺪر أول إﺻﺪار ﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪) .Net‬ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ (.Net 2002‬ﻓﻲ ﻓﺒﺮاﯾﺮ ‪ ٢٠٠٢‬و أﺻﺒﺢ اﻷﺻ ﺪار‬
‫اﻟﺜﺎﻧﻲ )ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ (.Net 2003‬ﻣﺘﻮﻓﺮاُ ﺑﺸﻜﻞ واﺳﻊ ﻓﻲ ﻣﺎرس ‪ ٢٠٠٣‬ﺑﻌﺪ ﻓﺘﺮة ﻃﻮﯾﻠ ﺔ ﻣ ﻦ اﻟﺘﻄ ﻮﯾﺮ و اﻟﻌﻤ ﻞ‬
‫اﻟﺠﻤﺎﻋﻲ ‪ ،‬أﺻﺪرت ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ﻓﻲ أواﺧﺮ اﻟﻌ ﺎم ‪ ٢٠٠٥‬ﻟﻘ ﺪ أﺻ ﺒﺢ ﻓﯿﺠ ﻮال ﺑﯿ ﺴﻚ ‪ ٢٠٠٥‬ﻣﻨ ﺪﻣﺠﺎً اﻷن‬
‫ﺑﺸﻜﻞ ﻣﺤﻜﻢ ﻣﻊ اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮ ﻟﺪرﺟﺔ أﻧﮫ ﯾﻮﻓﺮ ﻓﻘﻂ ﻛﻤﻜﻮن ﻓﻲ ﻃﻘﻢ اﻟﺒﺮﻣﺠﺔ ﻓﯿﺠﻮال ﺑﯿ ﺴﻚ ‪ ، ٢٠٠٥‬اﻟ ﺬي ﯾﺘ ﻀﻤﻦ ﻣ ﺼﺮﻓﺎت‬
‫ﻟﻔﯿﺠﻮال ‪ C#‬و ﻓﯿﺠﻮال ‪ C++‬و اﻟﻔﯿﺠﻮال ‪ J#‬واﻷدوات ﺗﻄﻮﯾﺮ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ‪ .Net‬واﻷﺧﺮي ﻟﻜﻦ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ‪ ٢٠٠٥‬ﯾﺒﺎع ﻓﻲ‬
‫ﻋ ﺪة ﻧﻜ ﺄوﯾﻦ ﻣﻨ ﺘﺞ ﻣﺨﺘﻠﻔ ﺔ ‪ ،‬ﻣ ﻦ ﺑﯿﻨﮭ ﺎ اﻟﻄﺒﻌ ﺔ ‪ Standerd‬و اﻟﻨ ﺴﺨﺔ ‪ Professional‬و اﻟﻨ ﺴﺨﺔ ‪ Team Suite‬و اﻟﻨ ﺴﺨﺔ‬
‫‪ . Express‬و ھﻨﺎك ﻋﺪد ﻣﺤﺪدود ﺑﯿﻦ اﻟﻔﺮوق ﻓﻲ اﻟﻨﺴﺦ اﻟﺴﺎﺑﻘﺔ و أﻧ ﺎ اﻧ ﺼﺤﻚ ﺑﺄﺳ ﺘﺨﺪام ﺑﺮﻧ ﺎﻣﺞ ‪ VB.Net 2005‬ﺻ ﺪار ﺟﺪﯾ ﺪ‬
‫‪.Visual Basic .Net 2008‬‬

‫‪ - 1‬ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن ‪ ،‬ﺗﺮﺟﻤﺔ ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم ‪ :‬اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ‬
‫‪ ، ٢٠٠٦‬ص‪١٥‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ ‬‬

‫ﺳﺘﺤﺘﺎج إﻟﻲ اﻷﺟﮭﺰة واﻟﺒﺮاﻣﺞ اﻟﺘﺎﻟﯿﺔ ﻟﺘﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ‪ VB.Net 2005‬ﻋﻠﻲ اﻟﻜﻤﺒﯿﻮﺗﺮك اﻟﺸﺨﺼﻲ‪:‬‬

‫• أﺳﺘﺨﺪام أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ اﻟﺘﺎﻟﯿﺔ‪.‬‬


‫•‬ ‫‪Windows XP Professional serves Pack 2‬‬
‫•‬ ‫‪Windows XP Home Educat serves Pack 2‬‬
‫•‬ ‫‪Windows server 2003 serves Pack 1‬‬
‫•‬ ‫‪Windows server 2000 serves Pack 4‬‬
‫•‬ ‫‪Windows Data center server‬‬
‫ﻣﻌﺎﻟﺞ ﺑﻨﺘﯿﻮم ‪ ٦٠٠‬ﻣﯿﺠﺎھﺮﺗﺰ أو ﻣﺘﻮاﻓﻖ و ﺳﺮﻋﮫ ‪ ١‬ﻣﯿﺠﺎ ھﺮﺗﺰ‪.‬‬ ‫•‬
‫‪ ٢٥٦‬ﻣﯿﺠﺎ ﺑﺎﯾﺖ ذاﻛﺮة و ﯾﻔﻀﻞ أن ﯾﻜﻮن أﻋﻠﻲ‪.‬‬ ‫•‬
‫ﻣﺤﺮك أﻗﺮاص ﻣﻀﻐﻮﻃﺔ أو رﻗﻤﯿﺔ‪.‬‬ ‫•‬
‫ﺷﺎﺷﺔ )ذات دﻗﺔ ‪ ( ٨٠٠*٦٠٠‬أو أﻋﻠﻲ ﻣﻊ أﻟﻮان ‪ ٢٥٦‬ﻟﻮﻧﺎً و ﯾﻔﻀﻞ أﺳﺘﺨﺪام ) ‪ (٧٦٨ * ١٠٢٤‬أﻟﻮان ﻋﺎﻟﯿﺔ ‪ ٣٢‬ﺑﺖ‪.‬‬ ‫•‬
‫‪‬‬
‫‪ ‬‬

‫ﻧﺪﻋﻮك ﻟﺰﯾﺎرة ﻣﻮﻗﻊ ﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﺘﻌﻠﯿﻢ ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ﻋﻠﻲ اﻟﻌﻨﻮان‬


‫‪www.salem4it.com‬‬
‫ﺳﺘﺠﺪ ھﻨﺎك ﺷﺮوﺣﺎت ﻋﻦ ﻛﻞ ﻛﺘﺒﻨﺎ وﻣﺸﺎرﯾﻌﻨﺎ اﻟﻌﻤﻠﯿﺔ ‪ ،‬ﻛﻤﺎ ﯾﺘﻀﻤﻦ ﻣﻮﻗﻊ ﺗﻜﻨﻮﻟﻮﺟﯿﺎ‬
‫اﻟﺘﻌﻠﯿﻢ ﺷﺮوﺣﺎت ﻋﻦ ﺑﺮاﻣﺞ اﻟﻤﺤﺎﻛﺎة ﺛﻨﺎﺋﯿﺔ اﻷﺑﻌﺎد ‪ ،‬ﺛﻸﺛﯿﺔ اﻷﺑﻌﺎد ‪ ،‬ﻣﻌﺎﻟﺠﺔ اﻟﺼﻮر ‪،‬‬
‫اﻟﺒﺮﻣﺠ ﺔ ‪ ،‬اﻟ ﺸﺒﻜﺎت ‪ ،‬اﻹﻧﺘﺮﻧ ﺖ ‪ ،‬ﻣﺒ ﺎدئ اﻟﻜﻤﺒﯿ ﻮﺗﺮ ‪ ،‬ﺗ ﺼﻤﯿﻢ اﻟ ﺼﻔﺤﺎت اﻹﻧﺘﺮﻧ ﺖ ‪ ،‬اﻟﻮﯾ ﺐ ‪ ،‬اﻟﻤﻨﺘ ﺪﯾﺎت اﻟﺘﺮﻓﯿﮭﯿ ﺔ ‪،‬‬
‫اﻟﻤﻨﺘﺪﯾﺎت اﻟﺨﺎﺻﺔ ﺑﻜﻠﯿﺔ اﻟﺘﺮﺑﯿﺔ اﻟﻨﻮﻋﯿﺔ ﺑﺒﻮرﺳﻌﯿﺪ و ‪........‬‬

‫‪ ‬‬

‫إذا ﻛﺎﻧﺖ ﻟﺪﯾﻚ أي ﺗﻌﻠﯿﻘﺎت أو أﺳﺌﻠﺔ أو أﻓﻜﺎر ﺗﺘﻌﻠﻖ ﺑﮭﺬا اﻟﻜﺘﺎب أو اﻟﻤﻠﻔﺎت اﻟﺘﻤﺎرﯾﻦ أو اﻟﻔﯿﺪﯾﻮات ﻋﻠﻲ اﻷﺳﻄﻮاﻧﺔ‬
‫اﻟﻤﺮﻓﻘﮫ ﻣﻌﮫ ‪ .‬اﻟﺮﺟﺎء أرﺳﺎﻟﮭﺎ ﻋﻠﻲ‬

‫‪Web Site‬‬ ‫‪‬‬ ‫‪E- Mail‬‬ ‫‪‬‬


‫‪Mohamed_youssef_1988@yahoo.com‬‬
‫‪www.salem4it.com‬‬ ‫‪Portsaid_2010@yahoo.com‬‬
‫‪Mohamed.yoyo@gmail.com‬‬

‫‪1‬‬
‫‪ -‬ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن ‪ ،‬ﺗﺮﺟﻤﺔ ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم ‪ :‬اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ‬
‫‪ ،٢٠٠٦‬ص‪١٧‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪‬‬ ‫‪‬‬
‫‪ ‬‬

‫‪ -١‬ﻛﻴﻔﻴﺔ ﺗﺜﺒﻴﺖ ﺍﻟﻔﻴﺠﻮﺍﻝ ﺑﻴﺴﻚ ‪ ٢٠٠٥‬ﺑﻜﻔﺎﺀﺓ ﻋﻠﻰ ﺣﺎﺳﺒﻚ ﺍﻟﺸﺨﺼﻲ‪.‬‬


‫‪ -٢‬ﺗﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ ﻣﺎﻳﻜﺮﻭﺳﻮﻓﺖ ﺍﻟﻔﻴﺠﻮﺍﻝ ﺳﺘﻴﺪﻳﻮ ‪.٢٠٠٥‬‬
‫‪ -٣‬ﺃﺳﺘﻌﻤﺎﻝ ﺑﻴﺌﺔ ﺗﻄﻮﻳﺮ ﺍﻟﻔﻴﺠﻮﺍﻝ ﺳﺘﻴﺪﻳﻮ ﺍﳌﻨﺪﳎﺔ‪.‬‬
‫‪ -٤‬ﻗﻴﺎﻡ ﻓﺘﺢ ﻭﺗﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ ﺍﳌﻴﻜﺮﻭﺳﻮﻓﺖ ﺍﻟﻔﻴﺠﻮﺍﻝ ﺑﻴﺴﻚ ﺩﻭﺕ ﻧﺖ ‪.٢٠٠٥‬‬
‫‪ -٥‬ﺗﻐﻴﲑ ﺇﻋﺪﺍﺩﺕ ﺍﳋﺼﺎﺋﺺ ﺍﳌﺸﺮﻭﻉ‪.‬‬
‫‪ -٦‬ﻧﻘﻞ ﺃﻃﺮ ﺍﻷﺩﻭﺍﺕ ﻭﺗﻐﻴﲑ ﺣﺠﻤﻬﺎ ﻭﺃﺧﻔﺎﺋﻬﺎ ﺗﻠﻘﺎﺋﻴﺎﹰ‪.‬‬
‫‪ -٧‬ﻛﻴﻔﻴﺔ ﺃﺳﺘﻌﻤﺎﻝ ﺍﳌﺼﻔﻮﻓﺎﺕ ﺿﻤﻦ ﺍﻟﱪﻧﺎﻣﺞ‪.‬‬
‫‪ -٨‬ﲣﺼﻴﺺ ﺇﻋﺪﺍﺩﺕ ﺑﻨﻴﺔ ﺍﻟﺘﻄﻮﻳﺮ ﺍﳌﻄﺎﺑﻘﺔ ﺑﺎﻟﺘﻌﻠﻴﻤﺎﺕ‪.‬‬
‫‪ -٩‬ﻗﻴﺎﻡ ﲝﻔﻆ ﺗﻐﲑﺍﺕ ‪ ،‬ﺃ‪‬ﺎﺀ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻔﻴﺠﻮﺍﻝ ﺑﻴﺴﻚ ﺩﻭﺕ ﻧﺖ ‪.٢٠٠٥‬‬
‫‪ -١٠‬ﺍﻟﺘﺪﺭﻳﺐ ﻋﻠﻲ ﻛﺘﺎﺑﺔ ﺍﻟﱪﺍﻣﺞ ﻭﺗﺼﻤﻴﻢ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﻨﻤﻮﺫﺝ‪.‬‬
‫‪ -١١‬ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﲨﻴﻊ ﻗﻮﺍﺋﻢ ﺍﻟﱪﻧﺎﻣﺞ ‪.‬‬
‫‪ -١٢‬ﻗﻴﺎﻡ ﺑﻔﺘﺢ ﻭ ﺃﻧﺸﺎﺀ ﻣﺸﺮﻭﻉ ﺟﺪﻳﺪ ﰲ ﺑﻨﻴﺔ ﺍﻟﺪﻭﺕ ﻧﺖ‪.‬‬
‫‪ -١٣‬ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﺍﳌﺘﻐﲑﺍﺕ ﻭﺍﻟﺜﻮﺍﺑﺖ ﻭﺍﻟﺘﺮﻛﻴﺒﺎﺕ‪.‬‬
‫‪ -١٤‬ﺷﺮﺡ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﺒﺔ ‪ ADO.Net‬ﻭﺭﺑﻄﻬﺎ ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪ -١٥‬ﺍﳊﺼﻮﻝ ﻋﻠﻲ ﻣﺼﻄﻠﺤﺎﺕ ﻭﺍﻷﻛﻮﺍﺩ ﺑﺼﻮﺭﺓ ﺳﺮﻳﻌﺔ ﺑﺎﻟﻐﺔ ﺍﻟﻌﺮﺑﻴﺔ‪.‬‬
‫‪ -١٦‬ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﻟﻐﺔ ‪ ، SQL‬ﻻﺳﺘﺨﺪﺍﻡ ﻫﺎ ﻣﻊ ‪. ADO.Net‬‬
‫‪ -١٧‬ﻛﻴﻔﻴﺔ ﻋﻤﻞ ﺍﻟﺘﻘﺎﺭﻳﺮ ‪ Reports‬ﺑﺼﻮﺭﺓ ﺻﺤﻴﺤﺔ‪.‬‬
‫‪ -١٨‬ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻧﺸﺎﺀ ﺍﳌﺸﺎﺭﻳﻊ ﺍﻟﺒﺴﻴﻄﺔ ﻭﺍﻟﻮﺻﻮﻝ ﺇﱄ ﺍﻟﱪﺍﻣﺞ ﺍﳌﺘﻄﻮﺭﺓ‪.‬‬
‫‪ -١٩‬ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﲨﻴﻊ ﺍﻷﺩﻭﺍﺕ ﺍﳋﺎﺻﺔ ﻭﺍﳌﻤﻴﺰﺓ ﻟﻠﻔﻴﺠﻮﺍﻝ ﺑﻴﺴﻚ ‪.٢٠٠٥‬‬
‫‪ -٢٠‬ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﺍﻟﺪﻭﺍﻝ ﻭﺍﻟﻮﺳﺎﺋﻞ ﺍﳌﻮﺟﻮﺩﺓ ﺑﺎﻟﱪﻧﺎﻣﺞ‪.‬‬
‫‪ -٢١‬ﻛﻴﻔﻴﺔ ﺃﻧﺸﺎﺀ ﻭﺣﺬﻑ ﻭﺍﻟﺘﻌﺪﻳﻞ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﳉﺪﺃﻭﻝ‪.‬‬
‫‪ -٢٢‬ﺃﺳﺘﺨﺪﺍﻡ ﲨﻴﻊ ﻧﻮﺍﻓﺬ ﺍﻟﱪﻧﺎﻣﺞ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ﰲ ﺍﻟﱪﳎﺔ‪.‬‬
‫‪ -٢٣‬ﻣﻌﺮﻓﺔ ﺗﻄﻮﺭ ﺍﻟﱪﺍﻣﺞ ﻭﺗﻘﻨﻴﺔ ﺍﻟﺪﻭﺕ ﻧﺖ ﺍﳊﺪﻳﺜﺔ‪.‬‬
‫‪ -٢٤‬ﺃﺳﺘﻌﻤﺎﻝ ﺃﻭﺍﻣﺮ ﺍﳌﺴﺎﻋﺪﺓ ﻭﲣﺼﻴﺺ ﺍﳌﺴﺎﻋﺪﺓ ﺣﺴﺐ ﻣﺸﻜﻠﺔ ﻣﻌﻴﻨﺔ‪.‬‬
‫‪ -٢٥‬ﺍﳊﺼﻮﻝ ﻋﻠﻲ ﺍﳌﺴﺎﻋﺪﺓ ﻋﻦ ﻃﺮﻳﻖ ﺍﻹﻧﺘﺮﻧﺖ ﻟﻠﺪﻋﻢ ﺍﻟﻔﲏ ﻟﻠﱪﻧﺎﻣﺞ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬







Prog: Mohamed Youssef ١٣ E_Mail: Mohamed.yoyo@gmail.com


‫‪.Net‬‬

‫ﻣﻔﮭﻮم اﻟﺪوت ﻧﺖ وﻓﺎﺋﺪﺗﺔ وﻣﻜﻮﻧﺎﺗﺔ واﯾﻀﺎح ﻣﻔﮭﻮم ‪.Net Framework‬‬

‫‪ ‬‬

‫اﻟﺘﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﺤﺪﯾﺜﺔ ﺗﺘﻄﻮر وﺗﺘﻐﯿﺮ ﺑﺴﺮﻋﺔ ﻓﻲ ﻛﻞ ﻣﺠﺎﻻت اﻟﺤﯿﺎة وﻛﺬﻟﻚ ھﻮ اﻟﺤﺎل ﻓﻲ ﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻜﻤﺒﯿﻮﺗﺮ وﺑﺮﻣﺠﺘﺔ واﺣﯿﺎﻧﺎ‬
‫اﻟﺘﻜﻨﻮﻟﻮﺟﯿﺎاﻟﺤﺪﯾﺜﺔ ﺗﻜﻮن ﻣﻦ اﻷﺑﺪاع ﻓﻲ ﻣﻜﺎن ﺗﺠﺒﺮﻧﺎ ﻓﯿﺔ ﻟﺘﺤﺪي اﺑﺴﻂ اﻓﺘﺮاﺿﯿﺎﺗﻨﺎ‪.‬وﻓﻲ ﺻﻨﺎﻋﺔ اﻟﺤﺎﺳﺒﺎت‪ ،‬ﻛﺎن اﺧﺮ‬
‫واﻋﻈﻤﺎﺑﺪاع ھﻲ ﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻹﻧﺘﺮﻧﺖ ﺗﻠﻚ اﻟﺘﻘﻨﯿﺔ اﻟﺘﻲ ﻏﯿﺮت أوﺟﺔ اﻟﻌﺎﻟﻢ اﻗﺘﺼﺎدﯾﺄ وﺛﻘﺎﻓﯿﺄ واﺛﺮت اﻟﻌﻠﻢ ﻓﻲ ﺷﺘﻲ ﻣﺠﺎﻻﺗﮫ وﻣﻊ‬
‫ھﻜﺬا ﺗﻘﻨﯿﺔﻧﺠﺒﺮ ﻷﻋﺎدة اﻟﺘﻔﻜﯿﺮ ﻛﯿﻒ ﺳﺘﻜﻮن اﻟﺒﺮاﻣﺞ و ﻛﯿﻔﯿﺔ ﺗﻄﻮﯾﺮھﺎ واﺳﺘﻌﻤﺎﻟﮭﺎ ﻓﻲ ﻇﻞ ھﺬة اﻟﺘﻜﻨﻮﻟﻮﺟﯿﺎ‪.‬رﻏﻢ ان ھﺬة اﻟﻌﻤﻠﯿﺔ‬
‫ﺗﺤﺘﺎج ﻟﻠﻮﻗﺖ ﻋﺎدﺗﺄ وﻓﻲ ﻇﻞ ﻣﺠﺊ ﺗﻜﻨﻮﻟﻮﺟﯿﺎ ﻗﻮﯾﺔ ﻛﺎﻧﺖ أول ﻋﻘﺒﺔ ھﯿﺮﺑﻂ ﺷﺒﻜﺔ اﻹﻧﺘﺮﻧﺖ ﺑﻤﻨﺼﺔ ﻋﻤﻞ ﺣﯿﻮﯾﺔ ﺗﻌﻤﻞ ﺧﺼﯿﺼﺎ ﻣﻦ‬
‫اﺟﻠﮭﺎ وﻗﺒﻞ ﻣﺠﺊ ﻣﯿﻜﺮوﺳﻮﻓﺖ ﻛﺎن اﻟﻤﻄﻮرﯾﻦ ﯾﺴﺘﺨﺪﻣﻮن ﻣﻨﺼﺎت ﻋﻤﻞ ﻗﺪﯾﻤﺔ ﻓﻲ ﻇﻞ اﻻﻣﻜﺎﻧﯿﺎت اﻟﺠﺪﯾﺪة ﻟﻸﻧﺘﺮﻧﺖ‪.‬وﻗﺒﻞ ﻋﺪة‬
‫ﺳﻨﻮات ﻗﺮرت ﻣﯿﻜﺮوﺳﻮﻓﺖ ان اﻟﻮﻗﺖ ﻗﺪ ﺣﺎن ﻟﻌﻤﻞ ﺗﻘﻨﯿﺔ ﺟﺪﯾﺪ ﻣﻦ اﺟﻞ ﺗﺎﺳﯿﺲ ﻋﺎﻟﻢ ﻣﺎﺑﻌﺪ اﻟﻨﺖ اﻟﻨﺘﯿﺠﺔ اﻟﺘﻲ ﻇﮭﺮت ‪ .Net‬وھﻲ‬
‫ﺗﻤﺜﻞ ﻧﻘﻄﺔ اﻧﺘﻘﺎل ﺟﺬري ﻓﻲ ﻋﺎﻟﻢ ﺑﺮﻣﺠﯿﺎت ﻣﯿﻜﺮوﺳﻮﻓﺖ‪.‬اﺻﺒﺤﺖ ‪ .Net‬ﻣﺴﻘﺒﻞ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ اﻷن ﻓﻘﺪ اﻋﻠﻨﺖ ان اﻏﻠﺐ اﺑﺤﺎﺛﮭﺎ‬
‫وﺗﻄﻮﯾﺮاﻧﮭﺎ ﺳﺘﻜﻮن ﻋﻠﻲ ھﺬة اﻟﺘﻘﻨﯿﺔ‪.‬وﻣﻦ اﻟﻤﺘﻮﻗﻊ ﺑﻌﺪ ﻓﺘﺮة ﻟﯿﺴﺖ ﺑﻄﻮﯾﻠﺔ ان ﺗﻜﻮن ﻛﻞ ﻣﻨﺘﺠﺎت ﻣﺎﯾﻜﺮوﺳﻮف ﻣﻌﻤﻮﻟﺔ ﻋﻠﻲ‬
‫ھﺬااﺳﺎس‪.Net‬ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ اﻷن اﺻﺪرت اﻷﺻﺪار اﻟﺜﺎﻧﻲ ﻟﮭﺎ ‪ of Microsoft .NET 2.0‬وﺑﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ ﺗﺪﻋﻲ ‪Visual Studio‬‬
‫‪ 2005‬واﺻﺪار اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ اﻟﺠﺪﯾﺪ ﯾﺪﻋﻲ ‪Visual Basic 2005‬‬

‫‪ .NET ‬‬

‫ﻣﯿﻜﺮوﺳﻮﻓﺖ ‪ Net .‬ﺗﻘﻨﯿﺔ واﺳﻌﺔ اﻟﻨﻄﺎق وﻃﻤﻮﺣﺔ ﺟﺪا‪ .‬وھﻲ ﺗﺸﻤﻞ ‪ .NET Framework‬اﻟﺘﻲ ﺗﺸﺘﻤﻞ ﻋﻠﻲ اﻟﻠﻐﺎت وﺗﻨﻔﯿﺬ ﻗﻮاﻋﺪ‬
‫اﻟﻌﻤﻞ ‪ ،‬ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ ﻃﺒﻘﺔ واﺳﻌﺔ ﻣﻦ اﻟﻤﻜﺘﺒﺎت ‪ ، class libraries‬وھﻲ ﻏﻨﯿﮫ ﺑﺎﻟﻤﻜﺘﺒﺎت اﻟﺪاﺧﻠﯿﺔ‪ .‬ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ اﻟﻨﻮاة ‪.NET‬‬
‫‪ Framework.‬ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ ﺗﻘﺪﯾﻢ ﻣﺴﺘﻮي ﻣﺘﻜﺎﻣﻞ ﻟﻠﺒﺮﻣﺠﯿﺎت ﻋﺒﺮ ﺷﺒﻜﺔ اﻹﻧﺘﺮﻧﺖ ‪ .‬وﺗﻘﺪﯾﻢ ﺧﺪﻣﺎت ﻟﻠﺸﺒﻜﺔ ﺑﻤﺎ ﯾﻌﺮف ‪Web‬‬
‫‪ Servieses‬وﺳﻮف ﻧﺎﺗﻲ إﻟﻲ ﺗﻔﺼﯿﻞ ھﺬا اﻟﻤﻔﮭﻮم ﺑﺎﻟﻜﺎﻣـﻞ‪.‬‬

‫‪:‬‬

‫ﻗﺎﻣﺖ ﺷﺮﻛﺔ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﺑﻌﻤﻞ ﺗﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ ﺑﺘﻜﻠﻔﺔ ﻣﻠﯿﺎرات اﻟﺪوﻻرات و ﺗﺤﺘﻮي ﻋﻠﻲ اﻛﺜﺮ ﻣﻦ ‪ ٥‬اﻻﻻف ﻣﻜﺘﺒﺔ ﻷﻧﺸﺎء‬
‫اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﺒﺮاﻣﺞ ﻛﺘﻲ ﯾﺘﻮاﻓﻖ ﺑﺮاﻣﺞ اﻟﻮﯾﻨﺪوز ﻋﻠﻲ أﻧﻈﻤﺔ اﻟﻠﯿﻨﻜﺲ ‪ .‬ﺣﻘﻘﺖ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﻲ ھﺬة اﻟﺘﻘﻨﯿﺔ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷھﺪاف‬
‫اﻟﺘﻲ ﻇﻠﺖ ﻟﻔﺘﺮة ﺗﺤﺄول ﺗﻘﺪﯾﻤﮭﺎ ﺑﻠﻐﺔ ‪ VB‬اﺻﺒﺤﺖ ﻟﻐﺔ اﺷﻜﺎل ﺑﺎﻟﻜﺎﻣﻞ ‪ OOP‬وﺑﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ ﺑﯿﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻣﺒﺎﺷﺮة ﺗﻤﺎﻣﺎ ﺣﺘﻲ‬
‫اﻧﺔ ﯾﻤﻜﻦ ﻣﺰج اﻟﺸﻔﺮات ﻓﻲ ﻧﻔﺲ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬ﻛﻤﺎ ﺗﻢ ﻣﻮاﺟﮭﺔ ﺗﺤﺪي ﻛﺎﺑﻮس ﻟﻐﺔ اﻟﺠﺎﻓﺎ ‪ JAVA‬ﺑﻠﻐﺔ ﺳﻲ ﺷﺎرب ‪ C #‬ﻣﻊ ﻣﻌﻤﺎرﯾﺔ‬
‫اﻃﺎر اﻟﻌﻤﻞ ‪ Framework‬ﻛﻤﺎ ﺻﺎرت ﻣﻌﻀﻠﺔ ﺻﻌﻮﺑﺔ ﺗﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت اﻟﺸﺒﻜﺔ اﻟﻌﻨﻜﺒﻮﺗﯿﺔ اﻣﺮ ﻓﻲ ﻏﺎﯾﺔ اﻟﺴﮭﻮﻟﺔ ﺑﺎﻷﺿﺎﻓﺔ‬
‫ﻷﺳﺘﯿﻌﺎب ﺗﻘﻨﯿﺎت ﺣﺪﯾﺜﺔ ﻣﺜﻞ ‪ XML‬وﺧﺪﻣﺎت ﻋﺒﺮ اﻟﺸﺒﻜﺔ وﺗﻢ ﺗﻮﺣﯿﺪ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺨﻄﻂ اﻟﺨﺎﺻﺔ ﺑﺸﺒﻜﺔ ﻓﻲ اﻟﻤﻨﺘﺞ اﻟﺬي ﺳﯿﺼﺒﺢ‬
‫ﻣﺤﻮر اﻟﺘﻮﺟﺔ اﻟﻘﺎدم ﻟﻠﺸﺮﻛﺔ ﻛﻤﺎ اﺳﻠﻔﺖ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪:‬‬

‫ﻛﺎن ﻇﮭﻮر اﻟﻨﻤﻮذج اﻷوﻟﻲ ﻟﺘﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ ﻓﻲ ﻣﺆﺗﻤﺮ اﻟﻤﻄﻮرﯾﻦ ﻓﻲ ﯾﻮﻟﯿﻮ ‪٢٠٠٢‬وﻋﻠﻲ اﺳﺎس اﻧﺔ ﯾﺘﻢ اﺻﺪارھﺎ ﻓﻲ ﺑﺪاﯾﺔ‬
‫‪ ٢٠٠٣‬وﻗﺪ ﺣﻠﺖ ھﺬة اﻟﺘﻘﻨﯿﺔ ﻣﺤﻞ ﺗﻘﻨﯿﺎﺗﻌﺪﯾﺪة ﺣﺄوﻟﺖ ﻣﻦ ﺧﻼﻟﮭﺎ ﻣﯿﻜﺮوﺳﻮﻓﺖ ان ﺗﻠﺤﻖ ﻣﻮﺟﮫ اﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﯿﺔ ﻟﻠﻤﻌﻠﻮﻣﺎت ﻣﺜﻞ‬
‫‪IIS‬و ‪ ASP‬اﻟﺬي ﺣﻞ ﻣﺤﻠﺔ ‪ ASP.NET‬اﻟﻤﺤﺴﻦ ‪.‬واﺳﺘﺪﻋﺎءات ‪ API‬ﻣﺜﻞ ‪ ATL‬و ‪ MFC‬ﺑﻤﺠﻤﻮﻋﺔ ﻣﺘﻨﺎﻏﻤﺔ ﻣﻦ ﻓﺌﺎت ‪Base‬‬
‫‪Class‬وﻗﺪ ﺗﻢ اﻟﺘﻨﺎزل ﻋﻦ ﺗﻘﻨﯿﺔ ‪ DNA‬ﻟﺼﺎﻟﺢ اﻟﺘﻘﻨﯿﺔ اﻟﺠﺪﯾﺪة‪ COM+ 2.0‬ﻣﺤﻞ ﺳﺎﺑﻘﺘﮭﺎ وھﻲ ﻣﺨﺘﻠﻔﺔ ﻋﻦ ﺳﺎﺑﻘﺘﮭﺎ ﻛﻤﺎ ﺗﻢ اﻋﺎدة‬
‫ﺑﻨﺎء ﻟﻐﺔ ‪ VB‬ﻟﺘﺼﺒﺢ ﻟﻐﺔ اﺷﻜﺎل ﻛﺎﻣﻠﺔ ‪ OOP‬وﺗﻢ اﺳﺘﺤﺪاث ﻟﻐﺔ ﺑﺮﻣﺠﯿﺔ ﺟﺪﯾﺪة ﺗﻤﺰﺟﺒﯿﻦ ﺳﮭﻮﻟﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ وﻗﻮة ‪C ++‬‬
‫ﺗﺴﻤﻲ اﻟﺴﻲ ﺷﺎرب‪ C#‬وﻟﺘﻀﻤﻦ اﻟﺸﺮﻛﺔ اﻧﺘﺸﺎرھﺎ ﺗﻢ ﺟﻌﻠﮭﺎ ﻣﻔﺘﻮﺣﺔ اﻟﻤﺼﺪر‪OPEN SOURCE‬‬
‫وﻣﻦ اﻟﻤﻔﯿﺪ اﻷﺷﺎرة اﻧﺔ ﺗﻢ اﻟﺘﻐﻠﺐ ﻋﻠﻲ اﺷﻜﺈﻟﯿﺔ ﺗﻌﺪد اﻟﻨﺴﺦ ﻣﻦ اﻟﻤﻜﺘﺒﺎت ‪ Components‬واﻟﺘﻨﺎزل ﻋﻦ اﺳﺘﺨﺪام ﻣﺨﺰن اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﻌﺎم ‪ Registry‬واﺳﺘﺨﺪام ﺗﻘﻨﯿﺔ ‪ XML‬وﺗﻘﻨﯿﺔ ‪ SOAP‬ﻓﻲ ﻋﻤﻠﯿﺔ ﺗﻄﻮﯾﺮ اﻟﺘﻄﺒﯿﻘﺎﺗﺎﻟﺨﺎﺻﺔ ﺑﺎﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﯿﺔ وﺧﺼﻮﺻﺎ ﺧﺪﻣﺎت‬
‫ﻋﺒﺮ اﻟﺸﺒﻜﺔ ‪ Web Services‬اﻟﻮاﻗﻊ ان ھﺬة اﻟﺘﻘﻨﯿﺔ ﺣﯿﻮﯾﺔ ﺟﺪا ﻟﺸﺮﻛﺔ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ اﻟﺘﻲ ﺗﺤﺄول اﻷﻧﺘﻘﺎﻟﻤﻦ ﺗﻮﺟﮭﮭﺎ اﻟﺤﺎﻟﻲ ﺑﺒﯿﻊ‬
‫اﻟﻮﺣﺪات واﻟﻨﺴﺦ إﻟﻲ ﺗﻘﻨﯿﺔ اﻟﺘﺄﺟﯿﺮ واﻟﺨﺪﻣﺔ ﻟﻠﺤﻔﺎظ ﻋﻠﻲ ﻣﻜﺎﻧﺘﮭﺎ ﻓﻲ اﻟﻤﻘﺪﻣﺔ ﺣﯿﺚ ان اﻟﺘﻮﺟﺔ ﯾﻌﺎﻧﻲ ﻣﻦ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷﺷﻜﺈﻟﯿﺎت‬
‫ﻛﻤﺎ ان ﻣﺴﺘﻮي ﻣﺒﯿﻌﺎﺗﮭﺎ ﯾﻌﺎﻧﻲ ﻣﻦ اﻟﻀﻌﻒ واﻷﻧﺨﻔﺎض اﻟﻤﺴﺘﻤﺮ‪.‬‬

‫‪.NET :‬‬

‫وﻗﺪ ﺑﺪات اﻟﻘﺼﺔ ﻣﻨﺬ ﻋﺎم ‪ ٢٠٠٠‬ﻋﻨﺪﻣﺎ اﻋﻠﻦ ﺑﯿﻞ ﺟﯿﺘﺲ ﻓﻲ ﻣﺆﺗﻤﺮ اﻟﻤﻄﻮرﯾﻦ اﻟﻤﺤﺘﺮﻓﯿﻦ ‪ PDC‬ﻓﻲ وﻻﯾﺔ ﻓﻠﻮرﯾﺪا ﻓﻲ اﻟﻮﻻﯾﺎت‬
‫اﻟﻤﺘﺤﺪة ﻋﻦ ﺗﺒﻨﻲ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﻠﺪوت ﻧﺖ )ﻛﺎﻧﺖ ﺗﺴﻤﻲ وﻗﺘﮭﺎ اﻟﺠﯿﻞ اﻟﺠﺪﯾﺪ ﻟﺨﺪﻣﺎت اﻟﻨﻮاﻓﺬ‬
‫) ‪ Next Generation Windows Services‬ﻛﺘﻘﻨﯿﺔ ﻟﻸﻟﻔﯿﺔ اﻟﺜﺎﻟﺜﺔ واﻟﺘﻲ ﺑﺪات ﻓﻲ اﻷﺳﺎس ﻛﺘﻄﻮر ﻟﻤﺰود اﻟﺒﯿﺎﻧﺎت‪ IIS 4‬وﺗﻄﻮر‬
‫ﻷدوات اﻟﺘﻄﻮﯾﺮ ‪ VS7‬ﻓﻲ ﻋﺎم ‪١٩٨٨‬وﻗﺪ ذﻛﺮ ﺑﯿﻞ ﺟﯿﺘﺲ ان ‪ %٨٠‬ﻣﻦ ﻣﺼﺎدر ﻣﯿﻜﺮوﺳﻮﻓﺖ ﺳﻮف ﺗﻨﻔﻖ ﻓﻲ اﺗﺠﺎة دﻋﻢ ھﺬة‬
‫اﻟﺘﻘﻨﯿﺔ اﻟﺠﺪﯾﺪة‪ .‬وﺑﻌﺪ ذﻟﻚ ﺑﺜﻼث اﺷﮭﺮ ﻗﺎﻣﺖ ﻣﯿﻜﺮوﺳﻮﻓﺖ ﺑﺸﺮاء ‪ 135‬ﻣﻠﯿﻮن دوﻻر ﻣﻦ اﻷﺳﮭﻢ ﻏﯿﺮ اﻟﻤﺼﻮﺗﺔ ﻣﻦ اﺟﻞ اﻧﻘﺎذ‬
‫ﺷﺮﻛﺔ ﻛﻮرال وذﻟﻚ ﻟﺠﻌﻞ اﻟﺸﺮﻛﺔ ﺗﻘﻮم ﺑﺘﻘﺪﯾﻢ ﻓﻜﺮة اﻟﺪوت ﻧﺖ إﻟﻲ ﻧﻈﺎم اﻟﻠﯿﻨﻜﺲ ﻋﻦ ﻃﺮﯾﻘﻚ ورال ﻟﯿﻨﻜﺲ وھﺬا ﻣﺎ ﺣﺪث ﻓﻌﻸ‪.‬‬

‫‪:1 ‬‬

‫ان اﻧﻔﺎق ﺷﺮﻛﺔ ﻓﻲ ﻋﺎﻟﻢ اﻟﺒﺮﻣﺠﯿﺎت ‪ %٨٠‬ﻣﻦ ﻣﻮاردھﺎ ﻓﻲ ﺳﺒﯿﻞ دﻋﻢ ھﺬة اﻟﺘﻘﻨﯿﺔ ﻷﯾﻌﻨﻲ اﻷ ﺟﺪﯾﺘﮭﺎ واﯾﻤﺎﻧﮭﺎ ﺑﻘﺪرة ھﺬة اﻟﺘﻘﻨﯿﺔ‬
‫ﻋﻠﻲ اﻟﺘﺤﻜﻢ ﺑﺎﻟﻤﺴﺘﻘﺒﻞ‪.‬‬
‫ﺧﺼﻮﺻﺄ اذا ﻋﻠﻤﻨﺎ ان اﻟﺴﯿﻮﻟﺔ اﻟﻤﺎدﯾﺔ اﻟﺤﺎﻟﯿﺔ ﻟﺪي ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ اﻛﺜﺮ ﻣﻦ ﻣﺠﻤﻮع اﻣﻮال اﻛﺒﺮ ﻣﺌﺔ ﺷﺮﻛﺔ ﻣﻦ ﺷﺮﻛﺎت اﻟﻌﺎﻟﻢ‬
‫اﻟﺒﺮﻣﺠﯿﺔ ﻣﻌﺎ‪.‬‬
‫ھﺬة اﻟﺘﻘﻨﯿﺔ اﻟﺠﺪﯾﺪة اﺳﺎﺳﮭﺎ اﻹﻧﺘﺮﻧﺖ واﻟﻤﮭﻢ ﻣﻼﺣﻈﺔ اھﻤﯿﺔ اﻹﻧﺘﺮﻧﺖ اﻟﻤﺘﺰاﯾﺪ ﻓﻲ ﻋﺎﻟﻤﻨﺎ ﺣﺈﻟﯿﺎ ﻓﻘﺪ أوﺟﺪ ﻟﻨﺎ ﺣﯿﺎة ﺟﺪﯾﺪة ﺗﻤﺎﻣﺎ‪.‬‬
‫وﻟﻘﺪ اﺛﺒﺘﺖ اﻟﺨﺒﺮة ﻓﻲ ﻣﺠﺎل اﻟﺘﺠﺎرة اﻷﻟﻜﺘﺮوﻧﯿﺔ ان ﻓﻌﺎﻟﯿﺔ ﻣﻨﺘﺠﺎت اﻹﻧﺘﺮﻧﺖ ﺗﺘﻨﺎﺳﺐ ﻃﺮدﯾﺎ ﻣﻊ اﻟﻘﺪرة ﻋﻠﻲ اﻷﺑﻘﺎء ﻋﻠﻲ اﻷﺗﺼﺎل‬
‫ﺑﺎﻟﺰﺑﺎﺋﻦ‪ .‬أي اﻧﻨﺎ ﻣﻠﺰﻣﯿﻦ ﺑﺎﺑﻘﺎء راﺑﻄﺔ اﻟﻮﺻﻞ ﺑﯿﻨﻨﻨﺎ وﺑﻦ زﺑﻮن ﻣﻮﻗﻌﻨﺎ‪.‬‬

‫‪‬‬

‫ان ﻋﻤﻠﯿﺔ ﺗﻄﻮﯾﺮ اﻟﺒﺮاﻣﺞ وﺗﺤﺪﯾﺜﮭﺎ ﻋﻤﻠﯿﺔ ﻣﮭﻤﺔ ﻟﻜﻞ ﻣﻨﺘﺞ ﺑﺮﻣﺠﻲ وذﻟﻚ ﻟﻤﺎ ﯾﺸﮭﺪ اﻟﻌﺎﻟﻢ ﻣﻦ اﺣﺘﯿﺎﺟﺎت ﺗﺘﻄﻮر ﺗﺒﻌﺎ ﻟﻤﺘﻐﯿﺮات‬
‫اﺧﺮي وان ﻣﻨﺪون اﻟﺪﻋﻢ اﻟﻔﻨﻲ واﻟﺘﺤﺪﯾﺜﺎت ﻟﻠﺒﺮاﻣﺞ ﻣﻦ اﻟﻤﻜﻦ ان ﯾﻔﻘﺪ اﻟﻤﻨﺘﺞ ﺛﻘﺘﺔ ﻋﻦ اﻟﺰﺑﻮن ﻋﻨﺪ ﺣﺎﺟﺘﺔ ﻟﺘﺤﺪﯾﺚ ﻣﺎ ﻋﻠﻲ‬
‫ﺑﺮﻧﺎﻣﺠﺔ ﻓﻸ ﯾﺠﺪةﻣﻤﺄ ﯾﺠﻌﻠﺔ ﯾﺒﺤﺚ ﻋﻦ ﺑﺪﯾﻞ اﺧﺮ ﻣﻨﺎﺳﺐ وﻣﻦ ھﻨﺎ ﺗﺎﺗﻲ اﻟﺤﺎﺟﺔإﻟﻲ ﻣﻔﮭﻮم اﻟﺒﺮﻣﺠﯿﺎت ﻛﺨﺪﻣﺎت ‪Software‬‬
‫‪ Service‬وﺗﻘﻮم ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ ﺑﺘﻘﺪﯾﻢ ھﺬا اﻟﻤﻔﮭﻮم ﺑﺎﺳﺘﺨﺪام ﺗﻘﻨﯿﺔ ﺟﺪﯾﺪة ﺗﺴﻤﻰ ) ﺳﻮاب (‬
‫‪ Simple Object Access Protocol‬ﺑﺮوﺗﻮﻛﻮل ﺗﺪأول اﻟﻜﺎﺋﻨﺎت اﻟﺒﺴﯿﻂ ‪ Soap‬وھﻮ ﺑﺮوﺗﻮﻛﻮل ﺑﺴﯿﻂ وﻟﻜﻦ ﻗﻮي ﺣﯿﺚ ﯾﺴﺘﻌﻤﻞ‬
‫ﺗﻘﻨﯿﺔ ﻣﻮﺟﻮدة اﺻﻸ وھﻲ ﺗﻘﻨﯿﺔ ‪ HTTP‬وﯾﺘﺠﺄوز ﻣﺴﺎوئ اﻟﺘﻘﻨﯿﺎت اﻟﺤﺎﻟﯿﺔ ﻣﺜﻞ اﻟﻜﻮﺑﺮا ‪ COBRA‬واﻟﺪوت ﻛﻮم ‪ .COM‬اﻟﻠﺘﺎن‬
‫ﺗﺘﻄﻠﺒﺎن ﺷﺮوﻃﺎ ﺧﺎﺻﺔ‪.‬‬

‫‪1‬‬
‫‪ -‬ﻣﻘﺎﻻت ﻣﺘﻔﺮﻗﺔ ﻣﻦ ﻣﻮﻗﻊ وادى اﻟﺘﻘﻨﯿﺔ ‪ :‬أھﻤﯿﺔ اﻟﺸﺒﻜﺔ اﻟﺪوﻟﯿﺔ ﻟﻺﻧﺘﺮﻧﺖ ‪ ،‬ﺗﺎرﯾﺦ ‪www.itwadi.com ،٢٠٠٩/١/١٢‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪.NET :‬‬

‫ﺗﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ ‪ .NET‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﺣﻞ ﻣﺘﻜﺎﻣﻞ وﻣﺘﻄﻮر ﻣﻦ ﺷﺮﻛﺔ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﺒﻨﺎء اﻷﻧﻈﻤﺔ وﺗﺸﻐﯿﻠﮭﺎ ﻟﻠﺠﯿﻞ اﻟﻘﺎدم ﻣﻦ‬
‫اﻟﺘﻄﺒﯿﻘﺎت واﻷﺟﮭﺰة واﻟﺘﻲ ﺗﺴﻤﺞ ﺑﻌﻤﻠﯿﺔ رﺑﻂ اﻷﺟﮭﺰة واﻟﻨﺎس واﻟﻤﻌﻠﻮﻣﺎت واﻟﺸﺒﻜﺎت ﻓﻲ ﻛﻞ ﻣﻜﺎن ﺑﻄﺮﯾﻘﺔ ﺳﮭﻠﺔ واﻣﻨﺔ وﻣﻨﻈﻤﺔ‬
‫ھﺬة اﻟﺘﻘﻨﯿﺔ ھﻲ ﻓﻲ اﻟﻮاﻗﻊ ﺗﻄﻮﯾﺮ وﺗﺠﻤﯿﻊ ﻟﻠﺘﻘﻨﯿﺎت اﻟﺴﺎﺑﻘﺔ ﻣﻦ أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ ‪ Windows‬وادوات اﻟﺘﻄﻮﯾﺮ ‪ VB‬وﻣﺰودات‬
‫اﻟﺸﺒﻜﺎت ‪ IIS ASP ,‬ﺗﻢ ﺟﻤﻌﮭﺎ ﻓﻲ ﺑﻮﺗﻘﺔ واﺣﺪة ﺑﺎﺳﻢ ﺗﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ اﻟﻤﻮﺟﮭﮫ ﺑﺎﻷﺳﺎس ﻷﻧﺘﺎج اﻟﺘﻄﺒﯿﻘﺎت ﻟﻠﺸﺒﻜﺔ اﻟﺪوﻟﯿﺔ واﻧﺘﺎج‬
‫ﺧﺪﻣﺎت ﻋﺒﺮ اﻟﺸﺒﻜﺔ ‪ Web Services‬ﻓﻲ ھﯿﺌﺔ‪ XML‬ﺑﻮاﺳﻄﺔ ﻣﻌﯿﺎر اﻟﻨﻘﻞ‪ Sopa .‬ﻛﻤﺎ ﺗﻌﺘﺒﺮ اﺣﺪث ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ اﻧﺘﺠﺘﮭﺎ‬
‫ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻛﻤﺎ ان ﺣﺰﻣﺔ اﻟﺒﺮﻣﺠﺔ اﻟﺠﺪﯾﺪة ‪ Visual Studio.Net‬ھﻲ اﻷداة اﻟﺮﺋﯿﺴﯿﺔ ﻟﺘﻄﻮﯾﺮ اﻷﻧﻈﻤﺔ ﻟﮭﺬة اﻟﺒﯿﺌﺔ اﻟﺠﺪﯾﺪة‪.‬‬
‫اﻟﻮاﻗﻊ ان اﻟﺘﻮﺟﮫ اﻟﺠﺪﯾﺪ اﻟﺬي ﺗﻨﺘﮭﺠﺔ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ھﻮ اﻟﺘﻮﺟﺔ ﻧﺤﻮاﻟﺸﺒﻜﺔ اﻟﺪوﻟﯿﺔ )اﻹﻧﺘﺮﻧﺖ( ‪ .‬وﺑﻤﺎ ان اﻟﺒﯿﺌﺔ اﻟﻤﺴﯿﻄﺮة ﻋﻠﺔ‬
‫ھﺬااﻟﻘﻄﺎع ھﻲ ﺑﯿﺌﺔ ﺟﺎﻓﺎ ‪ JAVA‬ﻓﻜﺎن ﯾﻠﺰم ﻋﻠﻲ اﻟﺸﺮﻛﺔ ان ﺗﻨﺘﺞ ﻣﻨﺘﺞ ﻣﻨﺎﻓﺲ ﻟﺘﻘﻨﯿﺔ اﻟﺠﺎﻓﺎ ‪ .‬واﻟﺪوت ﻧﺖ ھﻲ ﺗﻘﻨﯿﺔ ﻣﺸﺎﺑﮭﮫ‬
‫ﻟﺘﻘﻨﯿﺔ اﻟﺠﺎﻓﺎ‪.‬‬
‫ﻓﻤﺜﻼ ﻟﻐﺔ ﺳﻲ ﺷﺎرب ‪ C#‬ﺗﻌﺎدل ﻟﻐﺔ ﺟﺎﻓﺎ ﺑﯿﻨﻤﺎ ھﯿﻜﻠﯿﺔ اﻟﺪوت ﻧﺖ ‪ Framework‬ﺗﻌﺎدل ﻣﺸﻐﻞ ﺑﺮاﻣﺞ اﻟﺠﺎﻓﺎ اﻷﻓﺘﺮاﺿﻲ ‪Virtual‬‬
‫‪ Machine .‬وھﺬا ﯾﻌﻨﻲ ﺑﺎﺧﺘﺼﺎر ان ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﻢ ﺗﻘﺪم ﺗﻘﻨﯿﺔ ﺟﺪﯾﺪة اﻧﻤﺎ ﻋﻤﻠﺖ ﻋﻠﻲ اﻷﺳﺘﻔﺎدة ﻣﻦ اﻓﻀﻞ اﻟﺘﻘﻨﯿﺎت اﻟﻤﻮﺟﻮدة‬
‫واﺿﺎﻓﺖ إﻟﯿﮭﺎ )ﻛﺎﻟﻌﺎدة(‬

‫‪ ‬‬

‫رأﯾﻲ ھﻮ ان ﺗﺴﺘﺨﺪم اﻷﺻﺪارة ‪ ٢٠٠٥‬وذﻟﻚ ﻟﻌﺪة أﺳﺒﺎب‪.‬‬

‫ھﻲ ﺑﺪاﯾﺔ أﺻﺪارة أﺣﺪث ﻣﻦ اﻷﺻﺪارة ﻓﺠﻮال ﻧﺖ ‪ ٢٠٠٣‬وﻓﯿﮭﺎ أﻣﻮر ﻻ ﺗﻮﺟﺪ ﺑﺎ ﻷﺻﺪارة ‪ ٢٠٠٣‬ﻛﻤﺎ أﻧﻨﻲ ﻻ أﻋﻠﻢ ﻛﺜﯿﺮاً ﻋﻦ‬
‫اﻷﺻﺪارة ‪ ٢٠٠٨‬واﻟﻤﻌﺪة ﻟﻠﻌﻤﻞ ﻋﻠﻲ ‪Vista Windows‬‬

‫وﻟﻜﻦ ﻷ اﻧﺼﺢ ﺑﮭﺎ وﻟﺴﺒﺐ واﺣﺪ وﺑﺮأﯾﻲ ھﻮ ﻛﺎفً‪.‬‬

‫اﻷﺻﺪارة ‪ ٢٠٠٨‬ﺗﺴﺘﺨﺪم ‪ Framework 3.5‬واﻟﺬي ﻟﯿﺲ ﻟﮫ وﺟﻮد ﻋﻠﻲ ‪ %٩٠‬ﻣﻦ اﻷﺟﮭﺰة ﻋﻠﻲ اﻷﻗﻞ ﺣﺘﻲ اﻷن‪ ،‬واﻷﺻﺪارة‬
‫‪ ٢٠٠٥‬ﺗﺴﺘﺨﺪم اﻟـ ‪ Framework 2.0‬واﻟﺬي ﯾﻮﺟﺪ ﻋﻠﻲ ‪ %٩٠‬ﻣﻦ اﻷﺟﮭﺰة ﺗﻘﺮﯾﺒﺎً اﻟﻤﻮﺟﻮدة اﻷن ‪ ،‬أي أﻧﻚ ﻟﺴﺖ ﺣﺘﻲ ﻓﻲ‬
‫ﺣﺎﺟﺔ إﻟﻲ ان ﺗﺮﻓﻖ اﻟـ ‪ Framework‬ﻣﻊ ﻣﺸﺮوﻋﻚ ﻟﺪي ﺗﺴﻠﻤﯿﮫ إﻟﻲ اﻟﻤﺴﺘﺨﺪم‪.‬‬

‫ﺣﻘﯿﻘﺔ ان اﻷﺻﺪارة ‪ ٢٠٠٨‬ﺗﺤﺘﺎج إﻟﻲ اﻟﻤﺰﯾﺪ ﻣﻦ اﻟﻮﻗﺖ ‪ ،‬ذﻟﻚ اﻟﻮﻗﺖ اﻟﺬي ﯾﺼﺒﺢ ﻓﯿﮫ ‪ Windows-XP‬ﻣﺜﻞ اﻟـ ‪Windows 98‬‬
‫أو اﻟﻤﻠﯿﻨﯿﻮم ‪ Windows Mil‬اﻷن‪.‬‬

‫ﻣﻊ ان ھﻨﺎك ﻣﻼﺣﻈﺔ ﺻﻐﯿﺮة وھﻲ أﻧﻨﻲ ﺻﻨﻌﺖ ﺑﺮﻧﺎﻣﺠﺎً ﯾﻌﺘﻤﺪ ﻋﻠﻲ اﻟـ ‪ Framework 1.1‬وﻋﻤﻞ ﻋﻠﻲ أﺣﺴﻦ ﻣﺎﯾﺮام ﻋﻠﻲ‬
‫اﻷﺻﺪارة ‪ Framework 2.0‬واﻋﺘﻘﺪ ان اﺳﺘﺨﺪام ﺑﺮﻧﺎﻣﺞ ﻋﻠﻲ اﺻﺪارة اﻟﻔﺠﻮال ‪ ٢٠٠٨‬ﺳﻮف ﺗﻌﻤﻞ ﻃﺒﯿﻌﯿﺎً ﻋﻠﻲ اﺻﺪارة اﻟـ‬
‫‪ Framework 2.0‬ﺑﺤﺎﻟﺔ واﺣﺪة وھﻲ ﻋﺪم اﺳﺘﺨﺪام ﻣﻜﺘﺒﺎت ﺟﺪﯾﺪة ﻻ ﺗﻮﺟﺪ اﻷ ﺑﺎﻷﺻﺪارة ‪ .Framework 3.5‬وﺣﺠﻢ‬
‫اﻷﺻﺪارة ‪ .Framework 3.5‬ﯾﺼﻞ إﻟﻰ ‪ ١٩٨‬ﻣﯿﺠﺎ ﺑﺎﯾﺖ ﻣﻦ اﻟﻤﻠﻔﺎت واﻟﻤﻜﺘﺒﺎت‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪.Net Framework‬‬ ‫‪‬‬
‫‪.Net Framework ‬‬

‫ھﻮ ﻋﺒﺎرة ﻋﻦ اﻃﺎر ﯾﻐﻄﻲ ﻛﻞ ﻃﺒﻘﺎت ﺗﻄﻮﯾﺮ اﻟﺒﺮاﻣﺞ اﻋﻠﻲ ﻣﻦ ﻣﺴﺘﻮي ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ وﯾﻌﻤﻞ ﻛﺒﯿﺌﺔ ﺗﺸﻐﯿﻠﯿﺔ ﻟﺘﻨﻔﯿﺬ وﺗﺸﻐﯿﻞ وادارة‬
‫اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺼﺼﻤﺔ ﻟﻠﻌﻤﻞ ﺗﺤﺖ ﺑﯿﺌﺘﺔ وﺗﻮﻓﯿﺮ ﻣﻜﺘﺒﺎت ﻣﻮﺣﺪة ﻟﻠﺘﻄﻮﯾﺮ ﻣﻤﺎ ﯾﺴﮭﻞ اﻧﺘﺎج اﻟﺘﻄﺒﯿﻘﺎت ﻣﮭﻤﺎ ﺗﻌﺪدت اﻟﻠﻐﺎت‬
‫‪ .Net Framework‬ﺣﻘﯿﻘﺘﺎ ﯾﻘﻮم ﺗﻐﻄﯿﺔ أو ﺣﺠﺐ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ اي ﯾﻘﻮم ﺑﻌﺰل أﻟﺒﺮاﻣﺞ اﻟﻤﺼﻤﻤﺔ ﻟﻠﻌﻤﻞ ﺗﺤﺖ ﺑﯿﺌﺘﺔ ﻋﻦ ﻧﻈﺎم‬
‫اﻟﺘﺸﻐﯿﻞ وﺑﺸﻜﻞ ﺧﺎص ﻓﻲ اﻻﻣﻮر اﻟﺘﻲ ﺗﺘﻌﻠﻖ ﺑﺎدارة اﻟﻤﻠﻔﺎت وﺗﺨﺼﯿﺺ اﻟﺬاﻛﺮة وﻗﺪ ﺻﻤﻢ ﻟﺘﺒﺴﯿﻂ ﺗﻄﻮﯾﺮ اﻟﺘﻄﺒﯿﻘﺎت ﻓﻲ اﻟﺒﯿﺌﺔ‬
‫اﻟﻤﻮزﻋﺔ ﺟﺪا )اﻹﻧﺘﺮﻧﺖ( وﯾﺠﮭﺰ ﻟﺠﻌﻞ ﻋﻤﻠﺔ ﻓﻲ ﺟﻤﯿﻊ أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ واﻟﻤﻜﻮﻧﺎت اﻷﺳﺎﺳﯿﺔ ﻷﻃﺎر ﻋﻤﻞ ﻧﺖ ﯾﻮﺿﺢ ﺑﺎﻟﺼﻮرة‬
‫اﻟﺘﺎﻟﯿﺔ‬

‫‪  .Net Framework‬‬

‫‪.Net Framework‬‬

‫ﺗﻮﻓﯿﺮ ﺑﯿﺌﺔ ﺑﺮﻣﺠﺔ ﻣﻮﺟﮭﮫ ﻟﻠﻜﺎﺋﻨﺎت ‪ OOP‬ﺛﻠﺒﺘﺔ ﺳﻮاء ﻛﺎن اﻟﺘﻄﺒﯿﻖ ﯾﺨﺰن وﯾﻨﻔﺬ ﻣﺤﻠﯿﺎ‪ Desktop‬أو ﯾﻨﻔﺬ ﻣﺤﻠﯿﺎ ﻟﻜﻦ ﻣﻮزع ﻋﻠﻲ‬
‫اﻹﻧﺘﺮﻧﺖ ‪ Distributed‬أو ﺗﻨﻔﯿﺬ ﻋﻦ ﺑﻌﺪ ‪ Remote‬أو ﻟﺘﺰوﯾﺪ ﺑﯿﺌﺔ ذﻛﯿﺔ ﻷدارة اﻟﺬاﻛﺮة واﻟﻤﺼﺎدر وﺣﻞ ﻣﺸﻜﻠﺔ ‪Versioning‬‬
‫وﻟﺘﺰوﯾﺪ ﺑﯿﺌﺔ ﺗﻨﻈﯿﻒ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وھﻲ اﻟﺘﻲ ﺗﺰﯾﻞ ﻣﺸﺎﻛﻞ اداء ﻛﺘﺎﺑﺔ أو ﺗﺮﺟﻤﺔ اﻟﺒﯿﺌﺎت وﻟﺠﻌﻞ ﺗﺠﺮﺑﺔ اﻟﻤﻄﻮر ﺛﺎﺑﺘﺔ ﻋﺒﺮ‬
‫اﻷﻧﻮاع اﻟﻤﺨﺘﻠﻔﺔ ﺟﺪا ﻣﻦ اﻟﻄﻠﺒﺎت ﻣﺜﻞ ﻃﻠﺒﺎت اﺳﺎﺳﮭﺎ اﻟﻨﻮاﻓﺬ واﻟﻄﻠﺒﺎت ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ‪.‬ﻛﻤﺎ ﺗﻌﻤﻞ ﻟﺒﻨﺎء اﺗﺼﺎل ﻋﻠﻲ ﻣﻌﺎﯾﯿﺮ ﻗﯿﺎﺳﯿﺔ‬
‫ﻟﻀﻤﺎن ﻋﻤﻞ ذﻟﻚ اﻟﻤﻜﻮﻧﺔ ﻣﺴﺘﻨﺪ ﻋﻠﻲ اﻃﺎر اﻟﻌﻤﻞ ﺑﺤﯿﺚ ﯾﺴﺘﻄﯿﻊ اﻟﺘﻜﺎﻣﻞ ﻣﻊ اﻟﻤﻜﻮﻧﺎت اﻷﺧﺮي وھﻮ ﯾﺘﻜﻮن ﻣﻦ ﻋﻨﺼﺮﯾﻦ ھﻤﺎ ‪:‬‬

‫‪1‬‬
‫‪ -‬م ‪ /‬ﺗﺮﻛﻲ اﻟﻌﺴﯿﺮى ‪ :‬ﺑﺮﻣﺠﺔ أﻃﺎر ﻋﻤﻞ ‪ .Net‬ﺑﺈﺳﺘﺨﺪام ‪ ، PDF File ، Visual Basic.Net‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪ ، ٢٠٠٣‬ص‪١٥‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻤﻜﺘﺒﺎت وﺑﯿﺌﺔ اﻟﺘﺸﻐﯿﻞ وﯾﺤﺘﻮي ھﯿﻜﻞ ‪ .Net‬ﻋﻠﻲ ﻣﺎ ﯾﺰﯾﺪ ﻋﻦ ‪ 3400‬ﻃﺒﻘﺔ ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ ﻣﺘﻄﻠﺒﺎﺗﻚ ﺗﻤﺜﻞ ﺑﻌﺾ ھﺬة‬
‫اﻟﻄﺒﻘﺎت اﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻷﺳﺎﺳﯿﺔ واﻏﻠﺒﯿﺔ اﻟﻄﺒﻘﺎت ﻣﺨﺼﺼﺔ ﻟﻤﮭﺎم ﻣﺘﺨﺼﺼﺔ اﻛﺜﺮ ﻣﺜﺐ اﻟﻌﻤﻞ ﺑﻨﻈﺎم اﻟﻤﻠﻔﺎت وﺗﻮﻟﯿﺪ وﺛﺎﺋﻖ‪XML‬‬

‫‪Common Language Runtime - CLR‬‬

‫ھﻮ أول ﻣﻜﻮن ﻟﺒﻨﯿﺔ اﻃﺎر ‪ .Net Framework‬وﯾﻄﻠﻖ ﻋﻠﯿﺔ ﺑﯿﺌﺔ اﻟﻌﻤﻞ اﻟﻤﺸﺘﺮك وﺑﺔ ﯾﺘﻢ ﺗﻨﻔﯿﺬ ﻛﻞ اﻟﺘﻄﺒﯿﻘﺎت وﯾﺘﯿﺢ ﻟﻚ ﻣﺰاﯾﺎ‬
‫ﻋﺪﯾﺪة ﻣﻨﮭﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﺧﻄﺎء واﻻﻣﺎن وازاﻟﺔ اﻟﻌﯿﻮب واﻟﺘﻨﺎﺳﻖ ﻓﻲ ﻣﻼﻣﺢ اﻟﺒﺮﻧﺎﻣﺞ وھﺬة اﻟﻤﺰاﯾﺎ ﻣﺘﻮﻓﺮة ﻷي ﻟﻐﺔ ﻣﺼﻤﻤﺔ‬
‫ﻟﻮﻇﺎﺋﻒ ‪ CLR‬وھﺬا ﯾﻌﻨﻲ ان ﻣﻜﻮن ‪ CLR‬ﯾﺴﺘﻄﯿﻊ اﺳﺘﻀﺎﻓﺔ ﻋﺪد ﻛﺒﯿﺮ ﻣﻦ اﻟﻠﻐﺎت وﯾﻌﺮض ﻣﺠﻤﻮﻋﺎت ﻋﺎﻣﺔ ﻣﻦ اﻷدوات ﺗﺸﺘﺮك‬
‫ﻓﯿﮭﺎ ﺟﻤﯿﻊ ھﺬة اﻟﻠﻐﺎت وﻟﻘﺪ دﻋﻤﺖ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﻐﺎت ‪ VB,C++,C#‬ﺑﻤﻜﻮﻧﺎت ‪ CLR‬وﻗﺪ ﺳﺠﻠﺖ اﻟﺸﺮﻛﺎت اﺳﻤﺎﺋﮭﺎ ﻟﺘﻘﺪﯾﻢ‬
‫ﺗﻄﺒﯿﻘﺎت ﻟﻠﻐﺎت اﻷﺧﺮي ﻣﺜﻞ ‪ Perl ,Python‬ﺑﻞ وﺣﺘﻲ ‪ Cobol .‬ﯾﺼﯿﺮ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﻜﻮد اﻟﺒﺮﻣﺠﯿﺄ ﻣﺪارأ ‪ CLR‬ﻓﻌﻨﺪﻣﺎ‬
‫ﯾﺤﻮل اﻟﻤﺘﺮﺟﻢ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ إﻟﻲ ﻣﻜﻮﻧﺎت ‪ CLR‬واﻟﻤﻘﺼﻮد ﺑﺎﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﻤﺪار ھﻮ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﯾﺴﺘﻔﯿﺪ ﻣﻦ‬
‫اﻟﺨﺪﻣﺎت اﻟﺘﻲ ﺗﻘﺪﻣﮭﺎ ﻣﻜﻮﻧﺎت وﺣﺘﻲ ﯾﻌﻤﻞ وﻗﺖ اﻟﺘﻨﻔﯿﺬ ﻣﻊ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻷﺑﺪ ان ﯾﺤﺘﻮي ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻋﻠﻲ ﻣﺎﯾﺴﻤﻲ‬
‫ﺑﺎﻟﻤﯿﺘﺎداﺗﺎ ‪ Metadata‬وھﻲ ﻋﺒﺎرة ﻋﻦ ﺑﯿﺎﻧﺎت ﯾﺘﻢ ﺗﺨﻠﯿﻘﮭﺎ اﺛﻨﺎء ﺗﻨﻔﯿﺬ اﻟﻤﺘﺮﺟﻤﺎت ﻟﻌﻤﻠﯿﺔ اﻟﺘﺤﻮﯾﻞ إﻟﻲ ﻣﻜﻮﻧﺎت ‪ CLR‬وﺗﺨﺰﯾﻦ‬
‫اﻟﻤﯿﺘﺎداﺗﺎ ﻣﻊ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﻤﺤﻮل وﺗﺤﺘﻮي ﻋﻠﻲ ﺑﯿﺎﻧﺎت ﺑﺸﺎن اﻧﻮاع واﺿﺎء وﻣﺮاﺟﻊ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وﺗﺴﺘﺨﺪم ﻣﻜﻮﻧﺎت‬
‫‪CLR‬اﻟﻤﯿﺘﺎداﺗﺎ ﻟﺘﺤﺪﯾﺪ اﻟﻔﺌﺎت ‪ Classes‬وﺗﺤﻤﯿﻠﮭﺎ واﻧﺸﺎء اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ اﺻﯿﻞ وزﯾﺎدة ﻣﺴﺘﻮﯾﺎت اﻻﻣﺎن وﯾﻮﺟﺪ ﻓﻮق ﻣﻜﺘﺒﺔ‬
‫اﻟﺼﻨﻒ اﻟﻘﺎﻋﺪي اﻷﺳﺎﺳﻲ ﺛﻼت ﻧﻤﺎذج ﺑﺮﻣﺠﯿﺔ‪-:‬‬

‫ھﻮ ‪ ASP.Net‬اﻟﺬي ﯾﺴﺘﺨﺪم ﻷﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ﻣﻌﺘﻤﺪة ﻋﻠﻲ وﯾﺐ وﯾﻤﻜﻦ اذﻛﺮ ﻣﺎﺑﯿﻦ اﻟﻤﺰاﯾﺎ اﻟﻌﺪﯾﺪة ﻟﺘﻘﻨﯿﺔ ‪ASP.NET‬‬ ‫اﻷول‬
‫ﻣﯿﺰة ﺻﻔﺤﺎت اﻟﻤﺰود اﻟﻔﻌﺎﻟﺔ اﻟﻤﺘﺮﺟﻤﺔ وﻋﻨﺎﺻﺮ اﻟﺘﺤﻜﻢ ﺑﺎﻟﻤﺰود اﻟﺠﺪﯾﺪة وﺧﺪﻣﺎت وﻧﻤﺎذج وﯾﺐ اﻟﺘﻲ ﺗﻔﺼﻞ ﻣﻨﻄﻖ ﻟﻐﺔ اﻟﻨﺼﻮص‬
‫اﻟﺒﺮﻣﺠﯿﺔ ﻋﻦ ﻟﻐﺔ وﺻﻒ اﻷﻇﮭﺎر‪.‬‬

‫اﻟﺜﺎﻧﻲ ھﻮ اﻃﺎرات وﯾﻨﺪوز ﺣﯿﺚ ﯾﺎﺧﺬ ھﺬا اﻟﻨﻤﻮذج اﻟﺒﺮﻣﺠﻲ ﺑﺎﺳﻠﻮب ﻟﻐﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬ﻓﻲ اﻟﺒﺮﻣﺠﺔ اﻟﻤﻌﺘﻤﺪة ﻋﻠﻲ اﻷﻃﺎرات‬
‫ﻟﯿﻌﻤﻤﮭﺎ ﻋﻠﻲ ﻛﻞ ﻣﻄﻮري ﺗﻄﺒﯿﻘﺎت وﻧﺪوز وﯾﺘﻢ ھﺬا ﺑﻮاﺳﻄﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﺻﻨﺎف ﻓﻲ اﻃﺎر ﻋﻤﻞ ‪ Net‬وﺗﻌﺪ اﻃﺎرات وﯾﻨﺪوز‬
‫ﻣﺠﻤﻮﻋﺔ ﻛﺎﻣﻠﺔ ﻣﻦ اﻷﻧﻤﺎط اﻟﻘﺎﺑﻠﺔ ﻷﻋﺎدة اﻻﺳﺘﺨﺪام وھﻲ ﺗﺒﺴﻂ ﺗﻄﻮﯾﺮ واﺟﮭﺎت اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ﻓﻲ وﯾﻨﺪوز وﺗﺴﻤﺢ‬
‫اﻃﺎرات وﯾﻨﺪوز ﺑﺬﻟﻚ ﺑﺒﻨﺎء اﻟﺘﻄﺒﯿﻘﺎت ﺳﺮﯾﻌﺎ اﻟﺘﻲ ﺗﻤﺘﺎز ﺑﺎﺳﺘﺨﺪام ﻋﻨﺎﺻﺮ اﻛﺘﯿﻒ اﻛﺲ ‪ ActiveX‬واﻟﻘﻮاﺋﻢ اﻟﻤﻨﺒﺜﻘﺔ واﻣﻜﺎﻧﯿﺔ‬
‫اﻟﻮﺻﻮل إﻟﻲ ﻣﺰاﯾﺎ اﻻﻣﻦ ﻓﻲ‪.NET‬‬

‫اﻟﺜﺎﻟﺚ اﻟﻤﻜﻮﻧﺎت اﻟﻘﯿﺎﺳﯿﺔ ﻟﻮاﺟﮭﺔ اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ﻣﺜﻞ اﻷزرار ودواﺋﺮ اﻷﺧﺘﯿﺎر وﺳﯿﯿﺘﻔﯿﺪ اﻟﺘﻄﺒﯿﻖ ﻟﺪي اﺳﺘﺨﺪم اﻃﺎرات‬
‫وﯾﻨﺪوز ‪Windows Frame ,‬ﻣﻦ ﻛﻞ ﻣﺰاﯾﺎ ‪ Ado.Net‬ﻟﻠﻮﺻﻮل إﻟﻲ اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫وﺳﯿﺴﺘﻔﯿﺪ اﻟﺘﻄﺒﯿﻖ اﯾﻀﺎ ﻣﻦ اﺣﺪاث اﺻﺪارات واﺟﮭﺔ اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ‪ GDI+‬وﻛﺬﻟﻚ ﻣﻦ ﺧﺪﻣﺎت اﻟﻄﺒﺎﻋﺔ ﺑﺤﯿﺚ ﯾﻐﺪو‬
‫اﻟﺘﻄﺒﯿﻖ ﻗﺎدرا ﻋﻠﻲ اﺻﺪار اﻟﺘﻘﺎرﯾﺮ اﻟﺸﺎﻣﻠﺔ‪.‬‬

‫‪ ‬‬

‫اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺼﺪري )‪ :(Source Program‬ھﻮ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﻜﺘﺒﮫ اﻟﻤﺒﺮﻣﺞ وﻣﻔﮭﻮم ﻣﻦ ﻗﺒﻞ اﻻﻧﺴﺎن‪.‬‬
‫اﻟﺒﺮﻧﺎﻣﺞ اﻟﮭﺪﻓﻲ )‪ : (Object Program‬ھﻮ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻠﻐﺔ اﻵﻟﺔ‪.‬‬
‫ﻟﻐﺔ اﻵﻟﺔ )‪ : (Machine Language‬ھﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ اﻟﺘﻲ ﺗﻜﺘﺐ ﺗﻌﻠﯿﻤﺎﺗﮭﺎ ﺑﺎﻟﺸﻔﺮة اﻟﺜﻨﺎﺋﯿﺔ‪.‬‬
‫اﻟﻤﺘﺮﺟﻢ )‪ : (Complier‬ھﻮ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﻘﻮم ﺑﻌﻤﻠﯿﺔ ﺗﺤﻮﯾﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺼﺪري إﻟﻲ ﺑﺮﻧﺎﻣﺞ اﻟﮭﺪﻓﻲ ‪.‬‬
‫ﯾﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﺎﻟﻮﻇﺎﺋﻒ اﻷﺗﯿﺔ‪-:‬‬
‫‪ .١‬ﺗﺤﻮﯾﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺼﺪري اﻟﺨﺎﻟﻲ ﻣﻦ اﻷﺧﻄﺎء إﻟﻲ ﺑﺮﻧﺎﻣﺞ ھﺪﻓﻲ‪.‬‬
‫‪ .٢‬أﻛﺘﺸﺎف اﻻﺧﻄﺎء ﻣﺜﻞ اﻷﺧﻄﺎء اﻷﻣﻼﺋﯿﺔ ‪ ،‬ﻗﻮاﻋﺪ ‪ ،‬ﺗﻨﻔﯿﺬﯾﺔ‪.‬‬
‫‪ .٣‬رﺑﻂ اﻟﺠﻤﻞ اﻟﺜﻨﺎﺋﯿﺔ وﺑﻨﺎء ﻣﺎ ﯾﺴﻤﻰ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﻨﻔﯿﺬي‪.‬‬

‫‪‬‬

‫‪ - 1‬م‪ /‬إﺣﺴﺎن ﻣﺰھﺮ رﺷﯿﺪ ‪ :‬ﻣﻠﺨﺼﺎت ﻓﻲ ‪ ، (٢) Visual Basic.Net 2003‬اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﻠﻤﮭﻦ اﻟﺸﺎﻣﻠﺔ درﻧﺔ ‪ ،‬ﻗﺴﻢ اﻟﺤﺎﺳﻮب ‪، PDF File ،‬‬
‫‪ ،٢٠٠٥‬ص‪١‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪١‬‬
‫‪JIT   ‬‬

‫ﻣﻦ أﺟﻤﻞ اﻷﺷﯿﺎء اﻟﺘﻲ ﺳﺘﻜﺘﺸﻔﮭﺎ واﻟﺘﻲ ﺗﻌﺘﺒﺮ ﻓﺘﺢ ﻛﺒﯿﺮ‪ -‬ﻓﻲ رأﯾﻲ اﻟﺸﺨﺼﻲ ‪ -‬ﻓﻲ ﻋﺎﻟﻢ ﺑﺮﻣﺠﺔ وھﻲ ﺗﻘﻨﯿﺔ ‪ ، .NET‬ھﻮ أﺳﻠﻮب‬
‫اﻟﺘﺮﺟﻤﺔ ﻋﻠﻰ اﻟﻔﻮر ‪ . (JIT) - Just In Time Compiling‬وھﻲ ﺗﻘﻨﯿﺔ ﺗﻘﻮم ﺑﺘﺮﺟﻤﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻨﺪ ﺗﻨﻔﯿﺬه ﺣﯿﺚ ﯾﻨﺘﺞ أﻓﻀﻞ‬
‫ﺷﯿﻔﺮة ﺗﺘﻨﺎﺳﺐ ﻣﻊ اﻟﺠﮭﺎز اﻟﺬي ﺳﯿﻌﻤﻞ ﻋﻠﯿﮫ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻤﺎ ﯾﻨﺘﺞ ﻋﻨﮫ ﻧﺘﺎﺋﺞ إﯾﺠﺎﺑﯿﺔ ﺟﯿﺪة ﺟﺪ ا ‪ ) ،‬ھﺬا ﻋﻨﺪ اﻟﺤﺪﯾﺚ ﻋﻦ ﺗﺤﺴﯿﻦ‬
‫اﻟﻜﻔﺎءة وﺣﺘﻰ ﺗﻌﻠﻢ ﻛﯿﻒ ﯾﺤﺪث ذﻟﻚ ﺗﺎﺑﻊ ‪ ( Optimization‬ﻛﻤﺎ ﺑﺸﻜﻞ اﻟﺘﺎﻟﻰ‪.‬‬

‫‪Class Library‬‬

‫‪ Class Library‬ﺗﻌﺘﺒﺮ اﻟﻤﻜﻮن اﻟﺜﺎﻧﻲ ﻷﻃﺎر ‪ .Net Framework‬وھﻲ اﻟﻤﻜﺘﺒﺎت اﻟﻤﺴﺎﻋﺪة واﻟﺘﻲ ﺗﺴﺎﻋﺪ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻷﻧﺸﺎء‬
‫اﻟﺘﻄﺒﯿﻘﺎت وﺗﺤﺘﻮي ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ ﻋﻠﻲ اﻷﻟﻒ ﻣﻨﮭﺎ وھﻲ ﻣﻮزﻋﺔ ﻓﻲ ﻣﺠﻤﻮﻋﺎت ھﺮﻣﯿﺔ ﺑﮭﯿﻜﻞ ‪ .NET‬وﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻛﻞ‬
‫اﻟﻔﺌﺎت اﻟﺘﻲ ﺗﻌﻤﻞ ﻣﻊ ﻧﻈﺎم اﻟﻤﻠﻔﺎت ﺗﺠﻤﻊ ﻓﻲ ﺗﻔﺮع اﻷﺳﻤﺎء ‪ IO.System‬وﯾﻤﻜﻦ ان ﺗﺸﯿﺮ إﻟﻲ أي ﻓﺌﺔ ﺑﺸﻜﻞ ﻣﻌﯿﻦ ﻓﻲ ھﯿﻜﻞ ‪Net‬‬
‫وذﻟﻚ ﺑﻜﺘﺎﺑﺔ اﺳﻢ اﻟﻔﺌﺔ ﺛﻢ اﺳﻢ اﻟﺘﻔﺮع ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻟﻸﺷﺎرة إﻟﻲ ﺗﻔﺮع اﻟﻤﻠﻔﺎت ﻓﻲ اﻟﻔﺌﺔ ‪ IO.System‬ﯾﻤﻜﻨﻚ ان ﺗﺴﺘﺨﺪم‬
‫اﻟﺘﻔﺮع ‪ IO.System.File‬ھﻨﺎﻟﻚ ﻓﺌﺔ واﺣﺪة ﻣﮭﻤﺔ ﺟﺪا ﺧﺼﻮﺻﺎ ﻟﺒﺮﻣﺠﺔ ﺻﻔﺤﺎت‬
‫‪ ASP.Net‬وﻛﻞ اﻟﻄﺒﻘﺎت اﻟﺘﻲ ﺗﺘﻌﻠﻖ ﺑﮭﯿﻜﻞ ‪ ASP.Net‬ﯾﻤﻜﻦ ان ﺗﻮﺟﺪ ﺗﺤﺖ اﻟﻔﺌﺔ ‪System.Web‬‬

‫‪Assemblies‬‬

‫اﻟﻄﺒﻘﺎت ﻓﻲ ھﯿﻜﻞ ال ‪ .Net‬ﺗﺠﻤﻊ ﻓﻲ ﻣﻠﻔﺎت ﺗﺴﻤﻲ ‪ Assemblies‬وﻣﻦ اﻟﻤﮭﻢ ﻋﺪم اﻟﺨﻠﻂ ﺑﯿﻦ اﻟﻤﻠﻔﺎت ‪ Assemblies‬وﺑﯿﻦ‬
‫اﻟﻔﺌﺎت ﻓﺎﻟﻤﻠﻒ ‪ Assemblies‬ھﻮ اﻟﻤﻠﻒ أو اﻟﻤﻠﻔﺎت اﻟﻔﻌﻠﯿﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻲ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻟﻠﻄﺒﻘﺎت اﻟﻔﺌﺎت ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل‬
‫ﻛﻞ اﻟﻄﺒﻘﺎت ﻓﻲ اﻟﻔﺌﺔ ‪ System.IO‬ﺗﻘﻊ ﻓﻲ اﻟﻤﻠﻒ ‪ Mscorlib.dll‬وھﻮ اﻟﻤﻠﻒ اﻟﻔﻌﻠﻲ اﻟﻤﻮﺟﻮد ﻋﻠﻲ ﻗﺮص اﻟﺘﺨﺰﯾﻦ‬

‫‪ - 1‬م ‪ /‬ﺗﺮﻛﻲ اﻟﻌﺴﯿﺮى ‪ :‬ﺑﺮﻣﺠﺔ أﻃﺎر ﻋﻤﻞ ‪ .Net‬ﺑﺈﺳﺘﺨﺪام ‪ ، PDF File ، Visual Basic.Net‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪ ، ٢٠٠٣‬ص ‪١٦‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ٢٠ E_Mail: Mohamed.yoyo@gmail.com
Visual Basic.Net 2005 
 

Microsoft Visual Basic 2005 Express Edition ‫ﻟﺘﺤﻤﯿﻞ ﺑﺮﻧﺎﻣﺞ‬

: ‫اﻟراﺑط‬

http://download.microsoft.com/download/D/9/C/D9C35F20-A749-4E25-A306-DE20B93AB8C0/VB.iso

‫ واﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت‬، integrated development environment ‫ وھﻲ أﺧﺘﺼﺎرا ﻟـ‬IDE ‫ أو ﻛﻤﺎ ﯾﻌﺮف‬vb.net 2005 ‫ﺑﯿﺌﺔ‬
visual c# .net , visual j# .net , ‫ ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ‬visual studio.net ‫ ھﻲ أﺣﺪي اﻟﻠﻐﺎت اﻟﻤﺘﺎﺣﺔ داﺧﻞ‬visual basiv .net ‫ﻧﺖ‬
visual c++.net
‫ وﻏﯿﺮھﺎ ﻣﻦ‬windows application ‫ ھﻲ ﺑﯿﺌﺔ ﻣﺘﻜﺎﻣﻠﺔ ﻷﻧﺸﺎء وﺗﺼﺤﯿﺢ اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺘﻨﻮﻋﺔ ﻣﺜﻞ‬visual basic.net ‫وﺑﯿﺌﺔ‬
.‫اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺨﺘﻠﻔﺔ‬
 

Prog: Mohamed Youssef ٢١ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٢٢ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٢٣ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٢٤ E_Mail: Mohamed.yoyo@gmail.com
 

Integrated development environment - IDE‫أو ﻛﻤﺎ ﯾﻌﺮف‬

VISUAL BASIC.NET

VISUAL STUDIO.NET‫ھﻲ اﺣﺪ اﻟﻠﻐﺎت اﻟﻤﺘﺎﺣﺔ داﺧﻞ ﺑﺮﻧﺎﻣﺞ‬


‫ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ‬
VISUAL C#.NET
VISUAL J#.NET
VISUAL C++.NET
‫ ھﻲ ﺑﯿﺌﺔ ﻣﺘﻜﺎﻣﻠﺔ ﻷﻧﺸﺎء واﺧﺘﺒﺎر وﺗﺼﺤﯿﺢ اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺘﻨﻮﻋﺔ ﻣﺜﻞ‬VISUAL BASIC.NET ‫وﺑﯿﺌﮫ‬

WINDOWS APPLICATION
WEB APPLICATION
CLASSES AND CONTROL LIBRARY
CONSOLE APPLICATION

‫ﺑﺎﻷﺿﺎﻓﺔ إﻟﻲ ﻏﯿﺮھﺎ ﻣﻦ اﻟﺘﻄﺒﯿﻘﺎت‬


‫اﻟﺦ‬..‫ﻣﺜﻞ ﺗﻄﺒﯿﻘﺎت ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وﺗﻄﺒﯿﻘﺎت اﻟﮭﻮاﺗﻒ اﻟﺬﻛﯿﮫ‬
Choose Default Environmant Settings‫ ﻟﻠﻤﺮة اﻷوﻟﻲ ﺳﻮف ﺗﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة‬VISUAL STUDIO.NET ‫وﻋﻨﺪ ﻓﺘﺢ ﺑﺮﻧﺎﻣﺞ‬
‫ ﻓﻘﻂ وھﻲ ﻷﺧﺘﯿﺎر اﻟﻠﻐﺔ اﻟﺘﻲ ﺗﺮﯾﺪ ان ﺗﻜﻮن اﻓﺘﺮاﺿﯿﺔ ﻋﻨﺪ دﺧﻮﻟﻚ‬VISUAL STUDIO.NET ‫وﺗﻈﮭﺮ ھﺬة اﻟﻨﺎﻓﺬة اذا ﻛﻨﺖ ﻣﺤﻤﻞ‬
‫ ﻛﻤﺎ ﺑﺎﻟﺼﻮرة‬VISUAL BASIC ‫ ﻓﻘﻢ ﺑﺎﺧﺘﯿﺎر ﺑﯿﺌﺔ‬VISUAL STUDIO.NET ‫إﻟﻲ‬

Start Visual Studio ‫ﺛﻢ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ زر‬


‫ﺑﻌﺪھﺎ اﻧﺘﻈﺮ ﻗﻠﯿﻸ ﺑﯿﻨﻤﺎ ﯾﻘﻮم اﻟﻔﯿﺠﻮال ﺑﺎﻟﻘﯿﺎم‬

Prog: Mohamed Youssef ٢٥ E_Mail: Mohamed.yoyo@gmail.com


‫ﺑﻌﻤﻞ اﻋﺪاد ﺑﺪاء اﻟﻌﻤﻞ ﺛﻢ ﺳﯿﻈﮭﺮ ﻟﻚ أوﻷ ‪START PAGE‬‬

‫وﺑﮭﺎ ﺗﻈﮭﺮ اﺧﺮ ﺗﻄﺒﯿﻘﺎت ﺗﻢ اﻧﺸﺎﺋﮭﺎ أو ﺗﻌﺪﯾﻠﮭﺎ وﻟﻜﻦ ھﻲ ﻷ ﺗﮭﻤﻨﺎ اﻷن ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ ﻗﺎﺋﻤﺔ‬
‫‪ FILE‬و اﺧﺘﺮ ﻣﻨﮭﺎ ‪New Project‬‬
‫وﺳﺘﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة ‪ New Project‬ﻟﺘﺨﺘﺎر ﻣﻨﮭﺎ اﻟﺘﻄﺒﯿﻖ اﻟﺬي ﺗﺮﯾﺪ اﻧﺸﺎﺋﺔ‬
‫ﻷﺣﻆ ھﺬة اﻟﺼﻮرة‬

‫ﻋﻠﻲ إﻟﯿﺴﺎر ﯾﻮﺟﺪ ﻧﻮع اﻟﻤﺸﺮوع اﻟﺬي ﺗﺮﯾﺪ اﻧﺸﺎء اﺣﺪ ﺗﻄﺒﻘﺎﺗﺔ وﻋﻠﻲ إﻟﯿﻤﯿﻦ ﺗﻈﮭﺮ ﺗﻄﺒﯿﻘﺎت اﻟﻤﺸﺮوع‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫أﻧﻮاعُ اﻟﻤﺸﺎرﯾﻊ‪:‬‬

‫ﯾﻤﻜﻨﻚ أن ﺗﺮي ﻛﻞﱠ أﻧﻮاعِ اﻟﻤﺸﺎرﯾﻊِ اﻟﻤﺘﺎﺣﺔِ ـ ﺑﺨﻸفِ ﺗﻄﺒﯿﻘﺎت وﯾﻨﺪوز ـ ﻓﻲ ﻣﺮﺑﻊ ﺣﻮار "ﻣﺸﺮوع ﺟﺪﯾﺪ"‪ ،‬وھﻲ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬

‫‪Class Library :‬‬

‫وھﻲ ﻣﻜﻮّن أﺳﺎﺳﻲّ ﻟﺒﻨﺎء اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‪ ،‬ﻟﯿﺲ ﻟﮭﺎ واﺟﮭﺔ ﻣﺮﺋﯿّﺔ‪ ،‬وﻟﻜﻨّﮭﺎ ﺗﺆّدي وﻇﺎﺋﻒ ﻣﻌﯿّﻨﺔ ﻟﺒﺮﻧﺎﻣﺠﻚ‪.‬‬
‫وﺑﺎﺧﺘﺼﺎر‪ ،‬ﻓﺈنﱠ اﻟﺨﻠﯿّﺔ ھﻲ ﻣﺠﻤﻮﻋﺔٌ ﻣﻦ اﻟﺪوالّ واﻷﺟﺮاءات اﻟﺘﻲ ﯾﻤﻜﻦُ إﻋﺎدة اﺳﺘﺨﺪاﻣﮭﺎ ﻓﻲ أيّ ﻣﺸﺮوع‪ ،‬ﺑﺤﯿﺚُ ﯾﻮﻓّﺮ اﻟﻤﺒﺮﻣﺞُ‬
‫ﻋﻠﻲ ﻧﻔﺴِﮫ ﻣﺸﻘّﺔَ إﻋﺎدة ﻛﺘﺎﺑﺘﮭﺎ ﻣﺮة أﺧﺮي‪.‬‬

‫‪Windows control library :‬‬

‫إنّ أدة وﯾﻨﺪوز ـ أو اﻷداة ﻋﻠﻲ ﺳﺒﯿﻞ اﻷﺧﺘﺼﺎر ـ ھﻲ ﻋﻨﺼﺮ أﺳﺎﺳﻲﱞ ﻓﻲ واﺟﮭﺔ اﻟﺒﺮﻧﺎﻣﺞ‪ ،‬ﻣﺜﻞ ﻣﺮﺑﻊ اﻟﻨﺺ أو اﻟﺰر‪.‬‬
‫ﻓﺈذا ﻣﺎ وﺟﺪتَ أنﱠ اﻷدواتِ اﻟﺘﻲ ﯾﻤﻨﺤُﮭﺎ ﻟﻚ ‪ VB.NET‬ـ وھﻲ اﻟﺘﻲ ﺗﻈﮭﺮ ﻓﻲ ﻣﺮﺑﻊ اﻷدوات ﺗﻠﻘﺎﺋّﯿﺎ ـ ﻷ ﺗﻤﻨﺤُﻚَ اﻟﻮﻇﯿﻔﺔَ اﻟﺘﻲ‬
‫ﺗﺮﯾﺪُھﺎ‪ ،‬ﻓﻔﻲ ھﺬه اﻟﺤﺎﻟﺔِ ﯾﻤﻜﻨُﻚَ أن ﺗﺒﻨﻲَ اﻷدواتِ اﻟﺨﺎﺻّﺔَ ﺑﻚ‪ ..‬إنﱠ ھﺬا ﯾﺒﺴّﻂُ ﻋﻤﻠَﻚَ ﻓﯿﻤﺎ ﺑﻌﺪ‪ ،‬ﺣﯿﺚُ ﻟﻦ ﺗُﻀﯿﻊَ اﻟﻤﺰﯾﺪَ ﻣﻦ اﻟﻮﻗﺖِ‬
‫واﻟﺠﮭﺪِ ﻓﻲ ﺗﺼﻤﯿﻢِ أﺟﺰاءٍ ﻣﻦ واﺟﮭﺎتٍ ﺗﺘﻜﺮّرُ ﻛﺜﯿﺮًا‪.‬‬
‫ﺑﻞ ﯾﺼﻞُ ﺑﻚ اﻷﻣﺮ ـ ﻟﻮ ﻛﻨﺖَ ﺧﺒﯿﺮًا ﻓﻲ ﺗﺼﻤﯿﻢِ اﻷدواتِ اﻟﺨﺎﺻّﺔ‪ ،‬إﻟﻲ أﻧّﻚ ﺗﺴﺘﻄﯿﻊُ ﺑﯿﻌَﮭﺎ ﻟﻠﺸﺮﻛﺎتِ واﻟﻤﺒﺮﻣﺠﯿﻦَ اﻷﺧﺮﯾﻦ‪ ..‬إنﱠ‬
‫ﺻﻔﺤﺎتِ ﻣﺠﻸتِ اﻟﻜﻤﺒﯿﻮﺗﺮ ﺗﺰﺧﺮُ ﺑﺎﻷﻋﻼﻧﺎتِ ﻟﻠﻌﺪﯾﺪِ ﻣﻦ اﻷدواتِ اﻟﺨﺎﺻّﺔِ اﻟﻤﺘﻄﻮّرة‪ ،‬اﻟﺘﻲ ﺗُﻜﻤﻞُ ﻋﻤﻞَ اﻷدواتِ اﻷﺻﻠﯿّﺔ‪.‬‬

‫‪Windows service : ‬‬

‫وھﻮ اﻷﺳﻢ اﻟﺠﺪﯾﺪ ﻟـ ‪ Services NT‬اﻟﻘﺪﯾﻤﺔ‪ ..‬وھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﺸﺎرﯾﻊ‪ ،‬ﻣﺎ ھﻮ إﻷ ﺑﺮاﻣﺞ ﻃﻮﯾﻠﺔ اﻟﺘﺸﻐﯿﻞ ﺗﻌﻤﻞ ﻓﻲ ﺧﻠﻔﯿﺔ ﻧﻈﺎم‬
‫اﻟﺘﺸﻐﯿﻞ‪ ،‬دون أن ﺗﻌﺮض واﺟﮭﺔً ﻣﺮﺋﯿﺔ‪ ..‬وﯾﻤﻜﻦ ﻟﮭﺬه اﻟﺨﺪﻣﺎت أن ﺗﻌﻤﻞَ ﺗﻠﻘﺎﺋﯿ‪‬ﺎ ﺑﻤﺠﺮد ﺗﺸﻐﯿﻞ اﻟﺠﮭﺎز‪ ،‬ﻛﻤﺎ ﯾﻤﻜﻦ إﯾﻘﺎﻓﮭﺎ ﻟﻔﺘﺮةٍ ﺛﻢ‬
‫إﻋﺎدة ﺗﺸﻐﯿﻠﮭﺎ‪.‬‬
‫إن اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﺘﻔﺎﻋﻞ اﻟﻤﻠﻔﺎت ﻋﻠﻲ اﻟﺠﮭﺎز وﯾﻐﯿﺮھﺎ‪ ،‬ھﻮ ﻣﺮﺷﺢ رﺋﯿﺴﻲّ ﻷن ﯾﻜﻮن ﺧﺪﻣﺔ وﯾﻨﺪوز‪ ،‬ﺣﯿﺚ ﯾﻤﻜﻦ ﻟﮭﺬه اﻟﺨﺪﻣﺔ أن‬
‫ﺗﺆدي ﺑﻌﺾ اﻟﻌﻤﻠﯿﺎت‪ ،‬ﻓﻮر أن ﯾﻨﻘﻞ اﻟﻤﺴﺘﺨﺪم ﺑﻌﺾ اﻟﻤﻠﻔﺎت إﻟﻲ ﻣﺠﻠﺪ ﻣﻌﯿﻦ‪ ،‬ﻛﺄن ﺗﻨﺴﺦ اﻟﻤﻠﻔﺎتِ أو ﺗﻘﺮأ ﻣﺤﺘﻮﯾﺎﺗﮭﺎ‪ ،‬أو ﺗﺤﺪّث‬
‫ﻣﺤﺘﻮﯾﺎت ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪...‬وھﻜﺬا‪.‬‬

‫‪Console application :‬‬

‫وھﻮ ﺗﻄﺒﯿﻖٌ ذو واﺟﮭﺔِ اﺳﺘﺨﺪامٍ ﻣﺤﺪودة ﺟﺪًا‪ ،‬ھﻲ أﻗﺮبُ ﻣﺎ ﺗﻜﻮنُ ﻟﺸﺎﺷﺔِ اﻟﺪوس ‪ DOS‬اﻟﺴﻮداء‪ ،‬ﺣﯿﺚُ ﯾﺘﻢﱡ ﻓﯿﮭﺎ إﺧﺮاجُ اﻟﻨﻮاﺗﺞِ‬
‫وإدﺧﺎلُ اﻟﺒﯿﺎﻧﺎت‪ ،‬ﻋﻠﻲ ﺳﺒﯿﻞ اﺧﺘﺒﺎرھﺎ‪.‬‬

‫‪ASP.NET Web Application :‬‬

‫إن ﺗﻄﯿﺒﻖ اﻹﻧﺘﺮﻧﺖ ھﻮ واﺣﺪ ﻣﻦ أﻛﺜﺮ اﻟﺴﻤﺎت اﻟﺠﺪﯾﺪة ﻓﻲ ‪ VS.NET‬إﺛﺎرةً‪ ،‬وھﻮ ﻋﺒﺎرة ﻋﻦ ﺑﺮﻧﺎﻣﺞ ﯾﻤﻜﻦ ﺗﺸﻐﯿﻠﮫ ﻋﻠﻲ ﺷﺒﻜﺎت‬
‫اﻹﻧﺘﺮﻧﺖ‪ ،‬ﯾﻤﻜﻦ ﻃﻠﺐ ﺧﺪﻣﺎت ﻣﻌﯿﻨﺔ ﻣﻨﮫ ﻋﻦ ﻃﺮﯾﻖ ﻣﺘﺼﻔﺤﺎت اﻟﺸﺒﻜﺔ‪ ..‬وأوﺿﺢ ﻣﺜﺎل ﻟﺬﻟﻚ‪ ،‬ھﻮ ﻣﺤﻞ ﻛﺘﺐٍ ﯾﻌﺮض وﯾﺒﯿﻊ ﻋﻠﻲ‬
‫اﻹﻧﺘﺮﻧﺖ‪.‬‬
‫وﯾﺠﺐ ﻋﻠﻲ اﻟﺘﻄﺒﯿﻖ اﻟﺬي ﯾﻌﻤﻞ ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ أن ﯾﺴﺘﻘﺒﻞ ﻃﻠﺒﺎت اﻟﻌﻤﻸء‪ ،‬وﯾﺮدّ ﻋﻠﯿﮭﺎ ﻓﻲ ﺻﻮرة ﺻﻔﺤﺔ ﻣﻦ ﺻﻔﺤﺎت اﻹﻧﺘﺮﻧﺖ‬
‫‪HTML.‬‬
‫وﻣﺜﻞ ھﺬه اﻟﺘﻄﺒﯿﻘﺎت ﻟﯿﺴﺖ ﺑﺠﺪﯾﺪة‪ ،‬وﻟﻜﻦ اﻟﺠﺪﯾﺪ ھﻮ أن ‪ ASP.NET‬ﺻﺎر ﯾﻌﺰل اﻟﻤﺒﺮﻣﺞ ﻋﻦ ﻛﺜﯿﺮٍ ﻣﻦ ﺗﻔﺎﺻﯿﻞ ﺑﻨﺎﺋﮭﺎ‪ ،‬ﻣﺎﻧﺤًﺎ‬
‫اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺴﮭﻮﻟﺔ واﻟﺴﺮﻋﺔ‪ ،‬وﻣﺤﻮﻷ اﻟﻌﻤﻠﯿﺔ إﻟﻲ ﻣﺎ ﯾﺸﺒﮫ ﻛﺜﯿﺮا ﺑﻨﺎء ﺗﻄﺒﯿﻘﺎت وﯾﻨﺪوز اﻟﺘﻘﻠﯿﺪﯾﺔ‪.‬‬
‫وﺳﻨﻨﺎﻗﺶ ﺑﺎﻟﺘﻔﺼﯿﻞ ﺧﺪﻣﺎت وﺗﻄﺒﯿﻘﺎت اﻹﻧﺘﺮﻧﺖ ﻓﻲ آﺧﺮ ﺟﺰء ﻣﻦ ھﺬا اﻟﻜﺘﺎب إن ﺷﺎء اﷲ‪.‬‬

‫‪ASP.NET Web Service:‬‬

‫وھﻲ ﻷ ﺗﻜﺎﻓﺊ ﺑﺤﺎلٍ ﺧﺪﻣﺎت وﯾﻨﺪوز‪ ،‬ﺑﻞ ھﻲ ﻋﺒﺎرةٌ ﻋﻦ ﺑﺮﻧﺎﻣﺞٌ ﯾﻌﻤﻞُ ﻋﻠﻲ ﺧﻮادم اﻹﻧﺘﺮﻧﺖ ‪ Internet Servers‬ﻷﺳﺘﻘﺒﺎل‬
‫اﻟﻄﻠﺒﺎت‪ ،‬ﺗﻤﺎﻣًﺎ ﻣﺜﻞ ﺗﻄﺒﯿﻖ اﻹﻧﺘﺮﻧﺖ‪ ،‬وﻟﻜﻦ دونَ أن ﯾﺮد ﺑﺼﻔﺤﺔٍ ﻣﻦ ﺻﻔﺤﺎت اﻹﻧﺘﺮﻧﺖ‪ ،‬ﺑﻞ ﯾﺮﺳﻞ ﻧﺎﺗﺞَ اﻟﻌﻤﻠﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ‪ ،‬أو‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻣﻦ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎتٍ ﻣﺎ‪ ،‬وﻋﺎدةً ﻣﺎ ﺗُﻄﻠﺐ ھﺬه اﻟﺨﺪﻣﺎت ﻣﻦ ﻗﺒﻞ ﺧﺎدم إﻧﺘﺮﻧﺖ آﺧﺮ‪ ،‬ﺣﯿﺚ ﺳﯿﺘﻮﻟّﻲ ھﻮ اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬
‫اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫وﻟﺘﻮﺿﯿﺢ اﻟﻔﺎرق ﻧﻀﺮبُ ھﺬا اﻟﻤﺜﺎل‪:‬‬

‫إن ﺗﻄﺒﯿﻖ اﻹﻧﺘﺮﻧﺖ اﻟﺬي ﯾﺘﻠﻘﻲ ﻣﻨﻚ اﺳﺘﻌﻼﻣﺎ ﻋﻦ ﻛﻞ ﻛﺘﺐ )ﺗﻮﻓﯿﻖ اﻟﺤﻜﯿﻢ( ﺳﯿﻌﺮض ﻟﻚ ﺻﻔﺤﺔً ﻋﻠﯿﮭﺎ أﺳﻤﺎء ھﺬه اﻟﻜﺘﺐ‪ ..‬أﻣﺎ‬
‫ﺧﺪﻣﺔ اﻹﻧﺘﺮﻧﺖ اﻟﺘﻲ ﺗﺘﻠﻘﻲ ﻣﻨﻚ ﻧﻔﺲ ھﺬا اﻷﺳﺘﻌﻼم‪ ،‬ﻓﺴﺘﺮﺳﻞ إﻟﯿﻚ ﻣﻠﻒ ‪ XML‬ﯾﺤﺘﻮي ﻋﻠﻲ أﺳﻤﺎء اﻟﻜﺘﺐ اﻟﻤﻄﻠﻮﺑﺔ‪ ،‬ﺣﯿﺚُ ﯾﻤﻜﻦ‬
‫ﻟﺘﻄﺒﯿﻘﻚ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔِ أن ﯾﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت وﯾﻌﺮﺿﮭﺎ ﻓﻲ ﺻﻔﺤﺔٍ ﺟﺪﯾﺪةٍ ﺑﺎﻟﺸﻜﻞ اﻟﺬي ﺗﺮﯾﺪه‪ ،‬وﯾﺮﺳﻠﮭﺎ ﻟﻠﻤﺴﺘﺨﺪم اﻟﺬي ﺗﺮﯾﺪه‪،‬‬
‫أو رﺑﻤﺎ ﺗﻌﺮﺿﮭﺎ ﻋﻠﻲ ﻧﻤﻮذج وﯾﻨﺪوز ﻋﺎديّ‪.‬‬

‫‪Web Control library: ‬‬

‫ﻛﻤﺎ أﻧﻚ ﺗﺴﺘﻄﯿﻊ أن ﺗﺒﻨﻲ أدوات اﻟﻮﯾﻨﺪوز اﻟﺨﺎﺻﺔ ﺑﻚ ﻟﺘﺴﺘﺨﺪﻣﮭﺎ ﻋﻠﻲ ﻧﻤﺎذج وﯾﻨﺪوز‪ ،‬ﺗﺴﺘﻄﯿﻊ أﯾﻀًﺎ أن ﺗﺒﻨﻲ أدوات اﻹﻧﺘﺮﻧﺖ‬
‫اﻟﺨﺎﺻﺔ ﻟﺘﺴﺘﺨﺪﻣﮭﺎ ﻋﻠﻲ ﻧﻤﺎذج وﺻﻔﺤﺎت اﻹﻧﺘﺮﻧﺖ‪.‬‬

‫‪: ‬‬

‫أﻣﺎ اﻟﻘﻮاﻟﺐُ اﻟﺜﻸﺛﺔ اﻟﻤﺘﺒﻘﯿﺔ ﻓﻲ ﻣﺮﺑﻊ ﺣﻮار "ﻣﺸﺮوع ﺟﺪﯾﺪ"‪ ،‬ﻓﮭﻲ‪:‬‬

‫ﻣﺸﺮوع ﻓﺎرغ‪Empty Project .‬‬ ‫‪-١‬‬

‫ﻣﺸﺮوع إﻧﺘﺮﻧﺖ ﻓﺎرغ‪Empty Web Project .‬‬ ‫‪-٢‬‬

‫ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻲ ﻣﺠﻠﺪ ﻣﻮﺟﻮد‪New Project In Existing Folder .‬‬ ‫‪-٣‬‬

‫وھﻲ ﻟﯿﺴﺖ أﻧﻮاع ﻣﺸﺎرﯾﻊ ﺑﺎﻟﻤﻌﻨﻲ اﻟﻔﻌﻠﻲّ‪ ،‬ﺑﻞ ﻣﺠﺮد ﻃﺮﯾﻘﺔ ﻟﺘﻨﻈﻢ ﻣﺸﺎرﯾﻌﻚ اﻟﺠﺪﯾﺪة ﺑﻨﻔﺴﻚ‪ ،‬ﻓﺤﯿﻦ ﺗﺨﺘﺎرُ واﺣﺪا ﻣﻨﮭﺎ‪ ،‬ﯾﻨﺸﺊ‬
‫‪VS.NET‬ﻣﺠﻠﺪا ﺟﺪﯾﺪا ﯾﺤﻤﻞ اﺳﻢ اﻟﻤﺸﺮوع‪ ،‬وﯾﻨﺸﺊ ﻓﯿﮫ ﺑﻌﺾ اﻟﻤﻠﻔﺎت اﻟﻘﻠﯿﻠﺔ اﻟﺘﻲ ﯾﺤﺘﺎﺟﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ھﺬا اﻟﻨﻮع‪ ..‬وﻋﻠﻲ‬
‫ﻋﻜﺲ اﻷﻧﻮاع اﻷوﻟﻲ ـ ﺣﯿﺚ ﺗﻘﻮمُ ‪ VS.NET‬ﺑﺈﻧﺸﺎء ﻋﻨﺎﺻﺮ اﻓﺘﺮاﺿﯿّﺔٍ واﻟﻤﻠﻔﺎتِ اﻟﻼزم ة ﻟﮭﺎ‪ ،‬ﻛﺈﻧﺸﺎء ﻧﻤﻮذج ﻣﺒﺪﺋﻲ ﻓﻲ ﺗﻄﺒﯿﻖ‬
‫وﯾﻨﺪوز‪ ،‬وإﻧﺸﺎء أداة اﻟﻤﺴﺘﺨﺪم ﻓﻲ ﺗﻄﺒﯿﻘﺎت أدوات وﯾﻨﺪوز ـ ﺗﺤﻤّﻠﻚ ھﺬه اﻷﻧﻮاع اﻟﺜﻸﺛﺔ ﻣﺴﺌﻮﻟﯿﺔ إﻧﺸﺎء وإﺿﺎﻓﺔ ﻣﺎ ﯾﻠﺰﻣﻚ ﻣﻦ‬
‫اﻟﻌﻨﺎﺻﺮ واﻟﻤﻠﻔﺎت‪.‬‬

‫ﺣﺪدﻧﺎه وﻓﻲ اﻷﺳﻔﻞ اﻟﻨﺎﻓﺬة اﺳﻢ اﻟﻤﺸﺮوع و ﯾﻤﻜﻦ ان ﻧﻐﯿﺮة إﻟﻲ اﻷﺳﻢ اﻟﻠﺬي ﻧﺮﯾﺪة ﻧﺨﺘﺎر اﻷن اﺣﺪ ﺗﻄﺒﻘﺎت‬
‫‪ VISUAL BASIC.NET‬وﺳﻨﺨﺘﺎر ﻣﻦ ھﺬة اﻟﻨﺎﻓﺬة ‪WINDOWS APPLICATION‬‬
‫ﺛﻢ ﻧﻀﻐﻂ ﻣﻮاﻓﻖ ﺳﻮف ﺗﻈﮭﺮ ﻟﻨﺎ ﻗﻮاﺋﻢ وادوات وﻧﻮاﻓﺬ ﻟﻐﺔ ‪ VISUAL BASIC.NET‬ھﻜﺬا‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻷﻇﮭﺎر ﻗﻮاﺋﻢ اﻟﺨﺼﺎﺋﺺ أو اﻷدوات ﻧﻘﻮم ﺑﻮﺿﻊ اﻟﻤﺆﺷﺮ ﻋﻠﻲ اﺳﻤﺎء اﻟﻘﻮاﺋﻢ اﻟﻤﻮﺟﻮدةﻷﻇﮭﺎر ﻧﺎﻓﺬة اﻷدوات ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪View‬‬
‫واﺧﺘﺮ ‪ ToolBox‬أو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ‪ Ctrl+Alt+X‬واذا ﻇﮭﺮت اﻟﻨﺎﻓﺬة ﺑﺸﻜﻞ ﻣﻨﻄﻮي ﺗﺤﺖ اﺣﺪ ﺟﻮاﻧﺐ ﻧﺎﻓﺬة اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮﻣﺎ‬
‫ﻋﻠﯿﻨﺎ اﻷ اﻟﻀﻐﻂ ﻋﻠﻲ اﻟﺰر اﻷوﺳﻂ اﻟﻤﻮﺟﻮد ﻓﻲ اﻋﻠﻲ أي ﻧﺎﻓﺬة اﻟﺬي ﺑﮭﺬا اﻟﺸﻜﻞ‬

‫وﺑﻌﺪ ﺗﺜﺒﯿﺖ ﻗﺎﺋﻤﺔ اﻷدوات ﺳﯿﻈﮭﺮ ﺷﻜﻞ اﻟﻮاﺟﮭﮫ ھﻜﺬا‬

‫واﻷن ﻣﺎذا ﻷﺣﻈﻨﺎ ﺑﺎﻟﺼﻮرة ﻧﺎﻓﺬة اﻟﻤﺸﺮوع اﻷﺳﺎﺳﯿﺔ ﺑﺎﻟﻮﺳﻂ ﻇﺎھﺮأ ﺑﮭﺎ ﻓﻮرم اﺳﻤﺔ اﻟﺘﻠﻘﺎﺋﻲ‪Form1‬‬

‫وﻓﻲ اﻟﺠﮭﮫ إﻟﯿﺴﺮي ﺗﻈﮭﺮ ﻗﺎﺋﻤﺔ اﻷدوات وﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻲ ﻛﻞ اداة ﻣﻮﺟﻮدة ﺑﮭﺎ ﻓﻲ اﻟﺪروس اﻟﻘﺎدﻣﺔ‬

‫وﯾﻈﮭﺮ ﺑﺎﻟﺠﮭﮫ اﻟﯿﻤﻨﻲ ﻧﺎﻓﺬة ‪ Solution Explorer‬واﺳﻔﻞ ﻣﻨﮭﺎ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ‪Properties‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﻟﻜﻦ ﻣﺎ ھﻮ اﻟﻔﺮق ﺑﯿﻦ ‪ ) Solution‬اﻟﻤﺸﺮوع ( وال ) ‪ Project‬اﻟﺘﻄﺒﯿﻖ( ؟‬

‫‪ Project‬أو اﻟﺘﻄﺒﯿﻖ‪:‬‬

‫ھﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺤﺘﻮي ﻟﻠﻤﻜﻮﻧﺎت اﻟﺨﺎﺻﺔ ﺑﺘﻄﺒﯿﻖ ﻣﺎ ﻣﺜﻞ اﻟﻨﻤﺎذج ‪ Forms‬وﻛﻞ اﻷﻛﻮاد اﻟﺒﺮﻣﺠﯿﺔ‬

‫ﻛﻞ ‪ Modules‬أو ‪Classes‬‬

‫وﻣﻊ ﺑﺪاﯾﺔ ﻇﮭﻮر ﻟﻐﺔ ‪ Vb.Net‬ﻇﮭﺮ ﻣﺎ ﯾﺴﻤﻲ) ‪ Solution‬اﻟﻤﺸﺮوع( وﻓﺎﺋﺪﺗﮫ ﺗﻨﻈﯿﻤﯿﺔ ﻟﻠـ ‪Projects‬‬

‫وﯾﻌﺘﺒﺮ اﻟـ ‪ Solution‬ﻣﺴﺎﺣﺔ اﻟﻌﻤﻞ اﻟﺨﺎﺻﺔ ﺑﺎﻟﺪوت ﻧﺖ ﻓﻤﻦ اﻟﻤﻤﻜﻦ ان ﯾﺤﺘﻮي ﻋﻠﻲ اﻛﺜﺮ‬

‫ﻣﻦ ﺗﻄﺒﯿﻖ ‪ Project‬ﺑﺪاﺧﻠﺔ وﺗﺴﺘﻄﯿﻊ اﯾﻀﺎ اﺿﺎﻓﺔ ﻣﻜﻮﻧﺎت ﺧﺎرﺟﺔ ﻋﻦ أﻃﺎر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ إﻟﻲ ‪ Solution‬أي ﺣﺘﻲ وﻟﻮ ﻟﻢ‬
‫ﺗﺘﻌﻠﻖ ﺑﺎﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﻄﺒﯿﻖ ﻛﻤﻠﻒ وورد أو ﺻﻮرة أو ﻣﻠﻒ ﺻﻮﺗﻲ وﺑﺎﻟﺘﺎﻟﻲ ﺗﺴﺘﻄﯿﻊ اﺳﺘﺨﺪاﻣﮭﺎ داﺧﻞ ﺗﻄﺒﯿﻖ اﻟﺪوت ﻧﺖ ﺗﻮﺟﺪ‬
‫اﻟﻨﺎﻓﺬة ‪ Solution Explorer‬ﻓﻲ اﻟﺠﮭﺔ اﻟﯿﻤﻨﻲ ُﻛﻤﺎ ﯾﻤﻜﻦ اﻇﮭﺎرھﺎ ﻣﻦ ﻗﺎﺋﻤﺔ ‪ View‬أو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ ‪ Ctrl+Alt+L‬وﺗﻌﻤﻞ ﻋﻠﻲ‬
‫ﻋﺮض ﻋﻨﺎﺻﺮ وﻣﻜﻮﻧﺎت اﻟﺘﻄﺒﯿﻖ ﻋﻠﻲ ھﯿﺌﺔ ﻗﺎﺋﻤﺔ ﺷﺠﺮﯾﺔ ﻓﻲ اﻋﻠﻲ اﻟﻘﺎﺋﻤﺔ ﯾﻈﮭﺮ اﺳﻢ اﻟﺘﻄﺒﯿﻖ اﻟﺤﺎﻟﻲ وﯾﻠﯿﮫ ﺑﻘﯿﺔ ﻣﻜﻮﻧﺎت‬
‫اﻟﺘﻄﺒﯿﻖ‬

‫وﻧﺴﺘﻄﯿﻊ اﺿﺎﻓﺔ ﻋﻨﺎﺻﺮ إﻟﻲ اﻟﺘﻄﺒﯿﻖ اﻟﺤﺎﻟﻲ ﻣﻦ ﺧﻼل اﻟﻨﺎﻓﺬة ‪ Solution Explorer‬وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ اﺳﻢ اﻟﻤﺸﺮوع ﺑﺰر‬
‫اﻟﻤﺄوس اﻷﯾﻤﻦ ﺛﻢ ‪ Add‬وﻣﻨﺔ ﻧﺨﺘﺎر ‪New Item‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻲ ‪ New Item‬ﺳﻮف ﺗﻈﮭﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ‪Add New Item‬‬

‫وﺑﮭﺎ اﻟﻌﺪﯾﺪ ﻣﻦ ﺗﻄﺒﯿﻘﺎت ‪ VISUAL STDIO.NET‬ﻧﺨﺘﺎر ﻣﻨﮭﺎ ﻣﺎ ﻧﺮﯾﺪ اﺿﺎﻓﺘﺔ إﻟﻲ ﺗﻄﺒﻘﻨﺎ اﻟﺤﺎﻟﻲ‬

‫‪ Windows Form‬وھﻨﺎ ﻣﺜﻼ ﺳﻮف ﻧﺨﺘﺎر‬

‫ﻗﻢ ﺑﺎﻟﺘﺎﺷﯿﺮ ﻋﻠﯿﺔ وﯾﻤﻜﻨﻨﺎ ﺗﻐﯿﯿﺮ اﺳﻢ اﻟﺘﻄﺒﯿﻖ ﻗﺒﻞ اﺿﺎﻓﺘﺔ ﻣﻦ اﺳﻔﻞ ﻧﺎﻓﺬة ‪ Add New Item‬أو ﻧﺘﺮﻛﺔ ﻛﻤﺎ ھﻮ ﺛﻢ ﻧﻀﻐﻂ ﻋﻠﻲ اﻟﺰر‬
‫‪Add‬ﻓﻨﻸﺣﻆ اﺿﺎﻓﺔ ‪ Form‬اﺧﺮي إﻟﻲ اﻟﺘﻄﺒﯿﻖ ﺗﺎﺧﺬ اﻷﺳﻢ ‪ Form ٢‬وﺗﻈﮭﺮ ﻓﻲ ﻗﺎﺋﻤﺔ ‪Solution Explorer‬‬

‫ﻛﻤﺎ ﺑﺎﻟﺼﻮرة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪١‬‬
‫‪Menu‬‬ ‫‪‬‬
‫‪Menus With Visual Basic.Net 2005‬‬

‫إﻟﯿﻮم ﺳﻮف ﻧﻘﻮم ﺑﺎﻟﺘﻌﺮف ﻋﻠﻲ ﻗﻮاﺋﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪٢٠٠٥‬ﺗﺘﻜﻮن ﻗﻮاﺋﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﻣﻦ ازرار ﻋﺪﯾﺪة‬
‫ﻟﮭﺎ ﻣﮭﺎم ﻣﺨﺘﻠﻔﺔ واﻷزرارﻣﻮﺿﻮﻋﺔ ﻋﻠﻲ اﻟﻘﻮاﺋﻢ اﻟﻤﺨﺼﺼﺔ ﻟﻤﮭﺎﻣﮭﺎ وﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻲ ﻋﻤﻞ ﻣﻌﻈﻢ ازرارھﺬة اﻟﻘﻮاﺋﻢ أو ﺑﻘﻮل‬
‫اﺧﺮ ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻲ اھﻢ ازرار ﻗﻮاﺋﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺘﻮذﻟﻚ ﻟﻠﺘﻌﺎﻣﻞ ﺑﺴﮭﻮﻟﺔ ﻣﻊ واﺟﮭﺔ اﻟﻔﯿﺠﻮل ﺑﯿﺴﻚ ﻛﺬﻟﻚ ﻟﻤﻌﺮﻓﺔ‬
‫ﻗﺪرات ھﺬة اﻟﻠﻐﺔ اﻟﻘﻮﯾﺔ ﻗﺪ ﺗﻸﺣﻈﻮن ﻓﻲ ﺻﻮر اﻟﺸﺮح اﻟﺘﻲ وﺿﻌﺘﮭﺎ ﺑﮭﺬا اﻟﺪرس اﺧﺘﻼف ﺑﯿﻦ ﻗﻮاﺋﻢ ﻛﻢ وھﺬة اﻟﻘﻮاﺋﻢ اﺧﺘﻼف‬
‫ﺗﺮﺗﯿﺐ اﻷزرار أو وﺟﻮد ازرار اﻛﺜﺮ ﺑﻘﻮاﺋﻢ ﺑﻼ ﺗﺨﺎﻓﻮا ﯾﻤﻜﻨﻨﺎ ﺗﻌﺪﯾﻞ ﻗﻮاﺋﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﻣﻦ ﺣﺬف واﺿﺎﻓﺔ وﺗﺮﺗﯿﺐ‬
‫اﻷزرار ﺑﻤﺎ ﯾﻨﺎﺳﺐ ﻣﺘﻄﻠﺒﺎﺗﻨﺎ واﺣﺘﯿﺎﺟﺘﻨﺎ وذﻟﻚ ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Tools‬ﻗﻢ ﺑﺎﺧﺘﯿﺎر ‪ Customize‬ﺳﺘﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة ﻗﻢ ﺑﺎﺧﺘﯿﺎر اﻟﺘﺒﻮﯾﺐ‬
‫اﻟﺜﺎﻧﻲ وﺳﺘﻈﮭﺮ ﻟﻚ ﻛﻞ ﻗﻮﺋﻢ اﻟﻔﯿﺠﻮل ﺑﺎﻟﺠﺎﻧﺐ اﻷﯾﺴﺮ وﺑﺎﻟﺠﺎﻧﺐ اﻷﯾﻤﻦ ﯾﻮﺟﺪ ازرار اﻟﻘﻮاﺋﻢ ﻗﻢ ﺑﺎﺧﺘﯿﺎر أي ﻗﺎﺋﻤﺔ ﺛﻢ ﻣﻦ وﻣﻦ‬
‫اﻟﺠﺎﻧﺐ اﻷﯾﻤﻦ ﻗﻢ ﺑﻌﻤﻠﯿﺔ اﻟﺴﺤﺐ واﻷﻓﻼت ﻟﻸزرار اﻟﺘﻲ ﺗﺮﯾﺪ إﻟﻲ اﻟﻘﻮاﺋﻢ اﻟﻠﺘﻲ ﺗﺮﯾﺪ وﻣﺘﻲ ﺗﻨﺘﮭﻲ ﻗﻢ ﺑﺈﻏﻼق اﻟﻨﺎﻓﺬة ‪Customize‬‬
‫وﻟﻘﺪ ﻗﻤﺖ ﺑﺘﻘﺴﯿﻢ ھﺬا اﻟﺪرس إﻟﻲ ﺟﺰﺋﯿﻦ واﻷن ﻓﺎﻟﻨﺒﺪا ﻣﻊ اﻟﺠﺰء اﻷول وﻣﻊ أوﻟﻲ اﻟﻘﻮاﺋﻢ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻧﺖ‬

‫]‪[File‬‬

‫وﺗﺘﻜﻮن ﻣﻦ ازرار اﻷواﻣﺮ اﻟﺘﻲ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻧﺸﺎء وﻓﺘﺢ وﺣﻔﻆ وإﻏﻼق ﻛﻸ ﻣﻦ اﻟﻤﻠﻔﺎت واﻟﻤﺸﺎرﯾﻊ‬

‫‪1‬‬
‫‪ -‬ﺑﻮاﺳﻄﺔ اﻟﻤﺨﻠﺐ اﻟﺠﺎرح ‪ ،‬دورة ﺗﻌﻠﯿﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺑﺄﺳﮭﻞ اﻟﻄﺮق " ‪ ،‬ﻣﻨﺘﺪى ﻓﯿﺠﻮال ﺑﯿﺴﻚ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ٣٣ E_Mail: Mohamed.yoyo@gmail.com
‫]‪[Edit‬‬

‫ﺗﺤﺘﻮي ھﺬة اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ اﻷزرار اﻟﻘﯿﺎﺳﯿﺔ اﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﻲ اﻷﻟﻐﺎء واﻟﺘﺮاﺟﻊ واﻟﻨﺴﺦ واﻟﻘﺺ واﻟﻠﺼﻖ‬
‫واﻟﺤﺬف وﺗﺘﻌﺎﻣﻞ ﻣﻊ‪text and other objects.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫]‪[View‬‬

‫ﺗﺘﻜﻮن ﻣﻦ اﻷزرار ﺗﻠﻚ اﻟﺘﻲ ﺗﻘﻮم ﺑﺎﺧﻔﺎء واﻇﮭﺎر ﻛﻞ ﻧﻮاﻓﺬ واﺷﺮﻃﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‬

‫]‪[Project‬‬
‫ﺗﺘﻜﻮن ﻣﻦ اﻷزرار اﻟﺘﻲ ﺗﻘﻮم ﺑﺎﺿﺎﻓﺔ وﺣﺬف اﻟﻌﻨﺎﺻﺮ ﻣﻦ وإﻟﻲ اﻟﻤﺸﺮوع‬
‫وھﺬة اﻟﻘﺎﺋﻤﺔ ﻧﺴﺘﻄﯿﻊ اﻟﻘﯿﺎم ﺑﺒﻌﺾ أواﻣﺮ ازرارھﺎ ﻣﻦ اﻟﻨﺎﻓﺬة‬
‫‪Explorer Solutions‬‬

‫واﻟﺨﯿﺎر اﻷﺧﯿﺮ ﺑﺎﻟﻨﺎﻓﺬة ﻛﻤﺎ ﻋﺮﻓﻨﺎ ھﻮ ﻟﻌﺮض ﻧﺎﻓﺬة ﺧﺼﺎﺋﺺ اﻟﻤﺸﺮوع‬


‫واﻷن ﺳﻮف ﻧﺴﺘﻌﺮض اھﻢ ﺧﺼﺎﺋﺺ اﻟﻤﺸﺮوع‬
‫اﻟﺘﺒﻮﯾﺐ ‪Appliction‬‬
‫وﻣﻨﺔ ﯾﺘﻢ ﺗﺤﺪد ﻧﻮع اﻟﻤﺸﺮوع وﺑﯿﺎﻧﺎﺗﺔ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ٣٦ E_Mail: Mohamed.yoyo@gmail.com
‫‪ Compile‬اﻟﺘﺒﻮﯾﺐ‬

‫ﺗﺤﺪﯾﺪ ﺷﻜﻞ اﻟﻤﻌﺎﻟﺠﺔ وﻣﻨﺔ ﯾﺘﻢ‬

‫ﻣﻔﻌﻞ ﻓﺎﻧﺔ ﯾﻠﺰﻣﻚ ﺑﺎﻷﻋﻼن ﻋﻦ ﻛﻞ اﻟﻤﺘﻐﯿﺮات ﺑﺎﻟﻤﺸﺮوع وﯾﻔﻀﻞ ذﻟﻚ اذا ﻛﺎن ھﺬا اﻟﺨﯿﺎر ‪1- Option Explicit‬‬

‫اذا ﻛﺎن ھﺬا اﻟﺨﯿﺎر ﻣﻔﻌﻞ ﻓﺎﻧﺔ ﯾﻠﺰﻣﻚ ‪2 - Option strict‬‬


‫ﻧﻮع ﻣﺤﺪد ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﺑﯿﺎﻧﺎت ﻣﻦ ﻧﻔﺲ اﻟﻨﻮع اي ﻟﻮ ﻛﺎن ﻟﺪﯾﻨﺎ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ اﻋﻄﺎء أي‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪Dim i As Integer‬‬
‫‪Dim s As String‬‬
‫"‪s = "10‬‬
‫‪i = s ' This Fails.‬‬
‫"‪s = "Hello‬‬
‫‪i = s ' This Fails.‬‬
‫وﻟﻮ ﻛﺎن اﻟﺨﯿﺎر ﻏﯿﺮ ﻣﻔﻌﻞ ﻓﺎﻧﺔ ﯾﻘﻮم ﺑﺘﺤﻮﯾﻞ اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﻤﺴﻨﺪة إﻟﻲ اﻟﻨﻮع اﻟﻤﺮاد اذا ﻛﺎﻧﺖ ﻣﻨﺎﺳﻘﺔ ﻓﻘﻂ ﻣﺜﻼ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪Dim i As Integer‬‬
‫‪Dim s As String‬‬
‫"‪s = "10‬‬
‫‪i = s ' This works.‬‬
‫"‪s = "Hello‬‬
‫‪i = s ' This Fails.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﯾﻔﻀﻞ ﺟﻌﻞ ھﺬا اﻟﺨﯿﺎر ﻣﻔﻌﻞ ﻟﺠﻌﻞ اﻟﻤﻌﺎﻟﺠﺔ اﺳﺮﻋﻮﺗﺤﻮﯾﻞ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﺘﺨﺪام اﻟﺪوال اﻓﻀﻞ و ﻟﺠﻌﻞ ھﺬة اﻟﺨﯿﺎرات ﻣﻔﻌﻠﺔ‬
‫ﻟﻜﻞ ﻣﺸﺎرﯾﻌﻚ اذھﺐ إﻟﻲ اﻟﻘﺎﺋﻤﺔ ‪ Tools‬وﻣﻨﮭﺎ اﺧﺘﺮ‪ option‬وﻗﻢ ﺑﺎﺧﺘﯿﺎر ‪ Project and solution‬ﻣﻦ ﻗﺎﺋﻤﺔ اﻟﻌﺮض اﻟﺸﺠﺮي‬
‫وﻣﻨﺔ اﺧﺘﺮ ‪ VB Defaults‬وﻗﻢ ﺑﺘﻔﻌﯿﻞ اﻟﺨﯿﺎران وﺛﻢ اﺿﻐﻂ‪ok‬‬

‫‪Option compare‬ھﺬا اﻟﺨﯿﺎر ﯾﺤﺪي ﺑﺎ‪Binary or Text‬‬


‫وذﻟﻚ ﻟﺘﺤﺪﯾﺪ ﻧﻤﻂ ﻣﻌﺎﻟﺠﺔ اﻟﻨﺼﻮص اﻋﺘﻤﺎد ﻋﻠﻲ اﻟﺒﻨﺮي أو ﻋﻠﻲ ﺗﺤﺴﺲ ﺣﺎﻟﺔ اﻷﺣﺮف‬
‫وﯾﻔﻀﻞ ﺟﻌﻞ ﺧﯿﺎر اﻟﻤﻌﺎﻟﺠﺔ ﺑﻮاﺳﻄﺔ ‪ Binary‬ﻷﻧﺔ اﺳﺮع‬

‫اﻟﺘﺒﻮﯾﺐ ‪Resources‬‬
‫وﻣﻨﺔ ﯾﺘﻢ ﺗﺤﺪﯾﺪ ﻣﻠﻔﺎت ﺗﺴﺘﺨﺪم ﻛﻤﺼﺎدر‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﻣﻦ ﺛﻢ ﺗﺴﺘﻄﯿﻊ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت اﻟﺘﻲ اﺿﻔﺘﮭﺎ إﻟﻲ ﻣﺸﺮوﻋﻚ ﻛﻤﺼﺎدر ﺑﻜﺘﺎﺑﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫اﺳﻢ اﻟﺮﯾﺴﻮرس اﻟﺬي ﺗﺮي د‪My.Resources.‬‬
‫ﻓﻤﺜﻼ ﻟﻮ ﻛﺎن ﻟﺪﯾﻨﺎ ‪ Resources‬ﻋﺒﺎرة ﻋﻦ ﺻﻮرة واﺳﻢ اﻟﺼﻮرة‪Car‬‬
‫واردﻧﺎ ﻋﺮض اﻟﺼﻮرة ﻓﻲ ‪ PictureBox‬ﻣﺎ ﻋﻠﯿﻨﺎ ﺳﻮي ﻛﺘﺎﺑﺔ اﻷﺗﻲ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬

‫‪PictureBox.Image = My.Resources.Car‬‬

‫اﻟﺘﺒﻮﯾﺐ ‪Publish‬‬
‫وﻣﻨﺔ ﯾﺘﻢ ﻧﺸﺮ اﻟﻤﺸﺮوع اي ﺗﺤﻮﯾﻠﺔ ﻟﻤﻠﻒ ‪Setup‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٣٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫]‪[Bulid‬‬

‫ﺗﺘﻜﻮن ﻣﻦ اﻷزرار ﺗﻠﻚ ﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﻲ ﻣﻌﺎﻟﺠﺔ ﻛﻸ ﻣﻦ اﻟﺘﻄﺒﯿﻘﺎت واﻟﻤﺸﺎرﯾﻊ‬

‫]‪Debug‬‬

‫ﺗﺤﺘﻮي ھﺬة اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ ازرار اﻷواﻣﺮ اﻟﺘﻲ ﺗﻘﻮم ﺑﻌﻤﻠﯿﺔ ﺗﻨﻘﯿﺢ وﺗﺼﺤﯿﺢ‬
‫اﻷﺧﻄﺎء اﻟﺒﺮﻣﺠﯿﺔ ﺑﺎﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺒﺮاﻣﺞ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪Window‬‬
‫ﯾﺤﺘﻮي ﻋﻠﻲ ﻗﺎﺋﻤﺔ ﻓﺮﻋﯿﺔ ﺑﮭﺎ اﻟﻜﺜﯿﺮ ﻣﻦ ادوات ﺗﺘﺒﻊ وﺗﺼﺤﯿﺢ اﻷﺧﻄﺎء‬
‫ﻣﺜﻞ‪Breakpoint Watch,‬‬

‫‪Continue‬‬
‫اﺳﺘﺌﻨﺎف ﻋﻤﻠﯿﺔ اﻟﺘﻨﻘﯿﺢ‬

‫‪Stop Debugging‬‬
‫اﯾﻘﺎف ﻋﻤﻠﯿﺔ اﻟﺘﻨﻘﯿﺢ‬

‫‪Detach all‬‬
‫ﻓﺼﻞ اﻟﻤﻨﻘﺢ ﻋﻦ اﻟﻌﻤﻠﯿﺎت اﻟﻤﺮﺗﺒﻄﺔ ﺑﺔ وﻟﻜﻦ ﻷ ﯾﻘﻮم ﺑﺎﻧﮭﺎ ﺗﻠﻚ اﻟﻌﻤﻠﯿﺎت‬

‫‪Terminate all‬‬
‫اﻧﮭﺎ أي ﻋﻤﻠﯿﺔ ﻣﺮﺗﺒﻄﺔ ﺑﺎﻟﻤﻨﻘﺢ‬

‫‪Restart‬‬
‫اﯾﻘﺎف ﻋﻤﻠﯿﺔ اﻟﺘﻨﻘﯿﺢ اﻟﺤﺎﻟﯿﺔ واﻋﺎدة ﺗﺸﻐﯿﻠﮭﺎ ﻣﻦ اﻟﺒﺪاﯾﺔ‬

‫‪Exceptions‬‬
‫ﯾﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة اﻷﺳﺘﺜﻨﺎﺋﺎت ﺣﯿﺚ ﯾﻤﻜﻨﻨﻚ ﺗﺤﯿﺪ ﻧﻮع اﻟﺨﻄﺎء اﻟﺬي ﺗﺮﯾﺪ ان ﯾﺘﻌﺮف اﻟﻤﻨﻘﺢ ﻋﻠﯿﺔ‬

‫‪New Breakpoint‬‬
‫ﻷﺿﺎﻓﺔ ﻧﻘﻄﺔ ﺗﻮﻗﻒ ﺟﺪﯾﺪة‬

‫]‪[Data‬‬

‫ھﺬة اﻟﻘﺎﺋﻤﺔ ﺗﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﮭﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬


‫ﻣﻦ اﺿﺎﻓﺔ وﻋﺮض ورﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ‬
‫‪Access ,Sql,Oracl‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫]‪[Format‬‬

‫ﺗﺤﺘﻮي ﻋﻠﻲ ازرار اﻷواﻣﺮ اﻟﺘﻲ ﺗﻘﻮم ﺑﺘﺮﺗﯿﺐ وﺗﻨﻈﯿﻢ اﻷدوات ﻋﻠﻲ اﻟﻔﻮرم‬
‫واﻇﻦ ان ھﺬة اﻟﻘﺎﺋﻤﺔ ﻷ ﺗﺤﺘﺎج إﻟﻲ ﺷﺮح ﻓﺎﺳﻤﺎء ازرارھﺎ ﺗﻈﮭﺮ اﻋﻤﺎﻟﮭﺎ‬

‫]‪[Tools‬‬

‫ﺗﺤﺘﻮي ھﺬة اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ اﻷواﻣﺮ اﻟﺘﻲ ﻷ ﯾﺘﻸﺋﻢ وﺿﻌﮭﺎ ﻓﻲ أي ﻗﺎﺋﻤﺔ اﺧﺮي‬
‫وھﻲ اﻟﺘﻲ ﺗﺴﺘﻄﯿﻊ ﺗﻐﯿﯿﺮ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ اﻟﻔﯿﺠﻮال ﻧﻔﺴﮭﺎ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪Attach To Process‬‬
‫ﯾﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة رﺑﻂ اﻟﻤﻨﻘﺢ ﻣﻊ ﻋﻤﻠﯿﺔ ﺗﻨﻔﺬ ﺣﺈﻟﯿﺎ اﺧﺘﺮ أي ﻋﻤﻠﯿﺔ ﺛﻢ اﺿﻐﻂ ‪Attach‬‬

‫‪Connect to Device‬‬
‫ﯾﺘﯿﺢ ﻟﻚ ھﺬا اﻟﺨﯿﺎر اﻷﺗﺼﺎل ﻣﻊ اداة أو ﺟﮭﺎز ﻣﺜﻞ اﻟﮭﺎﺗﻒ اﻟﻜﻔﻲ أو اﻟﮭﻮاﺗﻒ اﻟﺬﻛﯿﮫ‬
‫‪Connect to Pocket PC or Smartphone devices or emulators‬‬
‫وذﻟﻚ ﻷﺧﺘﺒﺎر اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﺗﺼﻤﻤﺔ ﻣﻦ اﺟﻠﮭﺎ‬

‫‪Connect to Database‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﻔﺘﺢ ﻧﺎﻓﺬة اﻷﺗﺼﺎل ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﻣﻌﺮﻓﺔ اﻟﻘﻮاﻋﺪ اﻟﻤﺮﺗﺒﻄﺔ‬
‫ﻣﺴﺒﻘﺎ ﻣﻊ اﻟﺴﺮﻓﺮ اﻟﺨﺎص ﺑﺮﺑﻂ اﻟﺒﯿﺎﻧﺎت‬

‫‪Code Snippets Manager‬‬


‫ﯾﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة ﻣﺪﯾﺮ ﻣﻘﺎﻃﻊ اﻷﻛﻮاد ﻷﺿﺎﻓﺔ أو ازاﻟﺔ اﻟﻤﻘﺎﻃﻊ وﻛﯿﻔﯿﺔ‬
‫اﺳﺘﺨﺪام ھﺬة اﻟﻤﻘﺎﻃﻊ ﻣﻦ اﻷﻛﻮاد اﻟﺠﺎھﺰة ﯾﻤﻨﻜﻨﻚ اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻓﻲ ﺷﺎﺷﺔ‬
‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﺛﻢ اﺧﺘﯿﺎر‪Insert Snippet‬‬
‫وﺳﺘﻌﺮض ﻟﻚ اﻷﻛﻮاد ﻣﻘﺴﻤﺔ ﺑﻤﺠﻠﺪات ﺣﺴﺐ اﻟﻔﺌﺔ ﻗﻢ ﺑﺎﺧﺘﯿﺎر أي ﻣﺠﻠﺪ ﺗﺮﯾﺪ‬
‫ﺛﻢ ﺳﺘﻌﺮض اﺳﻤﺎء ﻷﻛﻮاد اﻟﻤﻮﺟﻮد ﺑﺎﻟﻤﺠﻠﺪ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ اﺳﻢ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﺗﺮﯾﺪ‬
‫وﺳﯿﻘﻮم اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺑﺎﺿﺎﻓﺘﺔ ﻣﺒﺎﺷﺮﺗﺄ‬

‫‪Choose Toolbox Items‬‬


‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﻔﺘﺢ ﻧﺎﻓﺬة اﺧﺘﯿﺎر وﺣﺬف اﻷدوات ﻣﻦ‪ToolBox‬‬
‫ﻓﺎﻷدوات اﻟﻤﻀﺎﻓﺔ ﺗﻠﻘﺎﺋﯿﺎ ﺑﻌﺪ ﺗﺜﺒﯿﺖ اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮ دوت ﻧﺖ ﻟﯿﺴﺖ ﻛﻞ اﻷدوات اﻟﻤﺘﺎح‬
‫اﺳﺘﺨﺪاﻣﮭﺎ ﺑﻞ ﯾﻮﺟﺪ ھﻨﺎﻟﻚ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷدوات اﻟﺘﻲ ﯾﻤﻜﻦ اﺿﺎﻓﺘﮭﺎ‬

‫‪Macros‬‬
‫ﯾﺤﺘﻮي ﻋﻠﻲ ﻗﺎﺋﻤﺔ ﻓﺮﻋﯿﺔ ﺗﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﮭﺎ اﻧﺸﺎ و ﺗﻌﺪﯾﻞ أو ﺗﻨﻔﯿﺬ ﻣﯿﻜﺮوا‬

‫‪External Tools‬‬
‫ﯾﻘﻮم ﺑﺎﺿﺎﻓﺔ أو ﺣﺬف زر ﻣﻦ ال‪Tools Menu‬‬
‫ﻣﺜﻼ ﺗﺴﺘﻄﯿﻊ ان ﺗﻀﯿﻒ زر ﯾﺸﻐﻞ أي ﺑﺮﻧﺎﻣﺞ ﻣﻦ داﺧﻞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ‬

‫‪Device Emulation Manager‬‬


‫ﺗﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة ادارة اﻷﺟﮭﺰة ﺗﺸﻐﯿﻠﮭﺎ أو اﻏﻸﻗﮭﺎ واﻷﺗﺼﺎل ﺑﮭﺎ‬

‫‪Import/Export Settings‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﻔﺘﺢ ﻣﻌﺎﻟﺞ ﺣﻔﻆ أو اﺳﺘﻌﺎدة اﻋﺪادات ﺑﯿﺌﺔ اﻟﺘﻄﻮﯾﺮ‪IDE‬‬

‫‪Customize‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺰر ﺑﻔﺘﺢ ﻧﺎﻓﺬة ‪ Customize‬اﻟﺘﻲ ﺗﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﮭﺎ ﺗﻌﺪﯾﻞ ازرار اﻟﻘﻮاﺋﻢ‬
‫ﻣﻦ اﺿﺎﻓﺔ وﺣﺬف وﺗﻌﺪﯾﻞ ﻣﻈﮭﺮ اﻟﻘﻮاﺋﻢ ﻣﻦ اﺿﺎﻓﺔ اﻟﻘﻮاﺋﻢ اﻟﻔﺮﻋﯿﺔ‬
‫وﯾﻤﻜﻨﻚ اﺿﺎﻓﺔ اﻷزرار ﺑﻮاﺳﻄﺔ اﻟﺴﺤﺐ واﻷﻓﻼت ﻓﻲ اي ﻗﺎﺋﻤﺔ ﺗﺮﯾﺪ‬

‫‪Options‬‬
‫ﯾﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة ﺗﺴﺘﻄﯿﻊ ﻣﻦ ﺧﻼﻟﮭﺎ ﺗﺤﺪﯾﺪ اﻟﺨﯿﺎرات اﻟﺨﺎﺻﺔ ﺑﺒﯿﺌﺔ اﻟﺘﻄﻮي‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫] ‪[ Window‬‬

‫ﺗﺤﺘﻮي ھﺬة اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ اﻷواﻣﺮ اﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ ﻧﻮاﻓﺬ اﻟﻔﯿﺠﻮال ﺑﺴﯿﻚ دوت ﻧﺖ‬

‫‪Dockable, Floating, Tabbed Document‬‬


‫ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﻮاﻓﺬ اﻟﺜﺎﻧﻮﯾﺔ ﻣﺜﻞ‬
‫‪Toolbox, Solution Explorer,‬‬
‫ﺑﺘﻐﯿﯿﺮ ﻃﺮﯾﻘﺔ اﻇﮭﺎر اﻟﻨﺎﻓﺬة أي ﺗﻜﻮن ﻇﺎھﺮة ﺑﺸﻜﻞ ﻋﺎﺋﻢ أو ﺑﺸﻜﻞ ﺛﺎﺑﺖ‬
‫أو اﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﻲ ﺷﺮﯾﻂ ﻋﻨﻮان اﻟﻨﺎﻓﺬ ﻟﺠﻌﻠﮭﺎ ﻋﺎﺋﻤﺔ أو ﺗﻜﺮار اﻟﻨﻘﺮ ﻟﺘﺜﺒﯿﺘﮭﺎ‬
‫واﻷن ﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﻲ ﺷﺮﯾﻂ اﻟﻌﻨﻮان ﻷي ﻧﺎﻓﺬة ﺛﺎﻧﻮﯾﺔ‬
‫ﻛﻲ ﺗﻜﻮن ﺑﺸﻜﻞ ﻋﺎﺋﻢ ﺛﻢ ﺑﻮاﺳﻄﺔ اﻟﻀﻐﻂ اﻟﻤﺴﺘﻤﺮ ﺑﺎﻟﻤﺄوس‬
‫ﻋﻠﻲ ﺷﺮﯾﻂ اﻟﻌﻨﻮان وﺳﺤﺐ اﻟﻨﺎﻓﺬة ﺳﻮف ﺗﻈﮭﺮ ﻟﻚ‬
‫ﻣﻘﺎﺑﺾ ﻓﻲ ﺷﺎﺷﺔ اﻟﻔﯿﺠﻮال ﺗﺴﺘﻄﯿﻊ ﺑﻮاﺳﻄﺔ ھﺬة اﻟﻤﻘﺎﺑﺾ‬
‫ﺗﺜﺒﯿﺖ اﻟﻨﺎﻓﺬة ﻓﻲ أي ﻣﻜﺎن ﺗﺮﯾﺪ‬

‫‪Auto Hide‬‬
‫ﺗﻘﻮم ﺑﺨﻔﺎء ﺑﺨﻔﺎء ﺗﻠﻘﺎﺋﻲ ﻟﻠﻨﺎﻓﺬة اﻟﺜﺎﻧﻮﯾﺔ وﺗﻈﮭﺮ ﻋﻨﺪ ﻣﺮور اﻟﻤﺄوس ﻋﻠﯿﮭﺎ‬

‫‪Hide‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﺈﻏﻼق اﻟﻨﺎﻓﺬة اﻟﺜﺎﻧﻮﯾﺔ وﺗﺴﺘﻄﯿﻊ اﻇﮭﺎرھﺎ ﻣﺮة ﺛﺎﻧﯿﮫ ﻣﻦ اﻟﻘﺎﺋﻤﺔ‪view‬‬
‫أو ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﻋﻠﻲ اﺧﺘﺼﺎر اﻇﮭﺎرھﺎ ﻣﻦ ﺷﺮﯾﻂ اﻷﺧﺘﺼﺎرات‬

‫‪Auto Hide All‬‬


‫ﯾﻘﻮم ﺑﺎﺧﻔﺎء ﻛﻞ اﻟﻨﻮاﻓﺬ اﻟﺜﺎﻧﻮﯾﺔ اﻟﻈﺎھﺮة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪New Horizontal Tab Group‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﻌﺮض اﻛﺜﺮ ﻣﻦ ﻣﺤﺮر ﻓﻲ وﻗﺖ واﺣﺪ ﻋﻠﻲ اﻟﺸﻜﻞ اﻷﻓﻘﻲ‬
‫أي اذا ﻛﺎﻧﺖ ﺗﻌﻤﻞ ﻋﻠﻲ ﻣﺤﺮراﻟﺘﺼﻤﯿﻢ ﻟﻠﻤﺸﺮوع وﺗﺮﯾﺪ اﯾﻀﺎ اﻟﻌﻤﻞ ﻋﻠﻲ ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ ھﺬا اﻟﺨﯿﺎر وﺳﯿﻜﻮن اﻟﺸﻜﻞ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة‬

‫‪New Vertical Tab Group‬‬

‫ﯾﻘﻮم ھﺬا اﻟﺨﯿﺎر ﺑﻌﺮض اﻛﺜﺮ ﻣﻦ ﻣﺤﺮر ﻓﻲ وﻗﺖ واﺣﺪ ﻋﻠﻲ اﻟﺸﻜﻞ اﻟﻌﻤﻮدﯾﺄي اذا ﻛﺎﻧﺖ ﺗﻌﻤﻞ ﻋﻠﻲ ﻣﺤﺮراﻟﺘﺼﻤﯿﻢ ﻟﻠﻤﺸﺮوع وﺗﺮﯾﺪ‬
‫اﯾﻀﺎ اﻟﻌﻤﻞ ﻋﻠﻲ ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻗﻮم ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ ھﺬا اﻟﺨﯿﺎر وﺳﯿﻜﻮن اﻟﺸﻜﻞ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪Close All Documents‬‬
‫ﯾﻘﻮم ھﺬا اﻟﺰر ﺑﺈﻏﻼق ﻛﺎﻓﺔ اﻟﻤﺤﺮرات اﻟﻤﻔﺘﻮﺣﺔ‬

‫‪Reset Window Layout‬‬


‫ﯾﻘﻮم ﺑﺎﻋﺎدة اﻟﻨﺎﻓﺬة ﻟﻠﻮﺿﻊ اﻷﻓﺘﺮاﺿﻲ ﻟﮭﺎ‬

‫‪Windows‬‬
‫ﯾﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة ﺗﺴﺘﻄﯿﻊ ﻣﻨﮭﺎ ﺗﺤﺪﯾﺪة أو إﻏﻼق اي ﻣﺤﺮر ﻣﻔﺘﻮح‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪[Community]1‬‬

‫ﺗﺤﺘﻮي ﻋﻠﻲ اﻷواﻣﺮ اﻟﺘﻲ ﺗﺴﺎﻋﺪك ﻓﻲ اﻷرﺗﺒﺎط ﻣﻊ ﻣﺠﺘﻤﻊ اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ‬
‫ﺑﺤﯿﺚ ﯾﻤﻜﻨﻚ ان ﺗﺴﺌﻞ وﺗﻘﻮم ﺑﺎﻟﺒﺤﺚ ﻋﻦ اﺟﺎﺑﺔ أو اﻣﺜﻠﺔ وھﺬة اﻷواﻣﺮ ﻣﺮﺗﺒﻄﺔ‬
‫ﺑﺼﻔﺤﺎت ﻣﯿﻜﺮوﺳﻮﻓﺖ ﻛﻤﺎ ﯾﻤﻜﻨﻚ زﯾﺎرة ‪MSDN Community Center‬‬
‫ﻣﻦ ﺧﻼل ھﺬا اﻟﺮاﺑﻂ‬
‫‪http://msdn2.microsoft.com/en-us/aa497440.aspx‬‬

‫]‪[Help‬‬

‫ﺗﺤﺘﻮي ﻋﻠﻲ اﻷواﻣﺮ اﻟﻤﺎﻟﻮﻓﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺎﻋﺪة واﻷﺗﺼﺎل ﺑﻤﻮﻗﻊ اﻟﺸﺮﻛﺔ واﻟﺘﻌﺮف ﻋﻠﻲ ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام اﻟﻠﻐﺔ وﺧﯿﺎر اﻟﻌﺜﻮر‬
‫ﻋﻠﻲ اﻟﺘﺤﺪﯾﺜﺎت اﻟﻼزﻣﺔ ﻟﻠﺒﺮﻧﺎﻣﺞ وﺳﻮف ﻧﺘﺎوﻟﮭﺎ ﺑﺎﻟﺘﻔﺼﯿﻞ ﻓﻲ اﻟﻔﺼﻞ اﻟﺴﺎدس ﻣﻦ ھﺬا اﻟﻜﺘﺎب‬

‫‪1‬‬
‫‪ -‬م‪ /‬ﻣﺤﻤﺪ ﻋﻠﻲ ﻛﻨﯿﻔﻮ ‪ :‬ﺗﻌﻠﯿﻢ ‪ ، Visual basic.Net 2005‬اﻷﺻﺪارة اﻟﺜﺎﻧﯿﺔ ‪ ، CHM File ،‬اﻟﺘﻌﺮف ﻋﻠﻲ اﻟﻘﻮاﺋﻢ ص‪٦‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ ‬‬
‫اﻷدوات ‪ :‬ھﻲ ﻋﺒﺎرة ﻋﻦ ﻋﻨﺎﺻﺮ ﺑﺮﻣﺠﯿﺔ ﻟﮭﺎ ﻣﮭﺎم ﻣﻌﯿﻨﺔ ﺗﺎﺧﺬ اﺷﻜﺎل رﺳﻮﻣﯿﺔ وﻟﻜﻞ اداة ﻋﻤﻠﮭﺎ اﻟﺨﺎص‬

‫*ﺗﺼﻨﻒ اﻷدوات إﻟﻲ ﺻﻨﻔﯿﻦ‪:‬‬

‫‪Control‬‬

‫وھﻮ اﻟﻌﻨﺼﺮ اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﯾﺄﺧﺬ ﺷﻜﻞ رﺳﻮﻣﻲ ﻣﻌﯿﻦ وﯾﻮﺿﻊ ﻋﻠﻲ اﻟﻔﻮرم اﺛﻨﺎ ء ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ وﯾﻘﻮم ﺑﺘﺎدﯾﺔ ﻣﮭﻤﺔ ﻣﻌﯿﻨﺔ ﻣﺜﻞ‬
‫‪ Button , Textbox , Label‬وﻟﻜﻞ ‪ Control‬ﺧﺼﺎﺋﺺ ووﻇﺎﺋﻒ ﺗﻤﯿﺰة ﻋﻦ ﻏﯿﺮة‬

‫‪Component‬‬

‫وھﻮ ﺷﺒﯿﮫ ﺑﺎل ‪Control‬ﻓﯿﻤﺎ ﻋﺪا‪:‬‬


‫ﻷﯾﻈﮭﺮ ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ أي وﻗﺖ اﻷﺳﺘﻌﻤﺎل‬
‫ﯾﻈﮭﺮ اﺛﻨﺎ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻠﻲ ﺷﺮﯾﻂ ﺧﺎص ﺑﮫ أﺳﻔﻞ اﻟﻔﻮرم ﻋﻠﻲ ﺷﻜﻞ اﯾﻘﻮﻧﺔ‬
‫وﻟﻜﻦ ﺑﺎﻟﺮﻏﻢ ﻣﻦ ذﻟﻚ ﯾﻤﻜﻦ ان ﯾﻈﮭﺮ ﻋﻠﻲ اﻟﻔﻮرم اﺛﻨﺎء اﻟﺘﺼﻤﯿﻢ ﻣﺜﻞ ‪ menu‬أو وﻗﺖ اﻟﺘﻨﻔﯿﺬ ﻣﺜﻞ‪OpenFileDialog‬‬

‫*اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷدوات‪:‬‬

‫اﻷدوات ﺗﺴﺎﻋﺪ اﻟﻤﺒﺮﻣﺞ اﺛﻨﺎء ﺗﺼﻤﯿﻤﺔ ﺑﺮﻧﺎﻣﺞ ﺑﻘﺪر ﻛﺒﯿﺮ ﻓﺘﻘﻮم ﺑﺎﺧﺘﺼﺎر اﻟﻜﺜﯿﺮ ﻣﻦ اﻷﻛﻮاد اﻟﺼﻌﺒﺔ واﻟﻄﻮﯾﻠﺔ وﻟﻜﻞ اداة ﻣﻦ‬
‫ادوات اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﻏﺮض ﻣﻌﯿﻦ وﻣﮭﻤﺔ ﻣﻌﯿﻨﺔ وﺗﻘﻮم ﻛﻞ اداة ﺑﻌﻤﻞ ﻣﺨﺘﻠﻒ ﻋﻦ اﻷداة اﻷﺧﺮي‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻧﺸﺎء اﻷدوات‪:‬‬

‫*ﯾﻤﻜﻨﻚ اﺿﺎﻓﺔ اي اداة إﻟﻲ ﺑﺮﻧﺎﻣﺠﻚ ﺑﺎﺣﺪي ھﺬة اﻟﻄﺮق ‪ :‬اﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﻲ اﻷداة اﻟﻤﺮاد اﺿﺎﻓﺘﮭﺎﻟﺴﺤﺐ واﻷﻓﻼت‬
‫ﺑﺎﺳﺘﺨﺪام اﻟﻤﺄوﺳﺎﻟﻨﻘﺮ ﻧﻘﺮة واﺣﺪة ﻋﻠﻲ اﻷداة اﻟﻤﺮاد اﺿﺎﻓﺘﮭﺎ وﺛﻤﺎﻟﻨﻘﺮ ﻧﻘﺮة واﺣﺪة ﻋﻠﻲ اﻟﻔﻮرم وﺳﯿﺘﻢ اﺿﺎﻓﺘﮭﺎ‬

‫*وﻟﻜﻦ ﻟﻮ اردﻧﺎ اﻧﺸﺎء ﻣﺠﻤﻮﻋﺔ ﻛﺒﯿﺮة ﻣﻦ اﻷدواة ﻛﻌﻤﻞ ﺑﺮﻧﺎﻣﺞ ﺣﺎﺳﺒﺔ ﺑﺔ ازرار ﻋﺪﯾﺪة ﻣﺜﻼﻓﺎءن اﻟﻄﺮق اﻟﺴﺎﺑﻘﺔ‬
‫ﻷﺿﺎﻓﺔ اﻷزرار ﺳﺘﻜﻮن ﻣﺘﻌﺒﺔ ﻗﻠﯿﻸﻓﻤﺎ ھﻮ اﻟﺤﻞ ﯾﺎﺗﺮي ﻓﻲ راﯾﻚ ؟اﻟﺤﻞ ھﻮ اﻟﻀﻐﻂ اﻟﻤﺘﻮاﺻﻞ ﻋﻠﻲ ﻣﻔﺘﺎح ‪ Ctrl‬ﺛﻢ اﻟﻨﻘﺮ‬
‫ﻧﻘﺮة واﺣﺪة ﺑﺎﺳﺘﺨﺪام اﻟﻤﺄوس ﻋﻠﻲ اﻷداة اﻟﺘﻲ ﺗﺮﯾﺪ اﺿﺎﻓﮫ ﻋﺪدأ ﻣﻨﮭﺎ ﺛﻢ اﻟﻨﻘﺮ ﻋﻠﻲ اﻟﻔﻮرم ﺳﺘﻼﺣﻆ ﻓﻲ ﻛﻞ ﻣﺮة ﺗﻘﻮم‬
‫ﺑﮭﺎ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻲ اﻟﻔﻮرم اﺿﺎﻓﺔ اﻷداة ﻣﺮة ﺟﺪﯾﺪة وﺑﺎﺳﻢ ﺟﺪﯾﺪوﻋﻨﺪﻣﺎ ﺗﺮﯾﺪ اﻷﻧﺘﮭﺎء ﻣﻦ اﺿﺎﻓﺔ اﻷداة ﻓﻤﺎ ﻋﻠﯿﻚ ﺳﻮﯾﺎﯾﻘﺎف‬
‫اﻟﻀﻐﻂ ﻋﻠﻲ ﻣﻔﺘﺎح ‪ Ctrl‬أواﻟﻀﻐﻂ ﻋﻠﻲ اﯾﻘﻮﻧﺔ ﻣﻮﺷﺮ اﻟﻤﺄوس اﻟﺘﻲ ﻓﻲ اﻋﻠﻲ اﻷدوات‪.‬‬

‫ﺗﺠﻤﯿﻊ اﻷدوات داﺧﻞ ﺣﺎوﯾﺔ‪:‬‬


‫ھﻨﺎﻟﻚ أدوات ﻋﻤﻠﮭﺎ اﻷﺳﺎﺳﻲ ھﻮ اﺣﺘﻮي ادوات اﺧﺮي ﺑﺪاﺧﻠﮭﺎ ﻣﺜﻞ‬
‫‪TabControl, GroupBox, Panel,‬‬

‫وﺑﺎﺳﺘﺨﺪاﻣﮭﺎ ﺗﺴﺘﻄﯿﻊ ﺗﺠﻤﯿﻊ ﻋﺪد ﻣﻦ اﻷدوات ﻓﻲ ﺣﺎوﯾﺔ واﺣﺪة ﻟﻐﺮض ﻧﻘﻞ وﺗﺤﺮﯾﻚ أو اﺧﻔﺎء واﻇﮭﺎر ﺗﻠﻚ اﻷدوات أو‬
‫ﻷﻏﺎض اﺧﺮي‪ .‬اﻟﻤﮭﻢ ﻓﻲ ﻻﻣﺮ اﻧﻨﺎ ﺑﺎﺳﺘﺨﺪام ﺣﺄوﯾﺎت اﻷدوات ﻧﺴﺘﻄﯿﻊ ان ﻧﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺠﻤﻮﻋﺔﻣﻦ اﻷدوات ﻛﻜﺘﻠﺔ واﺣﺪة‬
‫‪.‬‬
‫ھﻨﺎﻟﻚ ﻋﺪة ﻃﺮق ﻟﺘﻀﻊ اﻷدوات داﺧﻞ ﺣﺎوﯾﺔ ‪ container‬وذﻟﻚ ﺑﺴﺤﺐ اﻷداة اﻟﻤﻮﺟﻮد ﻋﻠﻲ اﻟﻔﻮرم إﻟﻲ داﺧﻞ‬
‫‪container‬أو ﺑﺘﺤﺪﯾﺪ ال ‪ container‬اﻟﺬي ﻗﻤﺖ ﺑﺎﺿﺎﻓﺘﺔ ﻣﺴﺒﻘﺎ إﻟﻲ اﻟﻔﻮرﻣﺜﻢ و ﻣﻦ ﻗﺎﺋﻤﺔ اﻷدوات ﺗﻘﻮم ﺑﺎﻟﻨﻘﺮ‬
‫اﻟﻤﺰدوج ﻋﻠﻲ اﻷداة اﻟﺘﻲ ﺗﺮﯾﺪ ان ﺗﻀﯿﻔﮭﺎ إﻟﻲ ‪ container‬وﺳﺘﻀﺎف ﺑﺪاﺧﻠﮫ ﻣﺒﺎﺷﺮأ وﻟﯿﺲ ﻋﻠﻲ اﻟﻔﻮرم أو ﺑﻮاﺳﻄﺔ‬
‫اﻟﺴﺤﺐ واﻷﻓﻼت ﻣﻦ ﻗﺎﺋﻤﺔ اﻷدوات إﻟﻲ داﺧﻞ ال‪ container .‬أو ﺑﻮاﺳﻄﺔ اﻟﻘﺺ واﻟﻠﺼﻖ ﻣﻦ ﻋﻠﻲ اﻟﻔﻮرم إﻟﻲ داﺧﻞ ال‬
‫‪container .‬‬

‫*اﻧﺸﺎء اﻷدوات ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ‪Run Time :‬‬

‫ﻏﺎﻟﺒﺎ ﻧﻘﻮم ﺑﺎﻧﺸﺎء اﻷدوات ﻋﻠﻲ اﻟﻔﻮرم ﻓﻲ وﻗﺖ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻦ ﻃﺮﯾﻖ اﺿﺎﻓﺘﮭﺎ ﻣﻦ ﻗﺎﺋﻤﺔ‪ ToolBox‬وﻟﻜﻦ‬
‫وﺑﺎﻟﺮﻏﻢ ﻣﻦ ذﻟﻚ ﻓﺎﻧﻨﺎ ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن ﻗﺪ ﻧﺤﺘﺎج ﻷﻧﺸﺎء اﻷدوات ﻓﻲ وﻗﺖ ﺗﻨﻔﯿﺬاﻟﺒﺮﻧﺎﻣﺞ ‪ Run Time‬أي اﻧﺸﺎء اﻟﺪوات‬
‫واﻷﺣﺪاث اﻟﺨﺎﺻﺔ ﺑﮭﺎ ﻋﻦ ﻃﺮﯾﻖ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‪.‬‬

‫وﻟﻜﻦ ﻗﺪ ﻧﺘﺴﺎﺋﻞ ﻣﺎ اﻟﺪاﻓﻊ اﻟﺬي ﯾﺠﻌﻠﻨﺎ ﻧﻨﺸﺊ اﻷدوات ﺑﻮاﺳﻄﺔ‬


‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻃﺎﻟﻤﺎ اﻧﻨﺎ ﻧﺴﺘﻄﯿﻊ اﻧﺸﺎﺋﮭﺎ ﻓﻲ وﻗﺖ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ ؟‬

‫اﻟﺠﻮاب اﻧﻚ ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن ﻗﺪ ﺗﺤﺘﺎج ﻟﻌﻤﻞ ﺑﺮﻧﺎﻣﺞ ﯾﻤﻠﻚ واﺟﮭﺎت ﻣﺨﺘﻠﻔﺔ ﯾﺨﺪم ﻣﺴﺘﺨﺪﻣﯿﻦ ﻣﺨﺘﻠﻔﯿﻦ ‪.‬اﻟﻤﺴﺘﺨﺪﻣﯿﻦ‬
‫ﻣﺨﺘﻠﻔﯿﻦ ﻓﻲ ﻣﮭﺎراﺗﮭﻢ أو ﯾﺤﺘﺎﺟﻮن ﻷدوات ﻣﺨﺘﻠﻔﺔ ﺗﺒﻌﺎ ﻻﺧﺘﻼف اﻋﻤﺎﻟﮭﻢ وﻣﺘﻄﻠﺒﺎﺗﮭﻢ ‪.‬أو اﻧﻚ ﻷ ﺗﻌﻠﻢ ﻣﺎذا ﺳﯿﺘﻄﻠﺐ‬
‫ﺑﺮﻧﺎﻣﺠﻚ ﻣﻦ ادوات ﻟﻌﺮض أو ادﺧﺎل اﻟﺒﯿﺎﻧﺎت ﻷن ذﻟﻚ ﻣﺘﻮﻗﻒ ﻋﻠﻲ ﺣﺎﺟﯿﺎت اﻟﻤﺴﺘﺨﺪم ﻟﻠﺒﺮﻧﺎﻣﺞ ‪ .‬أي اﻧﻚ ﺳﻮف ﺗﺤﺘﺎج‬
‫إﻟﻲ اﻧﺸﺎء ادوات ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ‪ Run Time .‬اﻷن ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻲ ﻛﯿﻔﯿﺔ اﻧﺸﺎء اﻷدوات وﻗﺖ اﻟﺘﻨﻔﯿﺬ‪Run Time :‬‬
‫اﻧﻈﺮ إﻟﻲ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪Dim lblHi As New Label‬‬
‫)‪lblHi.SetBounds (50, 50, 70,70‬‬
‫"‪lblHi.Text="Hello World‬‬
‫)‪Me.Controls.Add (lblHi‬‬

‫ﺑﮭﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻧﺴﺘﻄﯿﻊ اﻧﺸﺎء ‪ Label‬ﻋﻠﻲ اﻟﻔﻮرم ﻓﻲ وﻗﺖ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ وأﻷن ﻧﺄﺗﻲ ﻟﺸﺮح اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻓﻲ اﻟﺴﻄﺮ‬
‫اﻷول ﻗﻤﻨﺎ ﺑﺎﻷﻋﻼن ﻋﻦ اﻟﻤﺘﻐﯿﺮ ‪ lblHi‬ﻋﻠﻲ اﻧﺔ ﻣﻦ اﻟﻨﻮع ‪ Label .‬ﻓﻲ اﻟﺴﻄﺮ اﻟﺜﺎﻧﻲ ﻗﻤﻨﺎ ﺑﺘﺤﺪﯾﺪ اﺣﺪاﺛﯿﺎت ‪ lblHi‬ﻋﻠﻲ اﻟﻔﻮرم‬
‫ﺑﻮاﺳﻄﺔ اﻟﺨﺎﺻﯿﺔ ‪ SetBounds .‬ﻓﻲ اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ ﻗﻤﻨﺎ ﺑﺘﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Text‬ﻟﯿﻜﻮن اﻷﺳﻢ اﻟﻈﺎھﺮ ﻟﻞ ‪Label‬ھﻮ ‪Hello World‬‬
‫‪.‬ﺛﻢ ﻓﻲ اﻟﺴﻄﺮ اﻟﺮاﺑﻊ واﻷﺧﯿﺮ ﻗﻤﻨﺎ ﺑﺎﺿﺎﻓﺔ ‪ lblHi‬إﻟﻲ اﻷدوات اﻟﺘﺎﺑﻌﺔ ﻟﻠﻔﻮرم اﻟﺤﺎﻟﻲ ﺑﻮاﺳﻄﺔ اﻟﺨﺎﺻﯿﮫِ ‪ Add‬اﻟﻤﺘﺮﻓﻌﺔ ﻣﻦ‬
‫اﻟﺨﺎﺻﯿﺔ ‪ Controls‬اﻟﺘﺎﺑﻌﺔ ﻟﻠﻔﻮرم ‪ .‬وﻟﻜﻦ ﻟﻢ ﻧﺤﺘﺎج ﻟﻌﻤﻞ ﺣﺪث ﺗﺎﺑﻊ ﻟﻸداة ‪ Label‬ﻷﻧﻨﺎ ﻓﻲ اﻷﻏﻠﺐ ﻧﺴﺘﺨﺪﻣﮭﺎ ﻟﻌﺮض ﻣﻌﻠﻮﻣﺎت‬
‫ﻋﻠﻲ اﻟﻔﻮرم وﻟﻜﻦ ھﻨﺎﻟﻚ ادوات اﺧﺮي ﻣﺜﻞ ‪ Button‬ﻷ ﻧﺴﺘﻄﯿﻊ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ إﻟﻲ ﺑﻮاﺳﻄﺔ اﻷﺣﺪاث اﻟﺘﺎﺑﻌﺔ ﻟﮭﺎ ﻛﺤﺪث اﻟﻀﻐﻂ‬
‫ﻋﻠﯿﮭﺎ ﻣﺜﻼ ‪ .‬واﻷن ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻲ ﻛﯿﻔﯿﺔ اﻧﺸﺎء اداة ﻓﻲ وﻗﺖ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻊ اﻧﺸﺎء اﺣﺪاث ﺗﺎﺑﻌﺔ ﻟﮭﺎ وأوﻷ ﯾﺠﺐ ان‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٤٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻧﻌﺮف اﻧﻨﺎ اذا اردﻧﺎ اﻷﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ ﻋﻠﻲ اﻧﺔ ﻣﻦ ﻧﻮع اداة ﻣﺎ ﺑﯿﺠﺐ ان ﯾﻜﻮن اﻷﻋﻼن ﻣﺒﺘﺪا ﺑﺎﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة ‪WithEvents‬‬
‫أي اﻧﻨﺎ ﻧﺼﺮح ﻋﻦ ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع اداة وﻟﮫ اﺣﺪاﺛﺔ اﻟﺘﺎﺑﻌﺔ ﻟﮫ ﻣﺜﻼ ﻧﻜﺘﺐ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‪:‬‬
‫‪Dim WithEvents btnHi As New Button‬‬
‫ھﻨﺎ اﻋﻠﻨﺎ ﻋﻦ اﻟﻤﺘﻐﯿﺮ ‪ btnHi‬اﻧﺔ ﻣﻦ اﻟﻨﻮع ‪ Button‬واذا اردﻧﺎ اﻟﻮﺻﻮل إﻟﻲ اﺣﺪاﺛﺔ ﻛﻠﻤﺎ ﻋﻠﯿﻨﺎ ھﻮاﻟﺪﺧﻮل إﻟﻲ ﺷﺎﺷﺔ اﻷﻛﻮد‬
‫اﻟﺒﺮﻣﺠﻲ ﺛﻢ وﻣﻦ ﻗﺎﺋﻤﺔ ﺳﺮد اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﺑﺎﻟﻔﻮرم اﻟﺤﺎﻟﻲ ‪ Class Name‬ﺛﻢ ﺗﺤﺪﯾﺪ اﻟﺤﺪث اﻟﻤﺮاد ﻣﻦ ﻗﺎﺋﻤﺔ ﺳﺮد اﺣﺪاث‬
‫اﻟﻌﻨﺎﺻﺮ‬
‫‪Method Name‬اﻧﻈﺮ إﻟﻲ اﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ‬

‫اﻷن ﻗﻢ ﺑﻔﺘﺢ ﻣﺸﺮوع ﺟﺪﯾﺪ وﻗﻢ ﻓﻲ ﻣﻨﻄﻘﺔ اﻟﺘﺼﺮﯾﺤﺎت اﻟﻌﺎﻣﺔ ﺑﻜﺘﺎﺑﺔ ھﺬا اﻟﺘﺼﺮﯾﺢ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬

‫‪Dim WithEvents btnHi As Button‬‬


‫ﺛﻢ ﻗﻢ ﻗﺎﺋﻤﺔ ﺳﺮد اﻟﻌﻨﺎﺻﺮ ‪ Class Name‬ﺑﺎﺧﺘﯿﺎر اﻟﻌﻨﺼﺮ ‪ btnHi‬ﻛﻤﺎ ﺗﻮﺿﺢ اﻟﺼﻮرة اﻟﺴﺎﺑﻘﺔ ﺛﻢ ﻗﻢ ﺑﺎﺧﺘﯿﺎر اﻟﺤﺪث اﻟﺬي ﺗﺮﯾﺪة‬
‫ﻟﮭﺬا اﻟﻌﻨﺼﺮ ﻣﻦ ﻗﺎﺋﻤﺔ ﺳﺮد اﺣﺪاث اﻟﻌﻨﺼﺮ اﻧﻈﺮ اﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫أي اﻧﻨﺎ ﺑﻤﺠﺮد اﻷﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ اﻧﺔ ﻣﻦ ﻧﻮع اداة ﻓﺎن اﻟﻔﯿﺠﻮال ﯾﻘﻮم ﺑﺎﻧﺸﺎء اﺣﺪاث ﻟﺬﻟﻚ اﻟﻤﺘﻐﯿﺮ وﯾﺘﺎﻋﻤﻞ ﻣﻌﺔ وﻛﺎﻧﺔ ﻋﻨﺼﺮ‬
‫ﻣﻮﺟﻮد ﻋﻠﻲ اﻟﻔﻮرم ‪ .‬وﻧﮭﺎﯾﺔ ﻟﻔﮭﻢ ﻣﺎ ﺳﺒﻖ ﻧﻘﻮم ﺑﮭﺬا اﻟﻤﺜﺎل ﻗﻢ ﺑﺎﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻗﻢ ﺑﻜﺘﺎﺑﺔ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻓﻲ ﻣﻨﻄﺔ‬
‫اﻟﺘﺼﺮﯾﺤﺎت اﻟﻌﺎﻣﺔ‬
‫‪WithEvents btnHi As Button‬ﺛﻢ ﻗﻢ ﺑﺎﺿﺎﻓﺔ ‪ Button‬ﻋﻠﻲ اﻟﻔﻮرم وﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﯿﺔ ﻟﺘﺪﺧﻞ إﻟﻲ ﺷﺎﺷﺔ اﻷﻛﻮد‬
‫اﻟﺒﺮﻣﺠﻲ ﻓﻲ اﻟﺤﺪث ‪ Button1_Click‬ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪btnHi = New Button‬‬
‫)‪btnHi.SetBounds(96, 50, 75, 23‬‬
‫"‪btnHi.Text = "Say Hi‬‬
‫)‪Me.Controls.Add(btnHi‬‬

‫ﺛﻢ ﻗﻢ ﺑﻌﻤﻞ ﺣﺪث ‪ Click‬ﻟﻠﻌﻨﺼﺮ ‪ btnHi‬ﻛﻤﺎ ﺗﻌﻠﻤﺎ واﻛﺘﺐ ﺑﺪاﺧﻠﺔ‬


‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫)”‪MessageBox.Show(“Hi Man‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫واﻷن ﺷﻐﻞ اﻟﺒﺮﻧﺎﻣﺞ وﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ اﻟﺰر ‪ Button1‬ﺳﺘﻼﺣﻆ ﻇﮭﻮر ‪ Button‬ﺟﺪﯾﺪ ﻋﻠﻲ اﻟﻔﻮر ﻟﺔ اﻷﺳﻢ ‪ Say Hi‬اذا ﻗﻤﺖ‬
‫ﺑﺎﻟﻀﻐﻂ ﻋﻠﯿﺔ ﺳﻮف ﺗﻈﮭﺮ ﻟﻚ رﺳﺎﻟﺔ ﻣﻜﺘﻮب ﺑﮭﺎ ‪Hi Man‬‬

‫ﺗﻜﻠﻤﻨﺎ ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ﻋﻦ اﻷدوات وﺗﻌﻠﻤﻨﺎ ﻛﯿﻔﯿﺔ اﻧﺸﺎﺋﮭﺎ ﻋﻠﻲ اﻟﻔﻮرم ﻓﻲ وﻗﺖ اﻟﺘﺼﻤﯿﻢ أو ﻓﻲ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ وﻟﻜﻦ ﺑﻘﻲ‬
‫ﻣﻼﺣﻈﺔ ﺗﺨﺺ اﻧﺸﺎء اﻷدوات ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ وھﻲ ﻛﯿﻔﯿﺔ ﺣﺬف اداة ﻣﺎ ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ ﺛﻢ ﺳﻨﻨﺘﻘﻞ ﺑﻌﺪھﺎ إﻟﻲ ﺧﺼﺎﺋﺺ اﻷدوات‪.‬‬

‫‪:‬‬

‫ﻣﺜﻼ ﻟﻮ ﻛﺎن ﻟﺪﯾﻨﺎ ‪ Button‬اﻷﺳﻢ اﻟﺒﺮﻣﺠﻲ ﻟﮫ ‪ btnHi‬وﻧﺮﯾﺪ ﺣﺬﻓﺔ ﻣﻦ ﻋﻠﻲ اﻟﻔﻮرم ﻓﻲ وﻗﺖ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻠﻤﺎ ﻋﻠﯿﻨﺎ ھﻮ ﻛﺘﺎﺑﺔ‬
‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ ﻓﻲ زر اﻣﺮ ﺣﺬف ذﻟﻚ ال‪Button‬‬

‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬
‫)‪Me.Controls.Remove(btnHi‬‬
‫‪btnHi = Nothing‬‬

‫ﺳﯿﻘﻮم ذﻟﻚ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﺑﺤﺬف اﻟﺰر ‪ btnHi‬ﻣﻦ ﻋﻠﻲ ﻓﻮرم اﻟﺒﺮﻧﺎﻣﺞ ﺣﺘﻲ وﻟﻮ ﺗﻢ اﻧﺸﺎء ذﻟﻚ إل ‪ Button‬ﻓﻲ وﻗﺖ ﺗﺼﻤﯿﻢ‬
‫اﻟﺒﺮﻧﺎﻣﺞ أو ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ وﻟﻜﻦ ﺣﺬف أداة ﻣﻦ ﻋﻠﻲ ﻓﻮرم اﻟﺒﺮﻧﺎﻣﺞ إﺛﻨﺎء ﺗﺸﻐﯿﻠﮫ ﻷ ﯾﻌﻨﻲ اﻧﺔ ﺗﻢ ﺣﺬف أﺣﺪاث ﺗﻠﻚ اﻷداة‪.‬‬

‫‪:‬‬

‫اﻟﺨﺎﺻﯿﺔ ‪ :‬ھﻲ ﻗﯿﻤﺔ أو ﺑﻌﺾ اﻟﻘﯿﻢ اﻟﺘﺎﺑﻌﺔ ﻷداة اﻟﺘﺤﻜﻢ واﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ ﻋﻤﻞ أو ﻣﻈﮭﺮ اﻷداة ‪ .‬ﻣﺜﻼ اداة اﻟﺘﺤﻜﻢ ‪ TextBox‬ﺗﻤﺘﻠﻚ‬
‫اﻟﺨﺎﺻﯿﺔ ‪ Name‬وھﻲ اﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ اﺳﻢ اﻷداة اﻟﺒﺮﻣﺠﻲ اﻟﺬي ﯾﺴﺘﺨﺪﻣﺔ اﻟﻤﺒﺮﻣﺞ اﺛﻨﺎء ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ وﻛﺬﻟﻚ اﻟﺨﺎﺻﯿﺔ ‪Text‬‬
‫وھﺬة اﻟﺨﺎﺻﯿﺔ ھﻲ اﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ اﻟﻜﺘﺎﺑﺔ اﻟﺘﻲ ﺳﺘﻈﮭﺮ ﻓﻲ ‪ TextBox‬وﺗﻮﺟﺪ اﯾﻀﺎء اﻟﺨﺎﺻﯿﺔ ‪ BackColor‬وھﻲ اﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ‬
‫ﻟﻮن اﻟﺨﻠﻔﯿﺔ وھﻜﺬا‪.‬‬

‫ﻟﻜﻞ اداة ﺧﺼﺎﺋﺺ ﻋﺪﯾﺪة وﺗﺘﺸﺎﺑﺔ ﻣﻌﻈﻢ اﻷدواة ﻓﻲ اﻟﻜﺜﯿﺮ ﻣﻦ ﺧﺼﺎﺋﺼﮭﺎ وﻟﻜﻦ ھﻨﺎﻟﻚ ﺧﺼﺎﺋﺺ ﻷ ﺗﻮﺟﺪ اﻷ ﻓﻲ ﻧﻮع ﻣﺤﺪد ﻣﻦ‬
‫اﻷدوات ﻣﺜﻼ اﻷداة ‪ ImageList‬ﺗﻤﺘﻠﻚ اﻟﺨﺎﺻﯿﺔ ‪ Images‬اﻟﺘﻲ ﺗﺴﺘﻄﯿﻊ ﺑﺎﺳﺘﺨﺪاﻣﮭﺎ ﻣﻦ اﺧﺘﯿﺎر اﻟﻌﺪد اﻟﺬي ﺗﺮﯾﺪ ﻣﻦ اﻟﺼﻮر اﻟﺘﻲ‬
‫ﺳﻮف ﺗﺨﺰﻧﮭﺎ ھﺬة اﻷداة ﻻﺳﺘﺨﺪام ھﺎ ﻛﺎﯾﻘﻮﻧﺎت ﻣﺜﻼ ﻣﻊ ادوات اﺧﺮي ﻣﺜﻞ اﺳﺘﺨﺎﻣﮭﺎ ﻣﻊ اداة اﻟﻌﺮض اﻟﺸﺠﺮي‪TreeView .‬‬

‫‪:‬‬

‫ﻟﺘﻌﺪﯾﻞ ﺧﺼﺎﺋﺺ أي اداة ﻣﻦ ادوات اﻟﺘﺤﻜﻢ ﻓﻲ وﻗﺖ ﺗﺼﻤﯿﻢ ﺑﺮﻧﺎﻣﺠﻚ ﯾﺠﺐ أوﻷ ان ﺗﻘﻮم ﺑﻔﺘﺢ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ وﺗﺴﺘﻄﯿﻊ ﻓﺘﺤﮭﺎ‬
‫ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ View‬واﺧﺘﯿﺎر ‪ Properties Windows‬أو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ اﻟﻤﻔﺘﺎح ‪ F4‬ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ‪ .‬ﺑﻌﺪ ﻓﺘﺢ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ‬
‫ﯾﺒﻘﻲ ان ﻧﺤﺪد اﻷداة اﻟﺘﻲ ﻧﺮﯾﺪ ﺗﻌﺪﯾﻞ ﺧﺼﺎﺋﺼﮭﺎ وذﻟﻚ ﯾﺘﻢ ﺑﻄﺮﯾﻘﺘﯿﻦ اﻷوﻟﻲ ﺑﺎﺧﺘﯿﺎر اﺳﻢ اﻷداة ﻣﻦ اﻋﻠﻲ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ أو‬
‫ﺑﺎﻟﻨﻘﺮﻋﻠﯿﮭﺎ ﻧﻘﺮة واﺣﺪة ﺑﺎﺳﺘﺨﺪام اﻟﻤﺄوس ﻓﺘﻈﮭﺮ ﻟﻨﺎ ﺟﻤﯿﻊ ﺧﺼﺎﺋﺺ ﺗﻠﻚ اﻷداة ﻓﻲ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ﺑﻌﺪھﺎ ﻧﻘﻮم‬
‫ﺑﺎﻟﻨﻘﺮ ﺑﺎﻟﻤﺄوس اﻣﺎم اﺳﻢ اﻟﺨﺎﺻﯿﺔ اﻟﻤﺮاد ﺗﻐﯿﯿﺮھﺎ وﻛﺘﺎﺑﺔ أو اﺧﺘﯿﺎر اﻟﻘﯿﻤﺔ اﻟﺠﺪﯾﺪة ﻟﮭﺎ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻧﻮاع اﻟﺨﺼﺎﺋﺺ‪:‬‬

‫ھﻨﺎﻟﻚ اﻧﻮاع ﻛﺜﯿﺮة ﻟﻠﺨﺼﺎﺋﺺ ﻓﮭﻨﺎﻟﻚ اﻟﺨﺼﺎﺋﺺ اﻟﻤﺮﻛﺒﺔ ﻣﻦ اﻛﺜﺮ ﻣﻦ ﻗﯿﻤﺔ واﻟﺨﺼﺎﺋﺺ اﻟﻤﺤﺼﻮرة ﺑﯿﻦ ﻗﯿﻢ ﻣﺤﺪدة وﺛﺎﺑﺘﺔ ﻛﺬﻟﻚ‬
‫ھﻨﺎﻟﻚ اﻟﺨﺼﺎﺋﺺ اﻟﻤﺠﻤﻌﺔ ﻛﻤﺠﻤﻮﻋﺔ وﺳﻮف ﻧﺴﺘﻌﺮض ﻛﻞ ﻧﻮع ﻣﻦ اﻧﻮاع اﻟﺨﺼﺎﺋﺺ ﻋﻠﻲ ﺣﺪة ﻛﻲ ﻧﻔﮭﻢ ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ‪.‬‬

‫‪ - ١‬اﻟﺨﺼﺎﺋﺺ اﻟﻤﺮﻛﺒﺔ‪:‬‬

‫ﺑﻌﺾ ﻣﻦ اﻟﺨﺼﺎﺋﺺ ﺗﻤﺘﻠﻚ ﻗﯿﻢ ﻣﺮﻛﺒﺔ ﻣﺜﻼ اﻟﺨﺎﺻﯿﺔ ‪ Location‬ﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺪاﺛﯿﺎن ‪ X and Y‬واﻟﺨﺎﺻﯿﺔ ‪ Size‬ﺗﺘﻜﻮن ﻣﻦ‬
‫اﻟﻘﯿﻤﺘﯿﻦ ‪ width and height‬واﻟﺨﺎﺻﯿﺔ ‪ Font‬ﻣﺜﻼ ﺗﺘﻜﻮن ﻣﻦ اﻟﻘﯿﻢ ‪font’s name, size, boldness‬وﻏﯿﺮھﺎ ﻣﻦ ﺧﺼﺎﺋﺺ‬
‫اﻟﺨﻄﻮط أي ھﻨﺎﻟﻚ ﺧﺼﺎﺋﺺ ﺗﺘﻜﻮن ﻣﻦ اﻛﺜﺮ ﻣﻦ ﻗﯿﻤﺔ وﻧﻸﺣﻆ ﻓﻲ اﻟﺼﻮرة اﻟﺴﺎﺑﻘﺔ ان ھﻨﺎﻟﻚ ﺧﺼﺎﺋﺺ اﻣﺎﻣﮭﺎ ﻋﻼﻣﺔ اﻟﺰاﺋﺪ )‪(+‬‬
‫ﺗﻠﻚ ھﻲ اﻟﺨﺼﺎﺋﺺ اﻟﻤﺮﻛﺒﺔ ﻓﻠﻮا ﻗﻤﺖ ﺑﺎﻟﻨﻘﺮ ﻋﻠﻲ ھﺬة اﻟﻌﻼﻣﺔ ﺳﻮف ﺗﻈﮭﺮ ﻟﻚ ﻗﯿﻢ ھﺬة اﻟﺨﺎﺻﯿﺔ‪.‬‬

‫‪ - ٢‬اﻟﺨﺼﺎﺋﺺ اﻟﻤﺤﺼﻮرة‪:‬‬

‫ھﻲ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﺗﻜﻮن ﻗﯿﻤﮭﺎ ﻣﺤﺼﻮرة وﻣﺤﺪدة وﺗﻜﻮن ﻗﯿﻤﮭﺎ ﻋﻠﻲ ﺷﻜﻞ ﻗﺎﺋﻤﺔ ﺳﺮد ﺑﮭﺎ اﻟﻘﯿﻢ اﻟﻤﻤﻜﻦ اﻋﻄﺎﺋﮭﺎ ﻟﻠﺨﺎﺻﯿﮫ‬
‫وﻣﺜﺎل ﻋﻠﻲ ھﺬة اﻟﺨﺼﺎﺋﺺ اﻟﺨﺎﺻﯿﺔ ‪ Visible‬ﻓﮭﺬة اﻟﺨﺎﺻﯿﺔ ﺗﻤﺘﻠﻚ اﺣﺪي اﻟﻘﯿﻤﺘﯿﻦ ‪ True and False‬وﻷ ﯾﻤﻜﻨﻚ اﻋﻄﺎﺋﮭﺎ ﻗﯿﻢ‬
‫اﺧﺮي اﻷ اذا ﻛﺎﻧﺖ اﻟﻘﯿﻤﺎﻷﺧﺮي ﻣﺴﺄوﯾﺔ ﻟﻠﻘﯿﻢ اﻟﺤﺎﻟﯿﺔ ﻣﺜﻼ اﻟﻘﯿﻤﺔ ‪ True= -1‬واﻟﻘﯿﻤﺔ‪False= 0 .‬‬

‫‪ - ٣‬اﻟﺨﺼﺎﺋﺺ اﻟﻤﺠﻤﻌﺔ‪:‬‬

‫ھﻨﺎﻟﻚ ﺧﺼﺎﺋﺺ ﺗﺘﻜﻮن ﻗﯿﻤﮭﺎ ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﯿﻢ أو اﻟﻌﻨﺎﺻﺮ ﻣﺜﻼ أداة اﻟﺘﺤﻜﻢ ‪ ListBox‬ﺗﻤﺘﻠﻜﺎﻟﺨﺎﺻﯿﺔ ‪ Items‬اﻟﺘﻲ ﺗﺘﻜﻮن‬
‫ﻗﯿﻤﺘﮭﺎ ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﺗﻠﻚ اﻟﺘﻲ ﺗﻘﻮم اداة ‪ ListBox‬ﺑﻌﺮﺿﻌﺎأو ﻣﺜﻞ اﻟﺨﺎﺻﯿﺔ ‪ ImageList‬ﻓﯿﻤﮭﺎ ﺗﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ‬
‫ﻣﻦ اﻟﺼﻮر ﯾﺘﻢ ﻋﺮﺿﮭﺎ ﺑﺄدوات أﺧﺮﯾﻜﺬﻟﻚ ھﻨﺎﻟﻚ ﺧﺼﺎﺋﺺ ﻗﯿﻤﮭﺎ ﺗﺘﻄﻠﺐ وﺟﻮد أداة أﺧﺮي ﻓﻤﺜﻼ ﻟﻌﻤﻞ ﺻﻮر ﺑﺎﻋﻠﻲ ﻋﻨﺎﺻﺮ اﻷداة‬
‫‪TabControl‬ﯾﺠﺐ ان ﺗﻮﺟﺪ اﻷداة ‪ ImageList‬واﻋﻄﺎء اﻟﺨﺎﺻﯿﺔ ‪ Images‬اﻟﺘﺎﺑﻌﺔ ﻟﮭﺎ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻮر ﻛﻲ ﻧﻘﻮم ﺑﻌﺮﺿﻌﺎ‬
‫ﻛﺎﯾﻘﻮﻧﺎت ﻓﻲ ﻋﻨﺎوﯾﻦ ‪ TabControl .‬وﺳﻮف ﻧﻘﻮم ﺑﻤﺜﺎل ﻟﻌﻤﻞ ذﻟﻚ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻣﺜﺎل وﺿﻊ اﻟﺼﻮر ﺑﻌﻨﺎوﯾﻦ‪TabControl :‬‬

‫ﻗﻢ ﺑﻔﺘﺢ ﻣﺸﺮوع ﺟﺪﯾﺪ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﺛﻢ ﻗﻢ ﺑﺎﺿﺎﻓﺔ ھﺬة اﻷدوات إﻟﻲ ﻓﻮرم اﻟﺒﺮﻧﺎﻣﺞ اﻷداة ‪ TabControl‬وﻋﺪل‬
‫اﻟﺨﺎﺻﯿﺔ ‪ Name‬ﻟﺘﻜﻮن ‪ TabExp‬واﻷداة‪ ImageList‬وﻋﺪل اﻟﺨﺎﺻﯿﺔ ‪ Name‬ﻟﺘﻜﻮن ‪ ImglstTabExp‬ﺛﻢ ﻗﻢ ﺑﺎﻟﻨﻘﺮ ﻧﻘﺮة واﺣﺪة‬
‫ﻋﻠﯿﺎﻷداة‪ ImglstTabExp‬ﻓﺘﻈﮭﺮ ﻟﻚ ﺧﺼﺎﺋﺼﮭﺎ ﺑﻨﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ وﻣﻨﮭﺎ ﻗﻢ ﺑﺎﻟﻨﻘﺮاﻣﺎم اﻟﺨﺎﺻﯿﺔ ‪ Images‬وﺳﺘﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة‬
‫ﻣﺤﺮر اﺿﺎﻓﺔ اﻟﺼﻮر اﻟﺘﺎﺑﻊ ﻟﻸداة‬

‫وﻟﻮ ﺗﻸﺣﻆ اﻟﺼﻮرة ﻓﺎﻧﺔ ﯾﻮﺟﺪ ﺻﻮرﺗﯿﻦ ﺗﻢ اﺿﺎﻓﺘﮭﻤﺎ ﻣﺴﺒﻘﺎ ﻓﻘﻢ اﻧﺖ اﻷﻧﺒﺎﺧﺘﯿﺎر ﺻﻮرﺗﯿﻦ ﺑﻮاﺳﻄﺔ اﻟﺰر ‪ Add‬ﺛﻢ ﺑﻌﺪ ذﻟﻚ اﺿﻐﻂ‬
‫‪Ok‬ﻋﻨﺪھﺎ ﺳﯿﻐﻠﻖ ﻣﺤﺮراﺿﺎﻓﺔ اﻟﺼﻮر وﺳﺘﻌﻮد إﻟﻲ وﺿﻊ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ اﻷن ﻗﻢ ﺑﺘﺤﺪﯾﺪ اﻷداة‪ TabExp‬ﻟﺘﻈﮭﺮ ﺧﺼﺎﺋﺼﮭﺎ‬
‫ﺑﻨﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ واﻷن ﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻣﺎم اﻟﺨﺎﺻﯿﺔ ‪ ImageList‬اﻟﺘﺎﺑﻌﺔ ﻟﻸداة ‪ TabExp‬وﻗﻢ ﺑﺎﺧﺘﯿﺎر اﻷداة‪ImglstTabExp‬‬

‫واﻷن ﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻣﺎم اﻟﺨﺎﺻﯿﺔ ‪ TabPages‬اﻟﺘﺎﺑﻌﺔ ﻟﻸداة ‪ TabExp‬وﺳﺘﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة ﺗﻌﺪﯾﻞ واﺿﺎﻓﺔ اﻟﺘﺎب )‪(Tabs‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﯾﺠﺐ ان ﺗﻌﺮف ان اﻟﺼﻔﺤﺎت أو ﻣﺎ ﯾﻌﺮف ﺑﺎﻟﺘﺎب )‪ (Tabs‬اﻟﻤﻜﻮﻧﺔ ﻟﻸداة ‪ TabExp‬ﺗﻌﺘﺒﺮ ادوات داﺧﻠﯿﺔ ﻟﮭﺎ ﺧﺼﺎﺋﺼﮭﺎ اﻟﻤﺮﺗﻜﺰة‬
‫ﻋﻠﻲ ﺧﺼﺎﺋﺺ اﻷداة اﻟﺮﺋﯿﺴﯿﺔ وھﻲ ‪ TabControl‬وﯾﻤﻜﻨﻚ اﺿﺎﻓﺔ اﻟﻌﺪد اﻟﺬي ﺗﺮﯾﺪ ﻣﻦ اﻟﺘﺎب ﻣﻦ ﺧﻼل اﻟﺰر ‪ Add‬اﻟﻤﻮﺟﻮد‬
‫اﺳﻔﻞ ﻧﺎﻓﺬة ﻣﺤﺮر اﺿﺎﻓﺔ وﺗﻌﺪﯾﻞ اﻟﺘﺎب ‪ Tab‬وﻓﻲ اﻟﻨﮭﺎﯾﺔ ﺳﻮف ﯾﻈﮭﺮ اﻟﺒﺮﻧﺎﻣﺞ ﺑﮭﺬا اﻟﺸﻜﻞ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻣﺼﻔﻮﻓﺔ اﻷدوات‬

‫ﻓﻲ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬ﻛﺎﻧﺖ ھﻨﺎﻟﻚ ﻣﯿﺰة ﺟﻤﯿﻠﺔ وﻣﻔﯿﺪة وھﻲ اﻟﻤﻘﺪرة ﻋﻠﻲ ﻋﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻷدواﺗﻮﻣﺼﻔﻮﻓﺔ اﻷدوات ﻋﺒﺎرة‬
‫ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اداة ﻣﻌﯿﻨﺔ ﺑﺤﯿﺚ ﺗﺘﺸﺎرك ﻧﻔﺲ اﻷﺣﺪاث واﯾﻀﺎ ﻟﮭﺎ ﻧﻔﺲ اﻷﺳﻢ وﻧﺴﺘﻄﯿﻊ اﻟﺘﻤﯿﯿﺰ ﺑﯿﻨﮭﺎ ﺑﻮاﺳﻄﺔ ‪ index‬اﻟﻤﻤﯿﺰ‬
‫ﻟﻜﻞ ﻋﻨﺼﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ‪.‬‬

‫واﯾﻀﺎ ھﻮ اﻟﺤﺎل ﻓﻲ ‪ VB.NET 2005‬ﻓﺈن ھﺬة اﻟﻤﯿﺰة ﺑﺎﻗﯿﺔ وﻟﻜﻦ ﻣﻊ ﺑﻌﺾ اﻻﺧﺘﻼف ﻓﻲ ﻛﯿﻔﯿﺔ اﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ اﻷدوات ﻋﻦ‬
‫اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪.٦‬‬

‫ﻣﺎھﻲ اﻟﻔﺎﺋﺪة ﻣﻦ ﻣﺼﻔﻮﻓﺔ اﻷدوات وﻣﺎ اﻟﻔﺎﺋﺪة ﻣﻨﮭﺎ? ﺳﺆال ﻗﺪ ﯾﺪور ﻓﻲ ﻋﻘﻮل اﻟﻜﺜﯿﺮ وﺳﺎﺟﯿﺐ ﻋﻠﯿﺔ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‬

‫ﺗﺼﻮر ﻟﻮ اﻧﻚ اردت اﻟﻘﯿﺎم ﺑﻌﻤﻞ ﺣﺎﺳﺒﺔ ﺗﺘﻜﻮن ﻣﻦ اﻟﻜﺜﯿﺮ ﻣﻦ اﻷزرار ﻓﺎﻧﻚ ﺑﺎﻟﺘﺎﻟﻲ ﺳﻮف ﺗﻘﻮم ﺑﻌﻤﻞ ﺣﺪث ﻟﻜﻞ زر ﺑﺒﺮﻧﺎﻣﺠﻚ‬
‫اﻟﺤﺎﺳﺒﺔ ﻓﻠﻮ دﺧﻠﻨﺎ إﻟﻲ ﺷﺎﺷﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻣﺎذا ﺳﻨﺸﺎھﺪ ﻣﻨﻈﺮ ﻏﯿﺮ ﺟﯿﺪ ﻣﻦ ﺗﺮاﻛﻢ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وﻋﺪم ﺗﻨﻈﯿﻤﺔ وﻟﻜﻦ ﻣﺎ‬
‫راﺋﯿﻚ ﻟﻮ اﺧﺘﺼﺮت ﻛﻞ اﺣﺪاث اﻷزرار ﺑﺤﺪث واﺣﺪ ﻓﻘﻂ ھﺬا ﺷﺊ ﻏﺎﯾﺔ ﻓﻲ اﻟﺮوﻋﺔ وﯾﻘﻠﻞ اﻟﺠﮭﺪ وﯾﺰﯾﺪ اﻟﺘﻨﻈﯿﻢ ھﺬا ﺻﺤﯿﺢ‪.‬‬

‫واﻷن ﻟﻨﻘﻮم ﺑﻌﻤﻞ اﻟﻤﺜﺎل ﻋﻤﻠﯿﺎ‪:‬‬


‫ﻗﻢ ﺑﺎﺿﺎﻓﺔ ‪ BUTTON‬إﻟﻲ ﻓﻮرم وﻗﻢ ﺑﺘﺴﻤﯿﺘﺔ ‪ btnNum‬ﺛﻢ ﻗﻢ ﺑﺎﻧﺸﺎء ﺣﺪث ﻟﺔ ﺑﺎﻟﻀﻐﻂ ﻋﻠﯿﺔ دﺑﻞ ﻛﻠﻚ ﺑﻌﺪ اﻧﺸﺎء اﻟﺤﺪث ادﺧﻞ‬
‫إﻟﻲ ﺷﺎﺷﺔ اﻟﺘﺼﻤﯿﻢ وﻗﻮم ﺑﻨﺴﺦ اﻟﺰر وﻟﺼﻘﺔ ‪ ٩-٠‬اي ﻋﺸﺮة ازرار ﺛﻢ ﻗﻢ ﺑﺎﻟﻀﻐﻂ دﺑﻞ ﻛﻠﯿﻚ ﻋﻠﻲ اي زر ﻣﻦ اﻷزرار ﺳﺘﺪﺧﻞ‬
‫ﺑﺬﻟﻚ إﻟﻲ ﺷﺎﺷﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وﺳﺘﻼﺣﻆ اﺿﺎﻓﺔ اﺳﻢ ذﻟﻚ اﻟﺰر إﻟﻲ ﺟﺎﻧﺐ ﺣﺪث اﻟﺰر ‪ btnNum‬واﻷن ﻗﻢ ﺑﺎﻟﻀﻐﻂ دﺑﻞ ﻛﻠﻚ‬
‫ﻋﻠﻲ ﻛﻞ اﻷزرار ﻛﻲ ﯾﻀﺎف اﺳﻤﺎﺋﮭﻦ ﻟﻠﺤﺪث واﻷن ﻛﯿﻒ ﺳﻨﻤﯿﺰ ﻛﻞ زر ﻧﻈﻐﻂ ﻋﻠﯿﺔ أوﻷ ﻗﻢ ﺑﺎﻋﺎدة ﺗﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ‬
‫‪ Text‬ﻟﻸزرار ﻟﺘﻜﻮن اﻷﻋﺪاد ﻣﻦ ‪ ٩-٠‬وﻗﻢ ﺑﺎﺿﺎﻓﺔ ‪ Textbox‬إﻟﻲ اﻟﻔﻮر واﺟﻌﻞ اﺳﻤﺔ ‪ txtview‬ﺛﻢ ﻗﻢ ﺑﻜﺘﺎﺑﺔ ھﺬا اﻷﻛﻮد‬
‫اﻟﺒﺮﻣﺠﻲ ﻓﻲ اﻟﺤﺪث ‪btnNum.Click‬‬

‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫)‪Dim MyButton As Button = DirectCast(sender, Button‬‬
‫‪txtview.Text = txtview.Text & MyButton.Text‬‬

‫اﻟﺨﺎﺻﯿﺘﺎن ‪Anchor and Dock‬‬

‫اﻟﺨﺎﺻﯿﺘﺎن ‪ Anchor and Dock‬ﺗﻌﻤﻸن ﺟﻌﻞ اﻷداة ﺗﻘﻮم ﺗﻠﻘﺎﺋﯿﺎ ﺑﺘﻐﯿﯿﺮ ﺣﺠﻤﮭﺎ وﻣﻮﺿﻌﮭﺎ ﺗﺒﻌﺄ ﻟﺤﺠﻢ اﻟﻔﻮرم اﻟﻤﻮﺿﻮﻋﺔ ﻋﻠﯿﺔ‬
‫اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﺗﺤﺪد أي ﺣﺪ ﻣﻦ ﺣﺪود اﻷداة ﯾﺠﺐ ان ﯾﺒﻘﻲ ﺛﺎﺑﺘﺎ واي ﺣﺪ ﯾﺠﺐ ان ﯾﺰﯾﺪ ﻋﻦ ﺣﺠﻤﺔ اﻟﺤﺎﻟﻲ ﺗﺒﻌﺎ ﻟﺤﺠﻢ اﻟﻔﻮرم‬
‫اﻟﻤﻮﺿﻮﻋﺔ ﻋﻠﯿﺔ‬

‫وﻷ ﺗﻮﺟﺪ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬اﻷ ﻣﻊ اﻷدوات اﻟﺘﻲ ﺗﻈﮭﺮ ﻋﻠﻲ اﻟﻔﻮرم ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ ﻣﺜﻞ ‪ Button , TextBox , list‬وﺗﻤﻠﻚ ھﺬة‬
‫اﻷدوات ارﺑﻊ ﺣﺪود ھﻲ ‪ Top, Bottom, Left, Right‬و ﺗﺤﺴﺐ ﻗﯿﻤﺔ ھﺬة اﻟﺤﺪود ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻔﻮرم‬
‫ﺑﺎﻟﺒﺎﺳﯿﻜﻞ )‪ (pixel‬واﻟﻘﯿﻤﺔ اﻷﻓﺘﺮاﺿﯿﺔ ﻟﮭﺬة اﻟﺨﺎﺻﯿﺔ ھﻲ ‪Top, Left‬‬

‫و ﻓﻲ اﻷﺻﺪار اﻟﺴﺎدس ﻣﻦ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻮ اردﻧﺎ ﻣﺜﻼ ﻋﻤﻞ ﻣﺤﺮر ﻧﺼﻮص ﻣﺜﻞ ‪ Notepad‬ﻓﺎﻧﻨﺎ ﺳﻮف ﻧﺤﺘﺎج ﻟﻜﺘﺎﺑﺔ اﻟﻜﻮد‬
‫اﻟﺒﺮﻣﺠﻲ ﯾﻘﻮم ﻋﻠﻲ ﺗﻐﯿﯿﺮ ﺣﺠﻢ ‪ TextBox‬اﻟﻤﺴﺘﺨﺪم ﻟﻠﻜﺘﺎﺑﺔ ﺗﺒﻌﺎ ﻟﺤﺠﻢ اﻟﻔﻮرم اﻟﻤﻮﺿﻮع ﻋﻠﯿﺔ ﻛﻲ ﯾﺘﻸﺋﻢ ﺷﻜﻞ اﻟﺒﺮﻧﺎﻣﺞ وﻛﺬﻟﻚ‬
‫اﻟﺤﺎل ﻟﻮ اردﻧﺎ ﻋﻤﻞ ﻣﺴﺘﻌﺮض اﻧﺘﺮﻧﺖ‬

‫وﻟﻜﻦ ﻣﻊ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ﻓﺎءن ذﻟﻚ اﻷﻣﺮ ﺑﺴﯿﻂ ﺟﺪا ﺑﺎﺳﺘﺨﺪام اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﻓﻤﺎ ﻋﻠﯿﻨﺎ ھﻮ وﺿﻊ اﻷداة ﻋﻠﻲ اﻟﻔﻮرم‬
‫ﺑﺎﻟﺸﻜﻞ اﻟﺬي ﻧﺮﯾﺪ ان ﺗﻜﻮن ﻋﻠﯿﺔ ﻋﻨﺪ ﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم ﺛﻢ ﻧﻘﻮم ﺑﺘﺤﺪﯾﺪ ﺣﺪود اﻷداة اﻟﺘﻲ ﻧﺮﯾﺪھﺎ ان ﺗﺘﻐﯿﺮ ﺗﻠﻘﺎﺋﯿﺎ ﺗﺒﻌﺎ ﻟﺘﻐﯿﺮ ﺣﺠﻢ‬
‫اﻟﻔﻮرم‬

‫ﺳﻨﻘﻮم ﺑﻌﻤﻞ ﻣﺜﺎل ﻟﺘﺘﻀﺢ اﻟﻔﻜﺮة ﻗﻢ ﺑﺎﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ﺛﻢ ﻗﻢ ﺑﺎﺿﺎﻓﺔ اﻷداة ‪ TextBox‬إﻟﻲ اﻟﻔﻮرم‬
‫وﺗﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Multiline‬ﻟﺘﺼﺒﺢ ‪ True‬وھﻲ اﻟﺨﺎﺻﯿﺔ اﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﻲ ﻇﮭﻮر اﻛﺜﺮ ﻣﻦ ﺳﻄﺮ ﺑﺎﻷداة ﺑﻮﻗﺖ واﺣﺪ وﺳﺘﻈﮭﺮ ﺑﻌﺪھﺎ‬
‫ﻣﻘﺎﺑﺾ ﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻷداة ﺛﻢ اﺟﻌﻞ ﺣﺠﻢ اﻷداه ﻋﻠﻲ اﻟﻔﻮرم ﻛﻤﺎ ﺑﺎﻟﺼﻮرة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺛﻢ ﻧﻘﻮم ﺑﺘﻐﯿﯿﺮ ﻗﯿﻤﺔ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﺑﺤﯿﺚ ﻧﻘﻮم ﺑﺘﺤﺪﯾﺪ ﺟﻤﯿﻊ ﺣﺪود اﻷداة ‪TextBox‬‬
‫وذﻟﻚ ﺑﺎﻟﻨﻘﺮ ﺑﺎﻟﻤﺄوس ﻋﻠﻲ اﻟﺤﺪ اﻟﺬي ﻧﺮﯾﺪ اﺧﺘﯿﺎرة اﻧﻈﺮ اﻟﺼﻮرة‬

‫ﺑﻌﺪ ان ﻧﻘﻮم ﺑﺘﺤﺪﯾﺪ ﺟﻤﯿﻊ ﺣﺪود اﻷداة اﻷرﺑﻊ ﻧﻘﻮم اﻷن ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‬
‫وﻧﻌﻤﻞ ﻋﻠﻲ ﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم ﺳﺘﻼﺣﻆ ان اﻷداة ‪ TextBox‬ﯾﺘﻐﯿﺮ ﺣﺠﻤﮭﺎ ﺗﺒﻌﺎ ﻟﺘﻐﯿﺮ ﺣﺠﻢ اﻟﻔﻮرﻣﻮاﻷن ﻟﻨﻘﻢ ﺑﻤﺜﺎل اﺧﺮ ﻗﻢ ﺑﺎﺿﺎﻓﺔ‬
‫‪Button‬إﻟﻲ اﻟﻔﻮرم وﻗﻢ ﺑﻮﺿﻌﺔ اﻟﺰأوﯾﺔ اﻟﻌﻠﯿﺎ ﻣﻦ اﻟﺠﮭﺔ اﻟﯿﻤﻨﻲ ﻋﻠﻲ اﻟﻔﻮرم‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺛﻢ ﻗﻢ ﺑﺠﻌﻞ ﻗﯿﻤﺔ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﺗﺴﺎوي ‪None‬‬

‫أي ﻗﻢ ﺑﺎﻟﻐﺎء ﺗﺤﺪﯾﺪ ﻛﻞ ﺣﺪود اﻷداة وﻗﻢ ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ وﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم ﺳﺘﻼﺣﻆ ان اﻷداة ﺗﻌﻤﺪ إﻟﻲ اﻷﻧﺘﻘﺎل إﻟﻲ ﻗﺮب‬
‫ﻣﻨﺘﺼﻒ اﻟﻔﻮرم واﻷن ﻗﻢ ﺑﺎﯾﻘﺎف اﻟﺒﺮﻧﺎﻣﺞ وﺗﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﻟﻞ ‪ Button‬ﻟﺘﻜﻮن ﻗﯿﻤﺘﮭﺎ ﺗﺴﺎوي ‪ Top, Right‬وھﻮ اﻧﻨﺎ‬
‫ﺣﺪد ﺛﻢ ﻗﻢ ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ وﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم ﺳﺘﻼﺣﻆ ﺛﺒﺎت ال ‪ Button‬ﻓﻲ اﻟﺰأوﯾﺔ اﻟﻌﻠﯿﺎ ﻣﻦ اﻟﺠﮭﺔ اﻟﯿﻤﻨﻲ ﻣﮭﻤﺎ ﺗﻐﯿﺮ ﺣﺠﻢ‬
‫اﻟﻔﻮرم وذﻟﻚ ﻷﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺘﺜﺒﯿﺖ ﺣﺪود اﻷداة ‪ Top, Right‬ﺑﻮاﺳﻄﺔ اﻟﺨﺎﺻﯿﺔ ﻓﻜﻠﻤﺎ ﻗﻤﻨﺎ ﺑﺘﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم ﻓﺎن ال ‪ Button‬ﯾﻌﻤﺪ‬
‫إﻟﻲ اﻷﻧﺘﻘﺎل إﻟﻲ ﺗﻠﻚ اﻟﺠﮭﺔ اﻟﻤﺜﺒﺘﺔ ﺣﺪودة ﻋﻠﯿﮭﺎ ﻛﺬﻟﻚ ﯾﻤﻜﻨﻨﺎ ﺗﻐﯿﯿﺮ ﻣﻮﺿﻊ اﻷدوات ﻓﻲ وﻗﺖ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺜﻼ ﻗﻢ ﺑﺎﺿﺎﻓﺔ‬
‫‪Button‬إﻟﻲ اﻟﻔﻮرم وﻗﻢ ﺑﻮﺿﻌﺔ ﺑﺎي ﻣﻜﺎن ﺛﻢ ﻗﻢ ﺑﺎﺿﺎﻓﺔ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ إﻟﻲ اﻟﺤﺪث‪Form_Load‬‬

‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬

‫‪Button1.Location = New Point(Me.ClientRectangle.Width -Button1.Width, Me.ClientRectangle.Height -‬‬


‫)‪Button1.Height‬‬
‫‪Button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right‬‬

‫واﻷن ﻟﻨﻘﻢ ﺑﻤﺜﺎل اﺧﯿﺮ ﻗﻢ ﺑﺎﺿﺎف ﺛﻸﺛﺔ ‪ TextBox‬ﻋﻠﻲ اﻟﻔﻮرم ﺛﻢ ﻗﻢ ﺑﺠﻌﻞ ﺷﻜﻠﮭﺎ ﻋﻠﻲ اﻟﻔﻮرم ﻛﻤﺎ ﻣﺎ ﺗﻮﺿﺢ اﻟﺼﻮرة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺛﻢ ﻗﻢ ﺑﺘﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﻟﻸول ﻟﺘﻜﻮن ﻗﯿﻤﺘﮭﺎ ‪ Top‬واﻟﻘﯿﻤﺔ ﻟﻠﺜﺎﻧﻲ ‪ None‬واﻟﻘﯿﻤﺔ ﻟﻠﺜﺎﻟﺚ‪Bottom‬‬
‫ﺛﻢ ﻗﻢ ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ وﺗﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻔﻮرم وﺳﺘﻼﺣﻆ ان اﻷدوات ﯾﺘﻸﺋﻢ ﻣﻮﺿﻌﮭﺎ ﻋﻠﻲ اﻟﻔﻮرم ﻣﻊ ﺗﻐﯿﯿﺮ ﺣﺠﻤﺔ‬

‫اﻟﺨﺎﺻﯿﺔ ‪Dock‬‬

‫ﺗﻘﻮم ﺑﺘﺜﺒﺖ ﻣﻮﺿﻊ اﻷداة ﻓﻲ اﺣﺪ ﺟﻮاﻧﺐ اﻟﻔﻮرم أو اﻟﺤﺎوﯾﺔ اﻟﺘﻲ ھﻲ ﻋﻠﯿﮭﺎ ﻣﺜﻼ ﻟﻮ ﻗﻤﺖ ﺑﺘﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Dock‬ﻟﺘﺴﺎوي ‪Top‬‬
‫ﻷداة ﻣﺜﻞ ‪ Button‬ﻓﺎن اﻷداة ﺳﺘﻨﺘﻘﻞ إﻟﻲ اﻋﻠﻲ اﻟﻔﻮرم وﺳﺘﺘﻤﺪد ﺟﻮاﻧﺒﮭﺎ ﻟﺘﺼﻞ ﻟﻠﺠﺎﻧﺒﯿﻦ ‪ Left & Right‬واذا ﻗﻤﻨﺎ ﺑﺘﻐﯿﯿﺮ ﺣﺠﻢ‬
‫اﻟﻔﻮرم ﻓﺎءن اﻷداة ﺳﺘﻸزم ﻣﻮﺿﻌﮭﺎ وﺗﺤﺘﻔﻀﻞ ﺑﺎرﺗﻔﺎﻋﮭﺎ وﺳﺘﺘﻤﺪ ﺟﻮاﻧﺒﮭﺎ ﺗﺒﻌﺎ ﻟﺘﻐﯿﺮ ﻋﺮض اﻟﻔﻮرم ھﺬا ﻣﺎ ﯾﺸﺎﺑﺔ ﺳﻠﻮك اﻷداة‬
‫‪ToolBar‬وﻧﺴﺘﻄﯿﻊ اﻟﻘﯿﺎم ﺑﺬﻟﻚ اﯾﻀﺎ ﺑﻮﺿﻊ اﻷداة ‪ Button‬ﻓﻲ اﻋﻠﻲ اﻟﻔﻮرم وﺗﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Anchor‬ﻟﮫ ﻟﺘﺼﺒﺢ ‪Top, Left,‬‬
‫‪Right‬ﯾﻤﻜﻨﻚ ﺗﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Dock‬ﻟﺘﺴﺎوي‪Top, Bottom, Left, Right, Fill, or None‬‬
‫واﻟﺨﺎﺻﯿﺔ ‪ Fill‬ﺗﻘﻮم ﺑﺠﻌﻞ ﺣﺠﻢ اﻷداة ﺑﻤﻠﺊ اﻟﻔﻮرم اﻟﺘﻲ ھﻲ ﻋﻠﯿﺔ أو اﻟﺤﺎوﯾﺔ اﻟﺘﻲ ﺗﺤﺘﻮﯾﮭﺎ وﻟﻜﻦ اﻟﺴﺆال ﻣﺎذا ﻟﻮ ﻛﺎن ﻟﺪﯾﻨﺎ اﻛﺜﺮ‬
‫ﻣﻦ اداة ﻋﻠﻲ اﻟﻔﻮرم ﻗﻤﻨﺎ ﺑﺘﻐﯿﯿﺮ ﻗﯿﻢ اﻟﺨﺎﺻﯿﺔ ‪ Dock‬ﻟﮭﺎ ﺑﺎﺳﺘﺜﻨﺎ اﻟﻘﯿﻤﺔ ‪ None‬اي اداة ﺳﺘﻨﻔﺬ ﻗﯿﻤﺘﮭﺎ أوﻷ اﻧﺎ اﻟﻔﻮرم أو اﻷداة‬
‫ﺳﺘﻘﻮم ﺑﺘﺮﺗﯿﺐ اﻷدوات ﺑﺤﺴﺐ ‪ stacking order‬اﻟﺘﺎﺑﻊ ﻟﻸدوات أو ﻣﺎ ﯾﺴﻤﻲ ‪ Z-order‬اﻷداة اﻟﺘﻲ ﺗﻢ وﺿﻊ اﻟﻘﯿﻤﺔ ﻟﮭﺎ أوﻷ ھﻲ‬
‫اﻟﺘﻲ ﺳﺘﺎﺧﺬ ﻣﻮﺿﻌﮭﺎ أوﻷ ﻓﺎﻟﺘﺎﻟﻲ واﻟﺘﺎﻟﻲ‪.‬‬

‫ﺳﻮف ﻧﻘﻮم ﺑﻤﺜﺎل ﻟﻠﺘﻌﺮف ﻋﻠﻲ ھﺬة اﻟﺨﺎﺻﯿﺔ اﻛﺜﺮ‬


‫ﻣﺜﺎل ‪ :‬ﻗﻢ ﺑﻮﺿﻊ ارﺑﻊ ‪ TextBox‬ﻋﻠﻲ اﻟﻔﻮرم وﻏﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ MultiLine‬ﻟﻠﻜﻞ ﻟﺘﺴﺎوي ‪ True‬واﺟﻌﻞ اﺣﺠﺎﻣﮭﻦ وﻣﻮﺿﻌﮭﻦ ﻋﻠﻲ‬
‫اﻟﻔﻮرم ﻛﻤﺎ ﺑﺎﻟﺼﻮرة‬

‫واﻷن ﻗﻢ ﺑﺘﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Dock‬ﺑﺎﻟﺘﺮﺗﯿﺐ ﻟﻠﻜﻞ ﻛﻤﺎ ﯾﻠﻲ‪:‬‬


‫اﻷول ‪ :‬اﻋﻄﯿﮭﺎ اﻟﻘﯿﻤﺔ ‪Right‬‬
‫اﻟﺜﺎﻧﻲ ‪ :‬اﻋﻄﯿﮭﺎ اﻟﻘﯿﻤﺔ ‪Top‬‬
‫اﻟﺜﺎﻟﺚ ‪ :‬اﻋﻄﯿﮭﺎ اﻟﻘﯿﻤﺔ ‪Bottom‬‬
‫اﻟﺮاﺑﻊ ‪ :‬اﻋﻄﯿﮭﺎ اﻟﻘﯿﻤﺔ ‪Fill‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٥٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


 

Prog: Mohamed Youssef ٦٠ E_Mail: Mohamed.yoyo@gmail.com


 
‫ﺗﻌﺎﻟﻮا ﻧﺘﻌﻠﻢ ﻣﻌﺎ ﻛﯿﻒ ﻧﻨﺸﺊ ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻲ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬
1

‫أو‬

1
١٩‫ ص‬، PDF File ، ‫ ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔﻋﻦ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬: ‫ ﺧﺎﻟﺪ اﻟﺠﺪﯾﻊ‬/‫ م‬-

Prog: Mohamed Youssef ٦١ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٦٢ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٦٣ E_Mail: Mohamed.yoyo@gmail.com
‫‪1‬‬

‫ﻧﺎﻓﺬة ﻣﺴﺘﻜﺸﻒ اﻟﺤﻠﻮل‬

‫‪ - 1‬م‪ /‬ﺧﺎﻟﺪ اﻟﺠﺪﯾﻊ ‪ :‬ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔﻋﻦ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ ‪ ، PDF File ،‬ص‪٢١‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٦٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ٦٥ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٦٦ E_Mail: Mohamed.yoyo@gmail.com
 

٢٥‫ ص‬، PDF File ، ‫ ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔﻋﻦ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬: ‫ ﺧﺎﻟﺪ اﻟﺠﺪﯾﻊ‬/‫ م‬- 1

Prog: Mohamed Youssef ٦٧ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٦٨ E_Mail: Mohamed.yoyo@gmail.com
‫ﺳﻮف ﯾﻔﺘﺢ ﻟﻚ ﻣﻜﺎﻧﺎ ﻟﻜﺘﺎﺑﺔ أﺳﻢ اﻟﺸﺮﯾﻂ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٦٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


  

٢
‫ﻛﻞ ھﺬه اﻻدوات اﻟﺴﺎﺑﻘﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻮﯾﻨﺪوز و اﻹﻧﺘﺮﻧﺖ‬

٢٧‫ ص‬، PDF File ، ‫ ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔﻋﻦ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬: ‫ ﺧﺎﻟﺪ اﻟﺠﺪﯾﻊ‬/‫ م‬- 1
2
. PDF File ، ( ‫ ﻋﻤﻠﻲ‬- ‫ ) ﻧﻈﺮي‬VB.Net 2005 ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬-

Prog: Mohamed Youssef ٧٠ E_Mail: Mohamed.yoyo@gmail.com


 
 
 
 
 
 
 

Prog: Mohamed Youssef ٧١ E_Mail: Mohamed.yoyo@gmail.com


‫‪ ‬‬
‫اﻟﻔﺼﻞ اﻷول ‪ -:‬اﻟﻤﺘﻐﯿﺮات و اﻟﺜﻮاﺑﺖ‬
‫اﻟﻤﺘﻐﯿﺮات‬
‫اﻟﻤﺘﻐﯿﺮات ﺗﻌﺘﺒﺮﻣﻦ ﺑﯿﻦ اﻛﺜﺮ اﺟﺰاء اﻟﺒﺮﻧﺎﻣﺞ اھﻤﯿﺔ‪.‬‬
‫واﻟﻤﺘﻐﯿﺮ ‪ :‬ھﻮ اﺣﺪ ﺗﻮاﺑﻊ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﺴﺘﻄﯿﻊ ﺗﺨﺰﯾﻦ ﻗﯿﻤﺔ‬

‫ھﺬة اﻟﻘﯿﻤﺔ ﯾﻤﻜﻦ ان ﺗﻜﻮن رﻗﻢ أو ﺣﺮف أو ﺑﯿﺎﻧﺎت أوھﯿﻜﻠﯿﺔ ﺗﺘﻜﻮن ﻣﻦ اﻧﻮاع اﺧﺮي ﻋﺮﻓﻨﺎ ان اﻟﻤﺘﻐﯿﺮ ﯾﺘﻜﻮن ﻣﻦ ﻗﯿﻤﺔ ﺑﻘﻲ ان‬
‫ﻧﻌﺮف ان اﻟﺒﺮﻧﺎﻣﺞ ﯾﺴﺘﻄﯿﻊ اﺳﺘﺨﺪام وﻣﻌﺎﻟﺠﺔ ھﺬة اﻟﻘﯿﻤﺔ و ان ﯾﺠﺮي ﻋﻠﯿﮭﺎ اﻟﻌﻤﻠﺒﺎت اﻟﺤﺴﺎﺑﯿﺔ اذا ﻛﺎﻧﺖ رﻗﻢ واﻟﻌﻤﻠﯿﺎت ﻋﻠﻲ‬
‫اﻟﺒﯿﺎﻧﺎت اﻟﺤﺮﻓﯿﺔ ﻛﺎﻟﺪﻣﺞ واﻟﺒﺤﺚ واﻟﻘﻄﻊ وﻏﯿﺮھﺎ اذا ﻛﺎﻧﺖ ﺣﺮﻓﯿﺔ ﻛﺬﻟﻚ اﻟﻌﻤﻠﯿﺎت ﻋﻠﻲ اﻟﺒﯿﺎﻧﺎت اﻷﺧﺮي ﻛﺎﻟﻤﻠﻔﺎت اﻟﺼﻮﺗﯿﺔ‬
‫واﻟﺮﺳﻮﻣﯿﺔ ﻣﻦ ﻣﻘﺎرﻧﺔ واﻧﺸﺎء إﻟﻲ اﺧﺮة ‪.‬‬

‫ھﻨﺎﻟﻚ ارﺑﻌﺔ ﻋﻮاﻣﻞ ﺗﺤﺪد ﺳﻠﻮك اﻟﻤﺘﻐﯿﺮ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ‪:‬‬

‫‪ - ١‬ﻧﻮع اﻟﺒﯿﺎﻧﺎت‪:‬‬
‫وھﻲ ﻧﻮع اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﻤﺜﻠﮭﺎ اﻟﻤﺘﻐﯿﺮ )‪ (integer, character, string‬اﻟﺦ‪.‬‬

‫‪ - ٢‬ﻣﺠﺎل أو ﻣﺪي اﻟﻤﺘﻐﯿﺮ‪:‬‬


‫وھﻮ اﻟﻤﺠﺎل اﻟﺬي ﯾﻤﻜﻦ ﻟﻠﻤﺘﻐﯿﺮ ان ﯾﻮﺟﺪ وﯾﺴﺘﻌﻤﻞ ﻓﯿﺔ ﻓﻤﺜﻼ ﻟﻮ ﻗﻤﻨﺎ ﺑﺎﻷﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ ﺑﺪاﺧﻞ دوارة ‪ For‬ﻓﺎءن ﻣﺠﺎل اﺳﺘﻌﻤﺎل‬
‫ھﺬا اﻟﻤﺘﻐﯿﺮ ھﻮ ﺑﺪاﺧﻞ ھﺬة اﻟﺪوارة ﻓﻘﻂ وﻷ ﻧﺴﺘﻄﯿﻊ اﺳﺘﻌﻤﺎﻟﺒﺔ ﺑﺨﺎرﺟﮭﺎ وﻟﻜﻦ ﻟﻮ ﻗﻤﻨﺎ ﺑﺎﻷﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ ﻓﻲ ﻣﻨﻄﻘﺔ اﻟﺘﺼﺮﯾﺤﺎت‬
‫اي ﻗﺒﻞ اي ﺣﺪث أو داﻟﺔ ﻓﺎءن ﻣﺠﺎل اﺳﺘﻌﻤﺎل ھﺬا اﻟﻤﺘﻐﯿﺮ ھﻮ ﻓﻲ ﻛﻞ اﺟﺰاء اﻟﺒﺮﻧﺎﻣﺞ وﯾﺴﻤﻲ ﻓﻲ ھﺬة اﻟﺤﺎﻟﺔ ‪ Globel‬اي ﻣﺮﺋﻲ‬
‫ﻣﻦ ﻗﺒﻞ اﻟﺠﻤﯿﻊ‬

‫‪ - ٣‬اﻣﻜﺎﻧﯿﺔ اﻟﻮﺻﻮل وﻣﺪي اﻣﻜﺎﻧﯿﺔ اﻟﺘﺨﺰﯾﻦ‪:‬‬


‫ھﻲ ﺗﺤﺪﯾﺪ اﻣﻜﺎﻧﯿﺔ اﻟﻮﺻﻮل إﻟﻲ ھﺬا اﻟﻤﺘﻐﯿﺮ ﻣﻦ اي ﻣﻮدﯾﻮل اﺧﺮ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ ﻓﻤﺜﻼ ﻟﻮ ﻗﻤﻨﺎ‬
‫ﺑﺎﻟﺘﺼﺮﯾﺢ ﻋﻦ ﻣﺘﻐﯿﺮ ﺑﻤﻮدﯾﻮل واﺳﺘﻌﻤﻠﻨﺎ اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة ‪Private‬ﻟﻸﻋﻸن ﻋﻦ ھﺬا اﻟﻤﺘﻐﯿﺮ ﻓﺎءن ھﺬا اﻟﻤﺘﻐﯿﺮ ﺳﯿﺴﺘﻌﻤﻞ ﺑﺪاﺧﻞ‬
‫ذﻟﻚ اﻟﻤﻮدﯾﻮل ﻓﻘﻂ وﻟﻜﻦ ﻟﻮاﺳﺘﻌﻤﻠﻨﺎ اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة ‪ Public‬ﻟﻸﻋﻸن ﻋﻦ ھﺬا اﻟﻤﺘﻐﯿﺮ ﻓﻲ ﻗﺴﻢ اﻟﺘﺼﺮﯾﺤﺎت اﻟﻌﺎﻣﺔ ﻓﻲ اﻋﻠﻲ‬
‫اﻟﻤﻮدﯾﻮل ﻓﺎءن ﺑﺎﻗﻲ اﺟﺰاء اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﻓﻮرم وﻣﻮدﯾﻮل ﺗﺴﺘﻄﯿﻊ اﻟﻮﺻﻮل ﻟﮭﺬا اﻟﻤﺘﻐﯿﺮ ھﺬا‬
‫ﺑﺎﻟﻨﺴﺒﺔ ﻻﻣﻜﺎﻧﯿﺔ اﻟﻮﺻﻮل أو ﻣﺠﺎل ﻋﻤﻞ اﻟﻤﺘﻐﯿﺮ اﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻣﺪي اﻣﻜﺎﻧﯿﺔ اﻟﺘﺨﺰﯾﻦ ﻓﮭﺬا ﯾﻌﻨﻲ ﻛﻢ اﻗﺼﻲ ﺣﺪ ﻟﻠﺒﯿﺎﻧﺎت ﯾﻤﻜﻦ ﻟﻠﻤﺘﻐﯿﺮ‬
‫اﺳﺘﯿﻌﺎﺑﮭﺎ وﺳﻨﺮي اﻟﻔﺮوق ﺑﯿﻦ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت واﻣﻜﺎﻧﯿﺔ اﺳﺘﯿﻌﺎﺑﮭﺎ ﻟﻠﺒﯿﺎﻧﺎت ﻷﺣﻘﺎ‬

‫‪ -٤‬ﻋﻤﺮ اﻟﻤﺘﻐﯿﺮ‬

‫وھﻮ ﺗﺤﺪﯾﺪ ﻛﻢ ﻣﻦ اﻟﻮﻗﺖ ﺳﺘﻜﻮن ﻗﯿﻤﺔ ھﺬا اﻟﻤﺘﻐﯿﺮ ﺻﺎﻟﺤﺔ ﻟﻸﺳﺘﻌﻤﺎل‪ .‬ﻓﻤﺜﻼ ﻟﻮ ﻗﻤﻨﺎ ﺑﺎﻷﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ داﺧﻞ اﺟﺮاء ﻓﺮﻋﻲ‬
‫ﺑﻮاﺳﻄﺔ اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة‪Dim‬‬

‫ﻣﺜﻼ ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺔ‬


‫‪Dim x As Integer‬‬

‫ﻓﺎءن ھﺬا اﻟﻤﺘﻐﯿﺮ ﺳﻮف ﯾﻨﺸﺊ ﻣﺘﻲ اﻷﺳﺘﺪﻋﺎء ﺑﺪاء وﺳﯿﺪﻣﺮ ھﺬا اﻟﻤﺘﻐﯿﺮ ﻣﺘﻲ اﻧﺘﮭﻲ اﻷﺟﺮاء وﻟﻜﻦ ﻟﻮ ﻗﻤﻨﺎ ﺑﺎﻷﻋﻼن ﻋﻦ ھﺬا‬
‫اﻟﻤﺘﻐﯿﺮ ﺑﻮاﺳﻄﺔ اﻟﻜﻠﻤﺔ اﻟﻤﺤﺠﻮزة ‪ static‬ﻓﺎن ﻗﯿﻤﺔ ھﺬا اﻟﻤﺘﻐﯿﺮ ﻟﻦ ﺗﺪﻣﺮ ﻋﻨﺪ ﻧﮭﺎﯾﺔ اﻷﺟﺮاء ﺑﻞ ﺳﯿﻈﻞ اﻟﻤﺘﻐﯿﺮ ﻣﺤﺘﻔﻈﺎ ﺑﮭﺎ‬
‫اﻷﻧﻮاع اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﺒﯿﺎﻧﺎت‪:‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻣﻼﺣﻈﺔ ‪:‬‬
‫ان اﻟﺘﻌﺮف ﻋﻠﻲ اﻧﻮاع اﻟﻤﺘﻐﯿﺮات واﻻﺧﺘﻼف ﺑﯿﻨﮭﺎ ﻣﮭﻢ ﺟﺪا ﻟﻤﻌﺮﻓﺔ اي ﻧﻮع ﺑﺎﻟﻀﺒﻂ ﯾﻤﻜﻦ ان اﺗﻌﺎﻣﻞ ﻣﻌﺔ ﻓﻤﺜﻼ ﻟﻮ ﻗﻤﻨﺎ ﺑﻤﺜﺎل‬
‫ﺻﻐﯿﺮ ھﻮ ﺗﺨﺰﯾﻦ رﻗﻢ اﻛﺒﺮ ﻣﻦ ‪ 2,147,483,647‬داﺧﻞ ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ‪ integer‬ﻟﻦ ﯾﻘﺒﻞ ذﻟﻚ اﻟﻤﺘﻐﯿﺮ اﻟﻘﯿﻤﺔ اﻟﻤﻌﻄﺎة ﻷﻧﮭﺎ اﻛﺒﺮ ﻣﻦ‬
‫اﻣﻜﺎﻧﯿﺔ اﺳﺘﯿﻌﺎﺑﺔ ﻓﻲ ھﺬة اﻟﺤﺎﻟﺔ ﯾﺠﺐ ان ﯾﻜﻮن ﻧﻮع اﻟﻤﺘﻐﯿﺮ ‪ Long‬أو ‪ Double‬ﻷن ﻛﻤﯿﺔ اﺳﺘﯿﻌﺎﺑﮭﺎ ﻛﺒﯿﺮة‪.‬‬

‫اﻧﻮاع اﻟﺮﻣﻮز‪:‬‬

‫اﻟﺮﻣﻮز ﺑﺎﻟﻔﯿﺠﻮال دوت ﻧﺖ ﻟﮭﺎ ﻣﮭﺎم ﺧﺎﺻﺔ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬ﻓﺎﻟﺮﻣﻮز ﺗﺴﺘﺨﺪم ﻟﻸﻋﻸن ﻋﻦ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت‬
‫اﻟﻤﺨﺘﻠﻔﺔ وھﺬا ﺟﺪول ﻣﺒﯿﻦ ﺑﺎﻧﻮاع اﻟﺒﯿﺎﻧﺎت ﻣﻊ اﻟﺮﻣﻮز اﻟﺘﻲ ﺗﺎﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ إﻟﯿﮭﺎ وھﻲ ﻣﻦ اﻟﻨﻮع اﻻﻷﻛﻮد اﻟﺒﺮﻣﺠﯿﻲ اﻟﻐﯿﺮ‬
‫ﻟﻔﻈﻲ‬

‫ﻓﻤﺜﻼ ﻟﻮ اردت ان ﺗﻌﻠﻦ ﻋﻦ ﻣﺘﻐﯿﺮان اﺣﺪھﻤﺎ ﻧﻮﻋﺔ‬


‫‪ long‬واﻷﺧﺮ ﻧﻮﻋﺔ ‪String‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪Dim x&=5‬‬
‫"‪Dim y$="salem4it - Youssef‬‬

‫وﻛﻤﺎ ﻧﻌﺮف ﻓﺎﻧﻨﺎ ﻣﻠﺰﻣﻮن ﺑﺎﻷﻋﻼن ﻋﻦ ﻛﻞ اﻟﻤﺘﻐﯿﺮات ﻓﻲ ﺑﺮاﻣﺠﻨﺎ اا ﻛﺎن اﻟﺨﯿﺎر‬


‫‪ Option Explicit On‬ﻣﻔﻌﻞ اﻣﺎ اذا ﻛﺎن ﻏﯿﺮ ﻣﻔﻌﻞ ﻓﻨﺴﺘﻄﯿﻊ ان ﻧﻜﺘﺐ اﺳﻤﺎ اﻟﻤﺘﻐﯿﺮات واﻋﻄﺎﺋﮭﺎ اي ﻗﯿﻢ‬
‫ﻣﻦ دون ﺗﺤﺪﯾﺪ ﻧﻮع اﻟﺒﯿﺎﻧﺎت ﻣﺜﻼ‬
‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪Dim x=10000000000‬‬
‫"‪Dim y ="salem4it - Youssef‬‬

‫وﺗﺴﺘﻄﯿﻊ ﺗﻌﺪﯾﻞ اﻟﺨﯿﺎر ‪ Option Explicit‬ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ Tools‬وﺗﺨﺘﺎر ‪Options‬‬


‫وﻣﻦ ﺷﺠﺮة اﻟﻌﺮض ﻧﻀﻐﻂ ﻋﻠﻲ ‪ Projects and Solutions‬وﺛﻢ ﻧﺨﺘﺎر ‪ VB Defaults‬أو ﻧﺴﺘﻄﯿﻊ ان ﻧﻌﺪل ھﺬا اﻟﺨﯿﺎر ﺑﻜﺘﺎﺑﺔ‬
‫اﻟﻌﺒﺎرة ‪ Option Explicit On‬ﻟﻠﺘﻔﻌﯿﻞ ﻓﻲ ﻣﻨﻄﻘﺔ اﻟﺘﺼﺮﯾﺤﺎت اﻟﻌﺎﻣﺔ أو ‪ Option Explicit Off‬ﻷﻟﻐﺎء اﻟﺘﻔﻌﯿﻞ وﯾﺠﺐ ان ﺗﻌﺮف‬
‫ان اﻷﻋﻼن ﻋﻦ اﻟﻤﺘﻐﯿﺮات ﻣﻊ ﺗﺤﺪﯾﺪ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺳﻮف ﯾﺘﻢ ﺗﺨﺰﯾﻨﮭﺎ ﺑﺎﻟﻤﺘﻐﯿﺮات ﻣﮭﻢ ﺟﺪا وذﻟﻚ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺬاﻛﺮة ﺑﺸﻜﻞ‬
‫اﻓﻀﻞ وﺳﺒﺐ ذﻟﻚ اﻋﻼم اﻟﺬاﻛﺮة ﺑﺎﻟﻤﺴﺎﺣﺔ اﻟﻔﻌﻠﯿﺔ اﻟﺘﻲ ﺗﺮﯾﺪھﺎ ﻣﺘﻐﯿﺮاﺗﻚ ﻟﺘﺨﺰﯾﻦ اﻟﺒﯿﺎﻧﺎت ﻛﻲ ﻷ ﯾﺤﺪث ﺧﻤﻮل‬
‫ﻟﻠﺬاﻛﺮة ﺑﺴﺒﺐ ﺣﺠﺰ ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة ﻣﻨﮭﺎ ﻟﻤﺘﻐﯿﺮات ﻏﯿﺮ ﻣﻌﺮوﻓﺔ اﻟﻨﻮع ورﻏﻢ ﻛﻞ ھﺬا ﻓﺎءن اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ﺣﻞ ﻣﺜﻞ ھﺬة‬
‫اﻟﻤﺸﻜﻠﺔ ﺑﺎﻋﻄﺎء ﻧﻮع ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻟﻠﻤﺘﻐﯿﺮ ﺑﺤﺴﺐ اﻟﻘﯿﻤﺔ اﻟﻤﺴﻨﺪة إﻟﯿﺔ ﻓﻤﺜﻼ‬

‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪Dim x=10000000000‬‬
‫"‪Dim y ="salem4it - Youssef‬‬

‫اﻟﻤﺘﻐﯿﺮ ‪ x‬ﻣﻦ اﻟﻨﻮع ‪ long‬واﻟﻤﺘﻐﯿﺮ ‪ y‬ﻣﻦ اﻟﻨﻮع ‪String‬‬


‫وھﻨﺎﻟﻚ اﯾﻀﺎء ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ اﻧﻮاع ﻣﻦ اﻟﺮﻣﻮز ﺗﺴﻤﻲ ﺑﺎﻟﺮﻣﻮزاﻟﺤﺮﻓﯿﺔ وھﻲ ﺗﻘﻮم ﻣﻘﺎم اﻷﻧﻮاع اﻟﺘﻲ ﺗﺪل ﻋﻠﯿﮭﺎ ووﻟﻜﻦ‬
‫ﻃﺮﯾﻘﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ﻟﯿﺲ ھﻲ ﻧﻔﺴﮭﺎ اﻟﺘﻲ اﺳﺘﺨﺪﻣﻨﺎھﺎ ﺳﺎﺑﻘﺎ ﻣﻊ اﻟﺮﻣﻮز اﻟﻐﯿﺮ اﺑﺠﺪﯾﺔ وھﺬا ﺟﺪول ﻣﻮﺿﺢ ﻟﺬﻟﻚ‬

‫واﻷن ﻧﺎﺗﻲ ﻟﻜﯿﻔﯿﺔ اﻻﺳﺘﺨﺪام اﻓﺮض اﻧﻚ ﻗﻤﺖ ﺑﻜﺘﺎﺑﺔ اﻟﺘﺎﻟﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪X=100L‬‬
‫‪Y="A"c‬‬

‫وھﺬا اﻟﻘﯿﻤﺔ اﻷوﻟﻲ ‪ long‬واﻟﻘﯿﻤﺔ اﻟﺜﺎﻧﯿﺔ ﻣﻦ اﻟﻨﻮع ‪ Char‬وﻟﻜﻦ ﯾﺠﺐ ان ﻧﻌﻠﻢ اﻧﻨﺎ ﻷ ﻧﺴﺘﻄﯿﻊ ان ﻧﻜﺘﺐ اﻟﻤﺘﻐﯿﺮات ﺑﺎﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ‬
‫اﻷ اذا ﻛﺎن اﻟﺨﯿﺎر ‪ Option Explicit Off‬ﻏﯿﺮ ﻣﻔﻌﻞ ﻛﺬﻟﻚ ﯾﺴﻤﺢ ﻟﻚ اﻟﻔﯿﺠﻮال ﺑﺘﻌﯿﯿﻦ اﻧﻮاع اﻟﻘﯿﻢ ﺑﺎﺳﺘﺨﺪام رﻣﻮز ﺣﺮﻓﯿﺔ‬
‫ﻣﺜﻞ ‪ &H‬ﻟﻠﺒﻘﯿﻢ اﻟﺴﺎدس ﻋﺸﺮﯾﺔ ‪ &O‬ﻟﻠﻘﯿﻢ اﻟﺜﻤﺎﻧﯿﺔ‬

‫اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫‪i = 100‬‬ ‫‪' Decimal 100.‬‬
‫‪i = &H64 ' Hexadecimal &H64 = 6 * 16 + 4 = 96 + 4 = 100.‬‬
‫‪i = &O144 Octal &O144 = 1 * 8 * 8 + 4 * 8 + 4 =100.‬‬

‫اﯾﻀﺎ ﯾﻮﻓﺮ ﻟﻨﺎ اﻟﻔﯿﺠﻮال اﻟﻜﺜﯿﺮ ﻣﻦ دوال واﺳﺈﻟﯿﺐ اﻟﺘﻐﯿﯿﺮ ﺑﯿﻦ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت‬
‫‪١‬‬
‫أﺳﺘﺨﺪام اﻟﻮﺳﯿﻠﺔ ) (‪ Randomize‬ﻟﺘﻐﯿﺮ ﺗﻨﻔﯿﺬ اﻟﺒﯿﺎﻧﺎت اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻷﻣﺮ ) (‪Rnd‬‬

‫‪1‬‬
‫‪ -‬أ‪.‬د‪ /‬أﺣﻤﺪ ﻓﮭﻤﻲ ﻣﺤﺮوس ‪ :‬ﻣﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ ‪ -‬اﻟﺼﻒ اﻟﺜﺎﻟﺚ اﻷﻋﺪادي ‪ ،‬ﻣﻘﺪﻣﺔ اﻟﺒﺮﻣﺠﺔ ﺑﺈﺳﺘﺨﺪام ‪ ، Visual Basic.Net 2005‬ﻟﻠﻌﺎم اﻟﺪراﺳﻲ‬
‫‪ ، ٢٠٠٩/٢٠٠٨‬ص ‪١٠٧‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ ‬‬
‫أوﻷ ‪ :‬اﻟﻤﺘﻐﯿﺮات‬

‫ﻗﺒﻞ اﻟﺒﺪء ﻓﻲ اﻟﺪرس أﺣﺐ أن أﻧﻮه أن إﻟﻲ أﻧﮫ ھﻨﺎك ﺑﻌﺾ اﻟﻨﻘﺎط اﻟﻤﻔﺘﻮﺣﺔ ﻓﻲ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ واﻟﺘﻲ ﺳﻨﻌﻮد إﻟﯿﮭﺎ ﺑﻤﺰﯾﺪ ﻣﻦ‬
‫اﻟﺘﻔﺎﺻﯿﻞ ﻓﻲ ﺣﯿﻨﮫ‬
‫‪١‬‬
‫وﻣﻦ أﺟﻤﻞ ﻣﺎ ﻗﺮأت ﻓﯿﻤﺎ ﯾﺘﻌﻠﻖ ﺑﺎﻟﻤﺘﻐﯿﺮات ھﺬا اﻟﺪرس‬

‫‪ - 1‬أ‪.‬م‪ /‬ﻣﺤﻤﺪ اﻟﺤﺎج ‪ :‬ﻣﺤﺎﺿﺮات ﻣﺎدة ‪) VB.Net‬ﻧﻈﺮي ‪ +‬ﻋﻤﻠﻲ( ‪ ، PDF File ،‬ص‪٦‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٧٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


 

١٤‫ ص‬، PDF File ، (‫ ﻋﻤﻠﻲ‬+ ‫ )ﻧﻈﺮي‬VB.Net ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬- 1

Prog: Mohamed Youssef ٧٧ E_Mail: Mohamed.yoyo@gmail.com






١٥‫ ص‬، PDF File ، (‫ ﻋﻤﻠﻲ‬+ ‫ )ﻧﻈﺮي‬VB.Net ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬- 1

Prog: Mohamed Youssef ٧٨ E_Mail: Mohamed.yoyo@gmail.com


1


١٦‫ ص‬، PDF File ، (‫ ﻋﻤﻠﻲ‬+ ‫ )ﻧﻈﺮي‬VB.Net ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬- 1

Prog: Mohamed Youssef ٧٩ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٨٠ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٨١ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٨٢ E_Mail: Mohamed.yoyo@gmail.com
1


١٩‫ ص‬، PDF File ، (‫ ﻋﻤﻠﻲ‬+ ‫ )ﻧﻈﺮي‬VB.Net ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬- 1

Prog: Mohamed Youssef ٨٣ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٨٤ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٨٥ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٨٦ E_Mail: Mohamed.yoyo@gmail.com
 

٢١‫ ص‬٢٠‫ ص‬، PDF File ، (‫ ﻋﻤﻠﻲ‬+ ‫ )ﻧﻈﺮي‬VB.Net ‫ ﻣﺤﺎﺿﺮات ﻣﺎدة‬: ‫ ﻣﺤﻤﺪ اﻟﺤﺎج‬/‫م‬.‫ أ‬- 1

Prog: Mohamed Youssef ٨٧ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٨٨ E_Mail: Mohamed.yoyo@gmail.com
‫‪ ‬‬
‫ﺗﺴﺘﻄﯿﻊ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺧﻼل ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬

‫ﻛﯿﻔﯿﺔ اﻟﻮﺻﻮل إﻟﻲ ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٨٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ٩٠ E_Mail: Mohamed.yoyo@gmail.com
‫وﻟﻠﺮﺟﻮع ﻟﻮاﺟﮭﺔ اﻟﺘﺼﻤﯿﻢ‬

Prog: Mohamed Youssef ٩١ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٩٢ E_Mail: Mohamed.yoyo@gmail.com
 
‫اﻟﺜﻮاﺑﺖ‬

‫اﻟﺘﺮﻛﯿﺒﺎت‬

Prog: Mohamed Youssef ٩٣ E_Mail: Mohamed.yoyo@gmail.com


enums ‫اﻟﺘﺮﻛﯿﺒﺎت ﻣﻦ ﻧﻮع‬

Prog: Mohamed Youssef ٩٤ E_Mail: Mohamed.yoyo@gmail.com


structures ‫اﻟﺘﺮﻛﯿﺒﺎت ﻣﻦ ﻧﻮع‬

Prog: Mohamed Youssef ٩٥ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ٩٦ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ٩٧ E_Mail: Mohamed.yoyo@gmail.com
Array1 
:‫ﯾﻤﻜﻨﻚ اﺧﺒﺎر اﻟﻔﺠﻮال ﻧﺖ ﺑﺎﻧﻚ ﺗﻌﺮف ھﺬا اﻟﻤﺘﻐﯿﺮ ﻛﻤﺼﻔﻮﻓﺔ ﺑﻌﺪة ﻃﺮق وأﺷﻜﺎل أﻧﻈﺮ اﻟﺘﺎﻟﻲ‬

Dim myvalue(5) As Integer


:‫وھﺬه ﺻﻮرة أﺧﺮي‬
Dim myvalue(5, 3) As Integer
:‫ﻋﻨﺪﻣﺎ ﺗﺮﯾﺪ ان ﺗﻀﻊ ﻗﯿﻤﺎً ﺑﺪاﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻷوﻟﻲ ﻓﯿﻤﻜﻨﻚ ذﻟﻚ ﺑﺎﻟﻄﺮﯾﻘﺔ اﻟﺘﺎﻟﯿﺔ‬
Public Class Form1
Dim myvalue(5) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
myvalue(0) = 11
myvalue(1) = 4
myvalue(2) = 13
myvalue(3) = 44
myvalue(4) = 123
End Sub

End Class
:‫ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻚ ﻛﺎﻟﺘﺎﻟﻲ‬Loop ‫ﻛﻤﺎ ﯾﻤﻜﻨﻚ ﺗﻌﺒﺌﺘﮭﺎ ﺑﻮاﺳﻄﺔ‬
Public Class Form1
Dim mycounter As Integer
Dim myvalue(5) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
For mycounter = 0 To myvalue.Length - 1
myvalue(mycounter) = mycounter
Next
End Sub

End Class

‫ ﻓﮭﻲ ﺳﺘﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ إﻟﻲ‬For ‫ اﻣﺎ اﻟﻌﺒﺎرة‬،‫ ﻻﺳﺘﺨﺪام ه ﻓﻲ اﻟﻌﺪ‬mycounter ‫ وھﻮ‬integer ‫ﻷﺣﻆ اﻧﻨﺎ ﻋﺮﻓﻨﺎ ﻣﺘﻐﯿﺮ ﻣﻦ اﻟﻨﻮع‬
١ ‫ ﻛﻤﺎ ﻋﺮﻓﻨﺎھﺎ وﻟﻜﻨﻨﻲ اﻧﻘﺼﺖ ﻣﻨﮭﺎ‬٦ ‫ ﺗﻌﻮد ﺑﺮﻗﻢ ﯾﻤﺜﻞ ﻣﺠﺎل اﻟﻤﺼﻔﻮﻓﺔ وﺳﻮف ﺗﻌﻮد ﺑﺮﻗﻢ‬Length ‫ و‬myvalue.Length - 1
.ً‫ﻷﻧﮫ ﯾﺘﻢ اﺣﺘﺴﺎب اﻟﺼﻔﺮ أﯾﻀﺎ‬
mycounter ‫وﺑﻌﺪھﺎ أﺳﻨﺪت ﻟﻠﻤﺼﻔﻮﻓﺔ ﻋﻠﻲ اﻟﺘﺮﺗﯿﺐ اﻟﻘﯿﻤﺔ اﻟﺼﺎﻋﺪة ﺑﺪاﺧﻞ اﻟﻤﺘﻐﯿﺮ‬
‫؟‬..‫وﻟﻜﻦ ﻛﯿﻒ ﯾﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻨﻮع اﻟﺜﺎﻧﻲ‬
Public Class Form1
Dim myvalue(5, 3) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
myvalue(0, 0) = 1
myvalue(0, 1) = 2
myvalue(0, 2) = 3
myvalue(0, 3) = 4
myvalue(1, 0) = 5
myvalue(1, 1) = 6
myvalue(1, 2) = 7
myvalue(1, 3) = 8
myvalue(2, 0) = 9
myvalue(2, 1) = 10
myvalue(2, 2) = 11
myvalue(2, 3) = 12

1
. Array ‫ اﻟﻤﺼﻔﻮﻓﺎت‬، CHM File، ‫ اﻷﺻﺪارة اﻟﺜﺎﻧﯿﺔ‬، ٢٠٠٥ ‫ ﺗﻌﻠﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‬: ‫ ﻣﺤﻤﺪ ﻋﻠﻲ ﻛﻨﯿﻔﻮ‬/‫ م‬-

Prog: Mohamed Youssef ٩٨ E_Mail: Mohamed.yoyo@gmail.com


myvalue(3, 0) = 13
myvalue(3, 1) = 14
myvalue(3, 2) = 15
myvalue(3, 3) = 16
myvalue(4, 0) = 17
myvalue(4, 1) = 18
myvalue(4, 2) = 19
myvalue(4, 3) = 20
myvalue(5, 0) = 21
myvalue(5, 1) = 22
myvalue(5, 2) = 23
myvalue(5, 3) = 24
End Sub

End Class
.‫أﻧﻈﺮ ھﻨﺎ ﻗﺪ ﺗﻢ ﺗﻌﺒﺌﺔ اﻟﻤﺼﻔﻮﻓﺔ‬
:‫ﻃﺒﻌﺎً ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام اﻟﻤﺼﻔﻮﻓﺔ ﻷي ﻧﻮع ﺗﺮﯾﺪ أﻧﻈﺮ ﻟﻠﻤﺜﺎل اﻟﺜﺈﻟﻲ‬
Public Class Form1
Dim myvalue(5) As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
myvalue(0) = "Visual"
myvalue(1) = "Windows"
myvalue(2) = "File"
myvalue(3) = "Copy"
myvalue(4) = "Edit"
myvalue(5) = "Cut"

End Sub

End Class
.ً‫اﻷﻣﺮ واﺿﺢ ﺗﻤﺎﻣﺎً وﺳﮭﻞ وﺑﺴﯿﻂ ﺟﺪا‬
:‫ﻛﻤﺎ ﯾﻤﻜﻨﻚ وﺿﻊ ﻗﯿﻢ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ وﻗﺖ ﺗﻌﺮﯾﻔﮭﺎ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬
Dim myvalue() As String = {"Visual", "Windows", "File", "Copy"}
:‫أو ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬
Dim myvalue(,) As Integer = {{1, 2}, {3, 4}, {5, 6}}
:‫ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬Redim ‫ ﻋﻨﺪھﺎ ﻋﻠﯿﻚ اﺳﺘﺨﺪام اﻟﻌﺒﺎرة‬،‫وﻟﻜﻦ ﻣﺎذا أذا اردت ان ﺗﻘﻮم ﺑﺘﻐﯿﯿﺮ أﺑﻌﺎد ھﺬه اﻟﻤﺼﻔﻮﻓﺎت‬
Public Class Form1
Dim myvalue(5) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
ReDim myvalue(0)
myvalue(0) = 1

End Sub

End Class

‫ ﻷﻋﺎدة ﺗﻌﺮﯾﻔﮭﺎ ﺑﻌﻤﻮد واﺣﺪ ﻓﻘﻂ‬Redim ‫ أﺳﺘﺨﺪﻣﺖ‬Form_load ‫ﻟﻘﺪ ﻋﺮﻓﺖ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺧﻤﺲ اﻋﻤﺪة ان ﺻﺢ اﻟﺘﻌﺒﯿﺮ ﺗﻢ ﻓﻲ اﻟـ‬
.‫وﻟﻮ ﺣﺄوﻟﺖ ان ﺗﻀﯿﻒ ﻋﻠﯿﮭﺎ ﻓﺴﺘﺤﺼﻞ ﻋﻠﻲ رﺳﺎﻟﺔ ﺧﻄﺎء‬
.‫وﺑﺎﻟﻤﺜﻞ ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام ھﺬه اﻟﻄﺮﯾﻘﺔ ﻣﻊ اﻟﻨﻮع اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت‬
:‫اذا اردت ان ﺗﻌﺮف اﺑﻌﺎد اﻟﻤﺼﻔﻮﻓﺔ ﻓﯿﻤﻜﻨﻚ اﺳﺘﺨﺪام اﻷﻣﺮ اﻟﺜﺈﻟﻲ‬
Public Class Form1
Dim myvalue1(5) As Integer
Dim myvalue2(5, 5, 6) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Prog: Mohamed Youssef ٩٩ E_Mail: Mohamed.yoyo@gmail.com


MyBase.Load
MsgBox(myvalue1.Rank)
MsgBox(myvalue2.Rank)

End Sub

End Class
‫ وﺑﺎﻟﺮﺳﺎﻟﺔ اﻟﺜﺎﻧﯿﺔ ﺳﺘﺤﺼﻞ ﻋﻠﻲ اﻟﺮﻗﻢ ﺛﻸﺛﺔ‬١ ‫ﺣﯿﺚ ﺑﺎﻟﺮﺳﺎﻟﺔ اﻷوﻟﻲ ﺳﺘﺤﺼﻞ ﻋﻠﻲ اﻟﺮﻗﻢ‬

:‫ﻛﻤﺎ ﯾﻤﻜﻨﻚ ﺗﺤﺪﯾﺪ اﻟﻘﯿﻤﺔ اﻟﻤﻌﻄﺎة اي اﻟﺮﻗﻢ اﻟﻤﺤﺪد ﻓﻲ ﺗﻌﺮﯾﻒ اﻟﻤﺼﻔﻮﻓﺔ اﻧﻈﺮ اﻟﺘﺎﻟﻲ‬
Public Class Form1
Dim myvalue1(5) As Integer
Dim myvalue2(5, 5, 6) As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load

MsgBox(UBound(myvalue1))
MsgBox((myvalue2.GetUpperBound(2)))

End Sub
End Class
‫ وﻷﺣﻆ اﻧﻨﺎ ﺣﺪدﻧﺎ رﻗﻢ اﻟﺨﺎﻧﺔ اﻟﻤﺮاد ﻗﺮاءة‬،‫ ﺑﺎﻟﺮﺳﺎﻟﺔ اﻟﺜﺎﻧﯿﺔ‬٦ ‫ وﺳﺘﺤﺼﻞ ﻋﻠﻲ اﻟﺮﻗﻢ‬،‫ ﺑﺎﻟﺮﺳﺎﻟﺔ اﻷوﻟﻲ‬٥ ‫ﺳﺘﺤﺼﻞ ﻋﻠﻲ اﻟﺮﻗﻢ‬
.‫ ﻷﻧﮭﺎ ﺗﺤﺘﻮي ﻋﻠﻲ ﺛﻸث ﺧﺎﻧﺎت‬٢-١-٠ ‫ أي اﻧﮭﺎ‬٢ ‫ﻗﯿﻤﺘﮭﺎ وھﻲ‬

‫؟‬...‫ﻛﯿﻒ ﯾﻤﻜﻦ ﻋﺮض ﻣﺎ ﺑﺪاﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ‬


:‫ أﻧﻈﺮ إﻟﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬Textbox ‫ ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام أي اداة ﻟﻨﻔﺮض‬Msgbox ‫ﻛﻤﺎ اﺳﺘﺨﺪﻣﺎ‬
Public Class Form1
Dim myvalue1(5) As Integer
Dim myvalue2(5, 5, 6) As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
TextBox1.Text = myvalue1(3)
TextBox2.Text = myvalue2(3, 2, 5)
End Sub

End Class

.‫ أو اي أداة أﺧﺮي ﻷ ﻓﺮق‬Textbox ‫أو اﻟﻌﻜﺲ ﯾﻤﻜﻨﻚ ان ﺗﻀﻊ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ﻗﯿﻢ ﻣﻦ اﻷداة‬

Prog: Mohamed Youssef ١٠٠ E_Mail: Mohamed.yoyo@gmail.com


 
 
 
 
 
 

Prog: Mohamed Youssef ١٠١ E_Mail: Mohamed.yoyo@gmail.com


‫‪ ‬‬
‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ‬
‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ ﻣﻦ ﺧﻼل ﺑﺮﻧﺎﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‪2005‬‬
‫ﻗﻢ ﺑﻔﺘﺢ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﻣﻌﺎ ﺑﺎﻟﺪروس اﻟﺴﺎﺑﻘﺔ وأﺗﺒﻊ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻷﺷﻜﺎل اﻟﺘﺎﻟﯿﺔ‬

‫ﺑﯿﺌﺔ اﻟﻌﻤﻞ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻗﻢ ﺑﺘﻐﯿﯿﺮ ﺣﺠﻢ اﻟﻨﺎﻓﺬة " ﺑﯿﺌﺔ اﻟﻤﺸﺮوع " إﻟﻲ ﻣﺎ ﯾﻨﺎﺳﺒﻚ أو ﺑﺄﻣﻜﺎﻧﻚ ﺟﻌﻞ ﺑﯿﺌﺔ اﻟﻌﻤﻞ ﺗﻈﮭﺮ ﺑﻤﻞء اﻟﺸﺎﺷﺔ وذﻟﻚ ﺑﺄﺗﺒﺎع ﻣﺎ ھﻮ‬
‫ﻣﻮﺿﺢ ﺑﺎﻷﺷﻜﺎل اﻟﺘﺎﻟﯿﺔ‪.‬‬

‫ﻣﻦ ﺻﻨﺪوق اﻷدوات أﺧﺘﺮ ﻣﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻷﺷﻜﺎل اﻟﺘﺎﻟﯿﺔ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﻗﻢ ﺑﺄﺿﺎﻓﺔ ﺗﻠﻚ اﻷداة ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﻣﻌﺎ ﺑﺎﻟﺪروس اﻟﺴﺎﺑﻘﺔ إﻟﻲ ﺑﯿﺌﺔ اﻟﻌﻤﻞ ﻟﯿﺼﺒﺢ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫وﻣﻦ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ رﺟﺎء ﻋﺪل اﻟﺘﺎﻟﻲ‬

‫ھﻞ ﻷﺣﻈﺖ ﻣﺎ ﺣﺪث ﺑﮫ ﻓﻀﻸ أﺧﺒﺮﻧﻲ ﺑﻤﺎ ﺣﺪث ؟‬

‫ﻣﻦ ﺻﻨﺪوق اﻷدوات أﺿﻒ اﻷداة اﻟﻤﺸﺎر إﻟﯿﮭﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻟﯿﺼﺒﺢ ﺷﻜﻞ اﻟﻌﻤﻞ ﻛﺎﻟﺘﺎﻟﻲ‬

‫ﻗﻢ ﺑﺄﺿﺎﻓﺔ اﻷدوات اﻟﻤﺸﺎر إﻟﯿﮭﺎ ﺑﺎﻷﺷﻜﺎل اﻟﺘﺎﻟﯿﺔ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ١٠٦ E_Mail: Mohamed.yoyo@gmail.com
‫ﻗﻢ ﺑﺄﺿﺎﻓﺔ اﻷدوات اﻟﺘﺎﻟﯿﺔ وﻗﻢ ﺑﺘﺴﻤﯿﺘﮭﺎ ﺑﺘﻠﻚ اﻷﺳﻤﺎء‬

‫‪ Button2‬إﻟﻲ ‪Refresh‬‬
‫‪ Button3‬إﻟﻲ ‪Stop‬‬
‫‪ Button4‬إﻟﻲ ‪Back‬‬
‫‪ Button5‬إﻟﻲ ‪Forward‬‬

‫ﻗﻢ ﺑﺘﺴﻤﯿﺔ اﻟﺰر اﻟﺬي ﺑﺠﻮار اﻟﻤﻜﺎن اﻟﺬي ﯾﻮﺿﻊ ﺑﮫ اﻟﺮواﺑﻂ ‪Go to URL‬‬

‫اﻷﻛﻮاد‬

‫اﻟﺰر اﻷول ﺿﻊ ﻟﮫ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ ﺑﻤﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)‪WebBrowser1.Navigate(ComboBox1.Text‬‬

‫‪Refresh‬‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪WebBrowser1.Refresh‬‬

‫‪Stop‬‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪WebBrowser1.Stop‬‬

‫‪Back‬‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪WebBrowser1.GoBack‬‬

‫‪Forward‬‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪WebBrowser1.GoForward‬‬

‫ﯾﻤﻜﻨﻚ أﯾﻀﺎً إﺿﺎﻓﺔ ﺑﻌﺾ اﻟﻤﻮاﻗﻊ اﻟﻤﻔﻀﻠﺔ ﻟﻚ ﻟﺘﺼﻞ إﻟﯿﮭﺎ ﺑﺸﻜﻞ أﺳﺮع دون ﻛﺘﺎﺑﺘﮭﺎ‪.‬‬
‫ﻟﻌﻤﻞ ذﻟﻚ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ أداة ‪ Combo box‬اﻟﻤﻮﺟﻮدة ﻋﻠﻲ اﻷداة ‪ Panel‬و اﺿﻐﻂ ﻋﻠﻲ اﻟﺜﻸث ﻧﻘﺎط اﻟﻤﻮﺟﻮدة ﺑﺤﺎﻧﺐ‬
‫اﻟﺨﺎﺻﯿﺔ‪Items.‬‬
‫ﺳﺘﻈﮭﺮ ﻟﻚ ﻧﺎﻓﺬة ‪ ،‬اﻛﺘﺐ ﻓﯿﮭﺎ ﻣﻮاﻗﻌﻚ اﻟﻤﻔﻀﻠﺔ )ﻛﻞ ﻣﻮﻗﻊ ﻓﻲ ﺳﻄﺮ(‬

‫ﺿﻒ زر آﺧﺮ إﻟﻲ اﻷداة ‪ Panel‬و ﻏﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Text‬إﻟﻲ ‪Save web page‬أو أي ﻧﺺ ﺗﺮﯾﺪ إﻇﮭﺎره ﻋﻠﻲ اﻟﺰر ﯾﺪل ﻋﻠﻲ ﻋﻤﻠﮫ‬
‫اﻧﻘﺮ ﻧﻘﺮاً ﻣﺰدوﺟﺎً ﻋﻠﻲ ھﺬا اﻟﺰر‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪WebBrowser1.ShowSaveAsDialog‬‬

‫ﻛﺬﻟﻚ ﯾﻤﻜﻨﻚ ﻓﺘﺢ ﺻﻔﺤﺔ ﻗﺪ ﻗﻤﺖ ﺑﺤﻔﻈﮭﺎ ‪.‬أﺿﻒ زر آﺧﺮ إﻟﻲ اﻷداة ‪ Panel‬و ﻏﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ Text‬إﻟﻲ ‪ Open‬و أﺿﻒ أداة أﺧﺮي‬
‫ﻣﻦ ﻗﺎﺋﻤﺔ اﻷدوات و ھﻲ اﻷداة ‪ OpenFileDialog‬ﻓﻲ ﻗﺴﻢ ‪ Dialogs‬ﻓﻲ ﻗﺎﺋﻤﺔ اﻷدوات‬

‫ﻣﻠﺤﻮﻇﺔ‪ :‬ﺿﻊ اﻷداة ‪ OpenFileDialog‬ﻓﻲ أي ﻣﻜﺎن ﻣﻦ اﻟﻔﻮرم ﻷﻧﮭﺎ ﻓﻲ ﻛﻞ اﻷﺣﻮال ﻟﻦ ﺗﻈﮭﺮ ﻟﻠﻤﺴﺘﺨﺪم ﺣﯿﺚ أﻧﮫ ﻓﻲ ‪visual‬‬
‫‪basic.net‬ھﻨﺎك ﺑﻌﺾ اﻷدوات ﻏﯿﺮ ﻣﺮﺋﯿﺔ ﺗﻈﮭﺮ ﻟﻠﻤﺒﺮﻣﺞ ﻓﻘﻂ ﻟﯿﺴﺘﺨﺪﻣﮭﺎ ﻟﻜﻨﮭﺎ ﻟﻦ ﺗﻈﮭﺮ ﻟﻠﻤﺴﺘﺨﺪم‪.‬‬

‫اﻧﻘﺮ ﻋﻠﻲ اﻟﺰر ﻧﻘﺮاً ﻣﺰدوﺟﺎً و اﻛﺘﺐ‪:‬‬

‫اﻟﻛود اﻟﺑرﻣﺟﻲ‪:‬‬
‫)(‪OpenFileDialog1.ShowDialog‬‬

‫)‪WebBrowser1.Navigate(OpenFileDialog1.FileName‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻛﺘﺎب أﻟﻜﺘﺮوﻧﻲ ‪PDF‬‬
‫‪ -١‬ﻓﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪٢٠٠٥‬‬
‫‪ - ٢‬اي اﺻﺪار ﻣﻦ‪Adobe Acrobat‬‬

‫ﻃﺮﯾﻘﺔ اﻟﻌﻤﻞ‬
‫أوﻷ اﻓﺘﺢ اﻟﺒﺮﻧﺎﻣﺞ‬

‫ﺛﺎﻧﯿﺎ‬
‫ﻧﻔﺘﺢ ﻋﻤﻞ ﺟﺪﯾﺪ‬

‫ﻧﺨﺘﺎر اﻟﻤﺤﺪد ﺑﺎﻟﺼﻮره )ﺟﺎھﻞ أﻧﺠﻠﯿﺰي(‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٠٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫راﺑﻌﺎ‬
‫ﻧﻨﺸﺊ ﻓﻮرم ﺟﺪﯾﺪ ﻛﻤﺎ ﺑﺎﻟﺼﻮره‬

‫ﺧﺎﻣﺴﺎ‬
‫ﻧﺨﺘﺎر اﻟﻤﺤﺪد‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻷن ﻃﺮﯾﻘﺔ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ‬
‫أوﻷ‪:‬‬
‫اﺻﻨﻊ ﻣﺜﻞ ھﺬا اﻟﺸﻜﻞ‬

‫ﺛﺎﻧﯿﺎ‬
‫ه اﺿﻐﻂ ﻛﻠﻚ ﯾﺴﺄو اﺧﺘﺮ اﻟﻤﺤﺪد ﺑﺎﻟﺼﻮرة‬

‫ﺛﺎﻟﺜﺎ‬
‫اﺧﺘﺮ اﻷداة اﻟﻤﺤﺪد‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫راﺑﻌﺎ‬
‫ﺿﻌﮭﺎ ﻋﻠﻲ اﻟﻔﻮرم ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ‬

Prog: Mohamed Youssef ١١٢ E_Mail: Mohamed.yoyo@gmail.com


‫ﺧﺎﻣﺴﺎ‬
‫اﺿﻐﻂ ﻋﻠﻲ زر إﻗﺮأ ﻣﺮﺗﯿﻦ وﺿﻊ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‪:‬‬
‫)"‪AxAcroPDF1.LoadFile("D:/arabsbook.pdf‬‬
‫ﺷﺮح اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ‬
‫ي اﻧﮫ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻲ زر إﻗﺮأ ﯾﻘﻮم ﺑﻔﺘﺢ ﻣﻠﻒ ‪ arabsbook.pdf‬اﻟﻤﻮﺟﻮد ﻋﻠﻲ ﻗﺮص ‪ d‬ﻓﻲ ﺧﺎﻧﮫ ‪ AxAcroPDF1‬اﻟﺘﻲ ﻗﻤﻨﺎ‬
‫ﺑﺈﺿﺎﻓﺘﮭﺎ اﺿﻐﻂ ‪ f5‬واﺿﻐﻂ ﻋﻠﻲ إﻗﺮأ‬

‫اﻷن اﺣﻔﻆ اﻟﻌﻤﻞ ﺑﺼﯿﻐﺔ ﻋﺎدﯾﺔ ﻋﻦ ﻃﺮﯾﻘﺔ ‪save‬‬

‫اذھﺐ إﻟﻲ ﻣﻜﺎن ﺗﺨﺰﯾﻦ اﻟﻤﺸﺮوع واﻓﺘﺤﺔ ﺗﺠﺪ ﻣﺠﻠﺪ ﻓﻲ داﺧﻠﺔ اﺳﻤﺔ‪bin‬‬
‫اﻓﺘﺤﺔ ﺗﺠﺪ ﻣﺸﺮوﻋﻚ ﺑﺼﯿﻐﺔ‪exe‬‬

‫وﯾﻜﻮن اﺣﯿﺎﻧﺎ ﻓﻲ‬


‫‪C:\Documents and Settings\1\My Documents\Visual Studio2005\Projects\Project7\Project7\bin\Debug‬‬

‫اذ ﻛﺎن اﺳﻤﮫ‪Project7‬‬


‫اﻷن زر اھﺪاء‬
‫" ‪msgbox‬إھﺪاء إﻟﻲ ﻣﻨﺘﺪي ﺗﻜﻨﻮﺑﻠﻮﺟﯿﺎ اﻟﺘﻌﻠﯿﻢ"‬

‫زر ﺗﺼﻤﯿﻢ‬
‫" ‪ msgbox‬ﺗﺼﻤﯿﻢ ﻣﺤﻤﺪ ﯾﻮﺳﻒ "‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ أﻟﺔ ﺣﺎﺳﺒﺔ ﺑﺴﯿﻄﺔ وﻣﺘﻘﺪﻣﺔ‬
‫ﻗﻢ ﺑﻔﺘﺢ اﻟﺒﺮﻧﺎﻣﺞ وأدراج ﺑﯿﺌﺔ اﻟﻌﻤﻞ ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﻣﻌﻨﺎ ﺑﺎﻟﺪروس اﻟﺴﺎﺑﻘﺔ‬
‫وﻣﻦ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ﻏﯿﺮ اﻟﻘﯿﻢ اﻟﺘﺎﻟﯿﺔ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺸﻜﻠﯿﻦ اﻟﺘﺎﻟﯿﯿﻦ‬

‫ﻟﯿﺼﺒﺢ اﻟﻨﻤﻮذج اﻟﻨﮭﺎﺋﻲ ﻟﺒﯿﺌﺔ اﻟﻌﻤﻞ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫ﻗﻢ ﺑﺄدراج اﻟﻤﻜﻮﻧﺎت اﻟﺘﺎﻟﯿﺔ إﻟﻲ ﺑﯿﺌﺔ اﻟﻌﻤﻞ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﻗﻢ ﺑﺘﺤﺪﯾﺪ اﻟﻤﺴﯿﻤﺎت ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫وﻗﻢ ﺑﺄﺿﺎﻓﺔ زر ﺗﻨﻔﯿﺬ ﻛﻤﺎ أﺷﺮﻧﺎ ﺳﻠﻔﺎ‬

‫ﺛﻢ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ ﺑﯿﺌﺔ اﻟﻌﻤﻞ اﻟﺮﺋﯿﺴﯿﺔ ﻟﯿﻈﮭﺮ ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﺿﻊ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ ﻛﻤﺎ ھﻮﻣﻮﺿﺢ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻲ زر ﺗﻨﻔﯿﺬ ﻟﯿﻈﮭﺮ ﻟﻚ ﻣﺤﺮر اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وﺿﻊ اﻟﺸﻔﺮة اﻟﺘﺎﻟﯿﺔ‬

‫ﺛﻢ ﻗﻢ ﺑﻮﺿﻊ اﻟﺸﻔﺮة اﻟﻤﺸﺎر إﻟﯿﮭﺎ ﺳﺎﺑﻘﺎ‬


‫واﺗﺒﻊ ﻣﺎ ﺗﻘﺪم‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١١٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وھﺬا ﺗﻄﺒﯿﻖ أﺧﺮ ﻷﻧﺸﺎء اﻟﺔ ﺣﺎﺳﺒﮫ ﻣﺘﻄﻮرة‬

‫اﻷﻛﻮاد‬

:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
Dim clearDisplay As Boolean
Dim Operand1 As Double, Operand2 As Double ‫ھﻨﺎ ﺗﻜﺘﺐ اﻷﻛﻮاد ﻓﻲ اﻋﻠﻲ اﻟﺼﻔﺤﺔ وﺑﺎﻟﻀﺒﻂ‬
Dim [Operator] As String‫ا‬
public class ‫ﺗﺤﺖ ﻛﻠﻤﺔ اﻟــ‬

‫زر رﻗﻢ واﺣﺪ‬

:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
Private Sub bttn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
bttn0.Click, bttn1.Click, bttn2.Click, _
bttn3.Click, bttn4.Click, bttn5.Click, bttn6.Click, bttn7.Click, bttn8.Click, bttn9.Click

If clearDisplay Then
lblDisplay.Text = ""
clearDisplay = False
End If
lblDisplay.Text = Val(lblDisplay.Text + sender.text)
End Sub

‫وﻷﺣﻆ ﻛﺘﺎﺑﺔ اﺳﺎﻣﻲ اﻷزرار ﻓﻲ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ واﺣﺪ‬


‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ زر اﻟﻔﺎﺻﻠﺔ ﻓﻲ اﻷرﻗﺎم‬

:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
Private Sub bttnPeriod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles bttnPeriod.Click

If lblDisplay.Text.IndexOf(".") > 0 Then


Exit Sub
Else
lblDisplay.Text = lblDisplay.Text & "."
End If

Prog: Mohamed Youssef ١١٧ E_Mail: Mohamed.yoyo@gmail.com


End Sub
:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
‫( اﻟﺠﻤﻊ اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ زر‬+)
Private Sub bttnPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
bttnPlus.Click

Operand1 = Val(lblDisplay.Text)
[Operator] = "+"
clearDisplay = True
End Sub

(=)‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬

:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
Private Sub bttnEquals_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles bttnEquals.Click

Dim result As Double


Operand2 = Val(lblDisplay.Text)
Try
Select Case [Operator]
Case "+"
result = Operand1 + Operand2
Case "-"
result = Operand1 - Operand2
Case "*"
result = Operand1 * Operand2
Case "/"
If Operand2 <> "0" Then lblDisplay.Text = result
End Select
Catch exc As Exception
MsgBox(exc.Message)
result = "ERROR"
Finally
lblDisplay.Text = result
clearDisplay = True
End Try
End Sub

:‫اﻟﻛود اﻟﺑرﻣﺟﻲ‬
‫( اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻋﻤﻠﯿﺔ اﻟﻄﺮح‬-)
Private Sub bttnMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles bttnMinus.Click

Operand1 = Val(lblDisplay.Text)
[Operator] = "-"
clearDisplay = True ' lblDisplay.Text = ""

End Sub

Prog: Mohamed Youssef ١١٨ E_Mail: Mohamed.yoyo@gmail.com


‫)*( اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻋﻤﻠﯿﺔ اﻟﻀﺮب‬
Private Sub bttnMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles bttnMultiply.Click

Operand1 = Val(lblDisplay.Text)
[Operator] = "*"
clearDisplay = True

End Sub
_______________________
‫( اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ ﻋﻤﻠﯿﺔ اﻟﻘﺴﻤﮫ‬/)
Private Sub bttnDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles bttnDivide.Click

Operand1 = Val(lblDisplay.Text)
[Operator] = "/"
clearDisplay = True

End Sub
_______________________
‫ وﻏﯿﺮ اﻟﺨﺎﺻﯿﺔ ﻣﻦ‬form_ ‫اﻛﺘﺐ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻓﻲ اﻟـ‬
Form_load ‫ إﻟﻲ‬form_keypress

Private Sub Form_KeyPress(ByVal sender As Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If System.Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Then
If clearDisplay Then
lblDisplay.Text = ""
clearDisplay = False
End If
lblDisplay.Text = lblDisplay.Text + e.KeyChar
End If
End Sub
_______________________
lblDisplay.Text‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ زر اﻟﻤﺴﺢ ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ‬

Private Sub bttnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


bttnClear.Click

lblDisplay.Text = ""
End Sub

Prog: Mohamed Youssef ١١٩ E_Mail: Mohamed.yoyo@gmail.com


 

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
If RadioButton1.Checked = True Then
a = 1
Else
a = 2
End If
Form2.Show()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
RadioButton1.Checked = True
Button1.Select()
End Sub
End Class

1
- ‫ دﻟﯿﻞ اﻟﻄﺎﻟﺐ ﻟﻤﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ وﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻤﻌﻠﻮﻣﺎت‬: ‫ ﻣﺤﻤﺪ أﺣﻤﺪ ﯾﻮﺳﻒ‬/‫ ﺑﺮﻣﺠﺔ أ‬، ‫ ﺧﺎﻟﺪ اﻟﺴﻌﺪﻧﻲ‬/‫ أ‬.. ‫ ﺳﻮزان ﻣﺮزوق‬/‫ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ أ‬-
.٢٠٠٩/٢٠٠٨ ‫ ﻟﻠﻌﺎم اﻟﺪراﺳﻲ‬، ‫اﻟﺼﻒ اﻷول اﻟﺜﺎﻧﻮي اﻟﻌﺎم‬

Prog: Mohamed Youssef ١٢٠ E_Mail: Mohamed.yoyo@gmail.com


Public Class Form2
Dim hits As Integer = 0
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.Timer1.Enabled = False
Me.Timer2.Enabled = False
Me.Butpress.Enabled = False
End Sub

Private Sub Butstart_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Butstart.Click
Select Case a
Case 2
Me.Timer1.Interval = 1000
End Select
Me.Timer1.Enabled = True
Me.Timer2.Enabled = True
Me.Butpress.Enabled = True
Me.Butstart.Enabled = False
End Sub

Private Sub Butpress_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Butpress.Click
hits = hits + 1
Me.lblhits.Text = Format(hits, "Number of hits = # ")
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Timer2.Tick
Me.Timer1.Enabled = False
Me.Timer2.Enabled = False
Me.Butpress.Enabled = False
Me.Butstart.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Timer1.Tick
Randomize()
Me.Butpress.Left = 200 * Rnd()
Me.Butpress.Top = 200 * Rnd()
End Sub
End Class

Prog: Mohamed Youssef ١٢١ E_Mail: Mohamed.yoyo@gmail.com


 

Public Class Form1


Dim a As Integer
Dim d As Long
Private Sub Radiodays_CheckedChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Radiodays.CheckedChanged
a = 1
End Sub

Private Sub Radiohours_CheckedChanged(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles Radiohours.CheckedChanged
a = 2
End Sub

Private Sub Radiominutes_CheckedChanged(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles Radiominutes.CheckedChanged
a = 3
End Sub

Private Sub Radioseconds_CheckedChanged(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles Radioseconds.CheckedChanged
a = 4
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
Select Case a
Case 1
d = DateDiff(DateInterval.Day, DateTimePicker1.Value, Now)
ListBox1.Items.Add("the difference " & d & " Day")
Case 2
d = DateDiff(DateInterval.Hour, DateTimePicker1.Value, Now.Date)
ListBox1.Items.Add("the difference " & d & " Hour")

1
- ‫ دﻟﯿﻞ اﻟﻄﺎﻟﺐ ﻟﻤﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ وﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻤﻌﻠﻮﻣﺎت‬: ‫ ﻣﺤﻤﺪ أﺣﻤﺪ ﯾﻮﺳﻒ‬/‫ ﺑﺮﻣﺠﺔ م‬، ‫ ﺧﺎﻟﺪ اﻟﺴﻌﺪﻧﻲ‬/‫ أ‬.. ‫ ﺳﻮزان ﻣﺮزوق‬/‫ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ أ‬-
.٢٠٠٩/٢٠٠٨ ‫ ﻟﻠﻌﺎم اﻟﺪراﺳﻲ‬، ‫اﻟﺼﻒ اﻷول اﻟﺜﺎﻧﻮي اﻟﻌﺎم‬

Prog: Mohamed Youssef ١٢٢ E_Mail: Mohamed.yoyo@gmail.com


Case 3
d = DateDiff(DateInterval.Minute, DateTimePicker1.Value,
Now.Date)
ListBox1.Items.Add("the difference " & d & " Minute")
Case 4
d = DateDiff(DateInterval.Second, DateTimePicker1.Value,
Now.Date)
ListBox1.Items.Add("the difference " & d & " Second")
End Select
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
DateTimePicker1.ShowCheckBox = True
Me.Text = "Date Calculater"
Button1.Text = "Calculater"
Radiodays.Checked = True
Button1.Select()
End Sub
'Programming Mohamed Ahmed Youssef
End Class

Prog: Mohamed Youssef ١٢٣ E_Mail: Mohamed.yoyo@gmail.com


 

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
If RadioButton1.Checked = True Then
a = 1
ElseIf RadioButton2.Checked = True Then
a = 2
Else
a = 3
End If
Form2.Show()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
Button1.Select()
RadioButton1.Checked = True
End Sub
End Class

1
- ‫ دﻟﯿﻞ اﻟﻄﺎﻟﺐ ﻟﻤﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ وﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻤﻌﻠﻮﻣﺎت‬: ‫ ﻣﺤﻤﺪ أﺣﻤﺪ ﯾﻮﺳﻒ‬/‫ ﺑﺮﻣﺠﺔ م‬، ‫ ﺧﺎﻟﺪ اﻟﺴﻌﺪﻧﻲ‬/‫ أ‬.. ‫ ﺳﻮزان ﻣﺮزوق‬/‫ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ أ‬-
.٢٠٠٩/٢٠٠٨ ‫ ﻟﻠﻌﺎم اﻟﺪراﺳﻲ‬، ‫اﻟﺼﻒ اﻷول اﻟﺜﺎﻧﻮي اﻟﻌﺎم‬

Prog: Mohamed Youssef ١٢٤ E_Mail: Mohamed.yoyo@gmail.com


Public Class Form2
Dim n1, n2 As Integer
Dim r1, r2 As Integer
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Button1.Select()
TextBox3.Text = "Plase Enter the Result"
Select Case a
Case 1
Randomize()
n1 = 1 + 10 * Rnd()
n2 = 1 + 10 * Rnd()
TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
Case 2
Randomize()
n1 = 15 + 10 * Rnd()
n2 = 15 + 10 * Rnd()
TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
Case 3
Randomize()
n1 = 100 + 10 * Rnd()
n2 = 100 + 10 * Rnd()
TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
End Select
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
Button1.Select()
TextBox3.Text = "Plase Enter the Result"
Select Case a
Case 1
Randomize()
n1 = 1 + 10 * Rnd()
n2 = 1 + 10 * Rnd()
TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
Case 2
Randomize()
n1 = 10 + 10 * Rnd()
n2 = 10 + 10 * Rnd()

Prog: Mohamed Youssef ١٢٥ E_Mail: Mohamed.yoyo@gmail.com


TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
Case 3
Randomize()
n1 = 100 + 10 * Rnd()
n2 = 100 + 10 * Rnd()
TextBox1.Text = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
TextBox2.Text = ""
End Select
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
r1 = n1 * n2
Try
r2 = TextBox2.Text
If r1 = r2 Then
TextBox3.Text = "congratulation , True Result"
Else
TextBox3.Text = "Sorry ,Wronge Result the True Resulte " +
CStr(r1) + " "
End If
Catch ex As Exception
MsgBox("Enter the answer")
Exit Sub
End Try
End Sub
End Class

Prog: Mohamed Youssef ١٢٦ E_Mail: Mohamed.yoyo@gmail.com


 

C:\images ‫ﻗﻢ ﺑﻨﺴﺦ ﻣﺠﻠﺪ اﻟﺼﻮر " أﻋﻼم اﻟﺪول " اﻟﻤﺮﻓﻖ ﻓﻲ ھﺬا اﻟﻤﺴﺎر‬

You have to copy contents of subdirectory images into C:\images


Public Class Form1
'‫واﳋﻈﺄ اﻟﺼﺤﯿﺤﺔ اﻟﺪرﺟﺎت رﺻﺪ ﻋﻦ اﳌﺴﺌﻮﻟﲔ اﳌﺘﻐﲑان‬
'w=Wrong Answer
'r=Right Answer
Dim r, w As Integer
'‫اﳌﻨﺴﺪﻟﺔ ﺑﺎﻟﻘﺎﺋﻤﺔ اﻟﺼﻮرة ﻣﻄﺎﺑﻘﺔ ﻋﻦ اﳌﺴﺌﻮل اﳌﺘﻐﲑ‬
Dim a As String
'‫ﺧﻄﺄ اﳊﺎﻟﺔ ﰲ اﻟﻌﻠﻢ أﺳﻢ ﻟﻈﻬﻮر ﻣﺘﻐﲑ ﻋﻤﻞ‬
Dim nameflage As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'‫ﺧﺼﺎﺋﺼﻬﺎ ﺿﺒﻂ و ﺑﺎﻟﺪول اﳌﻨﺴﺪﻟﺔ اﻟﻘﺎﺋﻤﺔ ﺗﻌﺒﺌﺔ‬
With ComboBox1
.Items.Add("‫)"اﺳﺒﺎﻧﯿﺎ‬
.Items.Add("‫)"اﺳﱰإﻟﯿﺎ‬
.Items.Add("‫)"اﳉﻨﻮﺑﯿﻪ_اﻓﺮﯾﻘﯿﺎ‬
.Items.Add("‫)"اﻻردن‬

1
- ‫ دﻟﯿﻞ اﻟﻄﺎﻟﺐ ﻟﻤﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ وﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻤﻌﻠﻮﻣﺎت‬: ‫ ﻣﺤﻤﺪ أﺣﻤﺪ ﯾﻮﺳﻒ‬/‫ ﺑﺮﻣﺠﺔ م‬، ‫ ﺧﺎﻟﺪ اﻟﺴﻌﺪﻧﻲ‬/‫ أ‬.. ‫ ﺳﻮزان ﻣﺮزوق‬/‫ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ أ‬-
.٢٠٠٩/٢٠٠٨ ‫ ﻟﻠﻌﺎم اﻟﺪراﺳﻲ‬، ‫اﻟﺼﻒ اﻷول اﻟﺜﺎﻧﻮي اﻟﻌﺎم‬

Prog: Mohamed Youssef ١٢٧ E_Mail: Mohamed.yoyo@gmail.com


.Items.Add("‫)"اﻻﻣﺎرات‬
.Items.Add("‫)"اﻟﱪازﯾﻞ‬
.Items.Add("‫)"اﳉﺰاﺋﺮ‬
.Items.Add("‫)"اﻟﺴﻮدان‬
.Items.Add("‫)"اﻟﺼﲔ‬
.Items.Add("‫)"اﻟﻌﺮاق‬
.Items.Add("‫)"اﻟﻜﻮﯾﺖ‬
.Items.Add("‫ﺮ‬‫)"ا‬
.Items.Add("‫)"اﳌﻐﺮب‬
.Items.Add("‫)"اﳍﻨﺪ‬
.Items.Add("‫)"اﳌﺘﺤﺪه_اﻟﻮﻻﯾﺎت‬
.Items.Add("‫)"إﻟﯿﺎﺑﺎن‬
.Items.Add("‫)"إﻟﯿﻤﻦ‬
.Items.Add("‫)"اﯾﺮان‬
.Items.Add("‫)"اﯾﺮﻟﻨﺪا‬
.Items.Add("‫)"اﯾﺴﻠﻨﺪا‬
.Items.Add("‫)"اﯾﻄﺈﻟﯿﺎ‬
.Items.Add("‫)"ﺗﻮﻧﺲ‬
.Items.Add("‫)"روﺳﯿﺎ‬
.Items.Add("‫)"ﺳﻮرﯾﺎ‬
.Items.Add("‫)"ﻋﻤﺎن‬
.Items.Add("‫)"ﻓﻠﺴﻄﲔ‬
.Items.Add("‫)"ﻗﻄﺮ‬
.Items.Add("‫)"اﳉﻨﻮﺑﯿﻪ_ﻛﻮرﯾﺎ‬
.Items.Add("‫)"ﻟﺒﻨﺎن‬
.Items.Add("‫)"ﻟﯿﱪﯾﺎ‬
.Items.Add("‫)"ﻟﯿﺒﯿﺎ‬
.Items.Add("‫)"ﻣﺼﺮ‬
.Text = "‫"اﻟﺪول إﺣﺪي أﺧﱰ‬
.RightToLeft = Windows.Forms.RightToLeft.Yes
.ForeColor = Color.Red
End With
'‫ اﻟﺼﻮر ﺻﻨﺪوق ﰲ ﻣﻠﯿﺌﺔ اﻟﺼﻮرة ﻋﺮض ﺟﻌﻞ‬Strech
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
TextBox1.Text = "Choose the name of country which flag is shown above."
'‫اﻟﺘﺎﱄ اﻟﻌﻠﻢ ﻋﻠﻲ اﻟﻀﻐﻂ ﺑﻌﺪ و اﻟﱪﻧﺎﻣﺞ أول ﰲ اﻟﺼﻮر ﻷﻇﻬﺎر اﻟﻔﺮﻋﻲ اﻟﱪﻧﺎﻣﺞ‬
Call Flageshow()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
'‫اﻟﺘﺎﱄ اﻟﻌﻠﻢ ﻋﻠﻲ اﻟﻀﻐﻂ ﺑﻌﺪ و اﻟﱪﻧﺎﻣﺞ أول ﰲ اﻟﺼﻮر ﻷﻇﻬﺎر اﻟﻔﺮﻋﻲ اﻟﱪﻧﺎﻣﺞ‬
Call Flageshow()
ComboBox1.Text = "‫"اﻟﺪول إﺣﺪي إﺧﱰ‬
TextBox1.Text = "Choose the name of country which flag is shown above."
r = 0
TextBox2.Text = r
w = 0
TextBox3.Text = w
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
'‫ﺻﺤﺘﻬﺎ ﳌﻌﺮﻓﺔ اﳌﻨﺴﺪﻟﺔ اﻟﻘﺎﺋﻤﺔ ﰲ ﺑﺎﻷﺟﺎﺑﺔ اﻟﺼﻮرة ﻣﻄﺎﺑﻘﺔ‬
a = ComboBox1.Text
If PictureBox1.ImageLocation = ("c:\images\" + a + ".png") Then
TextBox1.Text = "Congratulations.Right result."
r = r + 1
TextBox2.Text = r
Else
TextBox1.Text = "Sorry.Wrong answer.The right country is " +
nameflage + " ."
w = w + 1
TextBox3.Text = w

Prog: Mohamed Youssef ١٢٨ E_Mail: Mohamed.yoyo@gmail.com


End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button3.Click
'‫اﻟﺘﺎﱄ اﻟﻌﻠﻢ ﻋﻠﻲ اﻟﻀﻐﻂ ﺑﻌﺪ و اﻟﱪﻧﺎﻣﺞ أول ﰲ اﻟﺼﻮر ﻷﻇﻬﺎر اﻟﻔﺮﻋﻲ اﻟﱪﻧﺎﻣﺞ‬
Call Flageshow()
ComboBox1.Text = "‫"اﻟﺪول إﺣﺪي إﺧﱰ‬
TextBox1.Text = "Choose the name of country which flag is shown above."
End Sub
'‫اﻟﻔﺮﻋﻲ اﻟﱪﻧﺎﻣﺞ‬
Sub Flageshow()
'‫ﻋﺸﻮاﺋﻲ ﺗﱰﺗﯿﺐ ﰲ اﻟﺼﻮر ﻋﺮض ﻋﻦ اﳌﺴﺌﻮل اﳌﺘﻐﲑ‬
Dim n As Integer
'‫اﻟﺼﻮر ﻣﺮﺑﻊ ﰲ ﻋﺸﻮاﺋﯿﺔ ﻃﺮﯾﻘﺔ ﰲ اﻟﺪول اﻻﻋﻼم وﺿﻊ‬
Randomize()
n = Rnd() * 26
Select Case n
Case 1
PictureBox1.Load("c:\images\‫اﺳﱰإﻟﯿﺎ‬.png")
nameflage = "‫"اﺳﱰإﻟﯿﺎ‬
Case 2
PictureBox1.Load("c:\images\‫اﻟﱪازﯾﻞ‬.png")
nameflage = "‫"اﻟﱪازﯾﻞ‬
Case 3
PictureBox1.Load("c:\images\‫اﻟﺼﲔ‬.png")
nameflage = "‫"اﻟﺼﲔ‬
Case 4
PictureBox1.Load("c:\images\‫ﻟﺒﻨﺎن‬.png")
nameflage = "‫"ﻟﺒﻨﺎن‬
Case 5
PictureBox1.Load("c:\images\‫اﳍﻨﺪ‬.png")
nameflage = "‫"اﳍﻨﺪ‬
Case 6
PictureBox1.Load("c:\images\‫اﯾﺮﻟﻨﺪا‬.png")
nameflage = "‫"اﯾﺮﻟﻨﺪا‬
Case 7
PictureBox1.Load("c:\images\‫اﯾﺴﻠﻨﺪا‬.png")
nameflage = "‫"اﯾﺴﻠﻨﺪا‬
Case 8
PictureBox1.Load("c:\images\‫اﯾﻄﺈﻟﯿﺎ‬.png")
nameflage = "‫"اﯾﻄﺈﻟﯿﺎ‬
Case 9
PictureBox1.Load("c:\images\‫إﻟﯿﺎﺑﺎن‬.png")
nameflage = "‫"إﻟﯿﺎﺑﺎن‬
Case 10
PictureBox1.Load("c:\images\‫اﳉﻨﻮﺑﯿﻪ_ﻛﻮرﯾﺎ‬.png")
nameflage = "‫"اﳉﻨﻮﺑﯿﻪ_ﻛﻮرﯾﺎ‬
Case 11
PictureBox1.Load("c:\images\‫اﻟﻜﻮﯾﺖ‬.png")
nameflage = "‫"اﻟﻜﻮﯾﺖ‬
Case 12
PictureBox1.Load("c:\images\‫ﻟﯿﱪﯾﺎ‬.png")
nameflage = "‫"ﻟﯿﱪﯾﺎ‬
Case 13
PictureBox1.Load("c:\images\‫روﺳﯿﺎ‬.png")
nameflage = "‫"روﺳﯿﺎ‬
Case 14
PictureBox1.Load("c:\images\‫اﳉﻨﻮﺑﯿﻪ_اﻓﺮﯾﻘﯿﺎ‬.png")
nameflage = "‫"اﳉﻨﻮﺑﯿﻪ_اﻓﺮﯾﻘﯿﺎ‬
Case 15
PictureBox1.Load("c:\images\‫اﺳﺒﺎﻧﯿﺎ‬.png")
nameflage = "‫"اﺳﺒﺎﻧﯿﺎ‬
Case 16

Prog: Mohamed Youssef ١٢٩ E_Mail: Mohamed.yoyo@gmail.com


PictureBox1.Load("c:\images\‫اﳌﺘﺤﺪه_اﻟﻮﻻﯾﺎت‬.png")
nameflage = "‫"اﳌﺘﺤﺪه_اﻟﻮﻻﯾﺎت‬
Case 17
PictureBox1.Load("c:\images\‫ﻗﻄﺮ‬.png")
nameflage = "‫"ﻗﻄﺮ‬
Case 18
PictureBox1.Load("c:\images\‫اﻟﻌﺮاق‬.png")
nameflage = "‫"اﻟﻌﺮاق‬
Case 19
PictureBox1.Load("c:\images\‫ﻣﺼﺮ‬.png")
nameflage = "‫"ﻣﺼﺮ‬
Case 20
PictureBox1.Load("c:\images\‫إﻟﯿﻤﻦ‬.png")
nameflage = "‫"إﻟﯿﻤﻦ‬
Case 21
PictureBox1.Load("c:\images\‫اﻻردن‬.png")
nameflage = "‫"اﻻردن‬
Case 22
PictureBox1.Load("c:\images\‫ﻋﻤﺎن‬.png")
nameflage = "‫"ﻋﻤﺎن‬
Case 23
PictureBox1.Load("c:\images\‫ﺳﻮرﯾﺎ‬.png")
nameflage = "‫"ﺳﻮرﯾﺎ‬
Case 24
PictureBox1.Load("c:\images\‫ﻓﻠﺴﻄﲔ‬.png")
nameflage = "‫"ﻓﻠﺴﻄﲔ‬
Case 25
PictureBox1.Load("c:\images\‫اﳉﺰاﺋﺮ‬.png")
nameflage = "‫"اﳉﺰاﺋﺮ‬
Case 26
PictureBox1.Load("c:\images\‫اﻻﻣﺎرات‬.png")
nameflage = "‫"اﻻﻣﺎرات‬
Case Else
'‫ﻓﻘﻂ أﺣﺘﯿﺎﻃﯿﺔ ﻗﯿﻤﺔ وﻫﻲ اﻟﺴﺎﺑﻘﺔ اﻟﻘﺎﺋﻤﺔ ﺿﻤﻦ ﻣﻦ ﻟﯿﺲ رﻗﻢ إﱄ اﻟﻮﺻﻮل ﺣﺎﻟﺔ ﰲ‬
PictureBox1.Load("c:\images\wrong.png")
End Select
End Sub
'programming Mohamed Ahmed Youssef
End Class

Prog: Mohamed Youssef ١٣٠ E_Mail: Mohamed.yoyo@gmail.com


 
 
 
 
 
 
 
 
 

Prog: Mohamed Youssef ١٣١ E_Mail: Mohamed.yoyo@gmail.com


‫‪ ‬‬

‫‪SQL Server 2005‬‬ ‫ﺷﺮح ﺑﺮﻧﺎﻣﺞ‬


‫اﻗﺪم ﻟﻜﻢ ﺳﻠﺴﺔ ﻣﻦ دروس ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬و ‪ SQL2005‬ﻟﻠﻤﺒﺘﺪﺋﯿﻦ‬
‫ﺑﺪاﯾﺔ اﺗﻨﺎول ﻓﻲ ھﺬه اﻟﺴﻠﺴﻠﺔ ﺑﻌﺾ اﻟﻤﻮاﺿﯿﻊ اﻟﻤﮭﻤﺔ وﻷ اﺗﻄﺮق ﻛﺜﯿﺮا ﻓﻲ ﺷﺮح اﻟﻤﻐﯿﺮات واﻟﻤﺼﻔﻮﻓﺎت واﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ‬
‫واﻧﻤﺎ اﻣﺮ ﻋﻠﯿﮭﺎ ﺳﺮﯾﻌﺎ ‪.‬‬
‫واﻋﺘﻤﺪ ﻓﻲ دروﺳﻲ ﻋﻠﻲ اﻟﺘﻄﺒﯿﻘﺎت ﺣﯿﺚ ﯾﺘﻢ ﻋﺮض اﻟﺘﻄﺒﯿﻖ وﺧﻄﻮات ﻋﻤﻞ اﻟﺘﻄﺒﯿﻖ وﻓﻲ اﻟﻨﮭﺎﯾﺔ ﺗﺤﻤﯿﻞ اﻟﺘﻄﺒﯿﻖ ﻟﻠﺘﺪرﯾﺐ ﻋﻠﯿﮫ ‪.‬‬

‫اﻣﺎ اﻟﺪروس ﻓﺘﻨﻘﺴﻢ إﻟﻲ ﻗﺴﻤﯿﻦ‬


‫أ‪ -‬ﻗﺴﻢ ﺧﺎص ﺑﻠﻐﺔ اﻷﺳﺘﻌﻼم ‪SQL‬‬
‫وﯾﺤﺘﻮي ‪:‬‬
‫‪ - ١‬ﺗﺤﻤﯿﻞ ﺑﺮﻧﺎﻣﺞ ‪SQL2005‬‬

‫‪SQL Server Management Studio Express‬‬


‫‪http://msdn.microsoft.com/en-us/express/bb410792.aspx‬‬
‫‪http://go.microsoft.com/fwlink/?LinkId=65110‬‬
‫‪ SQL2005_Service_Manager‬ﺗﺤﻤﯿﻞ‬
‫‪http://moonfiles.com/in/upload/wh_18943946.zip‬‬

‫اﻟﻤﺪﺧﻞ إﻟﻲ‪SQL2005‬‬ ‫‪-٣‬‬


‫ﺗﺤﻤﯿﻞ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪northwnd - PUB‬‬ ‫‪-٤‬‬
‫ﻃﺮﯾﻘﺔ اﺳﺘﯿﺮاد ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت ﺟﺎھﺰة‪.‬‬ ‫‪-٥‬‬
‫ﻃﺮﯾﻘﺔ اﺳﺘﯿﺮاد ﻣﻠﻔﺎت اﻟﻨﺴﺦ اﻷﺣﺘﯿﺎﻃﯿﺔ‪Backup‬‬ ‫‪-٦‬‬
‫ﻃﺮﯾﻘﺔ اﻧﺸﺎء ‪View‬‬ ‫‪-٧‬‬

‫‪ - ٨‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪Select Statment‬‬

‫أوﻷ ‪:‬‬
‫ﻣﻔﮭﻮم ‪SQL‬‬
‫ﯾﺎﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﺧﺘﺼﺎر ‪ SQL‬إﻟﻲ "ﻟﻐﺔ اﻷﺳﺘﻌﻼم اﻟﻤﮭﯿﻜﻠﺔ" ‪Language Structured Query‬‬

‫إن ﻟﻐﺔ ‪ SQL‬ھﻲ ﺑﺴﯿﻄﺔ ﻧﺴﺒﯿﺎً‪ ،‬وﻟﻜﻨﮭﺎ ﻓﻌﺎﻟﺔ ﻟﻠﻐﺎﯾﺔ‪ ،‬ﻓﺎﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﻌﻠﯿﻤﺎت اﻟﺒﺴﯿﻄﺔ ﻓﻲ ھﺬه اﻟﻠﻐﺔ ﺗﺨﻔﻲ وراﺋﮭﺎ ﺧﺼﺎﺋﺺ ﻓﻌّﺎﻟﺔ‬
‫ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﻠﻘﯿﺎم ﺑﺎﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻌﻤﻠﯿﺎت اﻟﻤﻌﻘﺪة اﻟﻤﻌﺮوﻓﺔ ﻓﻲ ﻗﻮاﻋﺪ اﻟﻤﻌﻄﯿﺎت ‪.‬‬

‫ﺛﺎﻧﯿﺎ ‪:‬‬
‫اﻟﻔﺮق ﺑﯿﻦ ‪ SQL‬و ‪Access‬‬
‫ﻛﺜﯿﺮ ﻣﻨﺎ ﯾﺴﺄل اﻟﻔﺮق ﺑﯿﻦ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪ SQL‬و ‪. Microsoft Access‬‬
‫ﺳﻮف ﻧﺘﻨﺎول ﺑﻌﺾ اﻟﻔﺮوﻗﺎت ﺑﯿﻦ ‪ SQL‬و ‪Access‬‬

‫أوﻷ ‪Access :‬‬

‫اﯾﺠﺎﺑﯿﺎﺗﮫ ‪:‬‬
‫ﺳﮭﻞ اﻻﺳﺘﺨﺪام‬
‫رﺧﯿﺺ اﻟﺜﻤﻦ‬
‫ﺗﻮﻓﺮ اﻟﺪﻋﻢ اﻟﻔﻨﻲ ‪.‬‬
‫ﯾﺪﻋﻢ ﻧﻤﺎذج )‪( Forms‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺳﻠﺒﯿﺎت ‪:‬‬
‫اﻻﻣﺎن ‪ :‬ﺿﻌﯿﻒ اﻻﻣﺎن ﺑﺤﯿﺚ ﯾﺴﮭﻞ ﺳﺮﻗﺘﮫ واﺧﺘﺮاﻗﮫ‬
‫اﻟﺤﺠﻢ ‪ :‬ﯾﺘﺤﻤﻞ ﺣﺘﻲ ‪ ٢‬ﺟﯿﺠﺎ‬
‫ﻋﺪد اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ‪ ٢٥٥ :‬ﻣﻤﺎ ﯾﺴﺒﺐ اﻟﻀﻐﻂ ﻋﻠﻲ ﻣﺤﺮﻛﺎت ﻧﻈﺎم ) ‪ ( MicroSoft JET‬ﻣﻤﺎ ﺗﺴﺒﺐ ﺗﻠﻒ ﻟﻠﺒﯿﺎﻧﺎت ‪.‬‬

‫ﺛﺎﻧﯿﺎ ‪SQL :‬‬

‫اﻻﻣﺎن ‪ :‬ﻧﻈﺎم اﻻﻣﺎن ﻋﺈﻟﻲ ﺟﺪا‬


‫اﻟﺤﺠﻢ ‪ :‬ﯾﺘﺤﻤﻞ ﺣﺘﻲ ‪ ١‬ﺗﯿﺮا ﺑﺎﯾﺖ‬
‫ﻋﺪد اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ‪ :‬ﻷ ﯾﻮﺟﺪ ﻋﺪد ﻣﺤﺪد‬
‫ﯾﺪﻋﻢ ﺧﺎﺻﯿﺔ اﻟﻮﻇﺎﺋﻒ اﻟﻤﻌﺮﻓﺔ ﻣﺴﺒﻘﺎ ‪ Stored Procedures‬و اﻟﺘﺮﺟﺮز ‪ Triggers‬واﻟﺘﻲ ﻧﺘﻄﺮق إﻟﯿﮭﺎ ﻓﻲ اﻟﺪروس اﻟﻘﺎدﻣﺔ‬

‫ھﺬه ﺑﻌﺾ اﻟﻔﺮوق ﺑﯿﻦ ‪ SQL‬و ‪Microsoft Access‬‬

‫أوﻷ ‪ :‬ﺗﺤﻤﯿﻞ اﻟﺒﺮاﻣﺞ ‪:‬‬

‫‪SQL service manager‬‬

‫ﯾﻤﻜﻨﻚ ﺗﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ اﻟﺮاﺑﻂ اﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻟﻨﻈﺎم اﻟﺘﺸﻐﯿﻞ‪: Windows Xp‬‬

‫‪http://www.sqldbatips.com/samples/code/SQL2005SCM/SQL2005_Service_Manager.zip‬‬

‫ﻟﻨﻈﺎم اﻟﺘﺸﻐﯿﻞ‪: Vista‬‬

‫‪http://www.sqldbatips.com/samples/code/SQL2005SCM/SQL2005_Service_Manager_Vista.zip‬‬

‫ﺑﻌﺪ ﺗﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﯾﻈﮭﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻓﻲ ﺷﺮﯾﻂ اﻟﻤﮭﺎم‬

‫اﻧﻘﺮ ﻧﻘﺮﺗﯿﻦ ﻋﻠﻲ اﻟﺒﺮﻧﺎﻣﺞ ﻓﯿﻈﮭﺮ ﻟﻚ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


SQL Server Management Studio Express‫ﺛﺎﻧﯿﺎ‬

: ‫ﺗﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‬

http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-
a0f62bf7796&displaylang=en
http://msdn.microsoft.com/en-us/express/bb410792.aspx

( Start --- programs---- microsoft sql2005 ) ‫ﻟﻔﺘﺢ اﻟﺒﺮﻧﺎﻣﺞ اﻧﻘﺮ ﻋﻠﻲ‬

: ‫ﻋﻨﺪ اﻟﺪﺧﻮل ﻋﻠﻲ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻈﮭﺮ ﻟﻚ اﻟﻨﺎﻓﺬة اﻷﺗﯿﺔ‬

‫ ﯾﺘﺮك ﻛﻤﺎ ھﻮ اﻷ اذا ﻛﺎن ﻟﺪﯾﻚ اﻛﺜﺮ ﻣﻦ ﺳﯿﺮﻓﺮ ﯾﻤﻜﻨﻚ اﺧﺘﯿﺎر اﻟﺴﯿﺮﻓﺮ اﻟﻤﺤﺪد ﻣﻦ ھﺬه اﻟﺨﺎﻧﺔ‬Server Type ‫ﺣﯿﺚ ﻓﻲ ﺧﺎﻧﺔ‬

Prog: Mohamed Youssef ١٣٤ E_Mail: Mohamed.yoyo@gmail.com


‫‪Server Name‬ﯾﻜﺘﺐ ﻓﯿﮫ اﺳﻢ اﻟﺴﯿﺮﻓﺮ ) اﺳﻢ اﻟﻜﻤﺒﯿﻮﺗﺮ ( وﻟﻤﻌﺮﻓﺔ اﺳﻢ اﻟﺴﯿﺮﻓﺮ اﻧﻘﺮ ﻧﻘﺮﺗﯿﻦ ﻋﻠﻲ اﯾﻘﻮﻧﺔ ‪SQL service‬‬
‫‪manager‬اﻟﻤﻮﺟﻮدة ﻓﻲ ﺷﺮﯾﻂ اﻟﻤﮭﺎم ﻓﯿﻈﮭﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة‬

‫ﻓﺎﺳﻢ اﻟﺴﯿﺮﻓﺮ ﻣﻮﺟﻮد ﻓﻲ ﺧﺎﻧﮫ ‪Server‬‬


‫اﻣﺎ اﻟﺨﺎﻧﺔ اﻟﺜﺎﻟﺜﺔ ‪ : Authentication‬ﻓﻠﮭﺎ ﺧﯿﺎرﯾﻦ‬

‫أ ‪- Windows Authentication :‬دﺧﻮل اﻟﺒﺮﻧﺎﻣﺞ دون اﻟﺤﺎﺟﺔ إﻟﻲ اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي‬
‫ب ‪- SQL Server Authentication :‬دﺧﻮل اﻟﺒﺮﻧﺎم ﺑﺎﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي وﯾﺘﻢ ﺗﺤﺪﯾﺪه ﻋﻨﺪ ﺗﻨﺼﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫زر ‪ Connect :‬اﻷﺗﺼﺎل ﺑـ ‪SQL‬‬
‫اﻧﺘﮭﻲ اﻟﺪرس اﻟﺜﺎﻟﺚ وﺳﻮف ﻧﺒﺪأ ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﺑﺎذن اﷲ ﺑﺎﻟﺘﻄﺒﯿﻘﺎت ﻋﻠﻲ ‪SQL2005‬‬

‫اﻟﺪرس اﻟﺮاﺑﻊ ‪ :‬ﺷﺮح ﺷﺎﺷﺔ ‪: Object Explorer‬‬

‫ﯾﺤﺘﻮي ‪ Microsoft SQL Server‬ﻋﻠﻲ ﺷﺎﺷﺘﯿﻦ‬

‫أ ‪ - Object Explorer‬ﻣﻦ اﻟﺠﮭﺔ إﻟﯿﺴﺮي‬


‫ﺗﻀﻢ ھﺬه اﻟﺸﺎﺷﺔ ﻣﺰود ﻣﺮﺗﺒﻲ ﻏﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ) ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ -‬ﺟﺪأول ‪ -‬ﺣﻘﻮل ‪ -‬ﺳﺮﯾﺔ اﻟﻨﻈﺎم ) ‪...‬‬
‫ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ‬
‫ب ‪ - Summary :‬اﻟﺠﮭﺔ اﻟﯿﻤﻨﻲ‬
‫ﻧﻸﺣﻆ ﺗﺤﺖ اﻟﺴﯿﺮﻓﺮ اﻟﺨﺎص ﺑﺎﻟﺠﮭﺎز ﺗﻮﺟﺪ ﻣﺠﻤﻮﻋﺎت ﻣﻦ اﻷﺟﮭﺰة اﻟﻤﺮﻛﺰﯾﺔ ﺣﯿﺚ ﺗﻨﻘﺴﻢ ھﺬه اﻷﺟﮭﺰة إﻟﻲ ارﺑﻌﺔ اﻗﺴﺎم ﻧﺬﻛﺮھﺎ‬
‫ﺑﺸﯿﺊ ﻣﻦ اﻟﺘﻔﺼﯿﻞ‬
‫أوﻷ‪: Databases‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫وﯾﺤﺘﻮي ﺟﻤﯿﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ وﯾﺤﺘﻮي ﻛﺬﻟﻚ ﺛﻼث ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت اﺳﺎﺳﯿﺔ ﺣﯿﺚ ﻻ ﯾﺴﺘﻄﯿﻊ اﻟﻨﻈﺎم اﻟﻌﻤﻞ‬
‫ﺑﺪوﻧﮭﺎ وھﻲ ‪:‬‬

‫أ ‪ : Database Master -‬وھﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺘﻢ ﺗﺨﺰﯾﻦ ﺟﻤﯿﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﯿﮭﺎ ‪.‬‬
‫ب ‪ : Database Model -‬وھﻲ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺤﺘﻮي اﻟﺸﻜﻞ اﻷول ﻟﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت‪.‬‬
‫ج ‪ : Database Tempdb -‬وھﻲ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻣﺆﻗﺘﮫ ‪.‬‬

‫ﺛﺎﻧﯿﺎ ‪ : Security :‬وﯾﺤﺘﻮي ﻋﻠﻲ اﻟﻜﺎﺋﻨﺎت اﻟﻤﺴﺌﻮﻟﺔ ﻋﻦ ﺣﻤﺎﯾﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وﺗﻮزﯾﻊ اﻟﺼﻸﺣﯿﺎت ‪ .‬وﯾﻨﻘﺴﻢ إﻟﻲ ﺛﻸﺛﺔ اﻗﺴﺎم ‪:‬‬

‫أ ‪ : Login -‬ﯾﺤﺘﻮي ﻋﻠﻲ ﻣﺴﺘﺨﺪﻣﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﻛﻠﻤﺎت اﻟﺴﺮ اﻟﺨﺎﺻﺔ ﺑﮭﻢ ‪.‬‬
‫ب ‪ :Server Role -‬اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻣﻨﻘﺴﻤﯿﻦ إﻟﻲ ﻣﺠﻤﻮﻋﺎت ‪.‬‬

‫ﺛﺎﻟﺜﺎ ‪ : Server Object‬و ‪Managment‬‬

‫وھﻲ ادارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ .‬وﺗﺤﺘﻮي ﻋﻠﻲ‬


‫أ ‪ : Backup -‬اﻟﻨﺴﺦ اﻷﺣﻄﯿﺎﺗﯿﺔ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪.‬‬
‫ب ‪ : Linked Server -‬وﯾﺤﺘﻮي ﻋﻠﻲ اﻟﻤﺤﺮﻛﺎت ) ‪( Provider‬‬
‫ج ‪ : Maintenance Plans -‬ﯾﺤﺘﻮي ﻋﻠﻲ ﻣﺨﻄﻄﺎت ﺻﯿﺎﻧﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪.‬‬

‫اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‪-:‬‬

‫ﻓﻲ ھﺬا اﻟﺪرس ﺳﻮف ﻧﻨﺸﺊ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة ﺑﺎﺳﻢ ‪Emp_info‬‬
‫وﯾﺤﺘﻮي ﻋﻠﻲ اﻟﺤﻘﻮل اﻟﺘﺎﻟﯿﺔ ‪: ID - Name - Address - Gender - Country - Birthday‬‬

‫ﻷﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة اﻧﻘﺮ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ‪ Databases‬ﺛﻢ اﺧﺘﺮ ‪New Databases‬‬

‫ﻓﻲ ﺧﺎﻧﺔ ‪ Database Name :‬ﻧﻜﺘﺐ اﺳﻢ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺛﻢ ﻧﻀﻐﻂ ﻋﻠﻲ زر ‪OK‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻛﻤﺎ ﻧﻸﺣﻆ ﺗﻢ اﺿﺎﻓﺔ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺠﺪﯾﺪة‬

Prog: Mohamed Youssef ١٣٧ E_Mail: Mohamed.yoyo@gmail.com


‫اﻧﺸﺎء ﺟﺪول ﺟﺪﯾﺪ‬
‫ﻷﻧﺸﺎء ﺟﺪول ﺟﺪﯾﺪ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ‪ Tables‬ﺛﻢ اﺧﺘﺮ‪New Tables‬‬

‫اﻷن ﻧﻘﻮم ﺑﺎدراج اﻟﺤﻘﻮل اﻟﻤﺬﻛﻮرة ﻓﻲ اﻷﻋﻠﻲ ﻓﻲ ﺧﺎﻧﺔ‪ColumnName‬‬

‫ﻓﻲ ﺧﺎﻧﺔ ‪ Data Type‬ﻧﺨﺘﺎر ﻧﻮع اﻟﺒﯿﺎن وﻃﺒﻌﺎ ﻓﻲ درﺳﻨﺎ ﻧﺨﺘﺎر اﻟﻨﻮع اﻷﻓﺘﺮاﺿﻲ‬
‫اﻣﺎ اﻧﻮاع اﻟﺒﯿﺎﻧﺎت ﻓﺴﻮف اﺷﺮﺣﮭﺎ ﺑﺸﯿﺊ ﻣﻦ اﻟﺘﻔﺼﯿﻞ ‪:‬‬

‫اﻟﻨﻮع ‪ Int :‬ﯾﺄﺧﺬ أرﻗﺎم ﺻﺤﯿﺤﺔ ﺳﺎﻟﺐ أو ﻣﻮﺟﺐ وﺗﻜﻮن ﺑﯿﻦ ‪ ٢،١٤٧،٤٨٣،٦٤٨ -‬ﺣﺘﻲ ‪٢،١٤٧،٤٨٣،٦٤٧‬‬
‫وﯾﺎﺧﺬ ﺣﯿﺰ ﻓﻲ اﻟﻘﺮص ﺣﺠﻤﮫ ‪ ٤‬ﺑﺎﯾﺖ‪.‬‬

‫اﻟﻨﻮع ‪ Bigint :‬ﻣﺜﻞ اﻟﻨﻮع اﻟﻨﻮع ‪ Int‬ﻟﻜﻦ ﺣﺠﻤﮫ أﻛﺒﺮ وﯾﻘﺒﻞ ﻣﻦ – ‪ ٩،٢٢٣،٣٧٢،٠٣٦،٨٥٤،٧٧٥،٨٠٨‬ﺣﺘﻲ‬
‫‪9,223,372,036,854,775,807‬‬
‫وﯾﺎﺧﺬ ﺣﯿﺰ ‪ ٨‬ﺑﺎﯾﺖ‪.‬‬

‫اﻟﻨﻮع ‪ Smallint :‬ﯾﻘﺒﻞ ‪ – 32,768‬ﺣﺘﻲ اﻟﺮﻗﻢ ‪٣٢،٧٦٧‬‬


‫ه – ﺣﺠﻤﮫ ‪ ٢‬ﺑﺎﯾﺖ ‪.‬‬

‫اﻟﻨﻮع ‪ Tinyint :‬ﯾﻘﺒﻞ ﻣﻦ ‪ ٠‬ﺣﺘﻲ ‪ - ٢٥٥‬ﺣﺠﻤﮫ ‪ ١‬ﺑﺎﯾﺖ‪.‬‬

‫اﻟﻨﻮع ‪ Char :‬ﯾﻌﻨﻲ ﺣﺮف ‪ ،‬وھﻮ ﻋﺒﺎرة ﻋﻦ ﻧﻮع ﯾﺠﻌﻞ ﺣﻘﻞ اﻟﺒﯿﺎﻧﺎت ﯾﺘﻘﺒﻞ ﻋﺪد ﻣﻌﯿﻦ ﻣﻦ اﻟﺤﺮوف ﻣﻦ ‪ ١‬إﻟﻲ ‪ ٨٠٠٠‬ﺣﺮف‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻨﻮع ‪ Nchar :‬ﯾﺄﺧﺬ ﺣﺮوف وﻟﻜﻦ ﺣﺮوف ﻣﻦ اﻟﻨﻮع ‪ Unicode‬أي ﯾﻤﻜﻦ ﺗﺨﺰﯾﻦ ﻛﻞ اﻟﻠﻐﺎت وﻟﯿﺴﺖ اﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﺔ ﻓﻘﻂ وھﻮ‬
‫ﯾﺘﺤﻤﻞ ﻣﻦ ‪ ١‬إﻟﻲ ‪٤٠٠٠‬‬

‫اﻟﻨﻮع ‪ Varchar :‬ﯾﺄﺧﺬ ﻣﻦ ‪ ١‬إﻟﻲ ‪ ٨٠٠٠‬ﺣﺮف – ﻟﻜﻦ ﺣﺠﻤﮫ ﺑﺨﻸف اﻷﻧﻮاع اﻟﺴﺎﺑﻘﺔ ﻏﯿﺮ ﺛﺎﺑﺖ ﺣﯿﺚ ﯾﻜﻮن ﺣﺠﻤﮫ ﺣﺴﺐ ﻋﺪد‬
‫اﻟﺤﺮوف اﻟﺘﻲ ﻓﯿﮭﺎ‬

‫اﻟﻨﻮع ‪ (Varchar(max :‬ﻣﺜﻞ ‪ Varchar‬ﯾﺄﺧﺬ ‪ ٨٠٠٠‬ﺣﺮف ﺣﯿﺚ ﯾﻜﻮن ﺣﺠﻤﮫ ﺣﺴﺐ ﻋﺪد اﻟﺤﺮوف اﻟﺘﻲ ﻓﯿﮫ‪.‬‬

‫اﻟﻨﻮع ‪ Nvarchar :‬ﻧﻔﺲ ‪ :‬ﻣﺜﻞ ‪ Varchar‬ﻟﻜﻦ ﯾﺎﺧﺪ ﺣﺮوف ‪ Unicode‬وﻟﺬﻟﻚ ھﻮ ﯾﻘﺒﻞ ‪ ٤٠٠٠‬ﺣﺮف‬

‫اﻟﻨﻮع ‪ (Nvarchar(max :‬ﻣﺜﻞ اﻟﻨﻮع ‪(Varchar(max‬‬

‫اﻟﻨﻮع ‪ **** :‬وھﻮ ﯾﺄﺧﺬ ﻋﺪد ﺣﺮوف ﺣﺘﻲ ‪ ٢‬ﺟﯿﺠﺎ ﺑﺎﯾﺖ‬


‫ﻟﻜﻦ ﻣﻦ اﻟﺨﻄﺄ ﻓﻌﻞ ذﻟﻚ – ﻓﺘﺨﺰﯾﻦ ﻣﺜﻞ ھﺬا اﻟﺤﺠﻢ داﺧﻞ ﺧﻠﯿﺔ ﺣﻘﻞ واﺣﺪ ﻣﻊ اﻻﺳﺘﺨﺪام ﺳﯿﻜﻮن ھﻨﺎك ﺑﻄﺊ ﻓﻲ اﻟﻘﺮاءة‬

‫اﻟﻨﻮع ‪ N**** :‬ﻣﺜﻞ اﻟﻨﻮع **** ﻟﻜﻦ ﯾﺨﺰن اﻟﺤﺮوف ﻛــــ ‪Unicode‬‬

‫اﻟﻨﻮع ‪ Image :‬ﻣﺜﻞ اﻟﻨﻮع **** ﻟﻜﻦ ﻧﻈﺎم اﻟﺘﺨﺰﯾﻦ ﺑﯿﻜﻮن ‪ Binary‬ﻃﺒﻌﺎً ﻧﺤﻦ ﻧﺴﺘﺨﺪﻣﮫ ﻣﻊ اﻟﺼﻮر وﻣﻠﻔﺎت اﻟﺼﻮف وﺧﻸﻓﮫ ﻣﻦ‬
‫أﻣﻮر اﻟﻤﺎﻟﺘﻤﯿﺪﯾﺎ‬

‫ھﺬه اﻧﻮاع اﻟﺒﯿﺎﻧﺎت‬


‫اﻷن ﻧﻀﻊ اﻟﻤﻔﺘﺎح اﻷﺳﺎﺳﻲ ﻟﻠﺠﺪول وذﻟﻚ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ أول ﺣﻘﻞ )‪ (١‬وﻣﻦ ﺛﻢ اﺧﺘﯿﺎر ﺻﻮرة اﻟﻤﻔﺘﺎح‬
‫) ‪( Set Primary Key‬‬

‫ﻟﻔﺘﺢ اﻟﺠﺪول ﻧﻀﻐﺾ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ اﻟﺠﺪول اﻟﻤﺮاد ﻓﺘﺤﮫ وﻣﻦ ﺛﻢ ‪Open Table‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٣٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻨﺘﯿﺠﺔ‬

‫اﻷن ﻋﻠﯿﻜﻢ ﺗﻤﻠﯿﺔ اﻟﺨﺎﻧﺎت ﺑﺎﻟﺒﯿﺎﻧﺎت‬

‫أوﻷ ‪ :‬ﻧﻀﻐﻂ ﻋﻠﻲ ‪New Query‬‬

‫ﻓﺘﻈﮭﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻷﺳﺘﻌﻼم ﻣﻦ ﺧﺎﻧﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺮج ﻣﻨﮭﺎ اﻟﺒﯿﺎﻧﺎت‬

‫اﻷن ﻧﻜﺘﺐ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﻓﻲ ﺷﺎﺷﺔ اﻷﺳﺘﻌﻼم ‪:‬‬

‫أوﻷ ‪ :‬اﻟﻘﺎﻋﺪة اﻟﻌﺎﻣﺔ ‪:‬ﻻﺳﺘﺨﺪام اﻷﺳﺘﻌﻼم ﺗﺘﻜﻮن ﻣﻦ ﻛﻠﻤﺘﯿﻦ ) ‪ ( Select‬و ) ‪( From‬‬


‫ﻓﻤﺜﻼ ‪ :‬اذا اردﻧﺎ اﻇﮭﺎر ﺑﯿﺎﻧﺎت اﻟﺠﺪول ‪ Emp_info‬ﻧﻜﺘﺐ اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‬

‫‪ .‬اﺳﻢ اﻟﺠﺪول ‪ From‬اﺳﻢ أو اﺳﻤﺎء اﻟﺤﻘﻮل ‪Select‬‬

‫ﺑﻌﺪ ﻛﺘﺎﺑﺔ اﻟﺼﯿﻐﺔ ﻧﻀﻐﻂ ﻋﻠﻲ ‪Execute‬‬


‫ﻓﺘﻜﻮن اﻟﺼﯿﻐﺔ ﻛﺎﻷﺗﻲ ‪ Select * From Emp_info‬ﺣﯿﺚ ان * ﺗﺪل ﻋﻠﻲ ﺟﻤﯿﻊ اﻟﺤﻘﻮل ‪.‬‬
‫ﻓﺘﻜﻮن اﻟﺼﻮرة ﻛﺎﻷﺗﻲ ‪:‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪2 -‬اﺧﺘﯿﺎر ﺣﻘﻮل ﻣﻌﯿﻨﺔ ﻣﻦ اﻟﺠﺪول ﻓﻠﯿﻜﻦ‪name - address - country‬‬
‫‪Select Name ,Adderss ,country From Emp_info‬‬
‫ﻓﺘﻜﻮن اﻟﻨﺘﯿﺠﺔ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة‬

‫‪ - ٣‬ﻋﺒﺎرة ‪DISTINCT‬‬
‫ھﺬه اﻟﺠﻤﻠﺔ اﻟﻤﻘﺼﻮد ﺑﮭﺎ اﻇﮭﺎر اﻟﺒﯿﺎﻧﺎت ﺑﺪون ﺗﻜﺮار‬
‫ﻓﻤﺜﻼ ﻓﻲ ﺣﻘﻞ ‪ Country‬ﺗﻮﺟﺪ ﺑﻌﺾ اﻟﺪول ﻣﺘﻜﺮرة ﻓﺎذا اردﻧﺎ اﻇﮭﺎر اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ ﺣﻘﻞ ‪ Country‬دون اﻇﮭﺎر اﻟﺪول‬
‫اﻟﻤﻜﺮرة ﻧﻜﺘﺐ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ ‪:‬‬

‫‪Select DISTINCT Country From Emp_info‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻨﺘﯿﺠﺔ‬

‫‪ - ٤‬ﻋﺒﺎرة ‪Where‬‬

‫واﻟﻤﻘﺼﻮد ﺑﮫ اذا اردﻧﺎ اﻇﮭﺎر ﻛﻠﻤﺔ ﻣﻌﯿﻨﺔ ﻣﻦ ﺣﻘﻞ أو اﻟﻘﺎﻋﺪة‬


‫ﻣﺜﺎل ‪ :‬ﻧﺮﯾﺪ اﻇﮭﺎر اﺳﻢ ‪ Khalid‬ﻣﻦ ﺣﻘﻞ ‪Name‬‬
‫ﻓﺘﻜﻮن ﻟﺼﯿﻐﺔ ﻛﺎﻷﺗﻲ ‪:‬‬
‫‪Select * From Emp_info‬‬
‫''‪Where Name = 'Khalid‬‬
‫**ﻧﻸﺣﻆ اﺳﻢ ‪ Khalid‬ﺑﯿﻦ ﻋﻼﻣﺘﻲ ﺗﻨﺼﯿﺺ' ‪' Khalid‬‬

‫ﻋﻠﻤﺎ اﻧﮫ ﯾﻤﻜﻨﻨﺎ اﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻼت اﻟﺘﺎﻟﯿﺔ اﺛﻨﺎء اﺳﺘﺨﺪام ﻋﺒﺎرة ‪Where‬‬

‫ﺗﺴﺎوي‬ ‫=‬
‫ﻷ ﺗﺴﺎوي‬ ‫><‬
‫اﻛﺒﺮ ﻣﻦ‬ ‫<‬
‫اﺻﻐﺮ ﻣﻦ‬ ‫>‬
‫اﻛﺒﺮ ﻣﻦ أو ﺗﺴﺎوي‬ ‫<=‬
‫اﺻﻐﺮ ﻣﻦ أو ﺗﺴﺎوي‬ ‫>=‬
‫ﺷﺮط ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬ ‫‪Between‬‬
‫ﻟﻠﺒﺤﺚ ﻋﻦ ﻛﻠﻤﺔ ﻣﺸﺎﺑﮭﺔ‬ ‫‪Like‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ - ٥‬ﻋﺒﺎرة‪Order By‬‬
‫واﻟﻤﻘﺼﻮد ﺑﮫ اﻟﺘﺮﺗﯿﺐ ﺣﺴﺐ ﺣﻘﻞ ﻣﻌﯿﻦ‬
‫ﻣﺜﺎل ‪ :‬ﻧﺮﯾﺪ ﻋﻤﻞ اﺳﺘﻌﻼم ﺣﺴﺐ ﺗﺮﺗﯿﺐ‪Adderss‬‬
‫اﻟﺼﯿﻐﺔ ‪:‬‬
‫‪Select * from Emp_info‬‬
‫‪order by Adderss‬‬
‫ﻓﺘﻜﻮن اﻟﻨﺘﯿﺠﺔ ﻛﺎﻷﺗﻲ ‪:‬‬

‫‪ - ٦‬اﻟﻤﻌﺎﻣﻠﯿﻦ ‪ And‬و ‪Or‬‬


‫ﺗﺴﺘﺨﺪم ﻟﻠﺮﺑﻂ ﻓﻲ ﺷﺮﻃﯿﻦ أو اﻛﺜﺮ‬
‫‪-‬ﻣﻌﺎﻣﻞ ‪ : And‬ﯾﻘﻮم ﺑﺎﺳﺘﻌﺮاض اﻟﻨﺘﺎﺋﺞ ﻓﻲ ﺣﺎل ﺗﺤﻘﻖ ﺟﻤﯿﻊ اﻟﺸﺮوط‬
‫‪-‬ﻣﻌﺎﻣﻞ ‪ : Or‬ﯾﻘﻮم ﺑﺎﺳﺘﻌﺮاض اﻟﻨﺘﺎﺋﺞ ﻓﻲ ﺣﺎل ﺗﺤﻘﻖ ﺷﺮط اي ﺷﺮط ﻣﻦ اﻟﺸﺮوط ‪.‬‬

‫ﻣﺜﺎل ﻋﻠﻲ ﻣﻌﺎﻣﻞ ‪: And‬‬


‫‪Select * From Emp_info‬‬
‫'‪Where Adderss ='muscat‬‬
‫'‪and Country='oman‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫ﻣﺜﺎل ﻋﻠﻲ ﻣﻌﺎﻣﻞ ‪Or‬‬


‫‪Select * From Emp_info‬‬
‫'‪Where Name ='salim‬‬
‫'‪or Country='egypt‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ھﺬه ﺑﻌﺾ ﻋﺒﺎرات وﻣﻌﺎﻣﻞ ال ‪SQL‬‬

‫أوﻷ ‪ :‬ﻣﻌﺎﻣﻞ ‪Count :‬‬


‫ﯾﻌﻤﻞ ھﺬا اﻟﻤﻌﺎﻣﻞ ﻟﺤﺴﺎب ﻋﺪد اﻟﺤﻘﻮل ‪.‬‬
‫ﻣﺜﺎل ‪:‬‬

‫ﻧﺮﯾﺪ ان ﻧﻌﺮف ﻋﺪد ﺣﻘﻮل ﺟﺪول ‪Emp_info‬‬


‫ﻓﺘﻜﺘﺐ‬
‫‪Select Count(*) From Emp_info‬‬

‫ﺛﺎﻧﯿﺎ ‪ :‬ﻣﻌﺎﻣﻞ ‪ IN‬ھﻮ ﻋﺒﺎرة ﻋﻦ اﻇﮭﺎر ﺑﯿﺎﻧﺎت ﻣﻌﯿﻨﺔ ﻣﻦ ﺣﻘﻞ ﻣﻌﯿﻦ‬


‫ﻣﺜﺎل ‪Emp_info Select * From :‬‬
‫‪('Country IN('oman','uae where‬‬

‫ﺛﺎﻟﺜﺎ ‪Between :‬‬


‫ﻋﺒﺎرة ﻋﻦ اﻇﮭﺎر ﺑﯿﺎﻧﺎت ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬
‫ھﺬه ﻟﻦ ﯾﺘﻢ ﺷﺮﺣﮭﺎ وﻟﻜﻦ ارﺟﻮا اﻟﺘﺠﺮﯾﺐ‬
‫ﻓﻲ ﺣﺎل وﺟﻮد اي ﺻﻌﻮﺑﺔ ارﺟﻮ اﺑﻸﻏﻲ ‪.‬‬
‫اﻟﻘﺎﻋﺪة‬
‫‪Select‬‬
‫اﺳﻢ اﻟﺤﻘﻞ أو اﻟﺤﻘﻮل‬
‫‪From‬‬
‫اﺳﻢ اﻟﺠﺪول‬
‫‪Where‬‬
‫اﺳﻢ اﻟﺤﻘﻞ‬
‫‪Between‬‬
‫ﻗﯿﻤﺔ ‪١‬‬
‫‪And‬‬
‫ﻗﯿﻤﺔ ‪٢‬‬
‫ارﺟﻮ اﻟﺘﺠﺮﯾﺐ واﺑﺮﻏﻲ ﺑﺎﻟﻨﺘﺎﺋﺞ ‪.‬‬

‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻛﺜﺮ ﻣﻦ ﺟﺪول ورﺑﻂ اﻟﺠﺪأول‬


‫ﻓﻲ اﻟﺒﺪاﯾﺔ ﻧﻘﻮم ﺑﺎﻧﺸﺎء ﺟﺪول ﺟﺪﯾﺪ ) راﺟﻊ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ (‬
‫واﺣﻔﻈﮫ ﺑﺎﻷﺳﻢ اﻟﺬي ﺗﺮﯾﺪ ‪...‬‬
‫اﻷن ادرج اﻟﺤﻘﻮل اﻟﺘﺎﻟﯿﺔ ﻓﻲ اﻟﺠﺪول اﻟﺠﺪﯾﺪ‬
‫‪ID‬‬
‫‪JobName‬‬
‫‪ContractType‬‬
‫‪selary‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺑﻌﺪ اﻧﺸﺎء اﻟﺠﺪول واﺿﺎﻓﺔ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ﺟﺎء دور اﻟﺮﺑﻂ ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ‬
‫اﺿﻐﻂ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ‪ DataBase Diagrams‬ﺑﻌﺪھﺎ اﺧﺘﺮ‪New DataBase Diagrams‬‬

‫اﻷن ﻧﻀﯿﻒ اﻟﺠﺪأول اﻟﻤﺮاد رﺑﻄﮭﺎ‬

‫اﻷن ﻧﻘﻮم ﺑﺴﺤﺐ ‪ ID‬ﻣﻦ ﺟﺪول ‪ Empinfo‬إﻟﻲ ‪ ID‬ﻟﻠﺠﺪول اﻟﺠﺪﯾﺪ اﻟﺬي اﻧﺸﺎءﺗﮫ‬
‫ﻓﯿﺼﺒﺢ اﻟﺸﻜﻞ‬

‫ﺑﻌﺪھﺎ ﻧﻀﻐﻂ ﻋﻠﻲ زر ﺣﻔﻆ وﻧﺤﻔﻆ اﻟﻌﻸﻗﺔ ﺑﺎﺳﻢ ﻣﻌﯿﻦ‬


‫ﺑﻜﺬا ﺗﻢ ﻋﻤﻞ اﻟﻌﻸﻗﺔ ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ‬
‫اﻟﺪرس اﻟﻘﺎدم ﺑﺎذن اﷲ ﺗﻌﺈﻟﻲ ﺳﯿﻜﻮن ﻓﻲ ﻛﯿﻔﯿﺔ ﺟﻠﺐ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻣﻮﺟﻮدة ﺳﺎﺑﻘﺎ وﻃﺮﯾﻘﺔ ﻋﻤﻞ اﻟﻨﺴﺨﺔ اﻷﺣﺘﯿﺎﻃﯿﺔ ‪ BackUp‬وﻃﺮﯾﻘﺔ‬
‫ﺗﺤﻤﯿﻞ ال ‪BackUp‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻓﻲ ھﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻨﺎول ﻛﯿﻔﯿﺔ ادراج ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت ﺟﺎھﺰة وﻛﯿﻔﯿﺔ ﻋﻤﻞ اﻟﻨﺴﺦ اﻷﺣﺘﯿﺎﻃﯿﺔ ‪Backup‬‬

‫ﻟﻠﻌﻠﻢ اﻣﺘﺪاد ﻣﻠﻔﺎت ‪ SQL‬ﺗﻜﻮن ﺑﮭﯿﺌﺔ ‪MDF‬‬

‫ﺳﻮف اﻋﺮض ﺑﺮﻧﺎﻣﺞ ﻓﯿﮫ ﻣﻠﻔﺎت اﻷس ﻛﯿﻮ ال اﻷﺳﺎﺳﯿﺔ ) ‪( Pub - NorthWind‬‬
‫ﯾﻤﻜﻨﻜﻢ ﺗﺤﻤﻠﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ اﻟﻮﺻﻠﺔ اﻟﺘﺎﻟﯿﺔ ‪:‬‬

‫‪http://rapidshare.com/files/120104132/SQL2000SampleDb.rar.html‬‬

‫ﺛﺎﻧﯿﺎ ‪ :‬ﺗﻨﺼﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ‬

‫ﺑﻌﺪ ﻓﻚ اﻟﻤﻠﻒ ﻧﻘﻮم ﺑﺘﻨﺼﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ‬

‫ﻧﺠﺪ اﻟﻤﻠﻔﺎت ﻓﻲ اﻟﻘﺮص ﺳﻲ ) ‪( C‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺛﺎﻟﺜﺎً ‪ :‬ادراج اﻟﻤﻠﻔﺎت‬

‫ﺑﻌﺪ ان ﻧﻔﺘﺢ ﺑﺮﻧﺎﻣﺞ ‪SQL2005‬‬


‫‪ - ١‬ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ‪Database‬‬
‫‪ - ٢‬ﺑﻌﺪھﺎ ﻧﺨﺘﺎر‪attach‬‬

‫‪ - ٣‬ﺑﻌﺪھﺎ ﺗﻈﮭﺮ ﺷﺎﺷﺔ ﻷﺿﺎﻓﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر ‪Add‬‬

‫‪ - ٤‬اﻷن ﻧﺨﺘﺎر ﻣﻠﻒ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮد ﻓﻲ اﻟﻘﺮص اﻟﺤﻠﻲ ) ‪( C‬‬


‫ﻣﻼﺣﻈﺔ ‪ :‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ اﺧﺘﺮﻧﺎ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‪Northwind‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ اﻟﻨﺘﯿﺠﺔ‬-٥

Prog: Mohamed Youssef ١٤٨ E_Mail: Mohamed.yoyo@gmail.com


‫‪---------------------------------------------------------------------------------‬‬

‫اﻟﺪرس اﻟﺘﺎﺳﻊ ‪:‬‬

‫ﻃﺮﯾﻘﺔ ﻋﻤﻞ ﻧﺴﺨﺔ اﺣﺘﯿﺎﻃﯿﺔ ‪Backup‬‬

‫‪ -١‬ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺮاد ﻋﻤﻞ ﻧﺴﺨﺔ ﻟﮭﺎ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٤٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ ﺗﻈﮭﺮ ﻟﻨﺎ ﺷﺎﺷﺔ ﺗﺨﺒﺮﻧﺎ ﻣﻜﺎن ﺣﻔﻆ اﻟﻤﻠﻒ‬-٢

‫ اﻟﻨﺘﯿﺠﺔ‬-٣

Prog: Mohamed Youssef ١٥٠ E_Mail: Mohamed.yoyo@gmail.com


‫ﻃﺮﯾﻘﺔ اﺳﺘﺮﺟﺎع اﻟﻨﺴﺨﺔ اﻷﺣﺘﯿﺎﻃﯿﺔ ‪:‬‬

‫ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ﺗﻌﻠﻤﻨﺎ ﻛﯿﻔﯿﺔ ﻋﻤﻞ اﻟﻨﺴﺨﺔ اﻷﺣﺘﯿﺎﻃﯿﺔ ﻟﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻣﻌﯿﻨﺔ وﻗﻠﻨﺎ ان اﻟﻤﻠﻒ ﻣﻮﺟﻮد ﻓﻲ ﻣﺴﺎر ﻣﻌﯿﻦ‬

‫ﻓﻲ ھﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻨﺎول ﻛﯿﻔﯿﺔ اﺳﺘﺮﺟﺎع اﻟﻨﺴﺨﺔ اﻷﺣﺘﯿﺎﻃﯿﺔ ‪:‬‬

‫‪ -١‬اﻟﺨﻄﻮة اﻷوﻟﻲ ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام اﺣﺪي اﻟﻄﺮﯾﻘﺘﯿﻦ وﻛﻸھﻤﺎ ﺻﺤﯿﺢ‬

‫‪-‬ﯾﻤﻜﻦ اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة وﺗﺴﻤﺴﺘﮭﺎ ﺑﺎﺳﻢ ﻣﻌﯿﻦ‬


‫‪-‬اﻟﻨﻘﺮ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ‪ Database‬وھﺬه اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﻧﺴﻨﺨﺪﻣﮭﺎ ﻓﻲ درﺳﻨﺎ‬

‫‪ -٢‬ﺗﻈﮭﺮ ﻟﻨﺎ ﺷﺎﺷﺔ ﺟﻠﺐ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬

‫‪-‬ﻓﻲ ﺧﺎﻧﺔ ‪ To Database :‬ﻧﻜﺘﺐ اﺳﻢ اﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ) ﻛﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة )‬

‫‪-‬ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﺸﺎﺷﺔ ﻧﺨﺘﺎر ‪ From Device‬ﻟﺠﻠﺐ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺮص اﻟﻤﺤﻠﻲ‬

‫‪-‬اﻷن ﻧﺨﺘﺎر زر اﺳﺘﻌﺮاض‬

‫‪ - ٣‬ﻓﻲ ھﺬه اﻟﺸﺎﺳﺔ ﻧﺨﺘﺎر زر‪Add‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ - ٤‬اﻷن ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر اﻟﻨﺴﺨﺔ اﻷﺣﺘﯿﺎﻃﯿﺔ ﻣﻦ اﻟﻘﺮص أو اﻟﻤﻜﺎن اﻟﺬي ﺗﻢ ﺗﺨﺰﯾﻨﮫ ﻓﯿﮫ ‪.‬‬

‫‪ - ٥‬اﻟﺨﻄﻮة اﻷﺧﯿﺮة ﻧﻸﺣﻆ وﺟﻮد ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر زر ‪OK‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ اﻟﻨﺘﯿﺠﺔ‬-٦

Views ‫ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﺳﻮف ﻧﺘﻄﺮق إﻟﻲ ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ‬

Prog: Mohamed Youssef ١٥٣ E_Mail: Mohamed.yoyo@gmail.com


‫اﻟﺪرس اﻟﻌﺎﺷﺮ ‪: Views‬‬

‫ﻣﺸﺎھﺪ اﻟﺒﯿﺎﻧﺎت أو ‪ Views‬ﺗﺸﺒﮫ ﻛﺜﯿﺮاً اﺳﺘﻌﻼﻣﺎت اﻷﻛﺴﺲ) ‪( Query‬‬


‫وھﻲ ﺗﺴﺘﺨﺪم ﻟﻠﻌﺮض ﻣﻦ ﻋﺪة ﺟﺪأول ﻛﻤﺎ ﻧﻸﺣﻆ ﻓﻲ درﺳﻨﺎ‬
‫اﻟﻔﺎﺋﺪة ﻣﻦ اﻟﻤﺸﺎھﺪ‬
‫ﻃﺒﻌﺎً اﻟﻔﺎﺋﺪة اﻟﻜﺒﯿﺮة ﻣﻨﮫ اﻟﺘﺤﻜﻢ ﺑﺼﻸﺣﯿﺎت اﻟﻮﺻﻮل( ﻟﺘﺤﺪﯾﺪ اﻟﺤﻘﻮل اﻟﻤﺴﻤﻮح ﺑﺮؤﯾﺘﮭﺎ ﻣﺜﻼ ﻟﮭﺬا اﻟﻤﺴﺘﺨﺪم أو ذاك) ‪..‬‬
‫ﻓﻲ درﺳﻨﺎ ﺳﻮف ﻧﻨﺸﺊ ﻣﺸﺎھﺪ ) ‪ ( View‬وﻧﻀﯿﻒ ﻓﯿﮫ اﻟﺒﯿﺎﻧﺎت اﻷﺗﯿﺔ‬
‫‪ : Customers‬ﺟﺪول‪١‬‬
‫‪ : CompanyName -- ContactName‬اﻟﺤﻘﻮل‬
‫‪ : Orders‬ﺟﺪول‪٢‬‬
‫‪ : OrderDate‬اﻟﺤﻘﻮل‬
‫]‪ : [Order Details‬ﺟﺪول‪٣‬‬
‫‪ : UnitPrice --- Quantity --- Discount‬اﻟﺤﻘﻮل‬

‫ﺧﻄﻮات اﻟﻌﻤﻞ ‪:‬‬


‫*اﻧﺸﺎء ‪ View‬ﺟﺪﯾﺪ‬
‫ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻋﻠﻲ ‪ Views‬ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ‬

‫ﺛﻢ ﻧﺨﺘﺎر‪NewView‬‬
‫ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻈﮭﺮ ﻟﻨﺎ ﻣﺮﺑﻊ ﻧﻀﯿﻒ اﻟﺠﺪأول اﻟﻤﻨﺎﺳﺒﺔ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺑﻌﺪ اﺿﺎﻓﺔ اﻟﺠﺪأول اﻟﺘﻲ ﻧﺮﯾﺪ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻨﮭﺎ ﻧﺨﺘﺎر اﻟﺤﻘﻮل اﻟﻤﻨﺎﺳﺒﺔ‬
‫ﻟﻠﻌﻠﻢ ) ﻧﻸﺣﻆ اﻧﮫ ﺑﻤﺠﺮ ﻣﺎ ﻧﻀﯿﻒ اﻟﺠﺪأول اﻟﻌﻸﻗﺎت ﺗﻈﮭﺮ ﺑﯿﻦ اﻟﺠﺪأول وﺑﺎﻻﻣﻜﺎن اﯾﻀﺎ ﻋﻤﻞ ﻋﻸﻗﺎت ﺑﯿﻦ اﻟﺠﺪأول )‬

‫ﻓﻲ ھﺬا اﻟﺸﻜﻞ ﻧﻸﺣﻆ ﻇﮭﻮر اﻟﺠﺪأول واﻟﺤﻘﻮل‬

‫وﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺨﺎص ﺑﺎﻟﻤﺸﺎھﺪ وﻃﺮﯾﻘﺔ رﺑﻄﮫ‬

‫ﺑﻌﺪ اﻷﻧﺘﮭﺎء ﻣﻦ اﺿﺎﻓﺔ اﻟﺠﺪأول واﻟﺤﻘﻮل ﻧﻀﻐﻂ ﻋﻠﻲ زر ‪ F5‬أو ﻋﻠﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻟﻨﺘﯿﺠﺔ‬

‫ﺛﺎﻧﯿﺎ ‪ :‬ﺧﯿﺎرات اﻟﺠﺪأول‬


‫ﯾﻤﻜﻨﻨﺎ اﺿﺎﻓﺔ اﻟﺨﯿﺎرات ﻣﻦ اﻟﺤﻘﻮل ﻣﺒﺎﺷﺮة أو ﻣﻦ ﺧﻼل اﻟﺸﻔﺮة ﻛﻤﺎ ﻓﻌﻠﻨﺎ ﻓﻲ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ) ‪( Count - where ...‬‬
‫ﺧﺎﺻﯿﺔ ‪Sort Type‬‬

‫ﻓﻲ ﺣﺎل ﻧﺮﯾﺪ اﻇﮭﺎر ﺑﯿﺎن ﻣﻌﯿﻦ ﻣﻦ ﺣﻘﻞ ﻣﻌﯿﻦ ﻓﻨﺨﺘﺎر ﺧﺎﺻﯿﺔ‪Filter‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ADO.Net 2 Programming‬‬ ‫‪‬‬
‫‪ ADO.NET ..‬ھﻲ اﻟﺘﻘﻨﯿﺔ اﻟﺘﻲ ﺗﺴﻤﺢ ﻟﻨﺎ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻦ داﺧﻞ ﺑﯿﺌﺔ اﻟـ ‪ NET .‬ﺣﯿﺚ ﺗﻘﻮم ھﺬه اﻟﺘﻘﻨﯿﺔ ﻋﻠﻲ ﻣﺒﺪأ‬
‫اﻟـ ‪ , Oriented Programming Object‬وھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟـ ‪ classes‬و اﻟﺘﻲ ﺗﻤﻜﻨﻨﺎ ﻣﻦ اﻟﻮﺻﻮل إﻟﻲ اﻟﺒﯿﺎﻧﺎت‬
‫ﻣﻦ ﺧﻼل اﻟﻠﻐﺎت اﻟﺘﻲ ﺗﺪﻋﮭﻤﺎ ‪ . NET‬ﺿﻤﻦ ﻓﻀﺎﺋﻲ اﻷﺳﻤﺎء ‪ system.data‬و ‪system.xml‬‬

‫ﺣﯿﺚ ﺗﻤﺘﺎز اﻟـ ‪ ADO.NET‬ﺑﻤﯿﺰة اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت ﻓﻲ وﺿﻌﯿﻦ‪ :‬اﻷول وﺿﻊ ﻣﺘﺼﻞ ‪ connected‬و اﻟﻮﺿﻊ اﻷﺧﺮ و‬
‫ﺿﻊ ﻣﻨﻔﺼﻞ ‪. Disconnected‬‬

‫و ﻟﻘﺪ ﻧﺸﺄت اﻟـ ‪ ADO.NET‬ﻣﻦ ﺗﻘﻨﯿﺔ ﺳﺎﺑﻘﺔ ﺗﺪﻋﻲ ‪ ADO‬وھﻲ اﺧﺘﺼﺎر ﻟﻠﻜﻠﻤﺎت ‪ ActiveX data Object‬و ﻛﺎﻧﺖ اﻟـ ‪ADO‬‬
‫ﺗﻤﺜﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟـ ‪ Classes‬اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﺴﺎﺑﻘﺔ ﻣﺜﻞ ‪ basic 6 visual‬ﻟﻠﻮﺻﻮل إﻟﻲ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻗﻮاﻋﺪ‬
‫‪١‬‬
‫اﻟﺒﯿﺎﻧﺎت ‪ ،‬و ‪ ADO.NET‬ﺗﻘﻮم ﺑﻨﻔﺲ اﻷﻏﺮاض اﻟﺘﻲ ﻛﺎﻧﺖ ﺗﻘﻮم ﺑﮭﺎ اﻟـ ‪ ADO‬و ﻟﻜﻦ ﺑﺄﺳﻠﻮب ﻣﺤﺪث وأﺳﮭﻞ ‪.‬‬

‫ﻣﺰودات اﻟﺒﯿﺎﻧﺎت ‪:Data Providers‬‬

‫ﺗﺴﻤﺢ ﻟﻚ ‪ ADO.NET‬ﺑﺎﻷﺗﺼﺎل ﻣﻊ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت ) ﺑﺮاﻣﺞ إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻋﻠﻲ اﺧﺘﻼﻓﮭﺎ‪ :‬أوراﻛﻞ‪MS ،SQL Server ،‬‬
‫‪ ،Access‬وﻏﯿﺮھﺎ( وﻟﺘﺤﻘﯿﻖ ھﺬا اﻟﺘﻌﻤﯿﻢ ﯾﻮﺟﺪ ﻣﺠﻤﻮﻋﺔ واﺣﺪة ﻣﻦ ال‪ Classes‬ﻓﻲ ‪!ADO.NET‬‬
‫وﺑﻤﺎ أن ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ ﺗﻌﻤﻞ ﺑﺒﺮوﺗﻮﻛﻮﻷت ﻣﺨﺘﻠﻔﺔ‪ ،‬ﻟﺬﻟﻚ ﻓﻨﺤﻦ ﻧﺤﺘﺎج إﻟﻲ ﻃﺮﯾﻘﺔ ﺻﺤﯿﺤﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻛﻞ ﻣﺼﺪر‬
‫ﺑﺎﻟﺒﺮوﺗﻮﻛﻮل اﻟﺬي ﯾﻨﺎﺳﺒﮫ‪ ،‬ﺑﻌﺾ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت اﻟﻘﺪﯾﻤﺔ ﺗﺴﺘﺨﺪم ‪ ODBC protocol‬وﺑﻌﺾ اﻟﺤﺪﯾﺚ ﻣﻨﮭﺎ ﯾﺴﺘﺨﺪم ‪OleDb‬‬
‫‪.protocol‬‬
‫‪ ADO.NET‬ﺗﻘﺪم ﻃﺮﯾﻘﺔ ﻋﺎﻣﺔ ﻧﺴﺒﯿﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت ﻛﻞً ﻋﻠﻲ ﺣﺪه ﻓﻲ ﻣﻜﺘﺒﺔ ﺧﺎﺻﺔ‪ ،‬ھﺬه اﻟﻤﻜﺘﺒﺎت ﺗﺴﻤﻲ ‪Data‬‬
‫‪ Providers‬وﻏﺎﻟﺒﺎً ﯾﻜﻮن اﺳﻤﮭﺎ ﻓﻲ ‪ ADO.NET‬ﻋﻠﻲ اﺳﻤﺎء اﻟﺒﺮوﺗﻮﻛﻮﻷت اﻟﺘﻲ ﺗﺴﺘﻌﻤﻠﮭﺎ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت‪ ،‬اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬
‫ﯾﻮﺿﺢ ﺑﻌﺾ ﻣﺰودات اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺮﻓﺔ ﻓﻲ ‪ ADO.NET‬وﺳﺎﺑﻘﺔ ‪ API‬اﻟﺘﻲ ﺳﺘﻌﻤﻠﮭﺎ وﻧﻮع ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت اﻟﺬي ﺗﺘﻌﺎﻣﻞ ﻣﻌﮫ‪:‬‬

‫‪Table 1. ADO.NET Data Providers are class libraries that allow a common‬‬
‫‪way to interact with specific data sources or protocols. The library APIs‬‬
‫‪have prefixes that indicate which provider they support.‬‬

‫‪Provider Name‬‬ ‫‪API Prefix‬‬ ‫‪Data Source Description‬‬


‫‪Data Sources with an ODBC‬‬
‫‪ODBC Data‬‬
‫‪Odbc‬‬ ‫‪interface. Normally older data‬‬
‫‪Provider‬‬
‫‪bases.‬‬
‫‪Data Sources that expose an‬‬
‫‪OleDb Data‬‬
‫‪OleDb‬‬ ‫‪OleDb interface, i.e. Access or‬‬
‫‪Provider‬‬
‫‪Excel.‬‬
‫‪Oracle Data‬‬
‫‪Oracle‬‬ ‫‪For Oracle Data Bases.‬‬
‫‪Provider‬‬
‫‪SQL Data‬‬ ‫‪For interacting with Microsoft‬‬
‫‪Sql‬‬
‫‪Provider‬‬ ‫‪SQL Server.‬‬
‫‪Generic access to many data‬‬
‫‪Borland Data‬‬
‫‪Bdp‬‬ ‫‪bases such as Interbase, SQL‬‬
‫‪Provider‬‬
‫‪Server, IBM DB2, and Oracle.‬‬

‫‪ - 1‬م ‪ /‬ﺗﺮﻛﻲ اﻟﻌﺴﯿﺮى ‪ :‬ﺑﺮﻣﺠﺔ أﻃﺎر ﻋﻤﻞ ‪ .Net‬ﺑﺈﺳﺘﺨﺪام ‪ ، PDF File ، Visual Basic.Net‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪ ، ٢٠٠٣‬ص ‪٦٠٩‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﻛﻤﺜ ﺎل ﯾﻮﺿ ﺢ اﺳ ﺘﺨﺪام ﺳ ﺎﺑﻘﺔ ‪ :API‬ﻋﻨ ﺪ اﻷﺗ ﺼﺎل ﺑﻘﻮاﻋ ﺪ اﻟﺒﯿﺎﻧ ﺎت أﺣ ﺪ أول اﻟﻜﺎﺋﻨ ﺎت ‪ Objects‬اﻟﺘ ﻲ ﺳﺘ ﺴﺘﺨﺪﻣﮭﺎ ھ ﻮ‬
‫‪ - Connection object‬ﻛﻤﺎ ﺳﯿﺄﺗﻲ ﺷﺮﺣﮫ ﻷﺣﻘﺎً‪ -‬واﻟﺬي ﺳﯿﺴﻤﺢ ﻟﻚ ﺑﺒﺪء اﺗﺼﺎل ﻣ ﻊ أﺣ ﺪ ﻣ ﺼﺎدر اﻟﺒﯿﺎﻧ ﺎت‪ ،‬ﻟ ﻮ ﻛﻨ ﺎ ﺳﻨ ﺴﺘﺨﺪم‬
‫‪ OleDb Data Provider‬ﻟﻜﻲ ﻧﺘ ﺼﻞ ﻣ ﻊ ﻣ ﺼﺪر اﻟﺒﯿﺎﻧ ﺎت )ﻗﺎﻋ ﺪة ﺑﯿﺎﻧ ﺎت آﻛ ﺴﺲ أو ﻣﻠ ﻒ أﻛ ﺴﻞ ﻣ ﺜﻼ( ﻓﺈﻧﻨ ﺎ ﺑﺒ ﺴﺎﻃﺔ ﺳﻨ ﻀﯿﻒ‬
‫ﺳ ﺎﺑﻘﺔ ‪ API‬اﻟﺨﺎﺻ ﺔ ﺑ ـ ‪ OleDb Data Provider‬وھ ﻲ ﻣ ﻦ اﻟﺠ ﺪول اﻟ ﺴﺎﺑﻖ ‪ OleDb‬إﻟ ﻲ اﺳ ﻢ اﻟﻜ ﺎﺋﻦ ﻟﯿ ﺼﺒﺢ‬
‫‪.OleDbConnection‬‬
‫وھﻜﺬا‪ ،‬ﻛﺎﺋﻦ اﻷﺗﺼﺎل ﯾﺒﺪأ ﺑ ـ ‪ Odbc‬ﻟﯿ ﺼﺒﺢ ‪ OdbcConnection‬ﻋﻨ ﺪ اﺳ ﺘﺨﺪام ﻣ ﺰود ﺑﯿﺎﻧ ﺎت ‪ ، source Odbc data‬وﻛ ﺎﺋﻦ‬
‫اﻷﺗﺼﺎل ﯾﺒﺪأ ﺑـ ‪ Sql‬ﻟﯿﺼﺒﺢ ‪ SqlConnection‬ﻋﻨﺪ اﺳﺘﺨﺪام ﻣﺰود ﺑﯿﺎﻧﺎت ‪.data base SQL Server‬‬

‫وﺣﯿﺚ أﻧﻨﺎ ﺳﻨﺴﺘﺨﺪم ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت آﻛﺴﺲ ﻓﻲ دروﺳﻨﺎ و ﻣ ﺰود اﻟﺒﯿﺎﻧ ﺎت ﻟﮭ ﺬا اﻟﻨ ﻮع ھ ﻮ ‪ OleDb‬ﻓ ﺈن ﺳ ﺎﺑﻘﺔ ﻛ ﻞ ﻛ ﺎﺋﻦ ﺳﻨﻨ ﺸﺌﮫ‬
‫ﺳﺘﻜﻮن ‪ OleDb‬وﺑﺈﻣﻜﺎﻧﻚ ﺗﻐﯿﯿﺮھﺎ إذا ﻛﻨﺖ ﺗﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺰود ﺑﯿﺎﻧﺎت ﻟﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت أﺧﺮي ﻛﻤﺎ ﯾﻮﺿﺢ اﻟﺠﺪول اﻟﺴﺎﺑﻖ!‬

‫‪ADO.Net‬‬ ‫ﻓﺌﺎت ﻣﻜﺘﺒﺔ‬

‫ﻣﻜﻮﻧﺎت اﻟﻮﺿﻊ اﻟﻤﻨﻔﺼﻞ ‪Disconnection‬‬

‫ﻣﻜﻮﻧﺎت اﻟﻮﺿﻊ اﻟﻤﺘﺼﻞ ‪Connection‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ADO.NET Objects :‬‬

‫‪1.‬‬ ‫‪Connection.‬‬
‫‪2.‬‬ ‫‪Command.‬‬
‫‪3.‬‬ ‫‪DataReader.‬‬ ‫)وﺿﻊ ﻣﺘﺼﻞ(‬
‫‪4.‬‬ ‫‪DataAdapter.‬‬ ‫)وﺿﻊ ﻣﻨﻔﺼﻞ(‬
‫‪5.‬‬ ‫‪DataSet.‬‬ ‫)وﺿﻊ ﻣﻨﻔﺼﻞ(‬

‫واﻟﺮﺳﻢ اﻟﺘﺎﻟﻲ ﯾﻮﺿﺢ ﻣﻔﮭﻮم اﺳﺘﺨﺪام ﻛﻞ ﻛﺎﺋﻦ وﻧﻄﺎﻗﮫ‪:1‬‬

‫‪   (ActiveX Data Objects .NET) ADO .NET ‬‬

‫‪ - 1‬ﺑﻮاﺳﻄﺔ ‪ ، k-s-b :‬اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ ‪ ،‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺴﻲ اﻟﺸﺎرب ‪ ، C#‬ﺑﺘﺎرﯾﺦ ‪ ٢٧‬أﻛﺘﻮﺑﺮ ‪٢٠٠٦‬‬
‫‪http://www.c4arab.com/showasection.php?lssid=108 , Viewed 12/10/2008‬‬
‫‪2‬‬
‫‪ -‬م‪ /‬إﺣﺴﺎن ﻣﺰھﺮ رﺷﯿﺪ ‪ :‬ﻣﻠﺨﺼﺎت ﻓﻲ ‪ ، (٢) Visual Basic.Net 2003‬اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻲ ﻟﻠﻤﮭﻦ اﻟﺸﺎﻣﻠﺔ درﻧﺔ ‪ ،‬ﻗﺴﻢ اﻟﺤﺎﺳﻮب ‪، PDF File ،‬‬
‫‪ ،٢٠٠٥‬ص‪١٩‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٥٩‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪١‬‬
‫ﺳﯿﻨﺎرﯾﻮ اﻟﻮﺿﻊ اﻟﻤﻨﻔﺼﻞ‬

‫ﺳﯿﻨﺎرﯾﻮ أﺳﺘﺨﺪام ﻛﺎﺋﻦ اﻟﻤﺤﻮل ‪ DataAdapter‬ﻣﻊ ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت و ﻛﺎﺋﻦ ‪DataSet‬‬

‫‪٢‬‬
‫اﻟــ ‪Microsoft Access‬‬ ‫رﺑﻂ ﺑﺮﻧﺎﻣﺞ ﺑﺎﻟـ ‪ VB.Net 2003‬ﻣﻊ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺗﻢ إﻧﺸﺎؤھﺎ ﻋﻠﻲ‬
‫ﻓﻲ اﻟﺒﺪاﯾﺔ أود ذﻛﺮ أن ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻗﻤﺖ ﺑﺎﻧﺸﺎءھﺎ ﺑﺴﯿﻄﺔ ﺟ ﺪا ﻗﻤ ﺖ ﺑﺘ ﺴﻤﯿﺘﮭﺎ ‪ k_s_b‬و ﺗﺤﺘ ﻮي ﻋﻠ ﻲ ﺟ ﺪول واﺣ ﺪ ﻓﻘ ﻂ‬
‫ﯾﺴﻤﻲ‪patient .‬‬

‫اﻷن ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪: view >> server explorer‬‬

‫‪ - 1‬م ‪ /‬ﺗﺮﻛﻲ اﻟﻌﺴﯿﺮى ‪ :‬ﺑﺮﻣﺠﺔ أﻃﺎر ﻋﻤﻞ ‪ .Net‬ﺑﺈﺳﺘﺨﺪام ‪ ، PDF File ، Visual Basic.Net‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪ ، ٢٠٠٣‬ص‪٦٣٨‬‬
‫‪ - 2‬ﺑﻮاﺳﻄﺔ ‪ ، k-s-b :‬اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ واﻹﻧﺘﺮﻧﺖ ‪ ،‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺴﻲ اﻟﺸﺎرب ‪ ، C#‬ﺑﺘﺎرﯾﺦ ‪ ٢٧‬أﻛﺘﻮﺑﺮ ‪٢٠٠٦‬‬
‫‪http://www.c4arab.com/showasection.php?lssid=108 , Viewed 12/10/2008‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺳﯿﻈﮭﺮ ﻟﻚ ﻣﺎ ﯾﻠﻲ ﺑﺠﺎﻧﺐ ﺻﻨﺪوق اﻷدوات‪:‬‬

‫ﺳﯿﻈﮭﺮ ﻟﻚ ﻓﻲ ﻧﺎﻓﺬة اﻟـ ‪ Server explorer‬ﻣﺎ ﯾﻠﻲ‪:‬‬

‫ﻷﺣﻆ ﺑﺎﻷﻋﻠﻲ أﻧﮫ ﺗﻢ إدراج ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺳﻨﻘﻮم ﺑﺮﺑﻄﮭﺎ ﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ ‪ ,‬ﻓﻘﻂ ﻗﻢ اﻷن ﺑﺴﺤﺐ اﻟﺠﺪول اﻟﻤﺮاد ﻣﻦ ھﻨﺎ و‬
‫إﺳﻘﺎﻃﮫ ﻋﻠﻲ اﻟـ( ‪ form‬ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ اﺳﻢ اﻟﺠﺪول ‪ "Patient"),‬وﺑﻌﺪ ذﻟﻚ ﺳﯿﻈﮭﺮ ﻟﻚ اﻟﻜﺎﺋﻨﯿﻦ اﻟﺘﺎﻟﯿﯿﻦ أﺳﻔﻞ اﻟـ‪form.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫و ﻷﻧﺸﺎء اﻟﻜﺎﺋﻦ‪DataSet :‬‬

‫اﻧﺘﮭﯿﻨﺎ اﻷن ﻣﻦ رﺑﻂ اﻟـ ‪ form‬ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫ﻧﺮﯾﺪ اﻷن أن ﻧﺴﺘﻌﺮض ﻣﺤﺘﻮﯾﺎت أﺣﺪ ﺟﺪأول ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻗﻤﻨﺎ ﺑﺮﺑﻄﮭﺎ ﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ‪:‬‬

‫وﻟﻌﻤﻞ ذﻟﻚ ﺳﻮف ﻧﺴﺘﺨﺪم اﻷداة ‪ DataGrid‬ﻟﻌﺮض اﻟﺠﺪول ﺑﮭﺎ ‪ ,‬ﻟﺬﻟﻚ ﻗﻢ ﺑﺴﺤﺐ ھﺬه اﻷداة اﻷن ﻣﻦ ﺻﻨﺪوق اﻷدوات و‬
‫إﺳﻘﺎﻃﮭﺎ ﻋﻠﻲ اﻟـ‪Form,‬‬

‫و ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه ﻧﺮﯾﺪ أن ﯾﺘﻢ ﺗﺤﻤﯿﻞ اﻟﺠﺪول ﻋﻠﻲ اﻟـ ‪ DataGrid‬ﺑﻤﺠﺮد ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻟﺬﻟﻚ ﺳﻮف ﻧﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻷواﻣﺮ داﺧﻞ‬
‫اﻟـ‪Constructor......‬‬

‫اﻷن اﻧﺘﻘﻞ إﻟﻲ ﻧﺎﻓﺬة اﻟـ ‪ code‬و اﻛﺘﺐ اﻷواﻣﺮ اﻟﺘﺎﻟﯿﺔ‪:‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪  :‬‬

‫ﻓﻲ اﻟﺒﺪاﯾﺔ ﻗﻤﻨﺎ ﺑﺘﻌﺒﺌﺔ اﻟـ ‪ DataSet‬ﺑﺎﻟﺠﺪول "‪ "Patient‬اﻟﻤﻮﺟﻮد ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧ ﺎت اﻟﺘ ﻲ ﻗﻤﻨ ﺎ ﺑﺮﺑﻄﮭ ﺎ ﻣ ﻊ اﻟﺒﺮﻧ ﺎﻣﺞ ‪ .‬و ذﻟ ﻚ‬
‫ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ ‪ Fill‬ﻣﻊ اﻟﻜﻸس ‪ oleDbDataAdapter‬ﺑﺤﯿﺚ أﻧﮭﺎ ﺳ ﻮف ﺗ ﺴﺘﻘﺒﻞ ﻓ ﻲ اﻟﺒ ﺎرﻣﺘﺮ اﻷول اﺳ ﻢ اﻟ ـ ‪ DataSet‬اﻟﻤ ﺮاد‬
‫ﺗﻌﺒﺌﺘﮭﺎ‪ ،‬و اﻟﺒﺎرﻣﺘﺮ اﻟﺜﺎﻧﻲ ھﻮ اﺳﻢ اﻟﺠﺪول‪.‬‬

‫و ﻟﻜﻲ ﻧﻌﺮض اﻟﺠﺪول ﻓﻲ اﻷداة ‪ DataGrid‬ﻗﻤﻨﺎ ﻓﻲ اﻟﺴﻄﺮ اﻟﺬي ﯾﻠﯿ ﮫ ﺑ ﺮﺑﻂ اﻷداة ‪ DataGrid‬ﺑﺎﻟ ـ ‪ DataSet‬وذﻟ ﻚ ﺑﺎﺳ ﺘﺨﺪام‬
‫اﻟﺪاﻟﺔ ) (‪ : SetDataBinding‬ﺑﺤﯿﺚ أن ھﺬه اﻟﺪاﻟﺔ ﺗﺴﺘﻘﺒﻞ ﺑ ﺎرﻣﺘﺮﯾﻦ اﻷول و ھ ﻮ اﺳ ﻢ اﻟ ـ ‪ DataSet‬و اﻟﺜ ﺎﻧﻲ ھ ﻮ اﺳ ﻢ اﻟﺠ ﺪول‬
‫اﻟﻤﻮﺟﻮد ﺑﮭﺎ‪ .‬أﻣﺎ إذا ﻛﺎن ﻟﺪﯾﻚ اﺳﺘﻔﺴﺎر ﻓﻲ ﻋﺒﺎرة ‪ try , catch‬ﻓﻌﻠﯿﻚ ﻣﺮاﺟﻌ ﺔ اﻟ ﺪرس " اﻟ ﺴﯿﻄﺮة ﻋﻠ ﻲ اﻷﺧﻄ ﺎء ‪Exception‬‬
‫‪handling " ...‬‬

‫و ﻧﺘﯿﺠﺔ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﻟﻘﺪ ﺗﻤﻜﻨﺖ اﻷن ﻣﻦ رﺑﻂ ﺑﺮﻧﺎﻣﺠﻚ ﺑﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت و ﻋﺮض ﻣﺤﺘﻮﯾﺎت اﻟﺠﺪول ﻟﺪﯾﻚ ﺑﻨﺠﺎح‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪Reports‬‬ ‫‪‬‬
‫ﻃﺮﯾﻘﺔ إﺿﺎﻓﺔ ﺗﻘﺮﯾﺮ ﻟﻠﻤﺸﺮوع ‪..‬‬
‫ﻣﻦ اﻟﻘﺴﻢ ‪ Solution Explorer‬أﻧﻘﺮ ﻋﻠﻲ اﺳﻢ اﻟﻤﺸﺮوع ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﺛﻢ ﺗﺎﺑﮫ اﻟﺼﻮر اﻟﺘﺎﻟﯿﺔ ‪:‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ١٦٥ E_Mail: Mohamed.yoyo@gmail.com
Prog: Mohamed Youssef ١٦٦ E_Mail: Mohamed.yoyo@gmail.com
‫ إﺿﻐﻂ ھﻨﺎ ﻟﻌﺮﺿﺎﻟﺤﺠﻢ اﻷﺻﻠﻲ‬- [ ٢٨٥ ٥

Prog: Mohamed Youssef ١٦٧ E_Mail: Mohamed.yoyo@gmail.com


‫‪ - [ x‬إﺿﻐﻂ ھﻨﺎ ﻟﻌﺮض اﻟﺤﺞ‬ ‫اﺿﻒ ﻓﻲ اﻟﺘﻘﺮﯾﺮ ﺑﺎﻟﺬات ﻓﻲ ‪ Section2‬ﻣﺮﺑﻊ ﻧﺺ وﻟﯿﻜﻦ اﺳﻤﮫ ‪ text1‬ﻛﻌﻨﻮان ﻟﻠﺘﻘﺮﯾﺮ ‪.‬ﻟﺤﺠﻢ اﻷﺻﻠﻲ ] ‪592 ٨٣١‬‬

‫ثم ﻣﻦ اﻟﻘﺴﻢ ‪ Solution Explorer‬أﻧﻘﺮ ﻋﻠﻲ اﺳﻢ اﻟﻤﺸﺮوع ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﺛﻢ اﺧﺘﺮ << ‪ Add‬ﺛﻢ << ‪ NewItem‬ﺛﻢ اﺧﺘﺮ <<‬
‫‪ Windows Form‬ﺛﻢ اﻋﻄﯿﮫ اي اﺳﻢ وﻟﯿﻜﻮن ‪. Form2‬‬
‫ﺑﻌﺪ ذﻟﻚ اذھﺐ إﻟﻲ ‪ Form2‬واﺿﻒ إﻟﯿﺔ أداة ‪. CrystalReportViewer1‬‬
‫ﺑﻌﺪ ذﻟﻚ اذھﺐ إﻟﻲ ‪ Form2‬ﻓﻲ وﺿﻊ ﻛﺘﺎﺑﺔ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ وأﻛﺘﺐ ﻣﺎ ﯾﻠﺰم ﻣﻦ اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ اﻟﺘﺎﻟﻲ ‪:‬‬

‫اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٦٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Imports System.Data
Imports System.Data.OleDb
Public Class Form2
Friend strConn2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath &
"\InformationBank.mdb;User Id=admin;Password=;"
Friend strSQL2 As String = "SELECT TheBank.id, TheBank.AskNumber, data.ask, data.answer
FROM TheBank INNER JOIN data ON TheBank.ID = data.ID ORDER BY TheBank.AskNumber;"
'"SELECT TheBank.id, TheBank.AskNumber, data.ask, data.answer FROM TheBank INNER JOIN data
ON TheBank.ID = data.ID WHERE (((TheBank.ID)=18)) ORDER BY TheBank.AskNumber;" '"SELECT
TheBank.id, TheBank.AskNumber, data.ask, data.answer FROM TheBank INNER JOIN data ON
TheBank.ID = data.ID ORDER BY TheBank.AskNumber;"
Friend cn2 As New OleDbConnection(strConn2)
Friend daTheBankAndData2 As New OleDbDataAdapter(strSQL2, cn2)
Friend MyDS2 As New DataSet
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
cn2.Open()
daTheBankAndData2.Fill(MyDS2, "TheBankAndData")
cn2.Close()
Dim rpt As New rptCrystalReport1
'‫اﻓﻘﻲ أو ﻋﻤﻮدي ﺗﺤﺪﯾﺪ ﻣﺴﺎر اﻟﺘﻘﺮﯾﺮ و اﻟﺘﺤﻜﻢ ﻓﻲ وﺿﻊ اﻟﺘﻘﺮﯾﺮ اﻣﺎ‬
rpt.Load(Application.StartupPath & "\" & "rptCrystalReport1.rpt")
rpt.SetDataSource(MyDS2.Tables("TheBankAndData"))
' ‫ﻋﻤﻮدي ﻓﻲ وﺿﻊ اﻟﺘﻘﺮﯾﺮ اﻣﺎ اﻓﻘﻲ أو اﻟﺘﺤﻜﻢ‬
rpt.PrintOptions.PaperOrientation =
CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation
' ‫ ھﺬا اﻷﻛﻮد اﻟﺒﺮﻣﺠﻲ ﯾﻘﻮم ﺑﺎﻟﻜﺘﺎﺑﮫ ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ اﻟﻤﻮﺟﻮد ﺗﺎﺧﻞ اﻟﺘﻘﺮﯾﺮ ﻓﻲ اﻟﻤﻮﻗﻊ رﻗﻢ‬2
CType(rpt.Section2.ReportObjects("Text1"),
CrystalDecisions.CrystalReports.Engine.TextObject).Text = "‫"واﻷﺟﻮﺑﺔ اﻟﻤﺨﺰﻧﮫ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻘﺮﯾﺮ ﯾﺴﺘﻌﺮض اﻷﺳﺌﻠﮫ‬
' ‫ﻣﻌﯿﻨﮫ ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻛﻲ ﺗﻈﮭﺮ ﻓﻲ اﻟﺘﻘﺮﯾﺮ اﺳﺘﻌﻤﺎل اﻟﻔﻮرﻣﻸ ﻟﺘﺤﺪﯾﺪ ﻣﺠﻤﻮﻋﺔ‬
'‫ﻟﻠﺘﻘﺮﯾﺮ ﺗﻌﯿﯿﻦ ﺷﺮط ﺗﺤﺪﯾﺪ اﻟﺒﯿﺎﻧﺎت‬
' ‫اﻟﺴﺠﻼت ﯾﻤﻜﻨﻚ اﻷﺳﺘﻐﻨﺎء ﻋﻦ اﻟﻔﻮرﻣﻸ إذا اردت ﻇﮭﻮر ﺟﻤﯿﻊ‬
rpt.RecordSelectionFormula = (" {TheBank.AskNumber} = " & Form1.txtnumber.Text & "")
' ‫وﻋﺮﺿﮫ ﺗﮭﯿﺌﺔﻣﺴﺘﻌﺮض اﻟﺘﻘﺮﯾﺮ‬
CrystalReportViewer1.ReportSource = rpt
CrystalReportViewer1.DisplayGroupTree = False
CrystalReportViewer1.ShowGroupTreeButton = False
CrystalReportViewer1.RightToLeft = Windows.Forms.RightToLeft.Yes
' ‫اﻟﺘﻘﺮﯾﺮ ﻓﻲ ﺣﺠﻢ اﻟﺼﻔﺤﮫ ﻓﺘﺴﮭﻞ ﻋﻤﻠﯿﺔ ﻗﺮاءﺗﮫ وھﺬا اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻟﻜﻲ ﯾﻈﮭﺮ‬

Prog: Mohamed Youssef ١٦٩ E_Mail: Mohamed.yoyo@gmail.com


' ‫وﻣﻼﺣﻈﺔ اﻟﻔﺮق ﯾﻤﻜﻨﻚ ﺗﻐﯿﯿﺮ اﻟﻘﯿﻤﺔ‬
'‫ﺷﯿﺌﺎ ﺣﺄول وﻟﻦ ﺗﺨﺴﺮ‬
CrystalReportViewer1.Zoom(1)
CrystalReportViewer1.Refresh( )
CrystalReportViewer1.Show( )
Catch ex As Exception
MessageBox.Show(ex.Message, " Show CrystalReport ... ", MessageBoxButtons.OK, _
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, _
MessageBoxOptions.RtlReading)
End Try
End Sub
End Class

Prog: Mohamed Youssef ١٧٠ E_Mail: Mohamed.yoyo@gmail.com








Prog: Mohamed Youssef ١٧١ E_Mail: Mohamed.yoyo@gmail.com


‫‪ Help‬‬

‫اﻟﺤﺼﻮل ﻋﻠﻲ اﻟﻤﺴﺎﻋﺪه‬


‫ﯾﺘﻀﻤﻦ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺳﺘﯿﺪﯾﻮ ﻣﺮﻛﺰ ﻣﺮاﺟﻊ اﻷﻟﻜﺘﺮوﻧﯿﺔ ﯾﺪﻋﻲ ‪Microsoft Visual Basic Studio 2005‬‬
‫‪ ) Documentation‬وﺛ ﺎﺋﻖ ﻣﺎﯾﻜﺮوﺳ ﻮﻓﺖ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ (٢٠٠٥‬ﯾﻤﻜﻨ ﻚ اﺳ ﺘﻌﻤﺎﻟﮫ ﻟﺘ ﺘﻌﻠﻢ أﻛﺜ ﺮ ﻋ ﻦ ﺑﯿﺌ ﺔ ﺗﻄ ﻮﯾﺮ‬
‫اﻟﻔﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ ،‬ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﺔ ﻓﯿﺠ ﻮال ﺑﯿ ﺴﻚ ‪ ،‬اﻟﻤ ﻮارد ﻓ ﻲ اﻟﻤﻜﺘﺒ ﺔ ‪ ، .Net Framework‬اﻟﻤﺠﺘﻤﻌ ﺎت ﻋﻠ ﻲ اﻟﺨ ﻂ‬
‫اﻟﻤﺘﺨﺼ ﺼﺔ ﻓ ﻲ اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ و اﻟﻔﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ ،‬اﻷدوات اﻟﻤﺘﺒﻘﯿ ﺔ ﻓ ﻲ اﻟﻄﻘ ﻢ ﻓﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ .‬ﺧ ﺼﺺ وﻗﺘ ﺎً‬
‫ﻷﺳﺘﻜﺸﺎف ﻣﻮارد اﻟﻤﺴﺎﻋﺪة ﺗﻠﻚ اﻷن ﻗﺒﻞ أن ﺗﻨﺘﻘﻞ إﻟﻲ اﻟﻔﺼﻞ اﻟﺘﺎﻟﻲ ‪ ،‬ﺣﯿﺚ ﺳﺘﺒﻨﻲ ﺑﺮﻧﺎﻣﺠﻚ اﻷول‪.‬‬

‫‪ ‬‬

‫ﻟﻘﺪ ﺟﺮت ﺗﺤﺴﯿﻨﺎت رﺋﯿﺴﯿﺔ ﻋﻠﻲ ﻣﺤﺘﻮي ﻣﻌﻠﻮﻣﺎت ﻣﺴﺎﻋﺪة ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ و اﻷدوات اﻟﺘﻲ ﺗﺰود وﺻﻮﻷ إﻟﻲ ﺗﻠﻚ‬
‫اﻟﻤﺴﺎﻋﺪة ‪ .‬ﻓﻲ اﻷﺳﺎس ‪ ،‬ھﻨﺎك ﻣﻮردان اﺳﺎﺳﯿﺎن ﻟﻠﻤﺴﺎﻋﺪة اﻷﻟﻜﺘﺮوﻧﯿﺔ ﻣﻦ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ‪: Visual Studio‬‬
‫ﯾﻤﻜﻨﻚ اﻟﻮﺻﻮل إﻟﻲ اﻟﻤﺴﺎﻋﺪة اﻟﻤﺤﻠﯿﺔ اﻟﺘ ﻲ ﺗﺜﺒﯿﺘﮭ ﺎ ﺧ ﻼل ﻋﻤﻠﯿ ﺔ اﻋ ﺪاد ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ ) ٢٠٠٥‬ﺗﻠ ﻚ اﻟﻤﻠﻔ ﺎت‬ ‫•‬
‫ﻣﺨﺰﻧﺔ ﻋﻠﻲ أﻗﺮاص ﺗﺴﻤﻲ ‪ - MSDN Library‬اﻟﻤﻜﺘﺒﺔ ‪ - MSDN‬ﻓﻲ ﺣﺰﻣﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ( ‪.‬‬
‫ﯾﻤﻜﻨﻚ اﻟﻮﺻﻮل إﻟﻲ اﻟﻤﺴﺎﻋﺪة ﻋﻠﻲ اﻟﺨﻂ ) ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ( ﻣ ﻦ ﺧ ﻼل ‪ ، MSDN‬وﻣﺠﻤﻮﻋ ﺔ ﻣ ﻦ ﻣﻮاﻗ ﻊ وﯾ ﺐ‬ ‫•‬
‫اﻟﻤﻄﻮرﯾﻦ ﺗﺮﻋﺎھﺎ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ وﺗﺪﻋﻲ ‪ . NET Code Wise Community‬اﻟﻤﺠﻤﻮﻋﺔ ‪NET Code Wise‬‬
‫‪ Community‬ﻗﯿﻤﺔ ﺑﺸﻜﻞ ﺧﺎص ﺗﺘﻀﻤﻦ ﻣﻄﻮرﯾﻦ ﻣﺤﺘﺮﻓﯿﻦ ﯾﺴﺘﻌﻤﻠﻮن ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ و ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪٢٠٠٥‬‬
‫ﻟﻜﺘﺎﺑﺔ ﺑﺮاﻣﺞ ﻣﻦ اﻟﻌﺎﻟﻢ اﻟﺤﻘﯿﻘﻲ ‪ ،‬وﯾﺠ ﺮي ﺗﺤ ﺪﯾﺚ اﻟﻤﺤﺘﻮﯾ ﺎت واﻟﻨ ﺼﺎﺋﺢ اﻟﺘ ﻲ ﯾﻘ ﺪﻣﻮﻧﮭﺎ ﺑﺎﺳ ﺘﻤﺮار وﻟ ﺬا ﻓﺈﻧﮭ ﺎ‬
‫ﺗﻌﻜﺲ اﻟﻤﯿﻮل واﻟﮭﻤﻮم واﻷﻧﺘﺼﺎرات اﻟﺤﺎﻟﯿﺔ ﺿﻤﻦ ﻣﺠﺘﻤﻊ ﺑﺮﻣﺠﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪.‬‬
‫اﺿﺒﻂ ﺗﻜﻮﯾﻦ ﻧﻈﺎم ﻣﺴﺎﻋﺪﺗﻚ اﻷن ﻟﯿﻘﺪم ﻟﻚ ﻣﻮارد اﻟﻤﺴﺎﻋﺪة اﻟﻤﺤﻠﯿﺔ وﻋﻠﻲ اﻹﻧﺘﺮﻧ ﺖ أﺛﻨ ﺎء ﺗﻌﻠﻤ ﻚ ﻋ ﻦ ﻓﯿﺠ ﻮال‬
‫ﺑﯿﺴﻚ ‪.‬‬

‫‪ ‬‬

‫‪ -١‬اﺧﺘﺮ اﻷﻣﺮ ? ‪ How Do I‬ﻟﻔﺘﺢ ﻧﻈﺎم اﻟﻤﺴﺎﻋﺪة ‪.‬‬


‫ﯾﻘﺪم ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ﻣﺴﺎﻋﺪﺗﮫ ﻣﻦ ﺧﻼل أداة ﻣﺮﺗﻜ ﺰة ﻋﻠ ﻲ ‪ HTML‬ﺗ ﺴﻤﻲ ‪Microsoft Documents Explorer‬‬
‫) ﻣﺴﺘﻜ ﺸﻒ ﻣ ﺴﺘﻨﺪات ﻣﺎﯾﻜﺮوﺳ ﻮﻓﺖ (‪ .‬ﯾﻤﻜﻨ ﻚ اﺳ ﺘﻌﻤﺎل ﻋ ﺪة أواﻣ ﺮ ﻣ ﻦ اﻟﻘ ﻮاﺋﻢ ‪ Help ، Community‬ﻟﻔ ﺘﺢ‬
‫ﻣﺴﺘﻜ ﺸﻒ اﻟﻤ ﺴﺘﻨﺪات ‪ .‬ﻛ ﻞ أﻣ ﺮ ﯾﻔ ﺘﺢ وﯾ ﻀﺒﻂ ﺗﻜ ﻮﯾﻦ ﻣﺴﺘﻜ ﺸﻒ اﻟﻤ ﺴﺘﻨﺪات ﻟﯿﻌ ﺮض ﻧﻮﻋ ﺎ ﻣﺨﺘﻠﻔ ﺎ ﻣ ﻦ ﻣﻌﻠﻮﻣ ﺎت‬
‫اﻟﻤﺴﺎﻋﺪة ‪How Do I? .‬ھﻮ أﺣﺪ أﻓﻀﻞ أﻣﺎﻛﻦ اﻟﺒﺪء ‪ ،‬أﻧﮫ ﯾﺒﯿﻦ ﻷﺋﺤﺔ ھﺮﻣﯿﺔ ﺑﻤﮭ ﺎم اﻟﺒﺮﻣﺠ ﺔ اﻟ ﺸﺎﺋﻌﺔ اﻟﺘ ﻲ ﯾﻤﻜﻨ ﻚ‬
‫اﺳﺘﻌﻤﺎﻟﮭﺎ ﻷﯾﺠﺎد اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﺤﺘﺎج إﻟﯿﮭﺎ ﺑﺴﺮﻋﺔ ‪ .‬ﺗﺒﺪو ﺷﺎﺷﺘﻚ ﻣﺸﺎﺑﮭﺔ ﻟﻠﺘﺈﻟﻲ ‪:‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٧٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ -٢‬اﻧﻘﺮ ﻣﻮﺿﻮﻋﺎ َ واﺣﺪاَ أو أﻛﺜﺮ ﺿﻤﻦ اﻟﻸﺋﺤﺔ ? ‪ How Do I‬ﻻﺳﺘﻜﺸﺎف ﻧﻮع اﻟﻤﻮاد اﻟﻤﺰودة ﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪٢٠٠٥‬‬
‫‪ ،‬ﯾﺤﺘ ﻮي ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻋﻠ ﻲ ﻣﺌ ﺎت اﻷوﺻ ﺎف اﻟﺘﻘﻨﯿ ﺔ واﻟﻤ ﻮاد اﻟﺘﻌﻠﯿﻤﯿ ﺔ ) ﯾﺘ ﻀﻤﻦ اﻟﻌﺪﯾ ﺪ ﻣﻨﮭ ﺎ ﻣﺜ ﺎل ( ‪ .‬اﻷن‬
‫ﺳﺘﻀﺒﻂ ﺗﻜﻮﯾﻦ ﻧﻈﺎم اﻟﻤﺴﺎﻋﺪة ﺑﺤﯿﺚ ﯾﻌﺮض ﻓﻘﻂ اﻟﻤﺤﺘﻮي اﻟﺬي ﺗﺮﯾﺪه ﻋﻨﺪﻣﺎ ﺗﻔﺘﺤﮫ ‪.‬‬
‫‪ -٣‬ﻋﻠﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ ﻣﺴﺘﻜﺸﻒ ﻣﺴﺘﻨﺪات ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ‪ ،‬اﻧﻘﺮ ‪ Tools‬ﺛﻢ اﻧﻘﺮ اﻷﻣﺮ ‪. Options‬‬
‫ﺳﺘﺮي ﺧﯿﺎرات اﻟﺘﺨﺼﯿﺺ اﻟﺘﻲ ﯾﻤﻜﻨﻚ اﺳﺘﻌﻤﺎﻟﮭﺎ ﻟﻀﺒﻂ ﻃﺮﯾ ﻖ ﻋﻤ ﻞ ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة و ) اﻷھ ﻢ ﻣ ﻦ ذﻟ ﻚ ( ﻣ ﺎ ھ ﻲ‬
‫اﻟﻤﻮارد اﻟﺘﻲ ﯾﻔﺤﺼﮭﺎ ﻧﻈﺎم اﻟﻤﺴﺎﻋﺪة ﻋﻨﺪﻣﺎ ﯾﺒﺤﺚ ﻋﻦ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬
‫‪ -٤‬اﻧﻘﺮ اﻟﻤﻮﺿﻮع ‪ Online‬ﺗﺤﺖ اﻟﻔﺌﺔ ‪ Help‬اذا ﻟﻢ ﯾﻜﻦ ﻣﻨﺘﻘﻲ ﻣﻦ ﻗﺒﻞ ‪.‬‬
‫ﺗﺒﺪو ﺷﺎﺷﺘﻚ ﻣﺘﺸﺎﺑﮭﺔ ﻟﻠﺘﺈﻟﻲ ‪:‬‬
‫ﻧﺼﯿﺤﺘﻲ ﻟﻚ ھﻲ أن ﺗﻀﺒﻂ ﺧﯿﺎراﺗﻚ ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ ھﺬه اﻟﺸﺎﺷﺔ ‪ -‬اﻧﮭﺎ اﻷﻋﺪادات اﻷﻓﺘﺮاﺿﯿﺔ ‪ .‬أوﻷ‬
‫‪ ،‬اﻧﺘﻖ زر اﻟﺨﯿﺎر اﻟﻮﺳﻄﻲ ﻟﺘﺤﻤﯿﻞ ﻣﺤﺘﻮي اﻟﻤﺴﺎﻋﺪة ﻣﻦ اﻟﻤﺼﺎدر اﻟﻤﺤﻠﯿﺔ ﻓﻲ ﻗﺮﺻﻚ اﻟﺼﻠﺐ أوﻷ ﺛﻢ ﻣﻦ اﻟﻤﺼﺎدر‬
‫ﻋﻠ ﻲ اﻹﻧﺘﺮﻧ ﺖ ‪ .‬ﺗﺄﻛ ﺪ ﺑﻌ ﺪھﺎ ﻣ ﻦ اﻧﺘﻘ ﺎء ‪ ) Code zone Community ، MSDN Online‬اﻟﻤﺠﻤﻮﻋ ﺔ ‪NET‬‬
‫‪ ( Code Wise Community‬ﻟﻜ ﻲ ﯾﺤﻤ ﻞ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ اﻟﻤﻘ ﺎﻻت اﻟﺤﺪﯾﺜ ﺔ ﻣ ﻦ ﻣﻄ ﻮري ﻓﯿﺠ ﻮال ﺑﯿ ﺴﻚ ﻛﻠﻤ ﺎ‬
‫اﺳﺘﻌﻤﻠﺖ اﻷﻣ ﺮ ‪ . Search‬اذا وﺟ ﺪت ﺑﻌ ﺪ ﻓﺘ ﺮة اﻧ ﻚ ﺗﻔ ﻀﻞ ﺑﻌ ﺾ اﻟﻤﺠﺘﻤﻌ ﺎت ‪ Codezone‬ﻋﻠ ﻲ ﺑﻌ ﻀﮭﺎ اﻷﺧ ﺮ ‪،‬‬
‫ﯾﻤﻜﻨﻚ ﺗﻌﺪﯾﻞ ﺗﺮﺗﯿﺐ اﻟﺒﺤﺚ أو ازاﻟﺔ اﻟﺒﻨﻮد ﻣﻦ اﻟﻸﺋﺤﺔ ‪.‬‬
‫‪ -٥‬اﻧﺘﻖ ﺧﯿﺎرات اﻟﺘﻜﻮﯾﻦ اﻟﺘﻲ ﯾﻨﺎﺳﺒﻚ ‪ ،‬ﺛﻢ اﻧﻘﺮ ‪ OK‬ﻟﺤﻔﻈﮭﺎ ‪.‬‬
‫ﯾﻤﻜﻨﻚ اﻟﻌﻮدة إﻟﻲ ﻗﺎﺋﻤﺔ ‪ Option‬ﺿ ﻤﻦ ﻣﺴﺘﻜ ﺸﻒ اﻟﻤ ﺴﺘﻨﺪات ﻓ ﻲ اي وﻗ ﺖ ﯾﻜ ﻮن ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻣﻔﺘﻮﺣ ﺎ ‪ .‬اﻷن‬
‫ﺣﺄول اﺳ ﺘﻌﻤﺎل ﻣﯿ ﺰة ﺟﺪﯾ ﺪة اﺧ ﺮي ﻓ ﻲ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ ، ٢٠٠٥‬ﻷﺋﺤ ﺔ ﻣﻔ ﻀﻸت اﻟﻤ ﺴﺎﻋﺪة ‪ ،‬ﺗﻌﻤ ﻞ ﺑ ﺸﻜﻞ ﻣ ﺸﺎﺑﮫ‬
‫ﻛﺜﯿﺮا ﻟﻸﺋﺤﺔ اﻟﻤﻔﻀﻸت ﺿﻤﻦ اﻧﺘﺮﻧﺖ اﻛﺴﺒﻠﻮرر ‪.‬‬

‫‪  Visual Basic.Net 2005 Help‬‬

‫‪ ‬‬

‫‪ -١‬ﻋﻠﻲ ﺷﺮﯾﻂ أدوات ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪ ،‬اﻧﻘﺮ زر اﻷﺿﺎﻓﺔ إﻟ ﻲ ﻣﻔ ﻀﻸت اﻟﻤ ﺴﺎﻋﺪة ) اﻟ ﺰر اﻟﻤﻮﺟ ﻮد ﺑﺠﺎﻧ ﺐ اﻟ ﺰر‬
‫‪ Help Favorites‬واﻟﺬي ﯾﺒﯿﻦ ﺻﻔﺤﺔ ﻋﻠﯿﮭﺎ ﻋﻼﻣﺔ ﺟﻤﻊ (‪.‬‬
‫ﻋﻨﺪﻣﺎ ﺗﻨﻘﺮ ھﺬا اﻟﺰر ‪ ،‬ﯾﻀﯿﻒ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات اﻟﻤﻘﺎل اﻟﻤﺮﺋ ﻲ ﺣﺈﻟﯿ ﺎ إﻟ ﻲ ﻷﺋﺤ ﺔ ﻣ ﺴﺘﻨﺪات اﻟﻤ ﺴﺎﻋﺪة اﻟﻤﻔ ﻀﻠﺔ‬
‫ﻟﺪﯾﻚ ‪ .‬ﯾﻤﻜﻨﻚ اﻷن اﺑﻘﺎء وﻣﺎردﻣﺴﺎﻋﺪﺗﻚ اﻟﻤﻔﻀﻠﺔ ﻣﻨﻈﻤﺔ وﺑﻤﺘﻨﺎول إﻟﯿﺪ داﺋﻤﺎ !‬
‫‪ -٢‬اﻧﻘﺮ ﻋﻼﻣﺔ اﻟﺘﺒﻮﯾﺐ ‪ Search‬ﻓﻲ أﻋﻠﻲ اﻃﺎر ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪.‬‬
‫ﯾﻔﺘﺢ اﻷﻃ ﺎر ‪ Search‬ﻣ ﺰودا أداة ﯾﻤﻜﻨ ﻚ اﺳ ﺘﻌﻤﺎﻟﮭﺎ ﻷﺟ ﺮاء ﻋﻤﻠﯿ ﺎت ﺑﺤ ﺚ ﻧ ﺼﯿﺔ ﻣﺤ ﺪدة ﺿ ﻤﻦ ﻣ ﻮارد ﻣ ﺴﺎﻋﺪﺗﻚ‬
‫اﻟﻤﺤﻠﯿﺔ وﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ‪.‬‬

‫‪ - 1‬ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن ‪ ،‬ﺗﺮﺟﻤﺔ ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم ‪ :‬اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ‬
‫‪ ، ٢٠٠٦‬ص‪٥٣‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٧٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ -٣‬اﻧﻘﺮ ﺳﮭﻢ اﻟﺨﯿﺎر ‪ ) Language‬ﻋﺎﻣﻞ ﺗﺼﻔﯿﺔ ﻟﻠﻤﺤﺘﻮي ( واﻟ ﻎ ﻋﻼﻣ ﺎت اﻷﺧﺘﯿ ﺎر ﻋ ﻦ ﻛ ﻞ اﻟﻠﻐ ﺎت ﻣ ﺎ ﻋ ﺪا ﻓﯿﺠ ﻮال‬
‫ﺑﯿﺴﻚ ‪.‬‬
‫ﯾﻤﻜﻨ ﻚ ﺿ ﺒﻂ ﺗﻜ ﻮﯾﻦ ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻟﺠﻌ ﻞ ﺑﺤﺜ ﻚ ﯾﻘﺘ ﺼﺮ ﻓﻘ ﻂ ﻋﻠ ﻲ اﻟﻠﻐ ﺎت واﻟﺘﻘﻨﯿ ﺎت واﻟﻤﻮاﺿ ﯿﻊ اﻟﺘ ﻲ ﺗﺮﯾ ﺪھﺎ‬
‫ﺑﺎﺳﺘﻌﻤﺎل أﺳﮭﻢ ﻋﻮاﻣﻞ اﻟﺘﺼﻔﯿﺔ ‪ .‬ﻷن ﺑﺪأت ﺑﺎﺳﺘﻌﻤﺎل ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ﻟﻠﺘﻮ ‪ ،‬ﻓﺪ ﺗﺮﯾﺪ ﺑﺤﺜﻚ ﯾﻘﺘﺼﺮ ﻓﻘﻂ ﻋﻠﻲ ﻓﯿﺠﻮال‬
‫ﺑﯿﺴﻚ ﻓﻲ اﻟﻮﻗﺖ اﻟﺤﺎﺿﺮ ‪.‬‬
‫‪ -٤‬ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ ‪ ، Search‬اﻛﺘﺐ ‪ Data Controls‬واﺿﻐﻂ ‪. Enter‬‬
‫ﯾﺒﺤ ﺚ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ﻋ ﻦ اﻟﺴﻠ ﺴﻠﺔ اﻟﻨ ﺼﯿﺔ ‪ data controls‬ﻓ ﻲ ﻣﻠﻔ ﺎت ﻣ ﺴﺎﻋﺪﺗﻚ اﻟﻤﺤﻠﯿ ﺔ وﻋﻠ ﻲ اﻹﻧﺘﺮﻧ ﺖ ﻓ ﻲ‬
‫‪ MSDN‬وﻣﺠﻤﻮﻋ ﺎت اﻷﺧﺒ ﺎر واﻟﻤﺠﺘﻤﻌ ﺎت ‪ .Codezone‬اﻧﺘﺒ ﮫ اﻧﺘﺒ ﮫ ﺟﯿ ﺪا إﻟ ﻲ اﻟﻸﺋﺤ ﺔ ‪ Sort By‬ﻓ ﻲ اﻷﻃ ﺎر‬
‫‪ ، Search‬اﻟﺘﻲ ﯾﻤﻜﻨﻚ اﺳﺘﻌﻤﺎﻟﮭﺎ ﻷﻧﺘﻘﺎء ﻛﯿﻒ ﺗﻈﮭﺮ اﻟﻤﻘﺎﻻت اﻟﺘﻲ ﯾﺒﺤﺚ ﻋﻠﯿﮭﺎ اﻟﺒﺤﺚ ‪ .‬ﺗﻘﻮل اﻷﺷﺎﻋﺎت أن ﻓﺮﯾﻖ‬
‫ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ‪ ٢٠٠٥‬ﺑﺬل ﺟﮭﺪا ﻛﺒﯿﺮا ﻟﺠﻌﻞ ﻓﮭﻢ واﺳﺘﻌﻤﺎل ﻧﺘﺎﺋﺞ اﻟﺒﺤﺚ ﺗﻠﻚ أﺳﮭﻞ ﻣﻤﺎ ﻛ ﺎن ﻋﻠﯿ ﮫ ﻓ ﻲ اﻟﻤﺎﺿ ﻲ ‪.‬‬
‫ﻷﺣﻆ ﺑ ﺸﻜﻞ ﺧ ﺎص ﻣﯿ ﺰة ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ ٢٠٠٥‬اﻟﺠﺪﯾ ﺪة اﻟﺘ ﻲ ﺗﻨ ﺸﺊ ﻣﻘﺘﻄﻔ ﺎ ﻣ ﻦ ﻛ ﻞ ﻧﺘﯿﺠ ﺔ ﺑﺤ ﺚ ﻣﻌﺜ ﻮر ﻋﻠﯿﮭ ﺎ ‪.‬‬
‫ﯾﻌﻄﯿﻚ ھﺬا اﻟﻤﻘﺘﻄﻒ ﻓﺮﺻﺔ أﻓﻀﻞ ﻟﺘﻘﯿﯿﻢ ﻣﺪي وﺛﺎﻗﺔ ﺻﻠﺔ ﻛﻞ ﻧﺘﯿﺠﺔ ﺑﺎﻟﺒﺤﺚ ‪.‬‬
‫‪ -٥‬اﻧﻘﺮ زر ﺣﻔﻆ اﻟﺒﺤﺚ ﻋﻠﻲ ﺷﺮﯾﻂ أدوات ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪.‬‬
‫ﺗﻠﻤﯿﺢ ﺑﺎﻟﻀﺎﻓﺔ إﻟﻲ ﻣﻘﺎﻻت اﻟﻤﺴﺎﻋﺪة ‪ ،‬ﯾﻨﻤﻜﻨﻚ ﺣﻔﻆ اﻟﺒﺤﺚ اﻟﻤﮭﻤﺔ ﻓﻲ ﻷﺋﺤﺔ ﻣﻔﻀﻸﺗﻚ ‪.‬‬
‫ﺗ ﺸﺒﮫ ﺷﺎﺷ ﺘﻚ اﻟ ﺸﻜﻞ اﻟﺘ ﺎﻟﻲ ‪ .‬ﻷﺣ ﻆ أن اﻷﻃ ﺎر ‪ Help Favorites‬ﯾﺘ ﻀﻤﻦ اﻷن اﻟﻤﻔ ﻀﻠﺘﯿﻦ اﻟﺠﺪﯾ ﺪﺗﯿﻦ اﻟﻠﺘ ﯿﻦ‬
‫ﺣﻔﻈﺘﮭﻤﺎ ‪.‬‬

‫‪ -٦‬اﻧﻘﺮ زر ﺗﻐﯿﯿ ﺮ اﻷﺳ ﻢ ﻓ ﻲ اﻷﻃ ﺎر ‪ ) Help Favorites‬ﯾﻤﻜﻨ ﻚ أﯾ ﻀﺎ ﻧﻘ ﺮ ﺑ ﺈﻟﯿﻤﯿﻦ اﻟﺒﺤ ﺚ اﻟ ﺬي ﺣﻔﻈﺘ ﮫ ‪ ،‬ﺛﻤ ﻲ اﻧﻘ ﺮ‬
‫‪( Rename‬‬
‫ﯾﻤﯿﺰ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات اﻷﺳﻢ اﻟﺬي اﺳﺘﻌﻤﻠﺘﮫ ﻟﺒﺤﺜﻚ وﯾﺘﯿﺢ ﻟﻚ ﺗﻐﯿﯿﺮه ﻟﻜﻲ ﯾﻄﺎﺑﻖ اﻟﺒﺤﺚ اﻟﻔﻌﻠﻲ ﺑﺪﻗﺔ أﻛﺒ ﺮ ‪ .‬ﻗ ﺬه‬
‫اﻟﺨﻄﻮة اﺧﺘﯿﺎرﯾﺔ ‪ ،‬ﻟﻜﻨﻨﻲ أﺟﺪھﺎ ﻣﻔﯿﺪة ‪.‬‬
‫‪ -٧‬اﻛﺘﺐ ‪ Binding Data to Controls‬واﺿﻐﻂ ‪. Enter‬‬
‫ﯾﻐﯿﺮ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات اﺳﻢ اﻟﺒﺤﺚ ﺿﻤﻦ ﻷﺋﺤﺔ ﻣﻔﻀﻸﺗﻚ ‪ .‬ﻟﻘﺪ اﺧﺘﺮت ھﺬا اﻷﺳﻢ ﻷﻧﮫ ﺑﺪا أوﺿﺢ ﻟﻲ ﻣﻦ ﺳﻠﺴﻠﺔ‬
‫ﺑﺤﺜﻲ اﻷﺻﻠﯿﺔ )ﻟﻜﻨﻚ ﻗﺪ ﺗﺮﯾﺪ ﺗﺤﺪﯾﺪ اﺳﻢ ﻣﺨﺘﻠﻒ ﯾﻄﺎﺑﻖ ﺑﺪﻗﺔأﻛﺒﺮ ﻧﺘﺎﺋﺞ اﻟﺒﺤﺚ اﻟﺘﻲ أرﺷﻔﺘﮭﺎ (‬
‫‪ -٨‬اﻧﻘﺮ ?‪ How Do I‬ﻓﻲ اﻷﻃﺎر ‪. Help Favorites‬‬
‫ﯾﻈﮭﺮ أأول ﻣﻘﺎل ﺣﻔﻈﺘﮫ ﻓﻲ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪ .‬ﺳﺘﺘﻤﺮن اﻷن ﻋﻠﻲ ﺣ ﺬف ﻣﻔ ﻀﻠﺔ ‪ ،‬وھ ﺬه ﻣﮭ ﺎرة ﺗ ﺼﺒﺢ ﻣﮭﻤ ﺔ‬
‫ﻋﻨﺪﻣﺎ ﺗﻨﻤﻮ ﻷﺋﺤﺔ ﻣﻘﺎﻻت ﻣﺴﺎﻋﺪﺗﻚ اﻟﻤﻔﻀﻠﺔ وﺗﺤﺘﺎج إﻟﻲ ﺗﺼﻐﯿﺮھﺎ ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٧٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪ -٩‬اﻧﻘﺮ زر اﻟﺤﺬف ﻓﻲ اﻷﻃﺎر ‪. Help Favorites‬‬

‫‪ -١٠‬اذاﻃﻠﺐ ﻣﻨﻚ ﺗﺄﻛﯿﺪ ﻧﺘﻚ ﺑﺤﺬف ھﺬه اﻟﻤﻔﻀﻠﺔ ‪ ،‬اﻧﻘﺮ ‪. Yes‬‬


‫ﯾﺤﺬف اﻟﻤﻘﺎل ? ‪ How Do I‬ﻣﻦ ﻷﺋﺤﺔ ﻣﻔﻀﻸﺗﻚ ) وﻟﻜﻦ ﻟﯿﺲ ﻣﻦ ﻧﻈﺎﻣﺎﻟﻤﺴﺎﻋﺪة (‬
‫‪ -١١‬اﻧﻘﺮ زر اﻹﻏﻼق ﻋﻠﻲ ﺷﺮﯾﻂ ﻋﻠﻲ ﺷﺮﯾﻂ ﻋﻨﻮان ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات‪.‬‬
‫ھﻨﺎك ﻣﯿﺰات اﻟﻤﺴﺎﻋﺪة اﺿﺎﻓﯿﺔ ﻟﺘ ﺘﻌﻠﻢ ﻋﻨﮭ ﺎ وﺗﺨﺘﺒﺮھ ﺎ ‪ ،‬ﻟﻜ ﻦ اﻟﻮﻗ ﺖ ﺟﯿ ﺪ اﻷن ﻟﻜ ﻲ أﻟﺨ ﺺ ﻟ ﻚ أواﻣ ﺮ اﻟﻤ ﺴﺎﻋﺪة‬
‫اﻟﻤﮭﻤﺔ وﻟﻜﻲ ﺗﻨﺘﻘﻞ إﻟﻲ ﻛﺘﺎﺑﺔ أول ﺑﺮﻧﺎﻣﺞ ﻟﻚ ﻓﻲ اﻟﻔﺼﻞ ‪. ٤‬‬

‫‪ ‬‬

‫إﻟﯿﻚ ﻷﺋﺤﺔ ﻗﺼﯿﺮة ﺑﺄواﻣﺮ اﻟﻤﺴﺎﻋﺪة اﻟﻤﻔﯿﺪة واﺳﺘﻌﻤﺎﻻﺗﮭﺎ ﺿﻤﻦ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ‪: Visual Basic.Net 2005‬‬

‫ﻗﻢ ﺑﻤﺎ ﯾﻠﻲ‬ ‫ﻟﻠﺤﺼﻮل ﻋﻠﻲ ﻣﻌﻠﻮﻣﺎت ﻣﺴﺎﻋﺪة‬


‫أﺧﺘﺮ اﻷﻣﺮ ?‪ Help à How Do I‬ﻓﻲ اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮ‬ ‫ﻟﺘﻨﻈﯿﻤﮭﺎ ﺣﺴﺐ ﻣﮭﻤﺔ اﻟﺒﺮﻣﺠﺔ‬
‫أﺧﺘﺮ اﻷﻣﺮ ‪ Help à Dynamic Help‬ﻓﻲ اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮ‬ ‫ﻋﻦ اﻟﻤﯿﺰة أو اﻷﻣﺮ اﻟﺬي ﺗﺴﺘﻌﻤﻠﮫ ﺣﺎﻟﯿﺎً‬
‫أﺧﺘﺮ اﻷﻣﺮ ‪ Help à Contents‬ﻓﻲ اﻟﻔﯿﺠﻮال ﺳﺘﺪﯾﻮ‬ ‫ﺣﺴﺐ اﻟﻤﻮﺿﻮع أو اﻟﻨﺸﺎط‬
‫أﻧﻘﺮ اﻟﻜﻠﻤﺔ اﻷﺳﺎﺳﯿﺔ أو اﻟﺠﻤﻠﺔ اﻟﺒﺮﻣﺠﯿﺔ اﻟﺘﻲ ﺗﮭﻤﻚ ‪ ،‬ﺛﻢ اﺿﻐﻂ ‪F1‬‬ ‫أﺛﻨﺎء اﻟﻌﻤﻞ ﻓﻲ اﻟﻤﺤﺮر اﻟﺸﻔﯿﺮة‬
‫اﻧﻘﺮ زر اﻟﻤﺴﺎﻋﺪة )ﻋﻼﻣﺔ أﺳﺘﻔﮭﺎم( ﻓﻲ ﺑﻌﺾ اﻟﻤﺮﺑﻌﺎت اﻟﺤﻮار ) ﻣﺜﻼ‬
‫أﺛﻨﺎء اﻟﻌﻤﻞ ﻓﻲ ﻣﺮﺑﻊ اﻟﺤﻮار‬
‫ﻣﺮﺑﻊ اﻟﺤﻮار اﻟﺬي ﯾﻈﮭﺮ ﻋﻨﺪﻣﺎ ﺗﺨﺘﺎر اﻷﻣﺮ ‪Tools à Option‬‬
‫أﺧﺘﺮ اﻷﻣﺮ ‪ Help à Search‬و أﻛﺘﺐ اﻟﻤﺼﻄﻠﺢ اﻟﺬي ﺗﺒﺤﺚ ﻋﻨﮫ ‪.‬‬
‫ﺑﺎﻟﺒﺤﺚ ﻋﻦ ﻛﻠﻤﺔ أﺳﺎﺳﯿﺔ ﻣﺤﺪدة‬
‫ﻗﻢ ﺑﺘﺼﻔﯿﺔ و ﺗﻨﻈﯿﻢ اﻟﺒﺤﺚ ﺑﺄﺳﺘﻌﻤﺎل اﻟﻸﺋﺤﺔ ‪Sort By‬‬
‫ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪ ، Community‬أﻧﻘﺮ ‪ Developer Center‬أو ‪Code‬‬
‫ﻣﻦ ‪ MSDN‬ﻣﻮاﻗﻊ وﯾﺐ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ اﻟﻤﺴﺘﻘﻠﺔ‬
‫‪Zone Community‬‬
‫أﺧﺘﺮ اﻷﻣﺮ ‪Help à Technical Support‬‬ ‫ﻋﻦ اﻷﺗﺼﺎل ﺑﻤﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﻠﺤﺼﻮل ﻋﻠﻲ دﻋﻢ اﻟﻤﻨﺘﺞ‬

‫‪ - 1‬ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن ‪ ،‬ﺗﺮﺟﻤﺔ ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم ‪ :‬اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ‬
‫‪ ، ٢٠٠٦‬ص‪٥٨‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٧٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


 
 

Domain , Link Site  Site Name  Site LOGO


www.cb4a.com ‫ﻣﻮﻗﻊ ﻛﺘﺐ‬
www.kutub.info/library/list.php?cat=1 ‫ﺣﯿﺚ ﺗُﻜﻤﻦ اﻟﻤﻌﺮﻓﺔ‬

www.boosla.com ‫ﻣﻮﻗﻊ اﻟﺒﻮﺻﻠﺔ‬

www.star28.com ‫ﻣﻮﻗﻊ دﻟﯿﻞ اﻟﻌﺮب اﻟﺸﺎﻣـﻞ‬

www.university.arabsbook.com ‫ﻣﻮﻗﻊ ﺷﺒﻜﺔ ﻛﺘﺎب اﻟﻌﺮب‬

‫ﻣﻮﻗﻊ اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ‬


www.c4arab.com
‫واﻹﻧﺘﺮﻧﺖ‬

www.3asfh.net ‫ﻣﻨﺘﺪﯾﺎت اﻟﻌﺎﺻﻔﺔ‬

www.absba.info
www.absba.org ‫ﻣﻨﺘﺪى اﻟﻤﺸﺎﻏـﺐ‬

http://edu.arabsgate.com/index.php? ‫ﻣﻨﺘﺪى ﺷﺒﻜﺔ ﺑﻮاﺑﺔ اﻟﻌﺮب‬

www.bramjnet.com ‫ﻣﻨﺘﺪى ﺑﺮاﻣﺞ ﻧﺖ‬

www.arabteam2000.com ‫ﻣﻨﺘﺪى اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ‬

www.dvd4arab.com ‫ﻣﻨﺘﺪى دى ﻓﻲ دى ﻓﻮر أرب‬

www.freelearn.110mb.com ‫ﻣﻮﻗﻊ اﻟﺘﻌﻠﯿﻢ ﺑﺎﻟﻔﯿﺪﯾﻮ اﻟﻤﺠﺎﻧﻲ‬

‫ﻣﻮﻗﻊ وﻣﻨﺘﺪى‬
www.ask-pc.com
‫أﻛﺎدﯾﻤﯿﺔ أﺳﺄل اﻟﻜﻤﺒﯿﻮﺗﺮ‬

‫ﻣﻨﺘﺪى اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ‬


www.vb4arab.com
‫وھﻮ ﻣﺘﺨﺼﺺ ﻓﻰ اﻷﻛﻮاد اﻟﻔﯿﺠﻮال‬

Prog: Mohamed Youssef ١٧٦ E_Mail: Mohamed.yoyo@gmail.com


Domain , Link Site  Site Name  Site LOGO

www.geming-corp.com ‫ﻣﻨﺘﺪﯾﺎت اﻟﻤﺤﯿﻂ اﻟﻌﺮﺑﻰ‬

www.salem4it.com ‫ﻣﻨﺘﺪﯾﺎت ﺳﺎﻟﻢ ﻟﻠﺘﻜﻨﻮﻟﻮﺟﯿﺎ‬

‫ﻣﻮﻗﻊ ﻓﯿﺠﻮال ﺳﻲ ﻟﻠﻌﺮب‬


http://www.vc4arab.com/
‫وھﻮ ﻣﺘﺨﺼﺺ ﻓﻰ اﻷﻛﻮاد اﻟﻔﯿﺠﻮال‬

http://www.montada.com/ "‫ﻣﻮﻗﻊ " اﻟﻤﻨﺘﺪي‬

‫وادي اﻟﺘﻘﻨﯿﺔ‬
www.itwadi.com
‫ﻟﻤﻌﺮﻓﺔ أﺧﺮ أﺧﺒﺎر ﺗﻜﻨﻮﻟﻮﺟﯿﺎ‬
‫ﻣﺤﺮك ﺑﺤﺚ ﻟﻸﻛﻮاد اﻟﺒﺮﻣﺠﯿﺔ‬
http://www.krugle.org
‫ﻓﻲ ﺟﻤﯿﻊ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ‬
‫ﻣﻨﺘﺪﯾﺎت ﻓﺎرس ﺳﻮﻓﺖ ﻓﻲ ﻋﺎﻟﻢ‬
http://www.faressoft.com/
‫اﻟﺒﺮﻣﺠﺔ‬
‫ﻣﻮﺳﻮﻋﺔ اﻟﻤﺒﺮﻣﺞ اﻟﻌﺮﺑﻲ وﯾﺤﺘﻮي‬
http://mawsoaa.faressoft.com/ ‫ﻋﻠﻲ أﻛﺒﺮ ﻣﺠﻤﻮﻋﺔ اﻟﺒﺮاﻣﺞ‬
‫اﻟﻤﺴﺎﻋﺪة ﻟﻠﺘﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ‬
‫ﻣﻨﺘﺪى ﺻﯿﺪ اﻟﻔﻮاﺋﺪ ﻣﻦ اﻟﻤﻨﺘﺪﯾﺎت‬
http://saaid.net/book/list.php?cat=100
‫اﻟﻘﻮﯾﺔ ﻓﻲ اﻟﻤﺠﺎل‬

 

1- www.msdn.microsoft.com/vbasic/
2- www.devx.com/
3- www.microsoft.com/learning/books/
4- www.microsoft.com/learning/training/
5- www.microsoft.com/communities/
6- http://www.vbkeys.com/

 

.٢٠٠٥ ‫اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ‬ •


.ADO.Net ‫ﺑﺮﻣﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻊ‬ •
.ASP.Net ‫ﺑﺮﻣﺠﺔ ﺻﻔﺤﺎت اﻹﻧﺘﺮﻧﺖ‬ •
.Visual Basic for Applications ‫اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ‬ •
.‫ﻛﺘﺐ ﻋﺎﻣﺔ ﻋﻦ ﺑﺮﻣﺠﺔ اﻟﻜﻤﺒﯿﻮﺗﺮ‬ •

‫ اﻟﻄﺒﻌﺔ اﻷوﻟﻲ‬، " ‫ " ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة‬٢٠٠٥ ‫ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‬: ‫ ﺗﺮﺟﻤﺔ ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم‬، ‫ ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن‬- 1
٥٥٦‫ ص‬، ٢٠٠٦
٥٦٠‫ ص‬، ‫ ﻣﺮﺟﻊ ﺳﺎﺑﻖ‬- 2

Prog: Mohamed Youssef ١٧٧ E_Mail: Mohamed.yoyo@gmail.com


 

1
. ‫ اﻟﺒﺮاﻣﺞ اﻟﺘﺎﺑﻊ ﻟﻠﺒﺮﻣﺠﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻛﺎﻣﻠﺔ‬: ‫ أﻧﺘﺎج ﻣﻮﺳﻮﻋﺔ ﺳﻮﻓﺖ‬، ‫ ﻣﻮﺳﻮﻋﺔ اﻟﻤﺒﺮﻣﺞ اﻟﻌﺮﺑﻲ‬-
http://mawsoaa.faressoft.com/ , Viewed 27/1/2009

Prog: Mohamed Youssef ١٧٨ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ١٧٩ E_Mail: Mohamed.yoyo@gmail.com
.‫ ﻣﯿﺠﺎ ﺑﺎﯾﺖ ( ﻣﻘﺴﻤﺔ إﻟﻰ ﺟﺰأﯾﻦ‬١٢٨ ) ‫اﻟﺤﺠﻢ اﻟﻜﺎﻣﻞ‬ 

http://mawsoaa.faressoft.com/Download.html

.‫ﺳﻮف ﺗﻘﻮم أوﻻً ﺑﺈدﺧﺎل اﻟﺒﯿﺎﻧﺎت وھﻰ ) اﻷﺳﻢ – اﻟﺪوﻟﺔ – اﻟﻤﺪﯾﻨﺔ – اﻟﺒﺮﯾﺪ اﻷﻟﻜﺘﺮوﻧﻲ ( ﺛﻢ ﺗﺪﺧﻞ ﻋﻠﻰ اﻟﻤﻮاﻗﻊ ﺛﻢ ﺗﺒﺪأ ﺑﺎﻟﺘﺤﻤﯿﻞ‬

.RapidShare ‫ﻣﻦ ﺧﻼل ﺗﺤﻤﯿـﻠﻲ ﻣﻦ اﻟﻤﻮﻗﻊ وﺟﺪت أﻓﻀﻞ اﻟﺮواﺑﻂ ھﻮ‬


...‫ﻟﻠﺘﺤﻤﯿﻞ اﻟﻤﺒﺎﺷﺮ ﻣﻦ اﻟﻤﻮﻗﻊ‬

  
http://rs279.rapidshare.com/files/134582739/Mawsoaa.part1.rar

  
http://rs77.rapidshare.com/files/134625878/Mawsoaa.part2.rar

Prog: Mohamed Youssef ١٨٠ E_Mail: Mohamed.yoyo@gmail.com


Prog: Mohamed Youssef ١٨١ E_Mail: Mohamed.yoyo@gmail.com
‫ﺍﻷﻫﺪﺍﻑ‪:‬‬

‫ﺍﳌﻠﺤﻖ ﺍﻷﻭﻝ‪:‬‬
‫• اﻟﺘﻌﺮف ﻋﻠﻰ ﻟﻐﺔ اﻷﺳﺘﻌﻼﻣﺎت اﻟﺒﻨﯿﻮﯾﺔ ‪.SQL‬‬

‫ﺍﳌﻠﺤﻖ ﺍﻟﺜﺎﱐ‪:‬‬
‫• ﻗﺎﻣﻮس ﻣﺼﻄﻠﺤﺎت اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪.VB.Net‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٨٢‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪‬‬ ‫‪‬‬
‫‪ ‬‬

‫‪ -١‬ﻳ‪‬ﻌﺮﻑ ﺃﳘﻴﺔ ﻟﻐﺔ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ ‪.SQL‬‬


‫‪ -٢‬ﻳ‪‬ﻔﺮﻕ ﺑﲔ ﺃﻭﺍﻣﺮ ‪ SQL‬ﻭ ﺗﺼﻨﻴﻔﺎ‪‬ﺎ‪.‬‬
‫‪ -٣‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﻟﺮﺑﻂ ﺍﻟﺒﻴﺎﻧﺎﺕ ﰱ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ‪.‬‬
‫‪ -٤‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﻟﺘﺠﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻨﺪ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ ‪.‬‬
‫‪ -٥‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﻟﻔﺮﺯ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪ -٦‬ﻳﺴﺘﺨﺪﻡ ﺍﻟﺪﻭﺍﻝ ﺍﻟﺘﺠﻤﻴﻌﻴﺔ‪.‬‬
‫‪ -٧‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﻷﻧﺸﺎﺀ ﻟﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﳉﺪﻭﻝ‪.‬‬
‫‪ -٨‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﳊﺬﻑ ﻟﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﳉﺪﻭﻝ‪.‬‬
‫‪ -٩‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺍﻟﺘﻌﺪﻳﻞ ﻟﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﳉﺪﻭﻝ‪.‬‬
‫‪ -١٠‬ﻳ‪‬ﺼﻤﻢ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ ﻭ ﺍﻟﻔﻬﺎﺭﺱ ﻟﻠﺤﺼﻮﻝ ﻋﻠﻲ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪ -١١‬ﻳﺴﺘﺨﺪﻡ ﺃﻭﺍﻣﺮ ﺇﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻟﻠﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪ -١٢‬ﻳ‪‬ﺠﺮﻱ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﳊﺴﺎﺑﻴﺔ ﻭﺍﳌﻨﻄﻘﻴﺔ ﻟﻠﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪ -١٣‬ﻳﺴﺘﺨﺪﻡ ﺍﳌﻌﺎﻣﻼﺕ ﻭﺍﻟﻔﺮﻕ ﺑﻴﻨﻬﻤﺎ ﰲ ﺍﳊﺼﻮﻝ ﻋﻠﻲ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﳌﻄﻠﻮﺑﺔ‪.‬‬
‫ﻳ‪‬ﻔﺮﻕ ﺑﲔ ﺍﻟﺮﺑﻂ ﻭﺍﻟﺪﻣﺞ ﺑﺄﻧﻮﺍﻋﻪ‪.‬‬ ‫‪-١٤‬‬

‫ﻳﺘﻌﺮﻑ ﻋﻠﻰ ﺍﳌﺼﻄﻠﺤﺎﺕ ﺍﻷﳒﻠﻴﺰﻳﺔ ﺍﻟﺼﻌﺒﺔ ﰲ ﺍﻟﱪﳎﺔ ﻭﺍﻟﱪﻧﺎﻣﺞ‪.‬‬ ‫‪-١٥‬‬

‫ﻳﺘﻌﺮﻑ ﻋﻠﻰ ﺍﻷﺧﺘﺼﺎﺭﺍﺕ ﺍﻷﳒﻠﻴﺰﻳﺔ ﰲ ﺍﻟﱪﻧﺎﻣﺞ‪.‬‬ ‫‪-١٦‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٨٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Prog: Mohamed Youssef ١٨٤ E_Mail: Mohamed.yoyo@gmail.com
‫‪SQL‬‬ ‫ﺍﻟﺘﻌﺮﻑ ﻋﻠﻲ ﻟﻐﺔ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ‬
‫اﻟﮭﺪف اﻟﻌﺎم‪:‬‬
‫ﻟﻐﺔ ﺗﺴﺘﺨﺪم ﻓﻲ ‪ Visual Basic.Net 2005‬ﻋﻨﺪ أﺳﺘﺨﺪام ‪ ADO.NET 2 Programming‬ﻟﻠﺘﻌﺎﻣﻞ ﻟﺮﺑﻂ اﻟﺒﺮﻧﺎﻣﺞ‬
‫ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫اﻷھﺪاف‪:‬‬
‫ﺑﻌﺪ ﺇﻛﻤﺎﻝ ﻫﺬﺍ ﺍﳌﻠﺤﻖ ‪ ،‬ﺳﺘﺘﻤﻜﻦ ﻣﻦ ﺗﻨﻔﻴﺬ ﻣﺎ ﻳﻠﻲ ‪-:‬‬

‫ﻣﻌﺮﻓﺔ أھﻤﯿﺔ ﻟﻐﺔ اﻷﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬ ‫‪-١٧‬‬


‫اﻟﻔﺮق ﺑﯿﻦ أواﻣﺮ ‪ SQL‬و ﺗﺼﻨﯿﻔﺎﺗﮭﺎ‪.‬‬ ‫‪-١٨‬‬
‫أﺳﺘﻌﻤﺎل أواﻣﺮ اﻟﺮﺑﻂ ‪ ،‬اﻟﺘﺠﻤﯿﻊ ‪ ،‬اﻟﻔﺮز‪.‬‬ ‫‪-١٩‬‬
‫أﺳﺘﺨﺪام اﻟﺪوال اﻟﺘﺠﻤﯿﻌﯿﺔ‪.‬‬ ‫‪-٢٠‬‬
‫أﺳﺘﺨﺪام أواﻣﺮ اﻷﻧﺸﺎء ‪ ،‬اﻟﺤﺬف ‪ ،‬اﻟﺘﻌﺪﯾﻞ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت واﻟﺠﺪول‪.‬‬ ‫‪-٢١‬‬
‫أﻧﺸﺎء اﻷﺳﺘﻌﻼﻣﺎت و اﻟﻔﮭﺎرس ﻟﻠﺤﺼﻮل ﻋﻠﻲ اﻟﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٢٢‬‬
‫أﺳﺘﺨﺪام أواﻣﺮ إدﺧﺎل اﻟﺒﯿﺎﻧﺎت ‪ ،‬اﻟﺤﺬف ‪ ،‬اﻟﺘﻌﺪﯾﻞ ﻟﻠﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٢٣‬‬
‫أﺟﺮاء اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ و اﻟﻤﻨﻄﻘﯿﺔ ﻟﻠﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٢٤‬‬
‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻼت واﻟﻔﺮق ﺑﯿﻨﮭﻤﺎ ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻲ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ‪.‬‬ ‫‪-٢٥‬‬
‫ﻣﻌﺮﻓﺔ اﻟﻔﺮق ﺑﯿﻦ اﻟﺮﺑﻂ ‪ ،‬اﻟﺪﻣﺞ ﺑﺄﻧﻮاﻋﮫ‪.‬‬ ‫‪-٢٦‬‬

‫ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ھﻮ ﺗﺮﻗﯿﺔ و ﺗﺤﺴﯿﻦ ﻣﮭﻤﯿﻦ ﻟﻨﻈﺎم ﺗﻄﻮﯾﺮ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬و ﺗﺮﻗﯿﺔ ﺗﻜﺮارﯾﺔ ﻟﺒﺮﻧﺎﻣﺞ‬
‫اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٣‬دوت ﻧﺖ و ﯾﻌﻄﯿﻚ اﻟﻤﻠﺤﻖ اﻟﻘﺪرة ﻋﻠﻲ ﻣﻌﺮﻓﺔ ﻟﻐﺔ اﻷﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬

‫و ﺗﺴﺘﺨﺪم ﻋﻨﺪ رﺑﻂ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و ﺗﺴﺘﺨﺪم ‪ ADO.Net 2 Programming‬و اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻜﺘﺒﺎت ‪(OleDB‬‬
‫) ‪ , SQLClient‬واﺳﺘﺨﺪام اﻟﺘﺼﻨﯿﻔﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﺮﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺄﻧﻮاﻋﮭﺎ ﻣﺜﻞ‪-:‬‬

‫•‬ ‫‪SQL Server 2000 OR 2005‬‬


‫•‬ ‫‪Oracle‬‬
‫•‬ ‫‪My SQL‬‬
‫•‬ ‫‪Ms Access 2000 OR 2003‬‬

‫ھﺬه ھﻲ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﺗﺴﺘﺨﺪم ﻟﻐﺔ اﻷﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٨٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Content
 SQL

 DML

Select ‫ﺟﻤﻠﺔ‬ •
Where ‫ﻋﺒﺎرة اﻟﺸﺮط‬ •
‫ ﻓﻲ اﻟﺸﺮط‬Like ‫ﻣﻌﺎﻣﻞ‬ •
Insert Into ‫أﻣﺮ أﺿﺎﻓﺔ ﺻﻒ ﻓﻲ اﻟﺠﺪول‬ •
Update ‫أﻣﺮ اﻟﺘﻌﺪﯾﻞ ﻓﻲ اﻟﺠﺪول‬ •
Delete ‫أﻣﺮ اﻟﺤﺬف ﻣﻦ اﻟﺠﺪول‬ •

  SQL Function

Order By ‫ﻋﺒﺎرة اﻟﺘﺮﺗﯿﺐ‬ •


and - or ‫اﻟﻤﻌﺎﻣﻠﯿﻦ‬ •
IN ‫اﻟﻤﻌﺎﻣﻞ‬ •
Between ….. and ‫اﻟﻤﻌﺎﻣﻞ‬ •
Alias ‫اﻷﺳﻢ اﻟﻤﺴﺘﻌﺎر‬ •
Join ‫اﻟﺮﺑﻂ ﺑﺈﺳﺘﺨﺪام‬ •
Union and Union All ‫اﻟﺪﻣﺞ ﺑﺈﺳﺘﺨﺪام‬ •
SQL Function ‫اﻟﺪوال‬ •
SQL Group By and Having ‫اﻟﺘﺠﻤﯿﻊ واﻟﻔﺮز‬ •

 DLL

Create Database ‫أﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ •


Create Table ‫أﻧﺸﺎء ﺟﺪول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬ •
Create Index ‫أﻧﺸﺎء ﻓﮭﺮس‬ •
Drop ‫أﻣﺮ اﻟﺤﺬف‬ •
Alter Table ‫أﻣﺮ اﻟﺘﻌﺪﯾﻞ ﻋﻠﻲ اﻟﺠﺪول‬ •
Select Into ‫ﺟﻤﻠﺔ‬ •
Create View ‫أﻧﺸﺎء أﺳﺘﻌﻼم‬ •



Prog: Mohamed Youssef ١٨٦ E_Mail: Mohamed.yoyo@gmail.com


‫أوﻷ ﻣﻘﺪﻣﮫ ﻓﻲ ‪:SQL‬‬
‫ھﻲ ﻟﻐﮫ ﻗﯿﺎﺳﯿﮫ ﻣﻦ ﻟﻐﺎت اﻟﺤﺎﺳﺐ ﻟﺪﺧﻮل وﻣﻌﺎﻟﺠﮫ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

‫ﻣﺎ ھﻲ ‪Structured Query Language : SQL‬‬

‫ﻟﻐﮫ ﺑﻨﺎء اﻷﺳﺘﻌﻼﻣﺎت اﻟﮭﯿﻜﻠﯿﮫ ‪-:‬‬

‫‪ - ١‬ھﻲ ﻟﻐﮫ ﻗﯿﺎﺳﯿﮫ ﻣﻦ ﻟﻐﺎت اﻟﺤﺎﺳﺐ اﻟﺨﺎﺻﮫ ﺑﻤﻌﮭﺪ ‪ANSI‬‬


‫ﺗﻤﻜﻨﻚ ﻣﻦ اﻟﺪﺧﻮل ﻟﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ ‫‪-٢‬‬
‫ﺗﻤﻜﻨﻚ ﻣﻦ إﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺎﻋﺪه‬ ‫‪-٣‬‬
‫ﺗﻤﻜﻨﻚ ﻣﻦ إﺿﺎﻓﮫ ﺑﯿﺎﻧﺎت إﻟﻲ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬ ‫‪-٤‬‬
‫ﺗﻤﻜﻨﻚ ﻣﻦ ﻣﻦ ﺣﺬف ﺑﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺎﻋﺪه‬ ‫‪-٥‬‬
‫ﺗﻤﻜﻨﻚ ﻣﻦ ﺗﻌﺪﯾﻞ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺠﻠﮫ‬ ‫‪-٦‬‬
‫أﺧﯿﺮا ھﻲ ﻟﻐﮫ ﺳﮭﻠﮫ اﻟﺘﻌﻠﻢ واﻟﻔﮭﻢ‬ ‫‪-٧‬‬

‫ﻟﻐﮫ ‪ SQL‬ھﻲ ﻟﻐﮫ ﻗﯿﺎﺳﯿﮫ ‪:‬‬


‫ھﻲ ﻟﻐﮫ ﻣﻦ اﻟﻠﻐﺎت اﻟﻘﯿﺎﺳﯿﮫ اﻟﺨﺎﺻﮫ ﺑﻤﻌﮭﺪ‬
‫)‪ANSI (American National Standards Institute‬‬
‫ﺗﻤﻜﻨﻚ ﻣﻦ دﺧﻮل وﻣﻌﺎﻟﺠﮫ ﻧﻈﻢ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪Database System‬‬
‫ﺟﻤﻞ ‪ SQL‬ﺗﻌﻤﻞ ﻣﻊ ﺑﺮاﻣﺞ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﺜﻞ ‪:‬‬

‫‪Ms-Access , Ms-SQL Server , DB2 , Oracle ,SQL Server 2000 OR 2005 , etc.‬‬

‫ﺗﻨﻘﺴﻢ ﻟﻐﮫ ‪ SQL‬إﻟﻲ ﻗﺴﻤﯿﻦ ‪:‬‬

‫)‪SQL Data Manipulation Language (DML‬‬ ‫‪-١‬‬

‫ھﻮ اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ ‪ :‬ﻣﻌﺎﻟﺠﮫ اﻟﺒﯿﺎﻧﺎت‬

‫‪ : Select -١‬إﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬


‫‪ : INSERT INTO -٢‬إﺿﺎﻓﮫ ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪه‬
‫‪ : Update -٣‬اﻟﺘﻌﺪﯾﻞ ﻋﻠﻲ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺠﻠﮫ‬
‫‪ : Delete -٤‬ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺎﻋﺪه‬

‫)‪2- Data Definition Language (DDL‬‬


‫ھﻮ اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ ‪ :‬ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت‬

‫‪ : Create Database -١‬ﻷﻧﺸﺎء ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪه‬


‫‪ : Create Table -٢‬ﻷﻧﺸﺎء ﺟﺪول داﺧﻞ ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت‬
‫‪ : Alter table -٣‬ﻟﻠﺘﻌﺪﯾﻞ ﻓﻲ اﻟﺠﺪول‬
‫‪ : Drop table -٤‬ﻟﺤﺬف اﻟﺠﺪول ﻣﻦ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬
‫‪ : Create index -٥‬ﻷﻧﺸﺎء ﻣﻔﺘﺎح ﻟﻠﺒﺤﺚ‬
‫‪ : Drop index -٦‬ﻟﺤﺬف ﻣﻔﺘﺎح اﻟﺒﺤﺚ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٨٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


SQL Data Manipulation Language (DML) ‫اﻟﺠﺰء اﻷول "ﻣﻌﺎﻟﺠﺔ اﻟﺒﯿﺎﻧﺎت" ﺑـ‬

Select ‫ﺟﻤﻠﮫ‬
‫ﺗﺴﺘﺨﺪم ﻓﻲ إﺳﺘﺨﺮاج ﺑﯿﺎﻧﺎت ﻣﻦ داﺧﻞ اﻟﺠﺪول ﺣﺴﺐ اﻟﻤﻄﻠﻮب‬

Syntax :‫ﺗﻜﺘﺐ اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬


SELECT column_name(s)
FROM table_name

‫ ﻏﯿﺮ ﺣﺴﺎﺳﮫ ﻟﺤﺎﻟﮫ اﻟﺤﺮوف‬SQL ‫ ﺟﻤﻞ‬: ‫ﻣﻸﺣﻈﮫ ھﺎﻣﮫ‬


SELECT = select ‫ﻷ ﯾﻮﺟﺪ ﻓﺮق‬

: ‫ﻣﺜﺎل ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬

The database table "Persons":

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

(FirstName , LastName) ‫ﻧﺮﯾﺪ أﺧﺘﯿﺎر اﻷﺳﻢ اﻷول و اﻷﺳﻢ اﻷﺧﯿﺮ‬


: ‫ﺗﻜﺘﺐ اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

SELECT LastName,FirstName FROM Persons

: ‫وﯾﻜﻮن اﻟﻨﺎﺗﺞ ﻛﺎﻟﺘﺎﻟﻲ‬

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari

: ‫ﻷﺧﺘﯿﺎر ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﺗﻜﺘﺐ ﻛﺎﻟﺘﺎﻟﻲ‬

SELECT * FROM Persons

: ‫وﺗﻜﻮن اﻟﻨﺘﯿﺠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
‫ وھﺬا ﻷن ﺑﻌﺾ اﻟﻨﻈﻢ ﺗﺪﻋﻢ ﺗﻨﻔﯿﺬ أﻛﺜﺮ ﻣﻦ‬SQL ‫إداره ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺗﺘﻄﻠﺐ وﺟﻮد ) ; ( ﻓﻲ ﻧﮭﺎﯾﮫ ﺟﻤﻠﮫ‬ ‫ ﺑﻌﺾ ﻧﻈﻢ‬: ‫ﻣﻸﺣﻈﮫ ھﺎﻣﮫ‬
.‫ﺟﻤﻠﮫ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ‬

Prog: Mohamed Youssef ١٨٨ E_Mail: Mohamed.yoyo@gmail.com


SELECT DISTINCT ‫ وھﻲ ﺟﻤﻠﮫ‬SELECT ‫اﻷن ﻧﻨﺪرج ﻟﺠﻤﻠﮫ أﺧﺮي أو إﺿﺎﻓﮫ ﻟﺠﻤﻠﮫ‬

‫ ﻟﻠﺠﻤﻠﮫ ﺗﻤﻜﻨﻚ ﻣﻦ اﻟﻌﺮض اﻟﻘﯿﻢ ﺑﺪون ﺗﻜﺮار )ﯾﻌﻨﻲ ﻟﻮ اﻟﺠﺪول ﻓﯿﮫ ﺑﯿﺎن ﻣﺘﻜﺮر اﻛﺘﺮ ﻣﻦ ﻣﺮه ﺑﺘﻌﺮﺿﮫ ﻣﺮه‬DISTINCT ‫إﺿﺎﻓﮫ ﻛﻠﻤﮫ‬
. (‫واﺣﺪه ﺑﺲ‬

‫ وﻋﺪم أﺳﺘﺨﺪاﻣﮭﺎ‬DISTINCT ‫ ﻋﻠﻲ أﺳﺘﺨﺪام‬: ‫ﻣﺜﺎل‬

SELECT Company FROM Orders

"Orders" table

Company OrderNumber
Sega 3412
W3Schools 2312
Trio 4678
W3Schools 6798

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company
Sega
W3Schools
Trio
W3Schools

DISTINCT ‫ھﻨﺎ واﺿﺢ اﻟﻔﺮق ﻋﻨﺪ أﺳﺘﺨﺪام‬

SELECT DISTINCT Company FROM Orders

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company
Sega
W3Schools
Trio
‫اﻷن ﻧﻨﺘﻘﻞ ﻟﺠﺰء اﺧﺮ اﻷ وھﻮ اﺳﺘﺨﺪام اﻟﺸﺮط‬

Prog: Mohamed Youssef ١٨٩ E_Mail: Mohamed.yoyo@gmail.com


WHERE ‫اﺳﺘﺨﺪام ﻋﺒﺎره‬
: ‫ وﺗﺤﺘﻮي ﻋﻠﻲ اﻟﺸﺮط اﻟﻤﻄﻠﻮب وﯾﻜﻮن ﺑﻨﺎﺋﮭﺎ ﺑﮭﺬا اﻟﺸﻜﻞ‬Select ‫ﺗﺄﺗﻲ ﺑﻌﺪ ﺟﻤﻠﮫ‬
Syntax
SELECT column FROM table
WHERE column operator value

: ‫ ﯾﻤﻜﻨﻨﺎ أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻼت اﻷﺗﯿﮫ‬Where ‫ﻣﻊ ﺟﻤﻠﮫ‬

‫اﻟﻮﺻﻒ‬ ‫اﻟﻤﻌﺎﻣﻞ‬
‫ﯾﺴﺄوي‬ =
‫ﻷ ﯾﺴﺄوي‬ <>
‫أﻛﺒﺮ ﻣﻦ‬ >
‫أﺻﻐﺮ ﻣﻦ‬ <
‫أﻛﺒﺮ ﻣﻦ أو ﯾﺴﺄوي‬ >=
‫اﺻﻐﺮ ﻣﻦ أو ﯾﺴﺄوي‬ <=
‫ﯾﻜﻮن اﻟﺸﺮط ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬ Between
‫ﻟﻠﺒﺤﺚ ﻋﻦ ﻛﻠﻤﺎت ﻣﺘﺸﺎﺑﮭﮫ‬ LIKE

!= ‫ﯾﻜﺘﺐ ھﻜﺬا‬ <>‫ اﻟﻤﻌﺎﻣﻞ‬SQL ‫ ﻓﻲ ﺑﻌﺾ اﻷﺻﺪارات ﻣﻦ‬: ‫ﻣﻸﺣﻈﮫ ھﺎﻣﮫ‬

Where ‫ﻣﺜﺎل ﻋﻠﻲ أﺳﺘﺨﺪام ﻋﺒﺎره‬

SELECT * FROM Persons


WHERE City='Sandnes'

"Persons" table

LastName FirstName Address City Year


Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
Pettersen Kari Storgt 20 Stavanger 1960

Result ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City Year


Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980

‫ ﻋﻠﻲ أﺳﺘﺨﺪام ﻋﻼﻣﮫ اﻟﺘﻨﺼﯿﺺ ﻣﻊ اﻟﺠﻤﻠﮫ ) ' (ﯾﺠﺐ أﺳﺘﺨﺪام ﻋﻼﻣﮫ ﺗﻨﺼﯿﺺ ﻣﻔﺮده ﻣﻊ اﻟﻘﯿﻢ اﻟﻨﺼﯿﮫ ﻣﺜﻞ‬: ‫ﻣﻸﺣﻈﮫ ھﺎﻣﮫ‬
. ‫اﻷﺳﻤﺎء اﻣﺎ ﺑﺎﻟﻨﺴﺒﮫ ﻟﻠﺒﯿﺎﻧﺎت اﻟﺮﻗﻤﯿﮫ ﺗﻜﺘﺒﮫ ﻣﻦ دون ﻋﻼﻣﺎت‬
: ‫ﻣﺜﺎل ﻋﻠﻲ ذﻟﻚ‬

For text values: ‫ﻟﻠﺒﯿﺎﻧﺎت اﻟﻨﺼﯿﮫ‬

This is correct: ‫ﻃﺮﯾﻘﮫ ﺻﺤﯿﺤﮫ‬


SELECT * FROM Persons WHERE FirstName='Tove'
This is wrong: ‫ﻃﺮﯾﻘﮫ ﺧﺎﻃﺌﮫ‬

Prog: Mohamed Youssef ١٩٠ E_Mail: Mohamed.yoyo@gmail.com


‫‪SELECT * FROM Persons WHERE FirstName=Tove‬‬

‫ﻟﻠﺒﯿﺎﻧﺎت اﻟﺮﻗﻤﯿﮫ ‪For numeric values:‬‬

‫ﻃﺮﯾﻘﮫ ﺻﺤﯿﺤﮫ ‪This is correct:‬‬


‫‪SELECT * FROM Persons WHERE Year>1965‬‬
‫ﻃﺮﯾﻘﮫ ﺧﺎﻃﺌﮫ ‪This is wrong:‬‬
‫'‪SELECT * FROM Persons WHERE Year>'1965‬‬

‫اﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ ‪ Like‬ﻓﻲ اﻟﺸﺮط‬


‫ﺗﺴﺘﺨﺪم ﻓﻲ ﺗﺤﺪﯾﺪ اﻟﺒﺤﺚ ﺑﻜﻠﻤﮫ ﻣﻌﯿﻨﮫ ﻣﺜﺎل اﻟﺒﺤﺚ ﻋﻦ ﻛﻞ اﻷﺳﻤﺎء اﻟﻤﻮﺟﻮد ﺑﮭﺎ ﺣﺮف أو ﻛﻠﻤﮫ ﻣﻌﯿﻨﮫ ‪.‬‬

‫‪Syntax‬ﺑﻨﺎﺋﮭﺎ ﺑﮭﺬا اﻟﺸﻜﻞ‬


‫‪SELECT column FROM table‬‬
‫‪WHERE column LIKE pattern‬‬

‫ﺗﺴﺘﺨﺪم ﻋﻼﻣﮫ ) ‪ ( %‬ﻟﺘﺤﺪﯾﺪ ﻋﺪد اﻟﺤﺮوف ﻗﺒﻞ و ﺑﻌﺪ اﻟﻜﻠﻤﮫ أو اﻟﺤﺮف اﻟﺬي ﻧﺒﺤﺚ ﺑﮫ ﻣﺜﺎل ‪:‬‬

‫ﻓﻲ ھﺬه اﻟﺤﺎﻟﮫ ﺳﻮف ﺗﻈﮭﺮ اﺳﻤﺎء اﻷﺷﺨﺎص اﻟﺘﻲ ﺗﺒﺪا ﺑﺤﺮف ‪ A‬ﺛﻢ ﯾﺄﺗﻲ ﺑﻌﺪھﺎ اي ﻋﺪد ﻣﻦ اﻟﺤﺮوف‬

‫‪SELECT * FROM Persons‬‬


‫'‪WHERE FirstName LIKE 'a%‬‬

‫ﻓﻲ ھﺬه اﻟﺤﺎﻟﮫ ﺳﻮف ﺗﻈﮭﺮ اﺳﻤﺎء اﻷﺷﺨﺎص اﻟﺘﻲ ﺗﻨﺘﮭﻲ ﺑﺤﺮف ‪ A‬وﯾﻜﻮن ﻗﺒﻠﮭﺎ اي ﻋﺪد ﻣﻦ اﻟﺤﺮوف‬

‫‪SELECT * FROM Persons‬‬


‫'‪WHERE FirstName LIKE '%a‬‬

‫ﻓﻲ ھﺬه اﻟﺤﺎﻟﮫ ﺳﻮف ﺗﻈﮭﺮ اﺳﻤﺎء اﻷﺷﺨﺎص اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻲ ﺣﺮف ‪ A‬ﻓﻲ أي ﻣﻮﺿﻮع ﻓﻲ اﻷﺳﻢ‬

‫‪SELECT * FROM Persons‬‬


‫'‪WHERE FirstName LIKE '%a%‬‬
‫ﺑﻘﻲ ﻟﻨﺎ اﻟﺠﺰء اﻟﺨﺎص ﺑـ ‪ Between‬وﺳﻮف ﻧﻨﺪرج إﻟﯿﮫ ﻓﯿﻤﺎ ﺑﻌﺪ‪.‬‬
‫اﻷن ﻧﻨﺘﻘﻞ ﻟﺠﺰء ﺟﺪﯾﺪ اﻷ وھﻮ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت‬
‫ﯾﻮﺟﺪ ﻟﺪﯾﻨﺎ ﺛﻸﺛﮫ ﺗﻌﺎﻣﻸت ﻣﻊ اﻟﺒﯿﺎﻧﺎت‬
‫‪ -١‬إﺿﺎﻓﮫ ‪INSERT INTO :‬‬
‫‪ -٢‬ﺗﻌﺪﯾﻞ ‪UPDATE :‬‬
‫‪ -٣‬ﺣﺬف ‪DELETE :‬‬

‫‪INSERT INTO‬‬ ‫إﺿﺎﻓﮫ ﺻﻒ ﻟﻠﺠﺪول ‪:‬‬


‫ﯾﻜﻮن ﺑﻨﺎﺋﮭﺎ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫‪Syntax‬‬
‫‪INSERT INTO table_name‬‬
‫)‪VALUES (value1, value2,....‬‬
‫وﯾﻤﻜﻨﻚ اﯾﻀﺎ ﺗﺤﺪﯾﺪ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮب إﺿﺎﻓﺘﮭﺎ ﻓﻘﻂ وﺗﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫)‪INSERT INTO table_name (column1, column2,...‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪١٩١‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


VALUES (value1, value2,....)
: ‫ﻣﺜﺎل إﺿﺎﻓﮫ ﺻﻒ ﺟﺪﯾﺪ ﻟﻠﺠﺪول اﻟﺘﺎﻟﻲ‬

This "Persons" table:

LastName FirstName Address City


Pettersen Kari Storgt 20 Stavanger

INSERT INTO Persons


VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

: ‫اﻟﻨﺘﯿﺠﮫ ﺗﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬

LastName FirstName Address City


Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes

: ‫ﻷﺿﺎﻓﮫ ﺑﯿﺎﻧﺎت ﻓﻲ أﻋﻤﺪه )ﺣﻘﻮل( ﻣﺤﺪده ﻓﻘﻂ ﺗﻜﺘﺐ ﻛﺎﻟﺘﺎﻟﻲ‬

INSERT INTO Persons (LastName, Address)


VALUES ('Rasmussen', 'Storgt 67')

: ‫ﺗﻜﻮن اﻟﻨﺘﯿﺠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

LastName FirstName Address City


Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes
Rasmussen Storgt 67

UPDATE : ‫اﻟﺘﻌﺪﯾﻞ ﻓﻲ اﻟﺠﺪول‬


: ‫ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬
Syntax
UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value

: ‫ﻣﺜﺎل ﻋﻠﻲ اﻟﺘﻌﺪﯾﻞ ﻋﻠﻲ اﻟﺠﺪول اﻟﺤﺎﻟﻲ‬

Person:

LastName FirstName Address City


Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Storgt 67

: ‫ﻷﺿﺎﻓﮫ اﻷﺳﻢ اﻷول ﻓﻲ اﻟﺼﻒ اﻟﺜﺎﻧﻲ‬

UPDATE Person SET FirstName = 'Nina'


WHERE LastName = 'Rasmussen'

Prog: Mohamed Youssef ١٩٢ E_Mail: Mohamed.yoyo@gmail.com


Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Storgt 67

: ‫ﻷﺿﺎﻓﮫ أﺳﻢ اﻟﻤﺪﯾﻨﮫ وﺗﻐﯿﺮ اﻟﻌﻨﻮان‬

‫ﺗﻌﺪﯾﻞ أﻛﺜﺮ ﻣﻦ ﻋﻤﻮد ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ‬

UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger'
WHERE LastName = 'Rasmussen'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger

DELETE : ‫اﻟﺤﺬف ﻣﻦ اﻟﺠﺪول‬


: ‫ﺗﺴﺘﺨﺪم ﻓﻲ ﺣﺬف اﻟﺼﻔﻮف ﻣﻦ اﻟﺠﺪول وﺑﻨﺎﺋﮭﺎ ﻛﺎﻟﺘﺎﻟﻲ‬
Syntax
DELETE FROM table_name
WHERE column_name = some_value

: ‫ﻣﺜﺎل ﻋﻠﻲ ﺣﺬف ﺻﻒ ﻣﻦ اﻟﺠﺪول‬

Person:

LastName FirstName Address City


Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger

‫ﻟﺤﺬف اﻟﺼﻒ‬

DELETE FROM Person WHERE LastName = 'Rasmussen'

Result :‫اﻟﻨﺘﯿﺤﮫ‬

LastName FirstName Address City


Nilsen Fred Kirkegt 56 Stavanger

‫ﻟﺤﺬف ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ) اﻟﺼﻔﻮف ( ﻣﻦ اﻟﺠﺪول‬

: ‫ﺗﺴﺘﺨﺪم اﻟﺠﻤﻠﮫ اﻟﺘﺎﻟﯿﮫ‬

Prog: Mohamed Youssef ١٩٣ E_Mail: Mohamed.yoyo@gmail.com


DELETE FROM table_name
or
DELETE * FROM table_name

SQL FUNCTION ‫اﻟﺠﺰء اﻟﺜﺎﻧﻲ اﻟﺨﺎص ﺑـ‬


‫ﻓﻲ ھﺬه اﻟﻤﺮﺣﻠﮫ ﻣﻦ اﻟﺸﺮح ﺳﻮف ﻧﺒﺪأ ﻓﻲ اﻟﺘﻌﺎﻣﻞ ﺑﻤﺮوﻧﮫ أﻛﺜﺮ ﻣﻊ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ﻋﻦ ﻃﺮﯾﻖ إﺿﺎﻓﺎت ﻟﻤﺎ ﺗﻢ ﺷﺮﺣﮫ ﻓﻲ اﻟﺠﺰء‬
SQL ‫اﻷول ﻣﻦ اﻟﺪرس ﻋﻦ ﻃﺮﯾﻖ ﺟﻤﻞ‬

Order By : ‫ﻋﺒﺎره‬
‫ﺗﺴﺘﺨﺪم ﻟﺘﺮﺗﯿﺐ اﻟﻨﺎﺗﺞ ﻣﻦ اﻷﺳﺘﻌﻼم ﺣﺴﺐ ﺣﻘﻞ ﻣﺤﺪد‬
: ‫ﻣﺜﺎل ﻋﻠﻲ اﻟﺘﺮﯾﺐ‬

Orders:

Company OrderNumber
Sega 3412
ABC Shop 5678
W3Schools 2312
W3Schools 6798

: ‫ﺳﻨﻘﻮم ﺑﺘﻨﻔﯿﺬ ﺟﻤﻠﮫ اﻷﺳﺘﻌﻼم اﻟﺘﺎﻟﯿﮫ‬

SELECT Company, OrderNumber FROM Orders


ORDER BY Company

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company OrderNumber
ABC Shop 5678
Sega 3412
W3Schools 6798
W3Schools 2312

Company‫ﻧﻸﺣﻆ ان اﻟﺒﯿﺎﻧﺎت ﺟﺎﺋﺖ ﻓﻲ ﺗﺮﺗﯿﺐ ﺣﺴﺐ ﺣﻘﻞ‬

: ‫إذا اردﻧﺎ اﻟﺘﺮﺗﯿﺐ ﺑﺄﻛﺜﺮ ﻣﻦ ﺣﻘﻞ ﺗﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬

SELECT Company, OrderNumber FROM Orders


ORDER BY Company, OrderNumber

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company OrderNumber
ABC Shop 5678
Sega 3412
W3Schools 2312
W3Schools 6798

‫ﻣﺎذا ﻟﻮ اردﻧﺎ ﻋﻜﺲ اﻟﺘﺮﺗﯿﺐ ﻛﯿﻒ ﯾﺘﻢ ذﻟﻚ‬

: ‫ﻣﺜﺎل‬
Prog: Mohamed Youssef ١٩٤ E_Mail: Mohamed.yoyo@gmail.com
SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company OrderNumber
W3Schools 6798
W3Schools 2312
Sega 3412
ABC Shop 5678

‫ﻓﻲ ﺣﺎﻟﮫ اﻧﻨﺎ ﻧﺮﯾﺪ أﺳﺘﺨﺪام اﻟﻄﺮﯾﻘﺘﯿﻦ ﻛﯿﻒ ﯾﺘﻢ ذﻟﻚ‬

: ‫ﻣﺜﺎل‬
‫ﯾﻤﻜﻦ ﻋﻤﻞ ذﻟﻚ ﺑﻄﺮﯾﻘﺘﯿﻦ‬

: ‫اﻟﻄﺮﯾﻘﮫ اﻷوﻟﻲ‬

SELECT Company, OrderNumber FROM Orders


ORDER BY Company DESC, OrderNumber ASC

‫اﻣﺎ اﻟﻄﺮﯾﻘﮫ اﻟﺜﺎﻧﯿﮫ ھﻲ ﻛﺘﺎﺑﮫ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮب ﺗﺮﺗﯿﺒﮭﺎ ﺗﺼﺎﻋﺪﯾﺎ أوﻷ ﺛﻢ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮب ﺗﺮﺗﯿﺒﮭﺎ ﺗﻨﺎزﻟﯿﺎ‬

: ‫ﻣﺜﺎل‬
SELECT Company, OrderNumber FROM Orders
ORDER BY OrderNumber , Company DESC

‫وﻓﻲ اي ﻣﻦ اﻟﻄﺮﯾﻘﺘﯿﻦ ﺗﻜﻮن اﻟﻨﺘﯿﺠﮫ واﺣﺪه‬

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company OrderNumber
W3Schools 2312
W3Schools 6798
Sega 3412
ABC Shop 5678
‫اﻷن ﻧﻨﺘﻘﻞ ﻟﻤﻌﺎﻣﻼت ﺟﺪﯾﺪه‬

And – OR ‫اﻟﻤﻌﺎﻣﻠﯿﻦ‬
-:‫ﯾﺴﺘﺨﺪم ھﺬﯾﻦ اﻟﻤﻌﺎﻣﻠﯿﻦ ﻓﻲ رﺑﻂ ﺷﺮﻃﯿﻦ أو أﻛﺜﺮ‬
‫ ﯾﻘﻮم ﺑﻌﺮض اﻟﻨﺘﺎﺋﺞ ﻓﻲ ﺣﺎﻟﮫ ﺗﺤﻘﻖ ﺟﻤﯿﻊ اﻟﺸﺮوط‬AND ‫ اﻟﻤﻌﺎﻣﻞ‬-
‫ ﯾﻘﻮم ﺑﻌﺮض اﻟﻨﺘﺎﺋﺞ ﻓﻲ ﺣﺎﻟﮫ ﺗﺤﻘﻖ اي ﺷﺮط ﻣﻦ اﻟﺸﺮوط‬OR ‫ اﻟﻤﻌﺎﻣﻞ‬-

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

Prog: Mohamed Youssef ١٩٥ E_Mail: Mohamed.yoyo@gmail.com


: AND ‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ‬
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Svendson Tove Borgvn 23 Sandnes

: OR ‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ‬
SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

: ‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻠﯿﻦ ﻣﻌﺎ‬


SELECT * FROM Persons WHERE
(FirstName='Tove' OR FirstName='Stephen')
AND LastName='Svendson'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes

IN ‫اﻟﻤﻌﺎﻣﻞ‬
‫ﻟﮫ ﻋﺪه أﺳﺘﺨﺪاﻣﺎت ﻣﻨﮭﺎ اﻧﮫ ﯾﻤﻜﻨﻚ ﺗﺤﺪﯾﺪ اﻟﻘﯿﻤﮫ اﻟﻤﺮاد ﻋﺮﺿﮭﺎ إذا ﻛﻨﺖ ﻣﺘﺄﻛﺪ ﻣﻦ وﺟﻮدھﺎ ﻓﻲ أﺣﺪ اﻟﺤﻘﻮل‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬
SELECT column_name FROM table_name
WHERE column_name IN (value1,value2,..)

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger
Svendson Tove Borgvn 23 Sandnes

SELECT * FROM Persons


WHERE LastName IN ('Hansen','Pettersen')

Prog: Mohamed Youssef ١٩٦ E_Mail: Mohamed.yoyo@gmail.com


Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Pettersen Kari Storgt 20 Stavanger

‫وﯾﻤﻜﻦ أﯾﻀﺎ أﺳﺘﺨﺪاﻣﮫ ﻓﻲ رﺑﻂ أﻛﺜﺮ ﻣﻦ أﺳﺘﻌﻼم ﻣﻌﺎ‬

SELECT * FROM table1_name


WHERE FirstName in (SELECT * FROM table2_name)

‫ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﻗﻤﻨﺎ ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﻘﯿﻢ ﻣﻦ اﻟﺠﺪول اﻷول‬


‫ﻣﻮﺟﻮد‬FirstName ‫ ﺑﺸﺮط ان ﯾﻜﻮن اﻟﺤﻘﻞ‬Table1_name
table2_name ‫ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬

BETWEEN ... AND ‫اﻟﻤﻌﺎﻣﻞ‬


‫ﯾﺴﺘﺨﺪم ﻟﻌﺮض ﻣﺠﻤﻮﻋﮫ ﺑﯿﺎﻧﺎت ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ ﻧﺼﻮص أو أرﻗﺎم أو ﺗﺎرﯾﺦ‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬
SELECT column_name FROM table_name
WHERE column_name
BETWEEN value1 AND value2

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger
Svendson Tove Borgvn 23 Sandnes

‫ﻋﺮض اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮده ﺑﯿﻦ اﻟﻘﯿﻤﺘﯿﻦ‬

SELECT * FROM Persons WHERE LastName


BETWEEN 'Hansen' AND 'Pettersen'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes

‫ﻋﺮض اﻟﺒﯿﺎﻧﺎت اﻟﻐﯿﺮ ﻣﻮﺟﻮده ﺑﯿﻦ اﻟﻘﯿﻤﺘﯿﻦ‬

SELECT * FROM Persons WHERE LastName


NOT BETWEEN 'Hansen' AND 'Pettersen'

Prog: Mohamed Youssef ١٩٧ E_Mail: Mohamed.yoyo@gmail.com


Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Pettersen Kari Storgt 20 Stavanger
Svendson Tove Borgvn 23 Sandnes

‫ﺗﺴﺘﺨﺪم ﻧﻔﺲ اﻟﻄﺮﯾﻘﮫ ﻣﻊ اﻷرﻗﺎم واﻟﺘﻮارﯾﺦ ﻣﻊ ﻣﺮاﻋﺎه‬


. (#) ‫ان اﻟﺘﻮارﯾﺦ ﻷ ﺗﻜﻮن ﺑﯿﻦ ﻋﻼﻣﺘﻲ ) ' ( ﺑﻞ ﯾﺴﺘﺨﺪم‬

Alias ‫اﻷﺳﻢ اﻟﻤﺴﺘﻌﺎر‬


AS ‫ﯾﺴﺘﺨﺪم ﻓﻲ ﺗﻐﯿﯿﺮ اﺳﻢ اﻟﺠﺪول أو اﻟﺤﻘﻞ ﻋﻨﺪ ﻋﺮﺿﮫ ﻧﺴﺘﺨﺪﻣﮫ ﻋﻦ ﻃﺮﯾﻖ ﻛﻠﻤﮫ‬

: ‫اﻟﺒﻨﺎء ﻓﻲ ﺣﺎﻟﮫ اﻟﺠﺪول‬


SELECT column AS column_alias FROM table

: ‫اﻟﺒﻨﺎء ﻓﻲ ﺣﺎﻟﮫ اﻟﺤﻘﻞ‬

SELECT column AS column_alias FROM table

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل‬

This table (Persons):

LastName FirstName Address City


Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger

SELECT LastName AS Family, FirstName AS Name


FROM Persons

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

(‫ﻧﻸﺣﻆ أﺳﻤﺎء اﻟﺤﻘﻮل )اﻷﻋﻤﺪه‬

Family Name
Hansen Ola
Svendson Tove
Pettersen Kari

SELECT LastName, FirstName


FROM Persons AS Employees

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

‫ﻧﻸﺣﻆ ان اﺳﻢ اﻟﺠﺪول‬Table Employees:

LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari

Prog: Mohamed Youssef ١٩٨ E_Mail: Mohamed.yoyo@gmail.com


JOIN ‫اﻟﺮﺑﻂ‬
‫ ھﻮ اﻟﺮﺑﻂ ﺑﯿﻦ اﻟﺠﺪأول اﻟﺬي ﯾﺴﮭﻞ ﻛﺜﯿﺮ ﻓﻲ ﻋﺮض اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪأول اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻲ‬SQL ‫ﻣﻮﺿﻮع ﻣﻦ اھﻢ ﻣﻮاﺿﯿﻊ‬
. ‫ﻋﻸﻗﮫ ﻣﺜﻞ اﻟﻤﻮﻇﻒ و اﻟﻘﺴﻢ‬

. ‫ﻓﻲ ﺑﻌﺾ اﻷﺣﯿﺎن ﻧﺤﺘﺎج إﻟﻲ ﻋﺮض ﺑﯿﺎﻧﺎت ﻣﻦ ﺟﺪوﻟﯿﻦ أو أﻛﺜﺮ ﻟﺠﻌﻞ اﻟﻨﺘﯿﺠﮫ ﻛﺎﻣﻠﮫ ﯾﺠﺐ اﻧﺸﺎء ﻋﻸﻗﮫ‬

‫( اﻟﺤﻘﻞ اﻟﺬي ﯾﻜﻮن ﻣﻔﺘﺎح اﺳﺎﺳﻲ ﻷ ﯾﻤﻜﻦ ﺗﻜﺮار اﻟﺒﯿﺎﻧﺎت‬Primary Key) ‫اﻟﺮﺑﻂ ﺑﯿﻦ اﻟﺠﺪأو ﯾﺘﻢ ﻋﻦ ﻃﺮﯾﻖ اﻟﻤﻔﺘﺎح اﻷﺳﺎﺳﻲ‬
. ‫ﺑﺪاﺧﻠﮫ‬

. ‫( ھﻮ ﺣﻘﻞ ﻣﻔﺘﺎح اﺳﺎﺳﻲ اﻟﺨﺎص ﺑﺠﺪول اﻟﻤﻮﻇﻔﯿﻦ‬Employee_ID) ‫ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﺣﻘﻞ‬

‫( ھﻮ ﺣﻘﻞ اﻟﻤﻔﺘﺎح اﻷﺳﺎﺳﻲ ﻟﻠﺠﺪول وﻓﯿﮫ اﯾﻀﺎ ﻣﻔﺘﺎح ﺧﺎرﺟﻲ وھﻮ ﺣﻘﻞ‬Order_ID) ‫اﻣﺎ ﻓﻲ ﺟﺪول اﻟﺜﺎﻧﻲ اﻟﺤﻘﻞ‬
.(Employee_ID)

Employees:‫اﻟﺠﺪول اﻷول‬

Employee_ID Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

Orders: ‫اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬

Prod_ID Product Employee_ID


234 Printer 01
657 Table 03
865 Chair 03

‫ ﻧﺮﯾﺪ ان ﻧﻌﺮف ﻣﻦ ﻃﻠﺐ ﻣﻨﺘﺞ وﻣﺎ ھﻮ اﻟﻤﻨﺘﺞ‬: ‫ﻣﺜﺎل‬

SELECT Employees.Name, Orders.Product


FROM Employees, Orders
WHERE Employees.Employee_ID=Orders.Employee_ID

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair

(Printer) ‫ ﻧﺮﯾﺪ ان ﻧﻌﺮف ﻣﻦ ﻃﻠﺐ اﻟﻤﻨﺘﺞ‬: ‫ﻣﺜﺎل‬

SELECT Employees.Name
FROM Employees, Orders
WHERE Employees.Employee_ID=Orders.Employee_ID
AND Orders.Product='Printer'

Prog: Mohamed Youssef ١٩٩ E_Mail: Mohamed.yoyo@gmail.com


Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Name
Hansen, Ola

: INNER JOIN ‫ﻣﺜﺎل ﻋﻠﻲ اﺳﺘﺨﺪام‬


: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬
SELECT field1, field2, field3
FROM first_table
INNER JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield
: ‫ﺗﻨﻔﯿﺬ اﻟﺠﻤﻠﮫ ﻋﻠﻲ اﻟﻤﺜﺎل‬
SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair

‫ ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺸﺘﺮﻛﮫ ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ‬INNER JOIN ‫ﺗﻘﻮم اﻟﺠﻤﻠﮫ‬

: LEFT JOIN ‫ﻣﺜﺎل ﻋﻠﻲ أﺳﺘﺨﺪام‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬
SELECT field1, field2, field3
FROM first_table
LEFT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield
: ‫ﺗﻨﻔﯿﺬ اﻟﺠﻤﻠﮫ ﻋﻠﻲ اﻟﻤﺜﺎل‬
SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

‫اﻟﻨﺘﯿﺠﮫ‬Result:

Name Product
Hansen, Ola Printer
Svendson, Tove
Svendson, Stephen Table
Svendson, Stephen Chair
Pettersen, Kari

‫ ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪول‬LEFT JOIN ‫ﺗﻘﻮم اﻟﺠﻤﻠﮫ‬


‫ ﺣﺘﻲ ﻟﻮ ﻟﻢ ﺗﻮﺟﺪ ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬Employee ‫اﻷول‬

: RIGHT JOIN ‫ﻣﺜﺎل ﻋﻠﻲ أﺳﺘﺨﺪام‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬

Prog: Mohamed Youssef ٢٠٠ E_Mail: Mohamed.yoyo@gmail.com


SELECT field1, field2, field3
FROM first_table
RIGHT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield
: ‫ﺗﻨﻔﯿﺬ اﻟﺠﻤﻠﮫ ﻋﻠﻲ اﻟﻤﺜﺎل‬
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair
‫ ﺣﺘﻲ ﻟﻮﺗﺔﺟﺪ ﻓﻲ اﻟﺠﺪول اﻷول‬Orders ‫ ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪول اﻟﺜﺎﻧﻲ‬RIGHT JOIN ‫ﺗﻘﻮم اﻟﺠﻤﻠﮫ‬

: INNER JOIN ‫ﻣﺜﺎل ﻋﻠﻲ أﺳﺘﺨﺪام ﺟﻤﻠﮫ‬

(Printer) ‫ﻧﺮﯾﺪ ﻋﺮض اﺳﻤﺎء اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬن ﻃﻠﺒﻮا اﻟﻤﻨﺘﺞ‬

SELECT Employees.Name
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
WHERE Orders.Product = 'Printer'

‫اﻟﻨﺘﯿﺠﮫ‬Result:

Name
Hansen, Ola

 

‫ﺍﻟﺴﺠﻼﺕ ﺍﻟﻨﺎﺗﺠﺔ ﻣﻦ ﺍﻟﺠﺪﻭﻝ ﺍﻷﻳﻤﻦ‬ ‫ﺍﻟﺴﺠﻼﺕ ﺍﻟﻨﺎﺗﺠﺔ ﻣﻦ ﺍﻟﺠﺪﻭﻝ ﺍﻷﻳﺴﺮ‬ ‫ﻧﻮﻉ ﺍﻟﺮﺑﻂ‬
‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻷﯾﺴﺮ ﻓﻘﻂ‬ ‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻷﯾﻤﻦ ﻓﻘﻂ‬ INNER
‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻷﯾﺴﺮ ﻓﻘﻂ‬ ‫ﺟﻤﯿﻊ اﻟﺴﺠﻼت‬ LEFT
‫ﺟﻤﯿﻊ اﻟﺴﺠﻼت‬ ‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻷﯾﻤﻦ ﻓﻘﻂ‬ RIGHT

. JOIN ‫وﺑﮭﺬا ﻧﻜﻮن اﻧﺘﮭﯿﻨﺎ ﻣﻦ ﺷﺮح ﺟﻤﻠﮫ‬

1
٩٢‫ ص‬، ٢٠٠٥/٢٠٠٤ ‫ ﻟﻌﺎم‬، ‫ اﻟﻤﻌﮭﺪ اﻟﻌﺎﻟﻰ ﻟﻠﺤﺎﺳﺐ اﻵﻟﻲ‬، ‫ﺑﻮرﺳﻌﯿﺪ‬، Access (١) ‫ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬: ‫ ﺳﻤﯿﺮ ﻣﺤﻤﺪ اﻟﻤﻜﺎوي‬/‫م‬.‫ د‬-

Prog: Mohamed Youssef ٢٠١ E_Mail: Mohamed.yoyo@gmail.com


UNION and UNION ALL ‫اﻟﺪﻣﺞ‬
‫ﺗﺴﺘﺨﺪم ﻟﺪﻣﺞ ﺣﻘﻠﯿﻦ ﻣﻦ ﺟﺪوﻟﯿﻦ ﻣﺨﺘﻠﻔﯿﻦ وﻟﻜﻦ ﯾﺠﺐ ان ﯾﻜﻮن ﻧﻮع اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﺤﻘﻠﯿﻦ واﺣﺪ اي ﯾﻜﻮن ﻧﺼﻮص أو ارﻗﺎم‬
‫………إﻟﺦ‬.

: ‫اﻟﺒﻨﺎء ﻟﻠﺠﻤﻠﮫ ﯾﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬


SQL Statement 1
UNION
SQL Statement 2

: ‫ﻣﺜﺎل‬

Employees_Norway:

E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

Employees_USA:

E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen

: ‫ ﻓﻲ ﻛﻞ ﻣﻦ اﻟﺠﺪوﻟﯿﻦ‬E_NAME ‫ﻧﺮﯾﺪ دﻣﺞ اﻟﺤﻘﻞ‬

SELECT E_Name FROM Employees_Norway


UNION
SELECT E_Name FROM Employees_USA

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen
. ‫ﻧﻸﺣﻆ ان اﻟﻨﺘﯿﺠﮫ ﻇﮭﺮت ﺑﺪون ﺗﻜﺮار ﻟﻠﺒﯿﺎﻧﺎت‬
: UNION ALL ‫أﺳﺘﺨﺪام‬

. ‫ اﻟﻔﺮق اﻧﮫ ﯾﻘﻮم ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﺣﺘﻲ ﻟﻮ ﯾﻮﺟﺪ ﺗﻜﺮار‬UNION ‫ﻣﺜﻞ أﺳﺘﺨﺪام‬

: ‫اﻟﺒﻨﺎء ﻟﻠﺠﻤﻠﮫ ﯾﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‬

SQL Statement 1
UNION ALL
SQL Statement 2

Prog: Mohamed Youssef ٢٠٢ E_Mail: Mohamed.yoyo@gmail.com


‫ﻣﺜﺎل ‪ :‬ﻧﺮﯾﺪ دﻣﺞ اﻟﺤﻘﻞ ‪ E_NAME‬ﻓﻲ اﻟﺠﺪوﻟﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ‬

‫‪SELECT E_Name FROM Employees_Norway‬‬


‫‪UNION ALL‬‬
‫‪SELECT E_Name FROM Employees_USA‬‬

‫اﻟﻨﺘﯿﺠﮫ ‪Result:‬‬

‫‪E_Name‬‬
‫‪Hansen, Ola‬‬
‫‪Svendson, Tove‬‬
‫‪Svendson, Stephen‬‬
‫‪Pettersen, Kari‬‬
‫‪Turner, Sally‬‬
‫‪Kent, Clark‬‬
‫‪Svendson, Stephen‬‬
‫‪Scott, Stephen‬‬

‫ﻧﻸﺣﻆ ﻇﮭﻮر ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻊ ﺗﻜﺮار اﺣﺪ اﻷﺳﻤﺎء اﻟﻤﺸﺘﺮك ﻓﻲ اﻟﺠﺪوﻟﯿﻦ ‪.‬‬
‫)اﻷن ﻧﻨﺘﻘﻞ إﻟﻲ درس ﻣﮭﻢ ﺟﺪا ﻓﻲ ﻟﻐﮫ ‪ SQL‬اﻷ وھﻮ اﻟﺪوال(‬

‫اﻟﺪوال ‪SQL Functions‬‬


‫ﻟﻐﮫ ‪ SQL‬ﺑﮭﺎ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺪوال اﻟﻌﺪدﯾﺔ واﻟﺤﺴﺎﺑﯿﺔ‬

‫اﻟﺒﻨﺎء اﻷﺳﺎﺳﻲ ﻷي داﻟﮫ ‪:‬‬

‫‪SELECT function(column) FROM table‬‬

‫اﻟﺪوال ‪:‬‬

‫اﻟﻮﺻﻒ‬ ‫اﻟﺪاﻟﮫ‬
‫ﻷﯾﺠﺎد اﻟﻮﺳﻂ اﻟﺤﺴﺎﺑﻲ ﻟﻠﺤﻘﻞ اﻟﻤﺤﺪد‬ ‫)‪AVG(column‬‬
‫ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﺼﻔﻮف)اﻟﺴﺠﻼت( ﻓﻲ اﻟﺤﻘﻞ ﺑﺪون اﻟﺴﺠﻼت اﻟﻔﺎرﻏﮫ‬ ‫)‪COUNT(column‬‬
‫ﻣﻌﺮﻓﮫ ﻋﺪد اﻟﺼﻔﻮف ﻓﻲ اﻟﺠﺪول‬ ‫)*(‪COUNT‬‬
‫ﻣﻌﺮﻓﮫ ﻗﯿﻤﮫ أول ﺳﺠﻞ ﻓﻲ اﻟﺤﻘﻞ‬ ‫)‪First(column‬‬
‫ﻣﻌﺮﻓﮫ ﻗﯿﻤﮫ أﺧﺮ ﺳﺠﻞ ﻓﻲ اﻟﺤﻘﻞ‬ ‫)‪last(column‬‬
‫ﻣﻌﺮﻓﮫ أﻛﺒﺮ ﻗﯿﻤﮫ ﺳﺠﻞ ﻓﻲ اﻟﺤﻘﻞ‬ ‫)‪Max(column‬‬
‫ﻣﻌﺮﻓﮫ أﺿﻐﺮ ﻗﯿﻤﮫ ﺳﺤﻞ ﻓﻲ اﻟﺤﻘﻞ‬ ‫)‪Min(column‬‬
‫ﻣﻌﺮﻓﮫ إﺟﻤﺈﻟﻲ اﻟﻘﯿﻢ ﻓﻲ اﻟﺤﻘﻞ‬ ‫)‪SUM(column‬‬
‫‪SQL SERVER‬ﻋﺪد اﻟﺴﺠﻼت ﻓﻲ اﻟﺤﻘﻞ ﺑﺪون ﺗﻜﺮار ﺗﻌﻤﻞ ﻓﻘﻂ ﻋﻠﻲ‬ ‫)‪COUNT(DISTINCT column‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٠٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


: ‫ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻻﻣﺜﻠﮫ‬

SELECT AVG(Column) From Table


SELECT COUNT(column) From Table
SELECT COUNT(*) From Table
SELECT First(column) From Table
SELECT last(column) From Table
SELECT Max(column) From Table
SELECT Min(column) From Table
SELECT SUM(column) From Table
SELECT COUNT(DISTINCT column) From Table

SQL GROUP BY and HAVING ‫واﻟﻔﺮز‬ ‫اﻟﺘﺠﻤﯿﻊ‬


GROUP BY ‫ ﻛﺜﯿﺮا ﻣﺎ ﺗﺤﺘﺎج إﻟﻲ اﻟﺘﺠﻤﯿﻊ‬SUM ‫اﻟﺪوال اﻟﻌﺪدﯾﮫ ﻣﺜﻞ اﻟﺪاﻟﮫ‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬
SELECT column,SUM(column) FROM table GROUP BY column

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل ﻟﻠﺘﻮﺿﯿﺢ‬

Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100

:‫ﻧﻨﻔﺬ اﻟﺠﻤﻠﮫ اﻟﺘﺎﻟﯿﮫ‬

SELECT Company, SUM(Amount) FROM Sales

Returns this result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company SUM(Amount)
W3Schools 17100
IBM 17100
W3Schools 17100

. ‫ﻧﻸﺣﻆ ان ﺟﻤﯿﻊ اﻟﺴﺠﻼت اﺧﺬت اﻟﻤﺠﻤﻮع ﻛﻠﮫ وﻟﻢ ﻧﻌﺮف ﻣﺠﻤﻮع ﻛﻞ ﺳﺠﻞ‬
: GROUP BY ‫اﻷن ﻧﺠﺮب ﺟﻤﻠﮫ اﻷﺳﺘﻌﻼم ﺑﻌﺪ إﺿﺎﻓﮫ‬

SELECT Company,SUM(Amount) FROM Sales


GROUP BY Company

Returns this result: ‫اﻟﻨﺘﯿﺠﮫ‬

Company SUM(Amount)
W3Schools 12600
IBM 4500

‫ﻧﻸﺣﻆ اﻧﮫ ﺗﻢ ﺟﻤﻊ ﻛﻞ ﺳﺠﻞ وﺣﺪه وأﺻﺒﺤﺖ اﻟﻨﺘﯿﺠﮫ أوﺿﺢ‬

Prog: Mohamed Youssef ٢٠٤ E_Mail: Mohamed.yoyo@gmail.com


‫ ﺗﺴﺘﺨﺪم ﻟﻔﺮز اﻟﺒﯿﺎﻧﺎت ﺣﺴﺐ ﺷﺮط ﻣﻌﯿﻦ‬HAVING ‫اﻟﺪاﻟﮫ‬
: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬

SELECT column,SUM(column) FROM table


GROUP BY column
HAVING SUM(column) condition value

: ‫ﺗﻄﺒﯿﻖ ﻋﻠﻲ ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ‬

Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100

: ‫ﻧﻨﻔﺬ ﺟﻤﻠﮫ اﻷﺳﺘﻌﻼم اﻟﺘﺎﻟﯿﮫ‬

SELECT Company,SUM(Amount) FROM Sales


GROUP BY Company
HAVING SUM(Amount)>10000

Returns this result : ‫اﻟﻨﺘﯿﺠﮫ‬

Company SUM(Amount)
W3Schools 12600

.‫ ﻓﻘﻂ‬١٠٠٠٠ ‫ﻧﻸﺣﻆ اﻧﮫ ﺗﻢ ﺗﺤﻘﻖ اﻟﺸﺮط وﻋﺮض اﻟﺒﯿﺎﻧﺎت اﻛﺒﺮ ﻣﻦ‬

Prog: Mohamed Youssef ٢٠٥ E_Mail: Mohamed.yoyo@gmail.com


‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ "ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت" ﺑـ )‪Data Definition Language (DDL‬‬
‫ﻓﻲ ھﺬا اﻟﺠﺰء ﻣﻦ اﻟﺪرس ﺳﻮف ﻧﻘﻮم ﺑﺸﺮح‬

‫)‪Data Definition Language (DDL‬‬

‫ھﻮ اﻟﻘﺴﻢ اﻟﻤﺴﺌﻮل ﻋﻦ ‪ :‬ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت‬

‫‪ : Create Database -١‬ﻷﻧﺸﺎء ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة‬


‫‪ : Create Table -٢‬ﻷﻧﺸﺎء ﺟﺪول داﺧﻞ ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت‬
‫‪ : ALTER TABLE -٣‬ﻟﻠﺘﻌﺪﯾﻞ ﻓﻲ اﻟﺠﺪول‬
‫‪ : DROP TABLE -٤‬ﻟﺤﺬف اﻟﺠﺪول ﻣﻦ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬
‫‪ : CREATE INDEX -٥‬ﻷﻧﺸﺎء ﻣﻔﺘﺎح ﻟﻠﺒﺤﺚ )اﻟﻔﮭﺎرس(‬
‫‪ : DROP INDEX -٦‬ﻟﺤﺬف ﻣﻔﺘﺎح اﻟﺒﺤﺚ‬

‫أوﻷ اﻧﺸﺎء ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت ‪: Create Database‬‬


‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

‫‪CREATE DATABASE database_name‬‬

‫ﻃﺒﻌﺎ ﻧﺤﺪد اﺳﻢ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬

‫ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت دﯾﮫ ھﺘﻜﻮن ﺧﺈﻟﯿﺔ‪.‬‬

‫ﻷﻧﺸﺎء ﺟﺪول داﺧﻞ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ‪:Create Table‬‬


‫ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫‪CREATE TABLE table_name‬‬


‫(‬
‫‪column_name1 data_type,‬‬
‫‪column_name2 data_type,‬‬
‫‪.......‬‬
‫)‬

‫ﻣﺜﺎل ﻋﻠﻲ أﻧﺸﺎء ﺟﺪول ‪:‬‬

‫‪CREATE TABLE Person‬‬


‫(‬
‫‪LastName text(30),‬‬
‫‪FirstName text(30),‬‬
‫‪Address text(150),‬‬
‫)‪Age (Number‬‬
‫)‬

‫اﻷن ﯾﻤﻜﻨﻨﺎ اﻧﺸﺎء ﺟﺪأول وﺗﺤﺪﯾﺪ اﻟﺤﻘﻮل واﻧﻮاع وﺣﺠﻢ اﻟﺒﯿﺎﻧﺎت ﻓﯿﮭﺎ ‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٠٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫اﻧﺸﺎء اﻟﻔﮭﺎرس ‪: CREATE INDEX‬‬
‫اﻟﻔﮭﺮس ﯾﺼﻤﻢ ﻓﻲ اﻟﺠﺪول ﺣﺘﻲ ﯾﺠﻌﻞ ﻋﻤﻠﯿﮫ اﻷﺳﺘﻌﻼم أﺳﺮع ﻛﻤﺎ ﯾﻤﻜﻦ اﻧﺸﺎء اﻛﺜﺮ ﻣﻦ ﻓﮭﺮس ﻧﻔﺲ اﻟﺠﺪول‬
‫اﻟﻤﺴﺘﺨﺪم ﻷ ﯾﺮي ھﺬه اﻟﻔﮭﺎرس اﻧﻤﺎ ھﻲ ﻟﺘﺴﺮع ﻋﻤﻠﯿﮫ اﻷﺳﺘﻌﻼم ﻓﻘﻂ ‪.‬‬

‫ھﻨﺎك ﻧﻮﻋﯿﻦ ﻣﻦ اﻟﻔﮭﺎرس اﻟﻨﻮع اﻷول ﻷ ﯾﻤﻜﻦ ان ﯾﺘﻜﺮر ﺑﮫ اﻟﺒﯿﺎﻧﺎت اﻣﺎ اﻟﻨﻮة\ع اﻟﺜﺎﻧﻲ ﯾﻤﻜﻦ ﺗﻜﺮار اﻟﺒﯿﺎﻧﺎت ﺑﮫ ‪.‬‬

‫اﻟﺒﻨﺎء ﻟﻠﻔﮭﺮس ﻣﻦ اﻟﻨﻮع اﻟﻔﺮﯾﺪ )اﻟﺬي ﻷ ﯾﺘﻜﺮر( ‪Unique Index‬‬

‫‪CREATE UNIQUE INDEX index_name‬‬


‫)‪ON table_name (column_name‬‬

‫اﻟﺒﻨﺎء ﻟﻠﻔﮭﺮس ﻣﻦ اﻟﻨﻮع اﻟﻌﺎدي ‪Simple Index‬‬

‫‪CREATE INDEX index_name‬‬


‫)‪ON table_name (column_name‬‬

‫ﻣﺜﺎل ‪:‬‬

‫‪CREATE INDEX PersonIndex‬‬


‫)‪ON Person (LastName‬‬

‫ﻷﻧﺸﺎء ﻓﮭﺮس ﺑﺘﺮﺗﯿﺐ ﻋﻜﺴﻲ ‪:‬‬

‫‪CREATE INDEX PersonIndex‬‬


‫)‪ON Person (LastName DESC‬‬

‫ﻷﻧﺸﺎء ﻓﮭﺮس ﻓﻲ ﺣﻘﻠﯿﻦ ﻓﻲ ﻧﻔﺲ اﻟﺠﺪول ‪:‬‬

‫‪CREATE INDEX PersonIndex‬‬


‫)‪ON Person (LastName, FirstName‬‬

‫اﻷﻣﺮ ‪Drop‬‬
‫‪ Drop‬ﺗﺮﺟﻤﺘﮭﺎ اﻟﺤﺮﻓﯿﮫ إﻟﻘﺎء وﻟﻜﻨﻨﺎ ھﻨﺎ ﻧﺴﺘﺨﺪﻣﮭﺎ ﻛﺄﻣﺮ ﺣﺬف وﻟﻜﻦ ﺣﺬف اﯾﮫ ) ﻗﺎﻋﺪه ﺑﯿﺎﻧﺎت – ﻓﮭﺮس – ﺟﺪول(‬

‫أوﻷ‪ -:‬ﺣﺬف ﻗﺎﻋﺪ ﺑﯿﺎﻧﺎت ‪ :‬ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬

‫‪DROP DATABASE database_name‬‬

‫ﺛﺎﻧﯿﺎ ‪ -:‬ﺣﺬف ﺟﺪول ﻣﻦ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ‪ :‬ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫‪DROP TABLE table_name‬‬

‫ﺛﺎﻟﺜﺎ ‪ -:‬ﺣﺬف ﻓﮭﺮس ‪ :‬وﯾﺨﺘﻠﻒ اﻟﺒﻨﺎء ﺣﺴﺐ ﻧﻮع ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬


‫ﻣﺜﺎل ‪:‬‬

‫ﻧﻮع ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ‪Syntax for Microsoft SQLJet (and Microsoft Access):‬‬

‫‪DROP INDEX index_name ON table_name‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٠٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


Syntax for MS SQL Server: ‫ﻧﻮع ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬

DROP INDEX table_name.index_name

Syntax for IBM DB2 and Oracle: ‫ﻧﻮع ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬

DROP INDEX index_name

Syntax for MySQL: ‫ﻧﻮع ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬

ALTER TABLE table_name DROP INDEX index_name

: ‫أﺧﯿﺮ اﻣﺮ ﺣﺬف اﻟﺒﯿﺎﻧﺎت ﻣﻦ داﺧﻞ اﻟﺠﺪول دون ﺣﺬف اﻟﺠﺪول‬

TRUNCATE TABLE table_name

ALTER TABLE ‫اﻷﻣﺮ‬


. (‫ﯾﺴﺘﺨﺪم ﻓﻲ اﻟﺘﻌﺪﯾﻞ ﻋﻠﻲ اﻟﺠﺪول ﻣﻦ إﺿﺎﻓﮫ وﺣﺬف أﻋﻤﺪه )ﺣﻘﻮل‬

‫ ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬: ‫ﻷﺿﺎﻓﮫ ﺣﻘﻞ‬

ALTER TABLE table_name


ADD column_name datatype

: ‫ ﯾﻜﻮن ﺑﻨﺎء اﻟﺠﻤﻠﮫ ﻛﺎﻟﺘﺎﻟﻲ‬: ‫ﻟﺤﺬف ﺣﻘﻞ‬

ALTER TABLE table_name


DROP COLUMN column_name

‫ ﻋﻠﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬: ‫ﻣﺜﺎل‬

Person:

LastName FirstName Address


Pettersen Kari Storgt 20

: ‫ﻷﺿﺎﻓﮫ ﺣﻘﻞ ﺟﺪﯾﺪ‬

To add a column named "City" in the "Person" table:

ALTER TABLE Person ADD City varchar(30)

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName Address City


Pettersen Kari Storgt 20

: ‫ﻟﺤﺬف ﺣﻘﻞ ﻣﻦ اﻟﺠﺪول‬

To drop the "Address" column in the "Person" table:

Prog: Mohamed Youssef ٢٠٨ E_Mail: Mohamed.yoyo@gmail.com


ALTER TABLE Person DROP COLUMN Address

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

LastName FirstName City


Pettersen Kari

SELECT INTO ‫ﺟﻤﻠﮫ‬


‫ﺗﺴﺘﺨﺪم ﻋﺎده ﻓﻲ ﺣﻔﻆ ﻧﺴﺨﮫ أﺣﺘﯿﺎﻃﯿﮫ ﻣﻦ اﻟﺠﺪول‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻞ ﻛﺎﻟﺘﺎﻟﻲ‬

SELECT column_name(s) INTO newtable [IN externaldatabase]


FROM source

: ‫ﻟﻌﻤﻞ ﻧﺴﺨﮫ إﺣﺘﯿﺎﻃﯿﮫ ﻣﻦ اﻟﺠﺪول ﻓﻲ ﻧﻔﺲ اﻟﻘﺎﻋﺪه‬

SELECT * INTO Persons_backup


FROM Persons

IN ‫ ﻧﺴﺘﺨﺪم‬: ‫ﻟﻨﺴﺦ اﻟﺠﺪول ﻟﻘﺎﻋﺪه ﺑﯿﺎﻧﺎت أﺧﺮي‬

SELECT Persons.* INTO Persons IN 'Backup.mdb'


FROM Persons

:‫ﯾﻤﻜﻦ أﯾﻀﺎ ﻧﺴﺦ ﺣﻘﻮل ﻣﺤﺪده ﻓﻘﻂ‬

SELECT LastName,FirstName INTO Persons_backup


FROM Persons

Where : ‫ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﻣﻊ إدﺧﺎل ﺷﺮط‬

SELECT LastName,Firstname INTO Persons_backup


FROM Persons
WHERE City='Sandnes'

: ‫إذا اردﻧﺎ ﻧﺴﺦ اﻟﺠﺪول ﻟﻜﻦ ﻓﻲ وﺟﻮد ﻋﻸق ﻣﻊ ﺟﺪول أﺧﺮ‬

SELECT Employees.Name,Orders.Product
INTO Empl_Ord_backup
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

CREATE VIEW ‫ﺟﻤﻠﮫ‬


‫ﺗﺴﺘﺨﺪم ﻷﻧﺸﺎء ﺟﻤﻠﮫ ﺗﻌﺮض ﺑﯿﺎﻧﺎت ﺗﺤﺖ ﺷﺮط ﻣﻌﯿﻦ‬
‫ ﺑﮭﺎ ﻣﺜﻞ ﻋﻤﻞ ﻋﻸﻗﮫ‬SQL ‫ﯾﻤﻜﻦ أﺳﺘﺨﺪام اي ﻣﻦ ﺟﻤﻞ‬
. ‫أو إﺿﺎﻓﮫ داﻟﮫ ﻣﻦ اﻟﺪوال‬

Prog: Mohamed Youssef ٢٠٩ E_Mail: Mohamed.yoyo@gmail.com


: ‫ﯾﻜﻮن ﺑﻨﺎﺋﮭﺎ اﻟﻌﺎم ﻛﺎﻟﺘﺎﻟﻲ‬

CREATE VIEW view_name AS


SELECT column_name(s)
FROM table_name
WHERE condition

: ‫ﻣﻸﺣﻈﺎت ھﺎﻣﮫ‬
‫ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ﻷ ﺗﺘﺄﺛﺮ ﺑﻤﺎ ﯾﺘﻢ ﺗﻨﻔﯿﺬه ﻣﻦ ﺷﺮوط أو دوال‬-١
‫ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ﻷ ﺗﻘﻮم ﺑﺤﻔﻆ اﻟﻨﺎﺗﺞ ﻓﻲ ﺟﺪول واﻧﻤﺎ ﯾﻘﻮم ﻣﺤﺮك ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت ﺑﺘﻨﻔﯿﺬ اﻟﺠﻤﻠﮫ ﻛﻞ ﻣﺮه ﺗﻘﻮم ﺑﺘﺸﻐﯿﻠﮫ ﻓﯿﮭﺎ‬-٢

: Northwind ‫ﺑﻌﺾ اﻻﻣﺜﻠﮫ اﻟﻤﺒﻨﯿﮫ ﻋﻠﻲ ﻗﺎﻋﺪه اﻟﺒﯿﺎﻧﺎت‬

: ١ ‫ﻣﺜﺎل‬
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

‫ ﻋﻦ ﻃﺮﯾﻖ اﻟﺠﻤﻠﮫ اﻷﺗﯿﮫ‬: ‫ﻛﯿﻒ ﯾﺘﻢ ﺗﺸﻐﯿﻠﮫ‬

SELECT * FROM [Current Product List]

: ٢ ‫ﻣﺜﺎل‬
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

:‫ﯾﺘﻢ ﻋﺮﺿﮫ ﺑﺎﻟﺠﻤﻠﮫ‬

SELECT * FROM [Products Above Average Price]

: ٣ ‫ﻣﺜﺎل‬
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

: ‫ﯾﺘﻢ ﻋﺮﺿﮫ ﺑﺎﻟﺠﻤﻠﮫ‬

SELECT * FROM [Category Sales For 1997]

: ‫وﯾﻤﻜﻦ أﺳﺘﺨﺪام اﻟﺸﺮط اﺛﻨﺎء ﻋﺮض اﻟﺒﯿﺎﻧﺎت‬

SELECT * FROM [Category Sales For 1997]


WHERE CategoryName='Beverages'

‫ﺗﻢ ﺑﺤﻤﺪ اﷲ‬

Prog: Mohamed Youssef ٢١٠ E_Mail: Mohamed.yoyo@gmail.com


 SQL
Books
.‫ ﻋﺰب ﻣﺤﻤﺪ ﻋﺰب‬/‫ م‬، ‫ ﻣﻌﻠﻮﻣﺎت أﺳﺎﺳﯿﺔ و ﻗﻮاﻋﺪ اﻟﻠﻐﺔ‬Oracle ، ‫ﺳﻠﺴﻠﺔ ﺗﻌﻠﻢ ﺑﺴﮭﻮﻟﺔ‬ -١
.‫ ﺻﺎﻟﺢ زرﻣﺒﮫ‬/‫ د‬، SQL* Plus For Oracle ‫ﻣﻠﺨﺺ أواﻣﺮ‬ -٢
.‫ ﺻﺎﻟﺢ زرﻣﺒﮫ‬/‫ د‬، ‫ ﻟﺸﺮﻛﺔ أدوﯾﺔ‬Oracle ‫ﻛﯿﻔﯿﺔ إﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‬ -٣
.‫ ﻋﺒﺪ اﻟﺮﺣﻤﻦ ﺳﺎﻟﻢ‬/‫ أ‬، SQL Server 2000 ‫( ﻟﺒﺮﻧﺎﻣﺞ‬٢) ‫ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬Sections ‫ﻣﻠﺨﺺ‬ -٤

PDF 
.‫ ﻗﺎم ﺑﺎﻟﻨﻘﻞ واﻟﺘﺮﺟﻤﺔ أﺣﻤﺪ ﺣﺎﻣﺪ‬، SQL ‫ اﻟﻤﺮﺟﻊ اﻟﺸﺎﻣﻞ ﻓﻲ ﺟﻤﻞ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ‬ -١
.‫ ﺧﻀﺮ ﯾﻮﺳﻒ ﺗﺮزي‬/‫ أ‬، ‫ ﺑﻨﺎء اﻟﺘﻄﺒﯿﻘﺎت ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻤﻼﻗﺔ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ‬ -٢
.‫ أﺣﻤﺪ ﻛﻤﺎل‬/‫ م‬، Ms-SQL Server ‫ ﻣﺮﺟﻊ اﻷواﻣﺮ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ‬ -٣
.‫ ﻣﺤﻤﻮد ﻣﺤﻤﺪ ﻋﺒﺪ اﻟﺮازق‬/‫ أ‬، (‫ )اﻟﺠﺰء اﻷول‬SQL Server ‫ ﺗﻌﻠﻢ‬، ‫ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ‬ -٤
.‫ ﻣﺠﻼد ﻣﺸﺎري اﻟﺴﺒﻌﻲ‬/‫ أ‬، Database ‫اﻷﺳﺎﺳﯿﺎت ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ -٥
.MaaSTracK ‫ اﻟﻜﺎﺗﺐ‬، ‫ ﻟﻠﻤﺒﺘﺪﺋﯿﻦ‬SQL ‫دﻟﯿﻞ ﺗﻌﻠﻢ اﻟـ‬ -٦
.‫ إﺑﺮاھﯿﻢ دروﯾﺶ‬/‫ م‬، SQL ‫ﻣﻘﺪﻣﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺈﺳﺘﺨﺪام‬ -٧

Web Sites 


٢٠٠٨/١٢/١٣ ‫ ﺇﱄ‬٢٠٠٨/٧/١٥ ‫ﰎ ﺯﻳﺎﺭﺓ ﺍﳌﻮﺍﻗﻊ ﰲ ﺍﻟﻔﺘﺮﺓ ﻣﻦ‬

1- http://www.kutub.info/library/list.php?cat=17
2- http://www.arabteam2000-forum.com/index.php?showtopic=159394
3- http://www.arabteam2000-forum.com/index.php?showtopic=87202
4- http://www.vb4arab.com/vb/forumdisplay.php?f=34
5- http://www.arabmoheet.net/forum/default.asp?codepage=2&forum_no=16
6- http://www.tartoos.com/HomePage/Rtable/ComputerSchool/Programming/program6.htm
7- http://www.swalif.net/softs/swalif59/softs197329/
8- http://vb.vip600.com/showthread.php?t=214611
9- http://www.hiarab.net/article5880.html
10- http://www.boosla.com/showArticle.php?Sec=DB&id=23
11- http://forum.mans-fci.net/viewtopic.php?f=33&t=7680&start=0&st=0&sk=t&sd=a
12- http://www.prameg.com/vb/showthread.php?t=37742

Videos:-
13- http://www.freelearn.110mb.com/sql2000/tutorials.html

Prog: Mohamed Youssef ٢١١ E_Mail: Mohamed.yoyo@gmail.com


 
 

 
 
 

Prog: Mohamed Youssef ٢١٢ E_Mail: Mohamed.yoyo@gmail.com


‫‪Glossary‬‬
‫‪Visual Basic.Net 2005‬‬ ‫‪‬‬ ‫‪  ‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻲ ﺃﻭ ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪Activate‬‬ ‫ﺗﻨﺸﯿﻂ اﻟﻜﺎﺋﻦ )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Add Form‬‬ ‫إﺿﺎﻓﺔ ﻧﻤﻮذج ﺟﺎھﺰ‬
‫‪Add Project‬‬ ‫إﺿﺎﻓﺔ ﻣﺸﺮوع ﺟﺎھـﺰ‬
‫‪ADO .NET‬‬ ‫ﻣﻜﺘﺒﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬
‫‪Alignment‬‬ ‫ﻣﺤﺎذاة )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Alignment - Center‬‬ ‫ﻣﺤﺎذاة إﻟﻲ اﻟﻮﺳﻂ أو اﻟﺘﻮﺳﯿﻂ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Alignment - Left‬‬ ‫ﻣﺤﺎذاة اﻟﻜﺘﺎﺑﺔ إﻟﻲ إﻟﯿﺴﺎر )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Alignment - Right‬‬ ‫ﻣﺤﺎذاة اﻟﻜﺘﺎﺑﺔ إﻟﻲ إﻟﯿﻤﯿﻦ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Apostrophe‬‬ ‫اﻟﺮﻣﺰ)‪ (،‬اﻟﻔﺎﺻﻠﺔ اﻟﻌﻠﻮﯾﺔ‬
‫‪Applications‬‬ ‫اﻟﺘﻄﺒﯿﻘﺎت‬
‫‪Arithmetic‬‬ ‫ﺣﺴﺎب‬
‫‪Arithmetic Expressions‬‬ ‫اﻟﺘﻌﺒﯿﺮات اﻟﺤﺴﺎﺑﯿﺔ‬
‫‪Arithmetic Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﺤﺴﺎﺑﯿﺔ‬
‫‪Arithmetical‬‬ ‫ﺣﺴﺎﺑﻲ‬
‫‪Array‬‬ ‫اﻟﻤﺼﻔﻮﻓﺎت‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ ﻛﻮد أي ﺣﺮف أو رﻣﺰ أو ﻛﻮد أول ﺣﺮف ﻓﻲ ﺳﻠﺴﻠﺔ‬
‫) ( ‪Asc‬‬
‫ﺣﺮﻓﯿﺔ‬
‫‪Auto Size‬‬ ‫ﺗﺤﺠﯿﻢ ﺗﻠﻘﺎﺋﻲ ﻃﺒﻘﺎ ﻟﻤﺤﺘﻮي اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Back Color‬‬ ‫ﻟﻮن اﻟﺨﻠﻔﯿﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Back Style‬‬ ‫ﻧﻤﻂ اﻟﺨﻠﻔﯿﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪BackGroundImage‬‬ ‫اﻟﺘﺤﻜﻢ ﻓﻰ ﺻﻮرة اﻟﺨﻠﻔﯿﺔ ﻟﻠﻨﻤﻮذج )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪BASIC‬‬ ‫ﻛﻮد اﻟﺘﻌﻠﯿﻤﺎت اﻟﺮﻣﺰﯾﺔ ﻟﺠﻤﯿﻊ أﻏﺮاض اﻟﻤﺒﺘﺪﺋﯿﻦ وھﻮ اﺧﺘﺼﺎر‬
‫‪Beginner's All purpose Symbolic Instruction Code‬‬
‫‪Basic Concepts‬‬ ‫ﻣﻔﺎھﯿﻢ أﺳﺎﺳﯿﺔ‬
‫‪Boolean‬‬ ‫ﻣﻨﻄﻘﻲ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪Border Style‬‬ ‫ﻧﻤﻂ ﺣﺪود اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Break‬‬ ‫إﯾﻘﺎف ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺆﻗﺘﺎ ً‬
‫‪Byte‬‬ ‫ﻋﺪد ﺻﺤﯿﺢ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪Change‬‬ ‫ﺗﻐﯿﯿﺮ ﻓﻲ اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪CharacterCasing‬‬ ‫ﻣﻌﺮﻓﺔ أو ﺗﺤﺪﯾﺪ ﻣﺎ إذا ﻛﺎﻧﺖ اﻷداة ﺳﺘﺘﺪﺧﻞ ﻓﻲ ﺗﻌﺪﯾﻞ اﻟﺤﺮوف‬
‫‪Check Box‬‬ ‫ﺻﻨﺪوق اﺧﺘﺒﺎر )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫) ( ‪Chr‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺤﺮف أو اﻟﺮﻣﺰ اﻟﻤﻨﺎﻇﺮ ﻟﻜﻮد ﻣﻌﯿﻦ‬
‫‪Circle‬‬ ‫رﺳﻢ داﺋﺮة )وﺳﯿﻠﺔ ﻟﻠﻨﻤﻮذج ‪ ،‬ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Classes‬‬ ‫اﻟﺘﺼﻨﯿﻒ أو اﻟﻔﺌﺔ‬
‫‪Click‬‬ ‫ﻧﻘﺮ ﻣﻨﻔﺮد ﺑﺎﻟﺰر اﻷﯾﺴﺮ ﻟﻠﻔﺄرة )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪CLS‬‬ ‫ﻣﺴﺢ اﻟﻜﺘﺎﺑﺔ واﻟﺮﺳﻢ ﻣﻦ داﺧﻞ اﻟﻜﺎﺋﻦ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Code Window‬‬ ‫ﻧﺎﻓﺬة اﻷﻛﻮاد اﻟﺒﺮﻣﺠﺔ‬
‫‪Comma‬‬ ‫اﻟﻔﺎﺻﻠﺔ )‪(,‬‬
‫‪Command Button‬‬ ‫زر أواﻣﺮ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Comparison Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ‬
‫‪Compiler‬‬ ‫اﻟﻤﺘﺮﺟﻢ‬
‫‪Computer Languages‬‬ ‫ﻟﻐﺎت اﻟﻜﻤﺒﯿﻮﺗﺮ‬
‫‪Concatenation - String‬‬ ‫ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ‬
‫‪Concatenation Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﺮﺑﻂ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٣‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻲ ﺃﻭ ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪Condition‬‬ ‫اﻟﺸﺮط‬
‫‪Conditional Branching‬‬ ‫اﻟﺘﻔﺮع اﻟﻤﺸﺮوط‬
‫) ‪Const ( Constant‬‬ ‫ﺛﺎﺑﺖ – ﺗﻌﺮﯾﻒ اﻟﻤﺨﺰن اﻟﺜﺎﺑﺖ‬
‫‪Control Box‬‬ ‫ﺻﻨﺪوق ﺗﺤﻜﻢ ‪ ،‬ﺻﻨﺪوق اﻷدوات‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺴﻠﺴﻠﺔ اﻟﺤﺮﻓﯿﺔ اﻟﻤﻜﺎﻓﺌﺔ ﻟﻌﺪد ﻣﻌﯿﻦ أو ﻟﻤﺘﻐﯿﺮ‬
‫) (‪CStr‬‬
‫ﻋﺪدي‬
‫‪Current X‬‬ ‫اﻟﺒﻌﺪ اﻟﺤﺎﻟﻲ ﻟﻠﻜﺘﺎﺑﺔ أو اﻟﺮﺳﻢ ﻋﻦ اﻟﺤﺎﻓﺔ إﻟﯿﺴﺮي ﻟﻠﻜﺎﺋﻦ‬
‫‪Current Y‬‬ ‫اﻟﺒﻌﺪ اﻟﺤﺎﻟﻲ ﻟﻠﻜﺘﺎﺑﺔ أو اﻟﺮﺳﻢ ﻋﻦ اﻟﺤﺎﻓﺔ اﻟﯿﻤﻨﻲ ﻟﻠﻜﺎﺋﻦ‬
‫‪Customize‬‬ ‫ﺗﺨﺼﯿﺺ‬
‫‪Data Type‬‬ ‫ﻧﻮع اﻟﺒﯿﺎن )ﺣﺮﻓﻲ – ﻋﺪدي – ‪(.....‬‬
‫‪DB Click‬‬
‫)‪( Double Click‬‬ ‫ﻧﻘﺮ ﻣﺰدوج ﺑﺎﻟﺰر اﻷﯾﺴﺮ ﻟﻠﻔﺄرة )ﺣﺪث(‬
‫‪Defined Functions‬‬ ‫اﻟﺪوال اﻟﻤﻌﺮﻓﯿﺔ‬
‫‪Definition‬‬ ‫ﺗﻌﺮﯾﻒ اﻟﺪاﻟﺔ‬
‫‪Design Mode‬‬ ‫ﻧﻤﻂ اﻟﺘﺼﻤﯿﻢ‬
‫)‪Dim (Dimension‬‬ ‫إﻋﻼن ‪ ،‬ﺗﻌﺮﯾﻒ اﻟﻤﺨﺰن اﻟﻤﺘﻐﯿﺮ أو اﻟﻤﺼﻔﻮﻓﺔ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Draw Width‬‬ ‫ﺳﻤﻚ ﺧﻂ اﻟﺮﺳﻢ داﺧﻞ اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Edit‬‬ ‫ﺗﺤﺮﯾﺮ )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ(‬
‫‪Encapsulation‬‬ ‫اﻟﺘﻐﻠﯿﻒ‬
‫‪End‬‬ ‫إﻏﻼق أو إﻧﮭﺎء اﻟﺒﺮﻧﺎﻣﺞ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪End Sub‬‬ ‫إﻧﮭﺎء اﻹﺟﺮاء )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Enterprise Edition‬‬ ‫اﻟﻨﺴﺨﺔ اﻟﻤﺸﺮوﻋﺎت ﻟﺒﺮﻧﺎﻣﺞ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ‬
‫‪Enum‬‬ ‫اﻟﺒﻨﺎءات‬
‫‪Event‬‬ ‫ﺣﺪث )ﯾﻘﻊ ﻋﻠﻲ ﻛﺎﺋﻦ وﯾﺘﺄﺛﺮ ﺑﮫ(‬
‫‪Event Driven Programs‬‬ ‫اﻟﺒﺮاﻣﺞ اﻟﻤﻮﺟﮭﺔ ﺑﺎﻷﺣﺪاث‬
‫‪Event Driven‬‬ ‫اﻻﺳﺘﺠﺎﺑﺔ ﻟﻸﺣﺪاث اﻟﺘﻲ ﺗﻘﻊ ﻋﻠﯿﮫ‬
‫‪Event Handler‬‬ ‫ﻣﻌﺎﻟﺞ اﻷﺣﺪاث‬
‫‪EXE File‬‬ ‫ﻣﻠﻒ ﺗﻨﻔﯿﺬي )اﻟﺒﺮﻧﺎﻣﺞ اﻟﻨﮭﺎﺋﻲ(‬
‫‪Expression‬‬ ‫ﺗﻌﺒﯿﺮ )ﻗﺪ ﯾﻜﻮن ﻧﺼﺎً أو ﺣﺴﺎﺑﺎً أو ‪(......‬‬
‫‪False‬‬ ‫ﺧﻄﺄ‬
‫‪File‬‬ ‫ﻣﻠﻒ )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ(‬
‫‪Fill Color‬‬ ‫ﻟﻮن ﺗﻈﻠﯿﻞ اﻟﺮﺳﻮﻣﺎت أو ﻟﻮن اﻟﺘﻌﺒﺌﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Fill Style‬‬ ‫ﻧﻤﻂ ﺗﻈﻠﯿﻞ اﻟﺮﺳﻮﻣﺎت أو ﻟﻮن اﻟﺘﻌﺒﺌﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫) ( ‪Fix‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺠﺰء اﻟﺼﺤﯿﺢ اﻟﻤﻮﺟﻮد ﻓﻲ ﻋﺪد ﺣﻘﯿﻘﻲ ﻣﻌﯿﻦ‬
‫‪Font‬‬ ‫ﺧﻂ اﻟﻜﺘﺎﺑﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪For..... Next …..‬‬ ‫ﺣﻠﻘﺔ ﺗﻜﺮارﯾﺔ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Fore Color‬‬ ‫ﻟﻮن اﻷﻣﺎﻣﯿﺔ ‪ ،‬ﻟﻮن ﺧﻂ اﻟﻜﺘﺎﺑﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Form‬‬ ‫ﻧﻤﻮذج )اﻟﻜﺎﺋﻦ اﻟﺮﺋﯿﺴﻲ ﻓﻲ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ(‬
‫‪Form Layout Window‬‬ ‫ﻧﺎﻓﺬة اﻟﺘﺨﻄﯿﻂ ﻟﻠﻨﻤﻮذج‬
‫‪Form Window‬‬ ‫ﻧﺎﻓﺬة اﻟﻨﻤﻮذج‬
‫‪Form1.Top‬‬ ‫ﺑُﻌﺪ ﻧﺎﻓﺬة اﻟﻨﻤﻮذج ﻋﻨﺪ ﺣﺎﻓﺔ اﻟﺸﺎﺷﺔ اﻟﻌﻠﯿﺎ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪FormBorderStyle‬‬ ‫اﻟﺘﺤﻜﻢ ﻓﻰ اﻷﻃﺎر )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Function‬‬ ‫داﻟﺔ – ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻨﺘﯿﺠﺔ ﻗﺪ ﺗﻜﻮن )ﺣﺮﻓﯿﺔ ‪ ،‬ﻋﺪدﯾﺔ ‪(..... ،‬‬
‫‪GroupBox‬‬ ‫وﻋﺎء ﺗﺠﻤﯿﻊ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Hardware‬‬ ‫اﻷﺟﮭﺰة اﻟﻤﺎدﯾﺔ‬
‫‪Height‬‬ ‫ارﺗﻔﺎع )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Help‬‬ ‫ﻣﺴﺎﻋﺪة‬
‫‪High Level Language‬‬ ‫اﻟﻠﻐﺔ ﻋﺎﻟﯿﺔاﻟﻤﺴﺘﻮى )ﻟﻐﺔ ﯾﻔﮭﻤﮭﺎ اﻹﻧﺴﺎن(‬
‫‪Hscrollbar‬‬ ‫ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻷﻓﻘﻲ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٤‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻲ ﺃﻭ ﺍﻟﻮﻇﻴﻔﺔ‬
‫أﻛﺒﺮ ﺗﻐﯿﯿﺮ ﻓﻲ ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻻﻓﻘﻰ‬
‫‪HScrollbar -LargeChange‬‬
‫)ﺧﺎﺻﯿﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ(‬
‫أﻗﻞ ﺗﻐﯿﯿﺮ ﻓﻲ ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻻﻓﻘﻰ‬
‫‪HScrollbar -SmallChange‬‬
‫)ﺧﺎﺻﯿﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ(‬
‫‪Icon‬‬ ‫رﻣﺰ أو أﯾﻘﻮﻧﺔ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪If….Then ….. Else…. Endif‬‬ ‫ﺟﻤﻠﺔ ﺷﺮﻃﯿﺔ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪PictureBox‬‬ ‫أداة رﺳﻢ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Image‬‬ ‫أﺿﺎﻓﺔ ﺻﻮرة اﻟﻰ ﻛﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Inheritance‬‬ ‫اﻟﺘﻮرﯾﺚ )‪(OOP‬‬
‫داﻟﺔ ﺗﻌﺮض رﺳﺎﻟﺔ داﺧﻞ ﺻﻨﺪوق ﺣﻮار‪ ،‬ﺛﻢ ﯾﻨﺘﻈﺮ ﻣﻦ اﻟﻤﺴﺘﺨﺪم إدﺧﺎل ﻧﺺ أو‬
‫) ( ‪InputBox‬‬
‫اﻟﻨﻘﺮ ﻋﻠﻰ أي زر ﻣﻦ أزرار ﺻﻨﺪوق اﻟﺤﻮار‪.‬‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻜﺎن ﺣﺮف أو ﻣﻜﺎن ﻛﻠﻤﺔ ﻣﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﮭﺎ داﺧﻞ‬
‫) ( ‪Instr‬‬
‫ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ‪.‬‬
‫‪Integer‬‬ ‫ﻋﺪد ﺻﺤﯿﺢ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪IntelliSense list‬‬ ‫أﺳﺘﺸﻌﺎر ذﻛﻲ )ھﻰ اﻟﻘﺎﺋﻤﺔ اﻟﺘﻰ ﺗﻈﮭﺮ ﻋﻨﺪ ﻛﺘﺎﺑﺔ اﻟﻜﻮد(‬
‫‪Interpreter‬‬ ‫اﻟﻤﻔﺴﺮ‬
‫‪Interval‬‬ ‫ﻓﺘﺮة زﻣﻨﯿﺔ ﻣﺴﺘﻐﺮﻗﺔ )ﺗﻔﺄوت ﻋﻠﻰ ﻓﺘﺮات ‪ ،‬ﺧﺎﺻﯿﺔ ﻟﻤﯿﻘﺎﺗﻲ(‬
‫‪Label Control‬‬ ‫أداة اﻟﻌﻨﻮان )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Language‬‬ ‫ﻟﻐﺔ‬
‫) ( ‪LCase‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﯾﻞ اﻟﺤﺮوف اﻹﻧﺠﻠﯿﺰﯾﺔ اﻟﻜﺒﯿﺮة إﻟﻲ اﻟﺼﻐﯿﺮة‬
‫‪Left‬‬ ‫ﯾﺴﺎر )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫) ( ‪Len‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ ﻃﻮل أي ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ‬
‫‪Limited looping‬‬ ‫اﻟﺘﻜﺮار اﻟﻤﺤﺪد‬
‫‪Line‬‬ ‫وﺳﯿﻠﺔ رﺳﻢ ﺧﻂ )ﻣﻦ وﺳﺎﺋﻞ اﻟﻨﻤﻮذج(‬
‫‪Load‬‬ ‫ﺗﺤﻤﯿﻞ اﻟﻨﻤﻮذج )إﺟﺮاءات اﻟﺤﺪث(‬
‫‪Logic - logical‬‬ ‫ﻣﻨﻄﻖ – ﻣﻨﻄﻘﻲ‬
‫‪Logical Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﻤﻨﻄﻘﯿﺔ‬
‫‪Long‬‬ ‫ﻋﺪد ﺻﺤﯿﺢ ﻃﻮﯾﻞ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪Long Integer‬‬
‫‪Low Level Language‬‬ ‫اﻟﻠﻐﺔ اﻟﻤﺘﺪﻧﯿﺔ ‪ -‬ﻣﻨﺨﻔﻀﺔ ‪ -‬اﻟﻤﺴﺘﻮى )ﻟﻐﺔ ﯾﻔﮭﻤﮭﺎ اﻟﻜﻤﺒﯿﻮﺗﺮ(‬
‫‪Macros‬‬ ‫اﻟﻤﺎﻛﺮو‬
‫‪Main Window‬‬ ‫اﻟﻨﺎﻓﺬة اﻟﺮﺋﯿﺴﯿﺔ‬
‫‪MaxButton‬‬ ‫زر ﺗﻜﺒﯿﺮ اﻟﻨﺎﻓﺬة )ﻣﻦ ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج(‬
‫‪MDI‬‬ ‫ﻧﻤﻮذج واﺟﮭﺔ اﻟﻤﺴﺘﺨﺪم اﻟﻤﺘﻌﺪدة‬
‫‪Multiple Document Interface Form‬‬
‫‪Menu Bar‬‬ ‫ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ‬
‫‪MessageBox.Show‬‬ ‫داﻟﺔ ﻋﺮض اﻟﺮﺳﺎﺋﻞ اﻟﺜﺎﺑﺘﺔ ﺑﺄى ﻃﺮق‬
‫‪Method‬‬ ‫وﺳﯿﻠﺔ‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺟﺰء ﻣﻦ ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ ﺑﺪءًا ﻣﻦ ﺣﺮف ﻣﻌﯿﻦ‬
‫) ( ‪Mid‬‬
‫داﺧﻞ ھﺬه اﻟﺴﻠﺴﻠﺔ‪.‬‬
‫‪Min Button‬‬ ‫زر ﺗﺼﻐﯿﺮ اﻟﻨﺎﻓﺬة )ﻣﻦ ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج(‬
‫‪Module‬‬ ‫وﺣﺪة ﻧﻤﻄﯿﺔ )ﺟﺰء اﻟﺒﺮﻣﺠﺔ(‬
‫‪Mouse Down‬‬ ‫زر اﻟﻔﺎرة ﻟﻠﻀﻐﻂ ﻋﻠﯿﮫ )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Mouse Move‬‬ ‫ﺣﺮﻛﺔ زر اﻟﻔﺎرة )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Mouse Up‬‬ ‫ﺗﺮك زر اﻟﻔﺎرة ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﯿﮫ )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫) ( ‪MsgBox‬‬ ‫داﻟﺔ ﺗﻌﺮض رﺳﺎﻟﺔ ﻓﻲ ﺻﻨﺪوق ﺣﻮار‬
‫‪MultiLine‬‬ ‫اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﺻﻨﺪوق اﻟﻨﺼﻮص ﻓﻲ ﻋﺪة اﺳﻄﺮ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﺺ(‬
‫‪Multimedia‬‬ ‫اﻟﻮﺳﺎﺋﻂ اﻟﻤﺘﻌﺪدة‬
‫‪Multiple Branching‬‬ ‫اﻟﺘﻔﺮع اﻟﻤﺘﻌﺪد‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٥‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻲ ﺃﻭ ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪Name‬‬ ‫اﻻﺳﻢ اﻟﺒﺮﻣﺠﻲ ﻟﻠﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻓﻲ ﺟﻤﯿﻊ اﻟﻜﺎﺋﻨﺎت (‬
‫‪Name Space‬‬ ‫ﻣﺠﺎﻻت اﻷﺳﻤﺎء‬
‫‪New Project‬‬ ‫ﻣﺸﺮوع ﺟﺪﯾﺪ‬
‫‪New Value‬‬ ‫اﻟﻘﯿﻤﺔ اﻟﺠﺪﯾﺪة اﻟﺘﻲ ﯾﺘﻢ إﺿﺎﻓﺘﮭﺎ ﻟﻠﺨﻮاص‬
‫‪Object‬‬ ‫ﻛﺎﺋﻦ‬
‫‪Object Behavior‬‬ ‫ﺳﻠﻮك اﻟﻜﺎﺋﻦ‬
‫‪Object Name‬‬ ‫اﺳﻢ اﻟﻜﺎﺋﻦ‬
‫‪Object Oriented Programming‬‬ ‫اﻟﺒﺮﻣﺠﺔ اﻟﻤﻮﺟﮭﺔ ﺑﺎﻷﺣﺪاث‬
‫‪OOP‬‬ ‫اﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﯿﻨﯿﺔ اﻟﺘﻮﺟﮭﯿﺔ ‪ -‬اﻟﺒﻨﺎﺋﯿﺔ ‪-‬‬
‫‪Object Oriented Programming‬‬
‫‪Open Project‬‬ ‫ﻓﺘﺢ ﻣﺸﺮوع‬
‫‪Operator‬‬ ‫ﻣﻌﺎﻣﻞ‬
‫‪Options‬‬ ‫ﺧﯿﺎرات‬
‫‪Paint‬‬ ‫ﺣﺪث رﺳﻢ اﻟﻨﻤﻮذج ﻋﻠﻰ اﻟﺸﺎﺷﺔ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Picture‬‬ ‫ﺻﻮرة )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Pointer‬‬ ‫اﻟﻤﺆﺷﺮ‬
‫‪Print‬‬ ‫وﺳﯿﻠﺔ ﻃﺒﺎﻋﺔ )ﻣﻦ وﺳﺎﺋﻞ اﻟﻨﻤﻮذج(‬
‫‪Procedure‬‬ ‫إﺟﺮاء‬
‫‪Professional Edition‬‬ ‫اﻟﻨﺴﺨﺔ اﻟﻤﺘﺨﺼﺼﯿﻦ ﻟﺒﺮﻧﺎﻣﺞ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ‬
‫‪Project Explorer Window‬‬ ‫ﻧﺎﻓﺬة ﻣﺴﺘﻜﺸﻒ اﻟﻤﺸﺮوع‬
‫‪Project Window‬‬ ‫ﻧﺎﻓﺬة اﻟﻤﺸﺮوع‬
‫‪Properties Window‬‬ ‫ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ‬
‫‪Puse Button‬‬ ‫ﺿﻐﻂ اﻟﺰر )ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ ‪ ،‬اﻟﻔﺎرة(‬
‫‪Radio Button‬‬ ‫زر اﺧﺘﯿﺎر )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Randomize‬‬ ‫وﺳﯿﻠﺔ ﻟﺘﻮزﯾﻊ اﻟﺒﯿﺎﻧﺎت ﻋﺸﻮاﺋﯿﺎً‬
‫‪ReadOnly‬‬ ‫ﺟﻌﻞ اﻟﻜﺎﺋﻦ ﻟﻠﻘﺮاءة ﻓﻘﻂ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Rem‬‬ ‫ﺟﻤﻠﺔ ﻟﻮﺿﻊ ﺗﻌﻠﯿﻖ ﻋﻠﻰ اﻻﻛﻮاد اﻟﺒﺮﻣﺠﯿﺔ ﻓﻲ ﻧﺎﻓﺬة اﻟﺒﺮﻣﺠﺔ‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ ﻻﺳﺘﺒﺪال ﺣﺮف أو ﻛﻠﻤﺔ أو ﺟﺰء ﻣﻦ ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﺑﺤﺮف آﺧﺮ أو‬
‫) ( ‪Replace‬‬
‫ﻛﻠﻤﺔ أو ﺳﻠﺴﻠﺔ أﺧﺮى‪.‬‬
‫‪Reserved Functions‬‬ ‫اﻟﺪوال اﻟﻤﺤﻔﻮﻇﺔ‬
‫‪RightToLeft‬‬ ‫اﻟﺘﺤﻮﯾﻞ اﻻﺗﺠﺎة ﻣﻦ إﻟﯿﻤﯿﻦ أﻟﻰ إﻟﯿﺴﺎر )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ ﺗﻮﻟﯿﺪ ﻋﺪد ﺣﻘﯿﻘﻲ ﻋﺸﻮاﺋﻲ ﻗﯿﻤﺘﮫ أﻛﺒﺮ ﻣﻦ أو ﺗﺴﺎوي اﻟﺼﻔﺮ وأﻗـﻞ‬
‫) ( ‪Rnd‬‬
‫ﻣﻦ اﻟﻮاﺣﺪ اﻟﺼﺤﯿﺢ‪.‬‬
‫‪Run‬‬ ‫ﺗﻨﻔﯿﺬ )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ(‬
‫‪Run Mode‬‬ ‫ﻧﻤﻂ اﻟﺘﺸﻐﯿﻞ‬
‫‪Save Form‬‬ ‫ﺣﻔﻆ اﻟﻨﻤﻮذج‬
‫‪Save Project‬‬ ‫ﺣﻔﻆ اﻟﻤﺸﺮوع‬
‫‪Scale Height‬‬ ‫ﻋﺪد اﻟﻮﺣﺪات اﻟﺮأﺳﯿﺔ ﻟﻠﻜﺎﺋﻦ و ھﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻣﻊ اﻟﺮﺳﻮﻣﺎت‬
‫‪Scale Mode‬‬ ‫ﻧﻤﻂ وﺣﺪة اﻟﻘﯿﺎس ﻓﻲ اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Scale Width‬‬ ‫ﻋﺪد اﻟﻮﺣﺪات اﻷﻓﻘﯿﺔ ﻟﻠﻜﺎﺋﻦ و ھﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻣﻊ اﻟﺮﺳﻮﻣﺎت‬
‫‪Scrollbar – Max Value‬‬
‫) ‪( Maximum Value‬‬ ‫أﻛﺒﺮ ﻗﯿﻤﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ‬
‫‪Scrollbar – Min Value‬‬
‫) ‪( Minimum Value‬‬ ‫أﻗﻞ ﻗﯿﻤﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ‬
‫‪SDLC‬‬ ‫دورة ﺣﯿﺎة ﺗﻄﻮﯾﺮ اﻟﻨﻈﺎم‬
‫‪System Development Life Cycle‬‬
‫‪Select a control‬‬ ‫أﺧﺘﯿﺎر اﻟﺰر‬
‫‪Semi Colon‬‬ ‫اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ );(‬
‫‪Setup Project‬‬ ‫إﻋﺪاد اﻟﻤﺸﺮوع ﻟﻠﻨﺸـﺮ‬
‫‪Single‬‬ ‫ﻋﺪدي ﺣﻘﯿﻘﻲ )ﻧﻮع اﻟﺒﯿﺎن(‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٦‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻲ ﺃﻭ ﺍﻟﻮﻇﻴﻔﺔ‬
‫‪Single Precision‬‬ ‫أﺣﺎدى اﻟﺪﻗﺔ‬
‫‪Size Mode‬‬ ‫ﻧﻤﻂ ﻋﺮض اﻟﺼﻮرة ﻓﻰ اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﺼﻨﺪوق اﻟﺼﻮر(‬
‫‪Snap Lines‬‬ ‫ﺧﻄﻮط اﻟﺰرﻗﺎء اﻟﺘﻰ ﺗﻈﮭﺮ ﻋﻨﺪ ﺿﺒﻂ اﻟﻤﺠﺎذاة اﻟﻜﺎﺋﻨﺎت‬
‫‪Snippets‬‬ ‫اﻷواﻣﺮ اﻟﺠﺎھﺰة ﻓﻰ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪٢٠٠٥‬‬
‫‪Software‬‬ ‫اﻟﺒﺮﻣﺠﯿﺎت‬
‫‪Solution‬‬ ‫اﻟﺤﻞ‬
‫‪Solution Explorer‬‬ ‫ﻧﺎﻓﺬة اﻟﺤﻞ‬
‫‪Source Program‬‬ ‫اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺼﺪر‬
‫‪Special Symbols‬‬ ‫اﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ‬
‫‪SQL‬‬ ‫ﻟﻐﺔ اﻻﺳﺘﻌﻼﻣﺎت اﻟﮭﯿﻜﻠﯿﺔ‬
‫‪Structured Query Language‬‬
‫‪Stander‬‬ ‫ﻗﯿﺎﺳﻲ‬
‫‪Stander Edition‬‬ ‫اﻟﻨﺴﺨﺔ اﻟﻘﯿﺎﺳﯿﺔ ﻟﺒﺮﻧﺎﻣﺞ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ‬
‫‪Statement‬‬ ‫اﻟﺠُﻤﻞ اﻟﺒﺮﻣﺠﯿﺔ‬
‫‪Stretch‬‬ ‫ﺗﺤﺠﯿﻢ اﻟﺼﻮرة اﻟﻤﻮﺟﻮدة داﺧﻞ ﺻﻨﺪوق اﻟﺮﺳﻢ‬
‫‪String‬‬ ‫ﺑﯿﺎن ﻟﺴﻠﺴﻠﺔ ﻧﺼﯿﺔ‬
‫‪String Expressions‬‬ ‫اﻟﺘﻌﺒﯿﺮات اﻟﻨﺼﯿﺔ‬
‫‪Structured Programming‬‬ ‫اﻟﺒﺮﻣﺠﺔ اﻟﮭﯿﻜﻠﯿﺔ‬
‫‪Sub‬‬ ‫ﺑﺪاﯾﺔ اﻹﺟﺮاء‬
‫‪Symbol‬‬ ‫رﻣﺰ‬
‫‪Text Box Control‬‬ ‫أداة ﺻﻨﺪوق اﻟﻨﺺ‬
‫‪TextBox‬‬ ‫ﺻﻨﺪوق اﻟﻨﺺ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪TextBox – Text‬‬ ‫ﺧﺎﺻﯿﺔ اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﺻﻨﺪوق اﻟﻨﺺ‬
‫) ( ‪TimeOfDay‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻰ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻮﻗﺖ ﻓﻰ إﻟﯿﻮم‬
‫‪Timer‬‬ ‫اﻟﺘﻮﻗﯿﺖ – اﻟﻤﯿﻘﺎﺗﻲ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Title Bar‬‬ ‫ﺷﺮﯾﻂ اﻟﻌﻨﻮان‬
‫‪Toolbar‬‬ ‫ﺷﺮﯾﻂ اﻷدوات‬
‫‪Toolbox‬‬ ‫ﺻﻨﺪوق أدوات‬
‫‪Tools‬‬ ‫أدوات )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ(‬
‫‪True‬‬ ‫ﺻﻮاب‬
‫…… ‪Try ….. Catch‬‬ ‫ﻟﺘﻔﺎدى اﻻﺧﻄﺎء اﻟﻤﻨﻄﻘﯿﺔ واﻟﺒﺮﻣﺠﯿﺔ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ )ﻗﻨﺺ اﻻﺧﻄﺎء(‬
‫) ( ‪UCase‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﯾﻞ اﻟﺤﺮوف اﻹﻧﺠﻠﯿﺰﯾﺔ اﻟﺼﻐﯿﺮة إﻟﻲ اﻟﻜﺒﯿﺮة‬
‫‪Unconditional Branching‬‬ ‫اﻟﺘﻔﺮع اﻟﻐﯿﺮ اﻟﻤﺸﺮوط‬
‫‪User Interface‬‬ ‫واﺟﮭﺔ اﻟﻤﺴﺘﺨﺪم‬
‫‪V.ScrollBar‬‬ ‫ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ رأﺳﻲ‬
‫) ( ‪Val‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻘﯿﻤﺔ اﻟﻌﺪدﯾﺔ ﻟﺴﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ أو ﻣﺘﻐﯿﺮ ﺣﺮﻓﻲ‬
‫‪Value‬‬ ‫ﻗﯿﻤﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Variable‬‬ ‫ﻣﺘﻐﯿﺮ‬
‫‪View‬‬ ‫ﻋﺮض )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ ﻣﻦ ﺧﻼﻟﮭﺎ إﻇﮭﺎر اﻟﻨﻮاﻓﺬ(‬
‫‪Visible‬‬ ‫ﻇﮭﻮر اﻟﻜﺎﺋﻦ أو إﺧﻔﺎؤه )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Visual Basic‬‬ ‫اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ‬
‫‪Visual Studio.Net‬‬ ‫ﺣﺰﻣﺔ اﻟﺒﺮاﻣﺞ اﻟﺘﻰ ﺗﺤﺘﻮى ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻰ‬
‫‪Width‬‬ ‫ﻋﺮض )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت ﻟﻘﯿﺎس أو ﻟﻀﺒﻂ ﻋﺮﺿﮭﺎ(‬
‫‪Working Area‬‬ ‫ﻧﺎﻓﺬة ﻣﻨﻄﻘﺔ ﻋﻤﻞ‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٧‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


‫‪References‬‬
‫‪Books ‬‬
‫‪ -١‬د‪ /‬ﺟﻤﺎل ﻋﺒﺪ اﻟﻌﻈﯿﻢ‪ :‬ﻣﻘﺪﻣﺔ ﻓﻲ اﻟﺒﺮﻣﺠﺔ اﻟﮭﯿﻜﻠﯿﺔ ﺑﺈﺳﺘﺨﺪام ‪ ، Visual Basic‬ﺟﺎﻣﻌﺔ ﻗﻨﺎة اﻟﺴﻮﯾﺲ ‪ ،‬ﻛﻠﯿﺔ اﻟﮭﻨﺪﺳﺔ‪.‬‬
‫‪ -٢‬أ‪.‬د‪ /‬أﺣﻤ ﺪ ﻓﮭﻤ ﻲ ﻣﺤ ﺮوس‪ :‬ﻣﻘﺪﻣ ﺔ اﻟﺒﺮﻣﺠ ﺔ ﺑﺈﺳ ﺘﺨﺪام ‪ ، Visual Basic.Net 2005‬ﻣ ﺎدة اﻟﻜﻤﺒﯿ ﻮﺗﺮ ‪ -‬اﻟ ﺼﻒ اﻟﺜﺎﻟ ﺚ‬
‫اﻷﻋﺪادي ‪ ،‬ﻟﻠﻌﺎم اﻟﺪراﺳﻲ ‪.٢٠٠٩/٢٠٠٨‬‬
‫‪ -٣‬أ‪ /‬ﺳﻮزان ﻣﺮزوق ‪ ..‬أ‪ /‬ﺧﺎﻟﺪ اﻟﺴﻌﺪﻧﻲ‪ :‬دﻟﯿﻞ اﻟﻄﺎﻟﺐ ﻟﻤﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ وﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﻤﻌﻠﻮﻣﺎت ‪ ،‬اﻟﺼﻒ اﻷول اﻟﺜﺎﻧﻮي اﻟﻌ ﺎم‬
‫‪ ،‬ﻟﻠﻌﺎم اﻟﺪراﺳﻲ ‪.٢٠٠٩/٢٠٠٨‬‬
‫‪ -٤‬أ‪ /‬ﻣﺤﻤ ﺪ أﺣﻤ ﺪ ﯾﻮﺳ ﻒ‪ :‬ﺑﺮﻣﺠ ﺔ اﻟﻤ ﺸﺎرﯾﻊ اﻟﻤ ﺴﺘﺨﺪﻣﺔ ﻓ ﻲ اﻟﻤ ﻨﮭﺞ "اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ دوت ﻧ ﺖ ‪ ،"٢٠٠٥‬اﻟ ﺼﻒ اﻷول‬
‫اﻟﺜﺎﻧﻮى اﻟﻌﺎم – اﻟﺠﺰء اﻟﺨﺎص ﺑﻠﺘﻌﻠﻢ اﻷﻟﻜﺘﺮوﻧﻲ ‪ ،‬ﻟﻠﻌﺎم اﻟﺪراﺳﻲ ‪.٢٠٠٩/٢٠٠٨‬‬

‫‪Books ‬‬
‫‪ -١‬ﺗ ﺄﻟﯿﻒ ﻣﺎﯾﻜ ﻞ ھﺎﻟﻔﺮﺳ ﻮن ‪ ،‬ﺗﺮﺟﻤ ﺔ ﻣﺮﻛ ﺰ اﻟﺘﻌﺮﯾ ﺐ واﻟﺒﺮﻣﺠ ﺔ ﺑ ﺪار اﻟﻌﺮﺑﯿ ﺔ ﻟﻠﻌﻠ ﻮم‪ :‬اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ دوت ﻧ ﺖ ‪٢٠٠٥‬‬
‫" ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ ‪.٢٠٠٦‬‬

‫‪PDF, exe ‬‬


‫إﻋﺪاد ﻓﺮﯾﻖ ﻋﻤﻞ ﻣﻮﻗﻊ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب‪ :‬ﻣﺠﻠﺔ ﻣﻮﻗﻊ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب ‪ ،‬اﻟﻌﺪد اﻷول ﯾﻨﺎﯾﺮ ‪.٢٠٠٨‬‬ ‫‪-١‬‬
‫ﺗﺄﻟﯿﻒ ‪ :Visual Lover‬ﻃﺮﯾﻘﺔ ﺗﺼﻤﯿﻢ أﻟﮫ اﻟﺤﺎﺳﺒﺔ ﺑﺈﺳﺘﺨﺪام ‪ ، VB.Net‬ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ‪.‬‬ ‫‪-٢‬‬
‫أ‪ /‬ﺣﺴﻦ ﻋﺜﻤﺎن ﻗﺤﻮم‪ :‬ﺗﻌﻠﻢ ﻟﻐﺔ ‪ Visual Basic‬ﻟﻠﻤﺒﺘﺪﺋﯿﻦ واﻟﻤﺘﻮﺳﻄﯿﻦ ‪ ،‬ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ‪.‬‬ ‫‪-٣‬‬
‫م‪ /‬ﺳﺎﻣﺢ ﺳﻨﻮﺳﻲ‪ :‬ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﺒﺔ )‪ ، ADO (OLEDB‬ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ‪.‬‬ ‫‪-٤‬‬
‫ﺑﻮاﺳﻄﺔ ‪ : Youssef‬دورة ﻛﺎﻣﻠﺔ ﻓﻲ ‪ ، ADO.Net‬ﻣﻨﺘﺪي ﻋﺮب ﻧﺎو‪.‬‬ ‫‪-٥‬‬
‫ﺑﻮاﺳ ﻄﺔ ‪ : Kenana‬أﺣ ﺪث اﻟﺘﻄﺒﯿﻘ ﺎت ﻟﺒﺮﻧ ﺎﻣﺞ اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ دوت ﻧ ﺖ ‪ ، Application Events ٢٠٠٥‬ﻣﻨﺘ ﺪي‬ ‫‪-٦‬‬
‫ﻋﺮب ﻧﺎو‪.‬‬
‫إﻋﺪاد ﻓﺮﯾﻖ أﻋﻀﺎء اﻟﻤﻨﺘﺪي‪ :‬ﻓﻲ رﺣﺎب ‪ ، .Net Framework‬ﻣﻨﺘﺪي ﻓﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب‪.‬‬ ‫‪-٧‬‬
‫اﻟﻜﺎﺗﺐ اﻟﻤﺨﻠﺐ اﻟﺠﺎرح‪ :‬دورة ﺗﻌﻠﯿﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺑﺄﺳﮭﻞ اﻟﻄﺮق " ‪ ،‬ﻣﻨﺘﺪى ﻓﯿﺠﻮال ﺑﯿﺴﻚ‪.‬‬ ‫‪-٨‬‬
‫اﻟﻜﺎﺗﺐ اﻻﻣﺒﺮاﻃﻮر ‪ :XMT‬ﺗﺤﺰﯾﻢ ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ ‪ ٢٠٠٥‬ﻋﻤﻞ اﻟـ ‪ ، Setup‬ﻣﻨﺘﺪي اﻟﻌﺎﺻﻔﺔ‪.‬‬ ‫‪-٩‬‬
‫أ‪ /‬ﻋﻼء ﺟﻤﻌﮫ‪ :‬ﺗﻌﻘﺐ وﺗﺼﺤﯿﺢ اﻷﺧﻄﺎء ﻓﻲ اﻟﺪوت ﻧﺖ ‪ ،‬ﻣﻨﺘﺪي اﻟﻤﺤﯿﻂ اﻟﻌﺮﺑﻲ ‪.‬‬ ‫‪-١٠‬‬
‫ﺗﺄﻟﯿﻒ م‪ /‬ﺷ ﺎﻛﺮ ‪ ،‬ﺗﺠﻤﯿ ﻊ ﻓﺮﯾ ﻖ ﺑﯿﻮﻛ ﻮم ﻟﻠﺘﻜﻨﻮﻟﻮﺟﯿ ﺎ‪ :‬ﻣ ﺪﺧﻞ إﻟ ﻲ ‪ ، VB.Net‬اﻟﻤﻮﺳ ﻮﻋﺔ اﻟﻌﺮﺑﯿ ﺔ ﻟﻠﻜﻤﺒﯿ ﻮﺗﺮ واﻹﻧﺘﺮﻧ ﺖ ‪،‬‬ ‫‪-١١‬‬
‫ﻗﺴﻢ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ‪ ،‬ﺳﻠﺴﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ اﻷﻟﻜﺘﺮوﻧﯿﺔ‪.‬‬
‫م‪ /‬ﺗﺮﻛﻲ اﻟﻌـﺴﯿﺮي‪ :‬ﺑﺮﻣﺠﺔ أﻃﺎر ﻋﻤﻞ ﺑﺈﺳﺘﺨﺪام ‪ ، Visual Basic.Net‬اﻟﻄﺒﻌﺔ اﻻوﻟﻲ ‪.٢٠٠٣‬‬ ‫‪-١٢‬‬
‫أ‪ /‬ﻋﺒﺪ اﻟﺮﺣﻤﻦ ‪ ..‬أ‪ /‬ﻓﮭﻤﻲ ﯾﺎﺳﯿﻦ‪:‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺼﻮر واﻟﺮﺳﻢ ‪ ،‬ﻣﻨﺘﺪي اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ‪.‬‬ ‫‪-١٣‬‬
‫م‪ /‬إﺣ ﺴﺎن ﻣﺰھ ﺮ رﺷ ﯿﺪ‪ :‬ﻣﻠﺨ ﺼﺎت ﻓ ﻲ ‪ ، (٢) Visual Basic.Net 2003‬اﻟﻤﺮﻛ ﺰ اﻟﻌ ﺎﻟﻲ ﻟﻠﻤﮭ ﻦ اﻟ ﺸﺎﻣﻠﺔ درﻧ ﺔ ‪ ،‬ﻗ ﺴﻢ‬ ‫‪-١٤‬‬
‫اﻟﺤﺎﺳﻮب ‪.٢٠٠٥ ،‬‬
‫أ‪ /‬ﻣﺤﻤﺪ اﻟﻔﺮح‪ :‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﺑﺮﻧﺎﻣﺞ ﻗﺎرئ اﻟﻜﺘﺐ اﻟﻜﺘﺮوﻧﯿﺔ ‪ ، PDF‬ﻣﻨﺘﺪﯾﺎت ﻛﺘﺎب اﻟﻌﺮب ‪.‬‬ ‫‪-١٥‬‬
‫م‪ /‬ﻣﺤﻤﺪ ﻋﻠﻲ ﻛﻨﯿﻔﻮ‪ :‬ﺗﻌﻠﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻷﺻﺪارة اﻷوﻟﻲ‪.‬‬ ‫‪-١٦‬‬
‫م‪ /‬ﻣﺤﻤﺪ ﻋﻠﻲ ﻛﻨﯿﻔﻮ‪ :‬ﺗﻌﻠﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻷﺻﺪارة اﻟﺜﺎﻧﯿﺔ‪.‬‬ ‫‪-١٧‬‬
‫أ‪.‬م‪ /‬ﻣﺤﻤﺪ اﻟﺤﺎج‪ :‬ﻣﺤﺎﺿﺮات ﻣﺎدة ‪ ) VB.Net 2005‬ﻧﻈﺮي ‪ -‬ﻋﻤﻠﻲ (‪.‬‬ ‫‪-١٨‬‬
‫أ‪ /‬ﻏﺪﯾﺮ ﺳﮭﯿﻞ ﻣﺤﻤﺪ‪ :‬إﻋﺪاد اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ ‪.٢٠٠٥‬‬ ‫‪-١٩‬‬
‫أ‪ /‬ﻣﺤﻤﻮد ﺻﻘﺮ‪ :‬ﻣﺪﺧﻞ إﻟﻲ ‪.Visual Basic.Net 2005‬‬ ‫‪-٢٠‬‬
‫ﺗﺄﻟﯿﻒ أﻧﺪروﻓﻮس ‪ ،‬ﺗﺮﺟﻤﺔ م‪ /‬ﻣﺤﻤﺪ ﻋﻠﻲ ﯾﻮﺳﻒ‪ :‬ﻣﻘﺪﻣﺔ ﻓﻲ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻟﻄﺒﻌﺔ اﻷوﻟﻲ ‪.٢٠٠٦‬‬ ‫‪-٢١‬‬
‫اﻟﻜﺎﺗﺐ ﻏﯿﺮ ﻣﻌﺮوف‪ :‬ﻛﯿﻔﯿﺔ ﺗﺤﺰﯾﻢ ﺑﺮاﻣﺞ ‪.VB.Net 2005‬‬ ‫‪-٢٢‬‬
‫ﺗﺄﻟﯿﻒ ‪ :Ahmed Hattar‬أﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪ SQL‬ﺑﺒﺮﻧﺎﻣﺞ ‪.VB.Net 2005‬‬ ‫‪-٢٣‬‬
‫ﺗﺄﻟﯿﻒ ‪ :Fahmyessia‬ﺗﺤﺰﯾﻢ اﻟﺒﺮاﻣﺞ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪.٢٠٠٥‬‬ ‫‪-٢٤‬‬
‫م‪ /‬ﻣﺤﻤ ﺪ ﻋﺒ ﺪ اﻟﻨﺎﺻ ﺮ ﺧﻄﯿ ﺐ‪ :‬اﻟ ﻮﺟﯿﺰ ﻓ ﻲ اﻟﺠﺪﯾ ﺪ ‪ ،‬أﺳ ﺘﺜﻤﺮ اﻟﻠﻐ ﺔ ﺑﻜ ﻞ ﻃﺎﻗﺘﮭ ﺎ ‪ ، Visual Basic.Net 2005‬اﻟﻄﺒﻌ ﺔ‬ ‫‪-٢٥‬‬
‫اﻷوﻟﻲ ‪.٢٠٠٥‬‬
‫م‪ /‬ﻣﺤﻤﺪ ﺟﻮدة ﺣﻤﺎﯾﻞ‪.Programming with VB.Net :‬‬ ‫‪-٢٦‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢١٨‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬


.‫ اﻟﺠﺰء اﻷول‬، " Step By Step " ‫ دورة اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ اﻟﺸﺎﻣﻠﺔ‬:‫ ﻣﺤﻤﺪ اﻟﺸﮭﺮي‬/‫م‬ -٢٧
.VB.Net ‫ ﻣﻦ اﻟﺼﻔﺮ إﻟﻲ اﻷﺣﺘﺮاف‬:‫ ﻣﺤﻤﺪ ﺣﻤﺪي ﻏﺎﻧﻢ‬/‫م‬ -٢٨
.SQL Server 2005 ‫ ﺗﻌﻠﻢ إﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬:‫اﻟﻜﺎﺗﺐ ﻏﯿﺮ ﻣﻌﺮوف‬ -٢٩
.‫ ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔ ﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ‬:‫ ﻋﻤﺎر اﻟﺘﺮك‬/ ‫ط‬ -٣٠

Web Sites 

1- http://www.arabteam2000-forum.com/index.php?showtopic=74923 ,viewed 20/11/2008


2- http://forum.moe.gov.om/~moeoman/vb/showthread.php?t=106540 ,viewed 19/10/2008
3- http://www.damasgate.com/vb/t92330.html ,viewed 15/07/2008
4- http://www.vb4arab.com/vb/showthread.php?p=11832 ,viewed 20/06/2008
5- http://www.vb4arab.com/vb/forumdisplay.php?f=8 ,viewed 20/12/2008
6- http://books.bdr130.net/3831.html ,viewed 22/10/2008
7- http://www.barqalshamal.com/vb/showthread.php?t=12337 ,viewed 19/10/2008
8- http://www.kutub.info/library/list.php?cat=19 ,viewed 18/10/2008
9- http://edu.arabsgate.com/showthread.php?t=519099 ,viewed 01/11/2008
10- http://www.qwled.com/vb/forum156/thread42116.html ,viewed 25/11/2008
11- http://www.qassimy.com/vb/showthread.php?t=208438 ,viewed 15/03/2009
12- http://university.arabsbook.com/forum44/thread7093-2.html ,viewed 17/05/2008
13- http://www.barqalshamal.com/vb/showthread.php?t=13467 ,viewed 13/01/2009
14- http://www.gulfson.com/vb/f93/t21244/ ,viewed 20/12/2008
15- http://www.emtiaz.net/vb/showthread.php?t=2643 ,viewed 10/11/2008
16- http://forum.sh2soft.net/13596.htm ,viewed 06/02/2009
17- http://www.uae4ever.com/vb1/Emara9/thread106738.html ,viewed 06/11/2008
18- http://www.arabs2day.ws/forums/index.php?showforum=32 ,viewed 06/03/2009
19- http://www.absba.org/showthread.php?t=668464 ,viewed 20/11/2008
20- http://www.ibtesama.com/vb/showthread-t_10204.html ,viewed 20/11/2008
21- http://www.bramjnet.com/vb3/showthread.php?t=150370 ,viewed 20/11/2008
22- http://www.star28.com/book/b7.html ,viewed 10/12/2008
23- http://vb.vip600.com/showthread.php?t=71427 ,viewed 11/12/2008
24- http://www.ask-pc.com/vbx/showthread.php?t=11489 ,viewed 11/12/2008
25- http://www.elaana.com/vb/f11-2 ,viewed 11/03/2009
26- http://www.hayatech.com/c/showthread.php?t=14725 ,viewed 11/03/2009
27- http://forum.moalem.net/showthread.php?p=10768 ,viewed 11/03/2009
28- http://vb.ihsac.com/t355/ ,viewed 11/03/2009

Videos:-
29- http://www.kutub.info/library/list.php?cat=75 ,viewed 20/10/2008
30- http://www.youtube.com/watch?v=qm7lmpkPKF4 ,viewed 25/06/2008
31- http://www.freelearn.110mb.com/visualbasic/level1/tutorials.html ,viewed 20/11/2008
32- http://www.freelearn.110mb.com/visualbasic/level2/tutorials.html ,viewed 20/11/2008

Prog: Mohamed Youssef ٢١٩ E_Mail: Mohamed.yoyo@gmail.com


‫ﺗﻢ ﺗﺼﻤﯿﻢ ھﺬا اﻟﻜﺘﺎب ﻟﺘﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ ‪ ،‬اﻟﻨﻘﻄﺔ اﻟﮭﺎﻣﺔ ھﻨﺎك أن اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻜﺘﺐ ﺗﺮﻛﺰ‬
‫ﻋﻠﻰ ﺗﻌﻠﯿﻢ ﻣﺒﺎدئ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻄﺮﯾﻘﺔ ﺟﺎﻣﺪة ‪.‬‬

‫وﺑﺎﻟﺘﺎﻟﻲ ﯾﺼﻌﺐ ﺗﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ‪.‬‬

‫وﻟﺬﻟﻚ ﻓﺈﻧﻨﺎ ﻧﻌﺘﻘﺪ أن ﺗﺒﻨﻰ ھﺬا اﻷﺗﺠﺎة ﻣﻦ اﻷھﻤﯿﺔ ﺑﻤﻜﺎن ﺣﯿﺚ إن ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻓﻰ‬
‫ﺗﻌﺘﺒﺮ ﻣﺴﺘﻤﺮ ‪ ،‬وﻟﻜﻦ ﻗﻮاﻋﺪ اﻟﺒﺮﻣﺠﺔ ﺗﻈﻞ ﺛﺎﺑﺘﮫ‪.‬‬

‫اﻟﻜﺘﺎب ﯾﻘﻮم ﺑﺸﺮح ﻣﺒﺎدئ اﻟﺒﺮﻣﺠﺔ وﺻﻮﻻً إﻟﻰ ﺑﺮﻣﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫وﯾﻮﺟﺪ ﻣﻼﺣﻖ ﺗﺎﺑﻌﺔ ﻟﻠﻜﺘﺎب ﻟﻠﺴﮭﻮﻟﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و اﻟﺤﺼﻮل ﻋﻠﻰ‬
‫ﻗﺎﻣﻮس اﻟﺘﻌﺒﯿﺮات اﻟﺒﺮﻣﺠﯿﺔ‪.‬‬

‫وﯾﻨﺰل ھﺬا اﻟﻜﺘﺎب إﻟﻰ اﻟﻮاﻗﻊ اﻟﺤﻘﯿﻘﻰ ﻟﻌﺎﻟﻢ اﻟﺒﺮﻣﺠﺔ ﻟﻜﺜﺮة اﻷﺳﻠﻮب اﻟﻨﻈﺮى اﻟﻤﺘﻌﻤﻖ و‬
‫ﺗﺘﺎﺑﻊ اﻷﻛﻮاد اﻟﺒﺮﻣﺠﯿﺔ ‪ ،‬ﺷﺮح ﺑﺎﻟﺼﻮر ﻟﺠﻤﯿﻊ اﻷﺟﺰاء‪.‬‬

‫‪Prog: Mohamed Youssef‬‬ ‫‪٢٢٠‬‬ ‫‪E_Mail: Mohamed.yoyo@gmail.com‬‬

You might also like