0% found this document useful (0 votes)
40 views203 pages

Visual Basic

Uploaded by

ghatreefifarid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views203 pages

Visual Basic

Uploaded by

ghatreefifarid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Prog : Mohamed Youssef

Microsoft
Visual [Link] 2005

 
 
 
 

   
 

٢
‫‪Prog : Mohamed Youssef‬‬
‫‪Content ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪Introduction‬‬
‫‪ -١‬ﻣﻘﺪﻣﺔ ﻓﻰ اﻟﺪوت ﻧﺖ‬
‫‪ - ٢‬ﻣﻘﺪﻣﺔ أﻃﺎر ﻋﻤﻞ ‪.Net Framwork‬‬

‫‪ [Link] 2005‬‬


‫‪ - ١‬ﻃﺮﯾﻘﺔ ﺗﺜﺒﯿﺖ ‪Visual [Link] 2005 Express‬‬
‫‪ - ٢‬اﻟﺘﻌﺮف ﻋﻠﻰ واﺟﮭﺔ ‪IDE‬‬
‫‪ -٣‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻘﻮاﺋﻢ اﻟﺒﺮﻧﺎﻣﺞ‬
‫‪ -٤‬ﺻﻨﺪوق اﻹدوات ﻓﻰ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‬
‫‪ -٥‬أﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻰ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬

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


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

‫‪ Applications‬‬
‫‪ -١‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ‬
‫‪ - ٢‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻗﺎرئ اﻟﻜﺘﺐ اﻟﻜﺘﺮوﻧﯿﺔ ‪PDF‬‬
‫‪ -٣‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ أﻟﺔ ﺣﺎﺳﺒﺔ ﺑﺴﯿﻄﺔ وﻣﺘﻘﺪﻣﺔ‬
‫‪ -٤‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻟﻌﺒﺔ ﺑﺴﯿﻄﺔ ﻣﺘﻄﻮرة‬
‫‪ -٥‬ﻛﯿﻔﯿﺔ ﺣﺴﺎب اﻟﺰﻣﻦ ﻣﻦ أى ﺗﺎرﯾﺦ ﺑﺈﺳﺘﺨﺪام اﻟﻨﺘﯿﺠﺔ‬
‫‪ -٦‬ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ ﻣﺨﺘﺒﺮ ﻟﺠﺪول ﺿﺮب ﻣﺘﻄﻮر‬
‫‪ -٧‬ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ أﺧﺘﺒﺎر ﺧﺎص ﺑﺄﻋﻼم اﻟﺪول‬

‫‪ Database‬‬
‫‪ - ١‬ﺷﺮح ﺑﺮﻧﺎﻣﺞ ‪SQL Server 2005‬‬
‫‪ - ٢‬ﺷﺮح اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﺒﺔ ‪[Link] 2 Programming‬‬
‫‪ - ٣‬اﻟﺘﻘﺎرﯾﺮ ‪ Reports‬ﺑﺈﺳﺘﺨﺪام ‪Crystal Reports‬‬

‫‪Help‬‬
‫‪ - ١‬اﻟﻤﺴﺎﻋﺪة ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ ‪Help‬‬
‫‪ -٢‬ﻛﯿﻒ ﯾﻤﻜﻨﻚ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت‬

‫‪ ‬‬
‫‪ - ١‬ﻣﻠﺤﻖ أواﻣﺮ ‪SQL‬‬
‫‪ - ٢‬ﻣﻠﺤﻖ ﻗﺎﻣﻮس و ﻣﺼﻄﻠﺤﺎت اﻟﺒﺮﻧﺎﻣﺞ ‪[Link] 2005‬‬

‫‪‬‬

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

‫ﻣﺎ ﯾﻜﻤﻞ ھﺬا اﻻﺳﻠﻮب اﻟﺸﺎﻣﻞ ھﻮ ﺑﻨﯿﺔ اﻟﻜﺘﺎب ‪ ٤‬أﺟﺰاء و ﻣﻠﺤﻖ ﻣﻨﻈﻤﺔ ﺣﺴﺐ اﻟﻤﻮﺿﻮع ‪ ٣٠ ،‬ﻓﺼﻼً ‪ ،‬و‬
‫ﺑﺈﺳﺘﻌﻤﺎل ھﺬا اﻟﻜﺘﺎب ‪ .،‬ﺳﻨﺘﻌﻠﻢ ﺑﺴﺮﻋﺔ ﻛﯿﻔﯿﺔ أﻧﺸﺎء ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ذات ﻧﻮﻋﯿﺔ ﻣﺘﻄﻮرة و ﺑﺮاﻣﺞ‬
‫ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و ﺗﻄﺒﯿﻘﺎت اﻟﻮﯾﻨﺪوز‪.‬‬

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

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

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

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

‫‪-‬ﻟﻢ ﺗﻌﺪ ﻟـ ‪ VB‬واﺟﮭﺔ اﺳﺘﺨﺪام ﻣﺴﺘﻘﻠّﺔ‪ ،‬ﻓﻜﻞّ ﻟﻐﺎت ‪ [Link]‬ﺗﺴﺘﺨﺪم واﺟﮭﺔ واﺣﺪة‪ ،‬ﻣﻠﯿﺌﺔ ﺑﺎﻷدواتِ اﻟﺘﻲ ﺗُﺴﮭّﻞ ﺑﻄﺮﯾﻘﺔ‬
‫ﻣﺪھﺸﺔ ﻋﻤﻠﯿّﺔَ ﺗﺼﻤﯿﻢ اﻟﺒﺮﻧﺎﻣﺞ‪ ..‬إنّ ھﺬه اﻟﻤﯿﺰة ﺗﺴﻤﺢ ﻟﻚ ﺑﺈﻧﺸﺎء ﺗﻄﺒﯿﻘﺎت ﺗﺪﺧﻞ ﻓﯿﮭﺎ أﻛﺜﺮ ﻣﻦ ﻟﻐﺔ ﺑﺮﻣﺠﺔ‪ ،‬دون أن‬
‫ﺗﺤﺘﺎج ﻟﻔﺘﺢ أﻛﺜﺮ ﻣﻦ واﺟﮭﺔ‪ ..‬إﻧّﮭﺎ واﺟﮭﺔ واﺣﺪة ﻓﻘﻂ ﻟﻜﻞّ اﻟﻤﺒﺮﻣﺠﯿﻦ‪.‬‬
‫ھﻨﺎك إﻣﻜﺎﻧﯿّﺎت ﺟﺪﯾﺪةٌ ﻓﻲ ﻧﺎﻓﺬة ﻣﺤﺮّر اﻟﻜﻮد‪ ،‬ﻣﻨﮭﺎ ﻗﯿﺎم اﻟﻠﻐﺔ ﺑﻜﺘﺎﺑﺔ ﺟﻤﻠﺔ ﻧﮭﺎﯾﺔ اﻟﻤﻘﻄﻊ ﺗﻠﻘﺎﺋﯿّﺎ‪ ،‬ﺑﻤﺠﺮّد ﻛﺘﺎﺑﺘﻚ ﻟﺒﺪاﯾﺘﮫ‬

‫‪٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫وﺿﻐﻂ زرّ ‪ Enter..‬ﻓﻤﺜﻼ‪ :‬ﻟﻮ ﻛﺘﺒﺖ ﺟﻤﻠﺔ‪:‬‬
‫‪If X = 0 Then‬‬
‫ﻓﺈنّ ﻣﺤﺮّر اﻟﻜﻮد ﺳﯿﻀﯿﻒ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ ﺗﻠﻘﺎﺋﯿّﺎ‪:‬‬
‫‪End If‬‬

‫ﺑﻞ إﻧّﻚ ﻟﻮ ﻟﻢ ﺗﻜﺘﺐ ﻛﻠﻤﺔ ‪ Then‬ﻓﺴﯿﻜﺘﺒﮭﺎ ﻟﻚ ﻣﺤﺮّر اﻟﻜﻮد ﺗﻠﻘﺎﺋﯿّﺎ!‬


‫ھﺬا ﺑﺎﻹﺿﺎﻓﺔ إﻟﻰ أﻧّﮫ ﺳﯿﻀﻊ ﻣﺆﺷّﺮ اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﻣﻘﻄﻊ ‪ ، If‬وﺳﯿﻘﻮم ﺑﺘﻨﺴﯿﻖ اﻟﻤﺴﺎﻓﺎت اﻟﺒﺎدﺋﺔ ﺗﻠﻘﺎﺋﯿّﺎ‪ ،‬ﺑﺤﯿﺚ ﯾﺒﺪو اﻟﻜﻮد‬
‫ﻣﻨﻈّﻤﺎ وواﺿﺤﺎ ﻋﻨﺪ ﻗﺮاءﺗﮫ‪.‬‬
‫ﻛﻤّﺎ أنّ ھﻨﺎك ﺗﺤﺴﯿﻨﺎتٍ ﻛﺜﯿﺮةً ﻓﻲ ﺗﻠﻤﯿﺤﺎت اﻟﺸﺎﺷﺔِ اﻟﺘﻲ ﺗﻌﺮضُ ﻗﯿﻢَ اﻟﻤﺘﻐﯿّﺮاتِ وأﻧﻮاﻋَﮭﺎ وﻣﻌﺎﻣﻼتِ اﻹﺟﺮاءاتِ واﻟﺪوالﱢ‬
‫وﻗﯿﻤَﮭﺎ اﻟﻤﻌﺎدة‪ ،‬ﻣﻊ ﻧﺒﺬة ﻋﻦ وﻇﯿﻔﺔ ﻛﻞّ داﻟﺔ وﻛﻞّ ﻣﻌﺎﻣﻞ‪ ..‬ﺑﺎﺧﺘﺼﺎر‪ :‬ﻟﻘﺪ أﺻﺒﺤﺖ ﻛﺘﺎﺑﺔ اﻟﻜﻮد ﻣﺘﻌﺔ‪.‬‬

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

‫ﺳﺘﺤﺘﺎج إﻟﻰ اﻻﺟﮭﺰة و اﻟﺒﺮاﻣﺞ اﻟﺘﺎﻟﯿﺔ ﻟﺘﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ‪ [Link] 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‬‬
‫ﻣﻌﺎﻟﺞ ﺑﻨﺘﯿﻮم ‪ ٦٠٠‬ﻣﯿﺠﺎھﺮﺗﺰ أو ﻣﺘﻮاﻓﻖ و ﺳﺮﻋﮫ ‪ ١‬ﻣﯿﺠﺎ ھﺮﺗﺰ‪.‬‬ ‫•‬
‫‪ ٢٥٦‬ﻣﯿﺠﺎ ﺑﺎﯾﺖ ذاﻛﺮة و ﯾﻔﺼﻞ أن ﯾﻜﻮن اﻛﺜﺮ‪.‬‬ ‫•‬
‫ﻣﺤﺮك أﻗﺮاص ﻣﻀﻐﻮﻃﺔ او رﻗﻤﯿﺔ‪.‬‬ ‫•‬
‫ﺷﺎﺷﺔ )ذات دﻗﺔ ‪ ( ٨٠٠*٦٠٠‬أو أﻋﻠﻰ ﻣﻊ أﻟﻮان ‪ ٢٥٦‬ﻟﻮﻧﺎً و ﯾﻔﻀﻞ أﺳﺘﺨﺪام ) ‪ (٧٦٨ * ١٠٢٤‬أﻟﻮان ﻋﺎﻟﯿﺔ ‪ ٣٢‬ﺑﺖ ‪.‬‬ ‫•‬

‫‪٦‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪ ‬‬

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


‫‪[Link]‬‬
‫ﺳ ﺘﺠﺪ ھﻨ ﺎك ﺷ ﺮوﺣﺎت ﻋ ﻦ ﻛ ﻞ ﻛﺘﺒﻨ ﺎ و ﻣ ﺸﺎرﯾﻌﻨﺎ اﻟﻌﻤﻠﯿ ﺔ ‪ ،‬ﻛﻤ ﺎ ﯾﺘ ﻀﻤﻦ ﻣﻮﻗ ﻊ‬
‫ﺗﻜﻨﻮﻟﻮﺟﯿﺎ اﻟﺘﻌﻠﯿﻢ ﺷﺮوﺣﺎت ﻋﻦ ﺑﺮاﻣﺞ اﻟﻤﺤﺎﻛﺎة ﺛﻨﺎﺋﯿﺔ اﻻﺑﻌﺎد و ﺛﻼﺛﯿ ﺔ اﻻﺑﻌ ﺎد و‬
‫اﻟﺒﺮﻣﺠﺔ و اﻟﺸﺒﻜﺎت و اﻹﻧﺘﺮﻧﺖ و‪........‬‬

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

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

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


‫‪Mohamed_youssef_1988@[Link]‬‬
‫‪[Link]‬‬
‫‪Portsaid_2010@[Link]‬‬

‫‪٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪‬‬ ‫اﻷھﺪاف‬
‫ﺑﻌﺪ إﻛﻤﺎل ھﺬا اﻟﻜﺘﺎب ‪ ،‬ﺳﺘﺘﻤﻜﻦ ﻣﻦ ﺗﻨﻔﯿﺬ ﻣﺎ ﯾﻠﻰ‪:‬‬
‫‪ -١‬ﻛﯿﻔﯿﺔ ﺗﺜﺒﯿﺖ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ﺑﻜﻔﺎءة‪.‬‬
‫‪ -٢‬ﺗﺸﻐﯿﻞ ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ ‪.٢٠٠٥‬‬
‫‪ -٣‬أﺳﺘﻌﻤﺎل ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ اﻟﻤﻨﺪﻣﺠﺔ‪.‬‬
‫‪ -٤‬ﻓﺘﺢ و ﺗﺸﻐﯿﻞ ﺑﺮﻧﺎﻣﺞ اﻟﻤﯿﻜﺮوﺳﻮﻓﺖ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪. ٢٠٠٥‬‬
‫‪ -٥‬ﺗﻐﯿﯿﺮ إﻋﺪادت اﻟﺨﺼﺎﺋﺺ اﻟﻤﺸﺮوع‪.‬‬
‫‪ -٦‬ﻧﻘﻞ أﻃﺮ اﻻدوات و ﺗﻐﯿﯿﺮ ﺣﺠﻤﮭﺎ و أﺧﻔﺎﺋﮭﺎ ﺗﻠﻘﺎﺋﯿﺎً‪.‬‬
‫‪ -٧‬ﻛﯿﻔﯿﺔ أﺳﺘﻌﻤﺎل اﻟﻤﺼﻔﻮﻓﺎت ﺿﻤﻦ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫‪ -٨‬ﺗﺨﺼﯿﺺ إﻋﺪادت ﺑﻨﯿﺔ اﻟﺘﻄﻮﯾﺮ اﻟﻤﻄﺎﺑﻘﺔ ﺑﺎﻟﺘﻌﻠﯿﻤﺎت‪.‬‬
‫‪ -٩‬ﺣﻔﻆ ﺗﻐﯿﺮات ‪ ،‬أﻧﮭﺎء اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‪.‬‬
‫‪ -١٠‬اﻟﺘﺪرﯾﺐ ﻋﻠﻰ ﻛﺘﺎﺑﺔ اﻟﺒﺮاﻣﺞ و ﺗﺼﻤﯿﻢ اﻟﻮاﺟﮭﺔ اﻟﻨﻤﻮذج‪.‬‬
‫‪ -١١‬اﻟﺘﻌﺮف ﻋﻠﻰ ﺟﻤﯿﻊ ﻗﻮاﺋﻢ اﻟﺒﺮﻧﺎﻣﺞ ‪.‬‬
‫‪ -١٢‬ﻓﺘﺢ و أﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻰ ﺑﻨﯿﺔ اﻟﺪوت ﻧﺖ‪.‬‬
‫‪ -١٣‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻤﺘﻐﯿﺮات و اﻟﺜﻮاﺑﺖ و اﻟﺘﺮﻛﯿﺒﺎت‪.‬‬
‫‪ -١٤‬ﺷﺮح اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﺒﺔ ‪ [Link]‬و رﺑﻄﮭﺎ ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪.‬‬
‫‪ -١٥‬اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﺼﻄﻠﺤﺎت و اﻟﻘﺘﻤﻮس ﺑﺼﻮرة ﺳﺮﯾﻌﺔ ﺑﺎﻟﻐﺔ اﻟﻌﺮﺑﯿﺔ‪.‬‬
‫‪ -١٦‬اﻟﺘﻌﺮف ﻋﻠﻰ ﻟﻐﺔ ‪ ،SQL‬ﻻﺳﺘﺨﺪاﻣﮭﺎ ﻣﻊ ‪. [Link]‬‬
‫‪ -١٧‬ﻛﯿﻔﯿﺔ ﻋﻤﻞ اﻟﺘﻘﺎرﯾﺮ ‪ Reports‬ﺑﺼﻮرة ﺻﺤﯿﺤﺔ‪.‬‬
‫‪ -١٨‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻧﺸﺎء اﻟﻤﺸﺎرﯾﻊ اﻟﺒﺴﯿﻄﺔ و اﻟﻮﺻﻮل إﻟﻰ اﻟﺒﺮاﻣﺞ اﻟﻤﺘﻄﻮرة‪.‬‬
‫‪ -١٩‬اﻟﺘﻌﺮف ﻋﻠﻰ ﺟﻤﯿﻊ اﻻدوات اﻟﺨﺎﺻﺔ و اﻟﻤﻤﯿﺰة ﻟﻠﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪.٢٠٠٥‬‬
‫‪ -٢٠‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺪوال و اﻟﻮﺳﺎﺋﻞ اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫‪ -٢١‬ﻛﯿﻔﯿﺔ أﻧﺸﺎء و ﺣﺬف و اﻟﺘﻌﺪﯾﻞ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و اﻟﺠﺪاول‪.‬‬
‫‪ -٢٢‬أﺳﺘﺨﺪام ﺟﻤﯿﻊ ﻧﻮاﻓﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ﻓﻰ اﻟﺒﺮﻣﺠﺔ‪.‬‬
‫‪ -٢٣‬ﻣﻌﺮﻓﺔ ﺗﻄﻮرر اﻟﺒﺮاﻣﺞ و ﺗﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ اﻟﺤﺪﯾﺜﺔ‪.‬‬
‫‪ -٢٤‬أﺳﺘﻌﻤﺎل أواﻣﺮ اﻟﻤﺴﺎﻋﺪة اﻟﺠﺪﯾﺪة و ﺗﺨﺼﯿﺺ اﻟﻤﺴﺎﻋﺪة‪.‬‬
‫‪ -٢٥‬اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﺴﺎﻋﺪة ﻋﻦ ﻃﺮﯾﻖ اﻹﻧﺘﺮﻧﺖ‪.‬‬

‫‪٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﻣﻘﺪﻣﺔ ﻓﻰ اﻟﺪوت ﻧﺖ‬
‫ﻣﻔﮭﻮم اﻟﺪوت ﻧﺖ و ﻓﺎﺋﺪﺗﺔ وﻣﻜﻮﻧﺎﺗﺔ واﯾﻀﺎح ﻣﻔﮭﻮم ‪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‬ﺑﻠﻐﺔ ﺳﻲ ﺷﺎرب ﻣﻊ ﻣﻌﻤﺎرﯾﺔ اﻃﺎر‬
‫اﻟﻌﻤﻞ ‪ Framework‬ﻛﻤﺎ ﺻﺎرت ﻣﻌﻀﻠﺔ ﺻﻌﻮﺑﺔ ﺗﻄﻮﯾﺮ ﺗﻄﺒﯿﻘﺎت اﻟﺸﺒﻜﺔ اﻟﻌﻨﻜﺒﻮﺗﯿﺔ اﻣﺮ ﻓﻲ ﻏﺎﯾﺔ اﻟﺴﮭﻮﻟﺔ ﺑﺎﻻﺿﺎﻓﺔ ﻻﺳﺘﯿﻌﺎب‬
‫ﺗﻘﻨﯿﺎت ﺣﺪﯾﺜﺔ ﻣﺜﻞ ‪ XML‬وﺧﺪﻣﺎت ﻋﺒﺮ اﻟﺸﺒﻜﺔ وﺗﻢ ﺗﻮﺣﯿﺪ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺨﻄﻂ اﻟﺨﺎﺻﺔ ﺑﺸﺒﻜﺔ ﻓﻲ اﻟﻤﻨﺘﺞ اﻟﺬي ﺳﯿﺼﺒﺢ ﻣﺤﻮر‬
‫اﻟﺘﻮﺟﺔ اﻟﻘﺎدم ﻟﻠﺸﺮﻛﺔ ﻛﻤﺎ اﺳﻠﻔﺖ‪.‬‬

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

‫ﻛﺎن ﻇﮭﻮر اﻟﻨﻤﻮذج اﻻوﻟﻲ ﻟﺘﻘﻨﯿﺔ اﻟﺪوت ﻧﺖ ﻓﻲ ﻣﺆﺗﻤﺮ اﻟﻤﻄﻮرﯾﻦ ﻓﻲ ﯾﻮﻟﯿﻮ ‪٢٠٠٢‬وﻋﻠﻰ اﺳﺎس اﻧﺔ ﯾﺘﻢ اﺻﺪارھﺎ ﻓﻲ ﺑﺪاﯾﺔ‬
‫‪ ٢٠٠٣‬وﻗﺪ ﺣﻠﺖ ھﺬة اﻟﺘﻘﻨﯿﺔ ﻣﺤﻞ ﺗﻘﻨﯿﺎﺗﻌﺪﯾﺪة ﺣﺎوﻟﺖ ﻣﻦ ﺧﻼﻟﮭﺎ ﻣﯿﻜﺮوﺳﻮﻓﺖ ان ﺗﻠﺤﻖ ﻣﻮﺟﮫ اﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﯿﺔ ﻟﻠﻤﻌﻠﻮﻣﺎت ﻣﺜﻞ‬
‫‪IIS‬و ‪ ASP‬اﻟﺬي ﺣﻞ ﻣﺤﻠﺔ ‪ [Link]‬اﻟﻤﺤﺴﻦ ‪.‬واﺳﺘﺪﻋﺎءات ‪ 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‬ﻣﻠﯿﻮن دوﻻر ﻣﻦ اﻻﺳﮭﻢ ﻏﯿﺮ اﻟﻤﺼﻮﺗﺔ ﻣﻦ اﺟﻞ اﻧﻘﺎذ‬
‫ﺷﺮﻛﺔ ﻛﻮرال وذﻟﻚ ﻟﺠﻌﻞ اﻟﺸﺮﻛﺔ ﺗﻘﻮم ﺑﺘﻘﺪﯾﻢ ﻓﻜﺮة اﻟﺪوت ﻧﺖ اﻟﻰ ﻧﻈﺎم اﻟﻠﯿﻨﻜﺲ ﻋﻦ ﻃﺮﯾﻘﻚ ورال ﻟﯿﻨﻜﺲ وھﺬا ﻣﺎ ﺣﺪث ﻓﻌﻼ‪.‬‬

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

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

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

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

‫‪١٠‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪.NET :‬‬

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

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

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

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

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

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

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

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

‫‪١١‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﻣﻘﺪﻣﺔ أﻃﺎر اﻟﻌﻤﻞ ‪.Net Framework‬‬

‫‪.Net Framework ‬‬

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

‫‪:‬‬

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

‫‪Common Language Runtime - CLR‬‬

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

‫‪١٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺒﺮﻣﺠﯿﺔ ﻋﻦ ﻟﻐﺔ وﺻﻒ اﻻﻇﮭﺎر‬
‫‪ -٢‬اﻟﺜﺎﻧﻲ ھﻮ اﻃﺎرات وﯾﻨﺪوز ﺣﯿﺚ ﯾﺎﺧﺬ ھﺬا اﻟﻨﻤﻮذج اﻟﺒﺮﻣﺠﻲ ﺑﺎﺳﻠﻮب ﻟﻐﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬ﻓﻲ اﻟﺒﺮﻣﺠﺔ اﻟﻤﻌﺘﻤﺪة ﻋﻠﻰ‬
‫اﻻﻃﺎرات ﻟﯿﻌﻤﻤﮭﺎ ﻋﻠﻰ ﻛﻞ ﻣﻄﻮري ﺗﻄﺒﯿﻘﺎت وﻧﺪوز وﯾﺘﻢ ھﺬا ﺑﻮاﺳﻄﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻﺻﻨﺎف ﻓﻲ اﻃﺎر ﻋﻤﻞ ‪ Net‬وﺗﻌﺪ اﻃﺎرات‬
‫وﯾﻨﺪوز ﻣﺠﻤﻮﻋﺔ ﻛﺎﻣﻠﺔ ﻣﻦ اﻻﻧﻤﺎط اﻟﻘﺎﺑﻠﺔ ﻻﻋﺎدة اﻻﺳﺘﺨﺪام وھﻲ ﺗﺒﺴﻂ ﺗﻄﻮﯾﺮ واﺟﮭﺎت اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ﻓﻲ وﯾﻨﺪوز‬
‫وﺗﺴﻤﺢ اﻃﺎرات وﯾﻨﺪوز ﺑﺬﻟﻚ ﺑﺒﻨﺎء اﻟﺘﻄﺒﯿﻘﺎت ﺳﺮﯾﻌﺎ اﻟﺘﻰ ﺗﻤﺘﺎز ﺑﺎﺳﺘﺨﺪام ﻋﻨﺎﺻﺮ اﻛﺘﯿﻒ اﻛﺲ ‪ ActiveX‬واﻟﻘﻮاﺋﻢ اﻟﻤﻨﺒﺜﻘﺔ‬
‫واﻣﻜﺎﻧﯿﺔ اﻟﻮﺻﻮل اﻟﻰ ﻣﺰاﯾﺎ اﻻﻣﻦ ﻓﻲ ‪ .NET‬واﻟﻤﻜﻮﻧﺎت اﻟﻘﯿﺎﺳﯿﺔ ﻟﻮاﺟﮭﺔ اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ﻣﺜﻞ اﻻزرار ودواﺋﺮ اﻻﺧﺘﯿﺎر‬
‫وﺳﯿﯿﺘﻔﯿﺪ اﻟﺘﻄﺒﯿﻖ ﻟﺪي اﺳﺘﺨﺪم اﻃﺎرات وﯾﻨﺪوز ‪Windows Frame ,‬ﻣﻦ ﻛﻞ ﻣﺰاﯾﺎ ‪ [Link]‬ﻟﻠﻮﺻﻮل اﻟﻰ اﻟﺒﯿﺎﻧﺎت‬
‫وﺳﯿﺴﺘﻔﯿﺪ اﻟﺘﻄﺒﯿﻖ اﯾﻀﺎ ﻣﻦ اﺣﺪاث اﺻﺪارات واﺟﮭﺔ اﻻﺳﺘﺨﺪام اﻟﺮﺳﻮﻣﯿﺔ ‪ GDI+‬وﻛﺬﻟﻚ ﻣﻦ ﺧﺪﻣﺎت اﻟﻄﺒﺎﻋﺔ ﺑﺤﯿﺚ ﯾﻐﺪو‬
‫اﻟﺘﻄﺒﯿﻖ ﻗﺎدرا ﻋﻠﻰ اﺻﺪار اﻟﺘﻘﺎرﯾﺮ اﻟﺸﺎﻣﻠﺔ‬

‫‪Class Library‬‬

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

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

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

‫‪١٣‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪Visual [Link] 2005‬‬ ‫اﻟﺠﺰء اﻟﺜﺎﻧﻰ اﻟﺘﻌﺮف ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ‬

‫ﻃﺮﯾﻘﺔ ﺗﺜﺒﯿﺖ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪٢٠٠٥‬‬

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

‫وﻟﻠﺘﺤﻤﯿﻞ‬
‫ﻛود‪:‬‬
‫‪[Link]

‫اﻟﺤﺠﻢ‪MB٤٤٥ :‬‬ ‫اﻟﺼﯿﻐﺔ ‪: ISO‬‬

‫ﺑﯿﺌﺔ ‪ [Link] 2005‬أو ﻛﻤﺎ ﯾﻌﺮف ‪ IDE‬وھﻰ أﺧﺘﺼﺎرا ﻟـ ‪ ، integrated development environment‬واﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت‬
‫ﻧﺖ ‪ visual basiv .net‬ھﻰ أﺣﺪى اﻟﻠﻐﺎت اﻟﻤﺘﺎﺣﺔ داﺧﻞ ‪ visual [Link]‬ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ ‪visual c# .net , visual j# .net ,‬‬
‫‪visual c++.net‬‬
‫وﺑﯿﺌﺔ ‪ visual [Link]‬ھﻰ ﺑﯿﺌﺔ ﻣﺘﻜﺎﻣﻠﺔ ﻷﻧﺸﺎء وﺗﺼﺤﯿﺢ اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺘﻨﻮﻋﺔ ﻣﺜﻞ ‪ windows application‬وﻏﯿﺮھﺎ ﻣﻦ‬
‫اﻟﺘﻄﺒﯿﻘﺎت اﻟﻤﺨﺘﻠﻔﺔ‪.‬‬
‫ﺧﻄﻮات ﺗﻨﺼﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ‬

‫‪١٤‬‬
Prog : Mohamed Youssef

١٥
Prog : Mohamed Youssef

١٦
Prog : Mohamed Youssef

١٧
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻮاﺟﮭﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪٢٠٠٥‬‬

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

‫‪VISUAL [Link]‬‬

‫ھﻲ اﺣﺪ اﻟﻠﻐﺎت اﻟﻤﺘﺎﺣﺔ داﺧﻞ ﺑﺮﻧﺎﻣﺞ‪VISUAL [Link]‬‬

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

‫‪WINDOWS APPLICATION‬‬
‫‪WEB APPLICATION‬‬
‫‪CLASSES AND CONTROL LIBRARY‬‬
‫‪CONSOLE APPLICATION‬‬

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


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

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

‫‪١٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺑﻌﺪھﺎ اﻧﺘﻈﺮ ﻗﻠﯿﻼ ﺑﯿﻨﻤﺎ ﯾﻘﻮم اﻟﻔﯿﺠﻮال ﺑﺎﻟﻘﯿﺎم‬
‫ﺑﻌﻤﻞ اﻋﺪاد ﺑﺪاء اﻟﻌﻤﻞ ﺛﻢ ﺳﯿﻈﮭﺮ ﻟﻚ اوﻻ ‪START PAGE‬‬

‫وﺑﮭﺎ ﺗﻈﮭﺮ اﺧﺮ ﺗﻄﺒﯿﻘﺎت ﺗﻢ اﻧﺸﺎﺋﮭﺎ او ﺗﻌﺪﯾﻠﮭﺎ‬


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

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

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

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

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

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

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

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

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

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

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

‫‪[Link] Web Application :‬‬

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

‫‪[Link] Web Service:‬‬

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

‫ﻛﺎل ‪ Modules‬أو ‪Classes‬‬

‫وﻣﻊ ﺑﺪاﯾﺔ ﻇﮭﻮر ﻟﻐﺔ ‪ [Link]‬ﻇﮭﺮ ﻣﺎ ﯾﺴﻤﻲ( ‪ Solution‬اﻟﻤﺸﺮوع( وﻓﺎﺋﺪﺗﮫ ﺗﻨﻈﯿﻤﯿﺔ ﻟﻞ‪Projects‬‬

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

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

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

‫‪٢٣‬‬
‫‪Prog : Mohamed Youssef‬‬
‫وﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ New Item‬ﺳﻮف ﺗﻈﮭﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ‪Add New Item‬‬

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

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

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

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

‫‪٢٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﻘﻮاﺋﻢ ‪Menu‬‬
‫‪Menus With Visual [Link] 2005‬‬

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

‫]‪[File‬‬

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

‫‪٢٥‬‬
Prog : Mohamed Youssef

٢٦
‫‪Prog : Mohamed Youssef‬‬
‫]‪[Edit‬‬

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

‫‪٢٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫]‪[View‬‬

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

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

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


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

‫‪٢٨‬‬
Prog : Mohamed Youssef

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

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


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

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

‫‪٣١‬‬
‫‪Prog : Mohamed Youssef‬‬
‫وﻣﻦ ﺛﻢ ﺗﺴﺘﻄﯿﻊ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت اﻟﺘﻲ اﺿﻔﺘﮭﺎ اﻟﻰ ﻣﺸﺮوﻋﻚ ﻛﻤﺼﺎدر ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‬
‫رﻣﺰ‪:‬‬
‫اﺳﻢ اﻟﺮﯾﺴﻮرس اﻟﺬي ﺗﺮﯾﺪ‪[Link].‬‬
‫ﻓﻤﺜﻼ ﻟﻮ ﻛﺎن ﻟﺪﯾﻨﺎ ‪ Resources‬ﻋﺒﺎرة ﻋﻦ ﺻﻮرة واﺳﻢ اﻟﺼﻮرة‪Car‬‬
‫واردﻧﺎ ﻋﺮض اﻟﺼﻮرة ﻓﻲ ‪ PictureBox‬ﻣﺎ ﻋﻠﯿﻨﺎ ﺳﻮى ﻛﺘﺎﺑﺔ اﻻﺗﻲ‬

‫رﻣﺰ‪:‬‬
‫‪[Link] = [Link]‬‬

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

‫‪٣٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫]‪[Bulid‬‬

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

‫]‪Debug‬‬

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

‫‪٣٣‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

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

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

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

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

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

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

‫]‪[Data‬‬

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


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

‫‪٣٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫]‪[Format‬‬

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

‫]‪[Tools‬‬

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

‫‪٣٥‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪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‬‬
‫] ‪[ Window‬‬

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

‫‪Dockable, Floating, Tabbed Document‬‬


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

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

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

‫‪Auto Hide All‬‬


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

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

‫‪New Vertical Tab Group‬‬

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

‫‪٣٨‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪Close All Documents‬‬


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

‫‪Reset Window Layout‬‬


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

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

‫]‪[Community‬‬

‫ﺗﺤﺘﻮي ﻋﻠﻰ اﻻواﻣﺮ اﻟﺘﻰ ﺗﺴﺎﻋﺪك ﻓﻲ اﻻرﺗﺒﺎط ﻣﻊ ﻣﺠﺘﻤﻊ اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﻔﺠﻮل ﺑﯿﺴﻚ‬

‫‪٣٩‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺑﺤﯿﺚ ﯾﻤﻜﻨﻚ ان ﺗﺴﺌﻞ وﺗﻘﻮم ﺑﺎﻟﺒﺤﺚ ﻋﻦ اﺟﺎﺑﺔ او اﻣﺜﻠﺔ وھﺬة اﻻواﻣﺮ ﻣﺮﺗﺒﻄﺔ‬
‫ﺑﺼﻔﺤﺎت ﻣﯿﻜﺮوﺳﻮﻓﺖ ﻛﻤﺎ ﯾﻤﻜﻨﻚ زﯾﺎرة ‪MSDN Community Center‬‬
‫ﻣﻦ ﺧﻼل ھﺬا اﻟﺮاﺑﻂ‬
‫‪[Link]

‫]‪[Help‬‬

‫ﺗﺤﺘﻮي ﻋﻠﻰ اﻻواﻣﺮ اﻟﻤﺎﻟﻮﻓﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺎﻋﺪة واﻻﺗﺼﺎل ﺑﻤﻮﻗﻊ اﻟﺸﺮﻛﺔ واﻟﺘﻌﺮف ﻋﻠﻰ ﻛﯿﻔﯿﺔ اﺳﺘﺨﺪام اﻟﻠﻐﺔ وﺧﯿﺎر اﻟﻌﺜﻮر ﻋﻠﻰ‬
‫اﻟﺘﺤﺪﯾﺜﺎت اﻟﻼزﻣﺔ ﻟﻠﺒﺮﻧﺎﻣﺞ‬

‫‪٤٠‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻻدوات ﻓﻰ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪٢٠٠٥‬‬
‫اﺷﻜﺎل رﺳﻮﻣﯿﺔ وﻟﻜﻞ اداة ﻋﻤﻠﮭﺎ اﻟﺨﺎص ﺗﺎﺧﺬ ھﻲ ﻋﺒﺎرة ﻋﻦ ﻋﻨﺎﺻﺮ ﺑﺮﻣﺠﯿﺔ ﻟﮭﺎ ﻣﮭﺎم ﻣﻌﯿﻨﺔ ‪ :‬اﻻدوات‬

‫‪ :‬اﻻدوات اﻟﻰ ﺻﻨﻔﯿﻦ ﺗﺼﻨﻒ *‬

‫‪Control :‬‬

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

‫‪Component :‬‬

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


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

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

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

‫‪٤١‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻧﺸﺎء اﻻدوات‪:‬‬

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

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

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

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

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

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


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

‫اﻟﺠﻮاب اﻧﻚ ﻓﻲ ﺑﻌﺾ اﻻﺣﯿﺎن ﻗﺪ ﺗﺤﺘﺎج ﻟﻌﻤﻞ ﺑﺮﻧﺎﻣﺞ ﯾﻤﻠﻚ واﺟﮭﺎت ﻣﺨﺘﻠﻔﺔ ﯾﺨﺪم ﻣﺴﺘﺨﺪﻣﯿﻦ ﻣﺨﺘﻠﻔﯿﻦ ‪.‬اﻟﻤﺴﺘﺨﺪﻣﯿﻦ‬
‫ﻣﺨﺘﻠﻔﯿﻦ ﻓﻲ ﻣﮭﺎراﺗﮭﻢ او ﯾﺤﺘﺎﺟﻮن ﻻدوات ﻣﺨﺘﻠﻔﺔ ﺗﺒﻌﺎ ﻻﺧﺘﻼف اﻋﻤﺎﻟﮭﻢ وﻣﺘﻄﻠﺒﺎﺗﮭﻢ ‪.‬او اﻧﻚ ﻻ ﺗﻌﻠﻢ ﻣﺎذا ﺳﯿﺘﻄﻠﺐ‬
‫ﺑﺮﻧﺎﻣﺠﻚ ﻣﻦ ادوات ﻟﻌﺮض او ادﺧﺎل اﻟﺒﯿﺎﻧﺎت ﻻن ذﻟﻚ ﻣﺘﻮﻗﻒ ﻋﻠﻰ ﺣﺎﺟﯿﺎت اﻟﻤﺴﺘﺨﺪم ﻟﻠﺒﺮﻧﺎﻣﺞ ‪ .‬أي اﻧﻚ ﺳﻮف ﺗﺤﺘﺎج‬
‫اﻟﻰ اﻧﺸﺎء ادوات ﻓﻲ وﻗﺖ اﻟﺘﻨﻔﯿﺬ‪ Run Time .‬اﻻن ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ ﻛﯿﻔﯿﺔ اﻧﺸﺎء اﻻدوات وﻗﺖ اﻟﺘﻨﻔﯿﺬ‪Run Time :‬‬
‫اﻧﻈﺮ اﻟﻰ ھﺬا اﻟﻜﻮد‬

‫رﻣﺰ‪:‬‬
‫‪1- Dim lblHi As New Label‬‬
‫)‪2- [Link] (50, 50, 70,70‬‬
‫"‪3- [Link]="Hello World‬‬
‫)‪4- [Link] (lblHi‬‬

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

‫‪٤٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫رﻣﺰ‪:‬‬
‫‪Dim WithEvents btnHi As New Button‬‬
‫ھﻨﺎ اﻋﻠﻨﺎ ﻋﻦ اﻟﻤﺘﻐﯿﺮ ‪ btnHi‬اﻧﺔ ﻣﻦ اﻟﻨﻮع ‪ Button‬واذا اردﻧﺎ اﻟﻮﺻﻮل اﻟﻰ اﺣﺪاﺛﺔ ﻛﻠﻤﺎ ﻋﻠﯿﻨﺎ ھﻮاﻟﺪﺧﻮل اﻟﻰ ﺷﺎﺷﺔ اﻟﻜﻮد ﺛﻢ‬
‫وﻣﻦ ﻗﺎﺋﻤﺔ ﺳﺮد اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﺑﺎﻟﻔﻮرم اﻟﺤﺎﻟﻲ ‪ Class Name‬ﺛﻢ ﺗﺤﺪﯾﺪ اﻟﺤﺪث اﻟﻤﺮاد ﻣﻦ ﻗﺎﺋﻤﺔ ﺳﺮد اﺣﺪاث اﻟﻌﻨﺎﺻﺮ‬
‫‪Method Name‬اﻧﻈﺮ اﻟﻰ اﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ‬

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

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

‫‪٤٣‬‬
‫‪Prog : Mohamed Youssef‬‬

‫أي اﻧﻨﺎ ﺑﻤﺠﺮد اﻻﻋﻼن ﻋﻦ ﻣﺘﻐﯿﺮ اﻧﺔ ﻣﻦ ﻧﻮع اداة ﻓﺎن اﻟﻔﺠﻮل ﯾﻘﻮم ﺑﺎﻧﺸﺎء اﺣﺪاث ﻟﺬﻟﻚ اﻟﻤﺘﻐﯿﺮ وﯾﺘﺎﻋﻤﻞ ﻣﻌﺔ وﻛﺎﻧﺔ ﻋﻨﺼﺮ‬
‫ﻣﻮﺟﻮد ﻋﻠﻰ اﻟﻔﻮرم ‪ .‬وﻧﮭﺎﯾﺔ ﻟﻔﮭﻢ ﻣﺎ ﺳﺒﻖ ﻧﻘﻮم ﺑﮭﺬا اﻟﻤﺜﺎل ﻗﻢ ﺑﺎﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻗﻢ ﺑﻜﺘﺎﺑﺔ ھﺬا اﻟﻜﻮد ﻓﻲ ﻣﻨﻄﺔ اﻟﺘﺼﺮﯾﺤﺎت‬
‫اﻟﻌﺎﻣﺔ‬
‫‪WithEvents btnHi As Button‬ﺛﻢ ﻗﻢ ﺑﺎﺿﺎﻓﺔ ‪ Button‬ﻋﻠﻰ اﻟﻔﻮرم وﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﯿﺔ ﻟﺘﺪﺧﻞ اﻟﻰ ﺷﺎﺷﺔ اﻟﻜﻮد ﻓﻲ‬
‫اﻟﺤﺪث ‪ Button1_Click‬ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‬

‫رﻣﺰ‪:‬‬
‫‪btnHi = New Button‬‬
‫)‪[Link](96, 50, 75, 23‬‬
‫"‪[Link] = "Say Hi‬‬
‫)‪[Link](btnHi‬‬

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


‫رﻣﺰ‪:‬‬
‫)”‪[Link](“Hi Man‬‬

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

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

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

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

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

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

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

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

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

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

‫‪٤٥‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

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

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

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

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

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

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

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

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

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

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

‫‪٤٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺸﺮح اﻧﻈﺮ ﻟﻠﺼﻮرة‬

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

‫‪٤٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﻣﺼﻔﻮﻓﺔ اﻻدوات‬

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

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

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

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

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


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

‫اﻟﺮﻣﺰ‪PHP:‬‬
‫)‪Dim MyButton As Button = DirectCast(sender, Button‬‬
‫‪[Link] = [Link] & [Link]‬‬

‫اﻟﺨﺎﺻﯿﺘﺎن ‪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‬‬

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

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

‫‪٥٠‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

‫رﻣﺰ‪:‬‬

‫‪[Link] = New Point([Link] -[Link], [Link] -‬‬


‫)‪[Link]‬‬
‫‪[Link] = [Link] Or [Link]‬‬

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

‫‪٥١‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺛﻢ ﻗﻢ ﺑﺘﻐﯿﯿﺮ اﻟﺨﺎﺻﯿﺔ ‪ 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‬‬
‫وﺳﺘﻜﻮن ﺑﻌﺪ ذﻟﻚ ﻛﻤﺎ ﺑﺎﻟﺼﻮرة‬

‫‪٥٣‬‬
‫‪Prog : Mohamed Youssef‬‬
‫أﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻰ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬
‫ﺗﻌﺎﻟﻮا ﻧﺘﻌﻠﻢ ﻣﻌﺎ ﻛﯿﻒ ﻧﻨﺸﺊ ﻣﺸﺮوع ﺟﺪﯾﺪ ﻓﻰ ﺑﯿﺌﺔ اﻟﺪوت ﻧﺖ‬

‫أو‬

‫‪٥٤‬‬
Prog : Mohamed Youssef

٥٥
Prog : Mohamed Youssef

٥٦
Prog : Mohamed Youssef

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

٥٧
Prog : Mohamed Youssef

٥٨
Prog : Mohamed Youssef

٥٩
Prog : Mohamed Youssef

٦٠
Prog : Mohamed Youssef

٦١
‫‪Prog : Mohamed Youssef‬‬

‫ﺳﻮف ﯾﻔﺘﺢ ﻟﻚ ﻣﻜﺎﻧﺎ ﻟﻜﺘﺎﺑﺔ أﺳﻢ اﻟﺸﺮﯾﻂ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‬

‫‪٦٢‬‬
Prog : Mohamed Youssef

٦٣
Prog : Mohamed Youssef

٦٤
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ ھﻨﺎ ﺗﺒﺪأ اﻟﺒﺮﻣﺠﺔ‬
‫اﻟﻤﺘﻐﯿﺮات و اﻟﺜﻮاﺑﺖ اﻟﻔﺼﻞ اﻻول‬
‫اﻟﻤﺘﻐﯿﺮات‬
‫اﻟﻤﺘﻐﯿﺮات ﺗﻌﺘﺒﺮﻣﻦ ﺑﯿﻦ اﻛﺜﺮ اﺟﺰاء اﻟﺒﺮﻧﺎﻣﺞ اھﻤﯿﺔ‪.‬‬
‫واﻟﻤﺘﻐﯿﺮ ‪ :‬ھﻮ اﺣﺪ ﺗﻮاﺑﻊ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﯾﺴﺘﻄﯿﻊ ﺗﺨﺰﯾﻦ ﻗﯿﻤﺔ‬

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

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

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

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


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

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


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

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

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

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


‫‪Dim x As Integer‬‬

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

‫‪٦٥‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

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

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


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

‫‪٦٦‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺮﻣﺰ‪PHP:‬‬
‫‪Dim x&=5‬‬
‫"‪Dim y$="salem4it - Youssef‬‬

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


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

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


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

‫اﻟﺮﻣﺰ‪PHP:‬‬
‫‪Dim x=10000000000‬‬
‫"‪Dim y ="salem4it - Youssef‬‬

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


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

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

‫‪٦٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺮﻣﺰ‪PHP:‬‬
‫‪X=100L‬‬
‫‪Y="A"c‬‬

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

‫اﻟﺮﻣﺰ‪PHP:‬‬
‫‪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‬‬

‫‪٦٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﻤﺘﻐﯿﺮات و اﻟﺜﻮاﺑﺖ اﻟﻔﺼﻞ اﻟﺜﺎﻧﻰ‬
‫أوﻻ ‪ :‬اﻟﻤﺘﻐﯿﺮات‬

‫ﻗﺒﻞ اﻟﺒﺪء ﻓﻰ اﻟﺪرس أﺣﺐ أن أﻧﻮه أن اﻟﻰ أﻧﮫ ھﻨﺎك ﺑﻌﺾ اﻟﻨﻘﺎط اﻟﻤﻔﺘﻮﺣﺔ ﻓﻰ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ واﻟﺘﻰ ﺳﻨﻌﻮد اﻟﯿﮭﺎ ﺑﻤﺰﯾﺪ ﻣﻦ‬
‫اﻟﺘﻔﺎﺻﯿﻞ ﻓﻰ ﺣﯿﻨﮫ‬

‫وﻣﻦ أﺟﻤﻞ ﻣﺎ ﻗﺮأت ﻓﯿﻤﺎ ﯾﺘﻌﻠﻖ ﺑﺎﻟﻤﺘﻐﯿﺮات ھﺬا اﻟﺪرس‬

‫‪٦٩‬‬
Prog : Mohamed Youssef

٧٠
Prog : Mohamed Youssef

‫اﻧﻮاع اﻟﻤﺘﻐﯿﺮات‬

٧١
‫‪Prog : Mohamed Youssef‬‬

‫ﻣﺤﺎﺿﺮة ﻣﻌﺪة ﻣﻦ ﻣﺤﻤﺪ اﻟﺤﺎج‬

‫‪٧٢‬‬
Prog : Mohamed Youssef

٧٣
Prog : Mohamed Youssef

٧٤
Prog : Mohamed Youssef

٧٥
Prog : Mohamed Youssef

٧٦
Prog : Mohamed Youssef

٧٧
Prog : Mohamed Youssef

٧٨
Prog : Mohamed Youssef

٧٩
Prog : Mohamed Youssef

٨٠
‫‪Prog : Mohamed Youssef‬‬
‫ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ‬
‫ﺗﺴﺘﻄﯿﻊ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺧﻼل ﻣﺤﺮر اﻟﻜﻮد‬

‫ﻛﯿﻔﯿﺔ اﻟﻮﺻﻮل اﻟﻰ ﻣﺤﺮر اﻟﻜﻮد‬

‫‪٨١‬‬
Prog : Mohamed Youssef

٨٢
‫‪Prog : Mohamed Youssef‬‬
‫وﻟﻠﺮﺟﻮع ﻟﻮاﺟﮭﺔ اﻟﺘﺼﻤﯿﻢ‬

‫‪٨٣‬‬
Prog : Mohamed Youssef

٨٤
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺜﻮاﺑﺖ واﻟﺘﺮﻛﯿﺒﺎت‬
‫اﻟﺜﻮاﺑﺖ‬

‫اﻟﺘﺮﻛﯿﺒﺎت‬

‫‪٨٥‬‬
Prog : Mohamed Youssef
enums ‫اﻟﺘﺮﻛﯿﺒﺎت ﻣﻦ ﻧﻮع‬

٨٦
Prog : Mohamed Youssef
structures ‫اﻟﺘﺮﻛﯿﺒﺎت ﻣﻦ ﻧﻮع‬

٨٧
Prog : Mohamed Youssef

٨٨
Prog : Mohamed Youssef

٨٩
Prog : Mohamed Youssef
Array ‫اﻟﻤﺼﻔﻮﻓﺎت‬
:‫ﯾﻤﻜﻨﻚ اﺧﺒﺎر اﻟﻔﺠﻮال ﻧﺖ ﺑﺎﻧﻚ ﺗﻌﺮف ھﺬا اﻟﻤﺘﻐﯿﺮ ﻛﻤﺼﻔﻮﻓﺔ ﺑﻌﺪة ﻃﺮق وأﺷﻜﺎل أﻧﻈﺮ اﻟﺘﺎﻟﻲ‬

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 [Link], ByVal e As [Link]) Handles
[Link]
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 [Link], ByVal e As [Link]) Handles
[Link]
For mycounter = 0 To [Link] - 1
myvalue(mycounter) = mycounter
Next
End Sub

End Class

‫ ﻓﮭﻲ ﺳﺘﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ اﻟﻰ‬For ‫ اﻣﺎ اﻟﻌﺒﺎرة‬،‫ ﻻﺳﺘﺨﺪاﻣﮫ ﻓﻲ اﻟﻌﺪ‬mycounter ‫ وھﻮ‬integer ‫ﻻﺣﻆ اﻧﻨﺎ ﻋﺮﻓﻨﺎ ﻣﺘﻐﯿﺮ ﻣﻦ اﻟﻨﻮع‬
١ ‫ ﻛﻤﺎ ﻋﺮﻓﻨﺎھﺎ وﻟﻜﻨﻨﻲ اﻧﻘﺼﺖ ﻣﻨﮭﺎ‬٦ ‫ ﺗﻌﻮد ﺑﺮﻗﻢ ﯾﻤﺜﻞ ﻣﺠﺎل اﻟﻤﺼﻔﻮﻓﺔ وﺳﻮف ﺗﻌﻮد ﺑﺮﻗﻢ‬Length ‫ و‬[Link] - 1
.ً‫ﻻﻧﮫ ﯾﺘﻢ اﺣﺘﺴﺎب اﻟﺼﻔﺮ أﯾﻀﺎ‬
mycounter ‫وﺑﻌﺪھﺎ أﺳﻨﺪت ﻟﻠﻤﺼﻔﻮﻓﺔ ﻋﻠﻰ اﻟﺘﺮﺗﯿﺐ اﻟﻘﯿﻤﺔ اﻟﺼﺎﻋﺪة ﺑﺪاﺧﻞ اﻟﻤﺘﻐﯿﺮ‬
‫؟‬..‫وﻟﻜﻦ ﻛﯿﻒ ﯾﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻨﻮع اﻟﺜﺎﻧﻲ‬
Public Class Form1
Dim myvalue(5, 3) As Integer
Private Sub Form1_Load(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]
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
myvalue(3, 0) = 13
myvalue(3, 1) = 14
myvalue(3, 2) = 15

٩٠
Prog : Mohamed Youssef
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 [Link], ByVal e As [Link]) Handles
[Link]
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 [Link], ByVal e As [Link]) Handles
[Link]
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 [Link], ByVal e As [Link]) Handles
[Link]
MsgBox([Link])
MsgBox([Link])

٩١
Prog : Mohamed Youssef
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 [Link], ByVal e As [Link]) Handles


[Link]

MsgBox(UBound(myvalue1))
MsgBox(([Link](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 [Link], ByVal e As [Link]) Handles
[Link]
[Link] = myvalue1(3)
[Link] = myvalue2(3, 2, 5)
End Sub

End Class

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

٩٢
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺠﺰء اﻟﺮاﺑﻊ ‪ :‬ﺗﻄﺒﯿﻘﺎت ﻣﺘﻨﻮﻋﺔ‬
‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ اﻹﻧﺘﺮﻧﺖ‬
‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻣﺘﺼﻔﺢ ﻣﻦ ﺧﻼل ﺑﺮﻧﺎﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ‪2005‬‬
‫ﻗﻢ ﺑﻔﺘﺢ اﻟﺒﺮﻧﺎﻣﺞ ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﻣﻌﺎ ﺑﺎﻟﺪروس اﻟﺴﺎﺑﻘﺔ وأﺗﺒﻊ ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﺑﺎﻷﺷﻜﺎل اﻟﺘﺎﻟﯿﺔ‬

‫ﺑﯿﺌﺔ اﻟﻌﻤﻞ‬

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

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

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

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

‫ھﻞ ﻻﺣﻈﺖ ﻣﺎ ﺣﺪث ﺑﮫ ﻓﻀﻼ أﺧﺒﺮﻧﻰ ﺑﻤﺎ ﺣﺪث ؟‬

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

‫‪٩٥‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

‫‪٩٦‬‬
Prog : Mohamed Youssef

٩٧
‫‪Prog : Mohamed Youssef‬‬
‫ﻗﻢ ﺑﺄﺿﺎﻓﺔ اﻷدوات اﻟﺘﺎﻟﯿﺔ وﻗﻢ ﺑﺘﺴﻤﯿﺘﮭﺎ ﺑﺘﻠﻚ اﻷﺳﻤﺎء‬

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

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

‫اﻷﻛﻮاد‬

‫اﻟﺰر اﻷول ﺿﻊ ﻟﮫ اﻟﻜﻮد اﻟﺘﺎﻟﻰ ﺑﻤﺤﺮر اﻟﻜﻮد‬

‫ﻛود‪:‬‬
‫)‪[Link]([Link]‬‬

‫‪Refresh‬‬

‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

‫‪Stop‬‬

‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

‫‪Back‬‬

‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

‫‪Forward‬‬

‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

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

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

‫‪٩٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

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

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

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

‫ﻛود‪:‬‬
‫)(‪[Link]‬‬

‫)‪[Link]([Link]‬‬

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

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

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

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

‫‪١٠٠‬‬
‫‪Prog : Mohamed Youssef‬‬
‫راﺑﻌﺎ‬
‫ﻧﻨﺸﺊ ﻓﻮرم ﺟﺪﯾﺪ ﻛﻤﺎ ﺑﺎﻟﺼﻮره‬

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

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

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

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

‫‪١٠٢‬‬
‫‪Prog : Mohamed Youssef‬‬

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

‫‪١٠٣‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺧﺎﻣﺴﺎ‬
‫اﺿﻐﻂ ﻋﻠﻰ زر إﻗﺮأ ﻣﺮﺗﯿﻦ وﺿﻊ ھﺬا اﻟﻜﻮد‬
‫ﻛﻮد‪:‬‬
‫)"‪[Link]("D:/[Link]‬‬
‫ﺷﺮح اﻟﻜﻮد‬
‫ي اﻧﮫ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ زر إﻗﺮأ ﯾﻘﻮم ﺑﻔﺘﺢ ﻣﻠﻒ ‪ [Link]‬اﻟﻤﻮﺟﻮد ﻋﻠﻰ ﻗﺮص ‪ d‬ﻓﻲ ﺧﺎﻧﮫ ‪ AxAcroPDF1‬اﻟﺘﻲ ﻗﻤﻨﺎ‬
‫ﺑﺈﺿﺎﻓﺘﮭﺎ اﺿﻐﻂ ‪ f5‬واﺿﻐﻂ ﻋﻠﻰ إﻗﺮأ‬

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

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

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


‫‪C:\Documents and Settings\1\My Documents\Visual Studio‬‬
‫‪2005\Projects\Project7\Project7\bin\Debug‬‬
‫اذ ﻛﺎن اﺳﻤﮫ‪Project7‬‬

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

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

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

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

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

‫‪١٠٥‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

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

‫‪١٠٦‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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


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

‫‪١٠٧‬‬
Prog : Mohamed Youssef
‫وھﺬا ﺗﻄﺒﯿﻖ أﺧﺮ ﻷﻧﺸﺎء اﻟﺔ ﺣﺎﺳﺒﮫ ﻣﺘﻄﻮرة‬

‫اﻷﻛﻮاد‬

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

‫زر رﻗﻢ واﺣﺪ‬

:‫ﻛود‬
Private Sub bttn1_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link], [Link], [Link], _
[Link], [Link], [Link], [Link], [Link], [Link], [Link]

If clearDisplay Then
[Link] = ""
clearDisplay = False
End If
[Link] = Val([Link] + [Link])
End Sub

‫وﻻﺣﻆ ﻛﺘﺎﺑﺔ اﺳﺎﻣﻲ اﻻزرار ﻓﻲ ﻛﻮد واﺣﺪ‬


‫ﻛﻮد زر اﻟﻔﺎﺻﻠﺔ ﻓﻲ اﻻرﻗﺎم‬

:‫ﻛود‬
Private Sub bttnPeriod_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]

If [Link](".") > 0 Then


Exit Sub
Else
[Link] = [Link] & "."
End If

١٠٨
Prog : Mohamed Youssef
End Sub
:‫ﻛود‬
‫( اﻟﺠﻤﻊ ﻛﻮد زر‬+)
Private Sub bttnPlus_Click(ByVal sender As [Link], ByVal e As [Link]) Handles
[Link]

Operand1 = Val([Link])
[Operator] = "+"
clearDisplay = True
End Sub

(=)‫ﻛﻮد‬

:‫ﻛود‬
Private Sub bttnEquals_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]

Dim result As Double


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

:‫ﻛود‬
‫( ﻛﻮد ﻋﻤﻠﯿﺔ اﻟﻄﺮح‬-)
Private Sub bttnMinus_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]

Operand1 = Val([Link])
[Operator] = "-"
clearDisplay = True ' [Link] = ""

End Sub

١٠٩
Prog : Mohamed Youssef

‫)*( ﻛﻮد ﻋﻤﻠﯿﺔ اﻟﻀﺮب‬


Private Sub bttnMultiply_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]

Operand1 = Val([Link])
[Operator] = "*"
clearDisplay = True

End Sub
_______________________
‫( ﻛﻮد ﻋﻤﻠﯿﺔ اﻟﻘﺴﻤﮫ‬/)
Private Sub bttnDivide_Click(ByVal sender As [Link], ByVal e As [Link])
Handles [Link]

Operand1 = Val([Link])
[Operator] = "/"
clearDisplay = True

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

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


[Link]) Handles [Link]
If [Link]([Link]) Or [Link] = "." Then
If clearDisplay Then
[Link] = ""
clearDisplay = False
End If
[Link] = [Link] + [Link]
End If
End Sub
_______________________
[Link]‫ﻛﻮد زر اﻟﻤﺴﺢ ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ‬

Private Sub bttnClear_Click(ByVal sender As [Link], ByVal e As [Link]) Handles


[Link]

[Link] = ""
End Sub

‫أﻧﺘﮭﻰ اﻟﺪرس‬

١١٠
Prog : Mohamed Youssef
‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻟﻌﺒﺔ ﺑﺴﯿﻄﺔ ﻣﺘﻄﻮرة‬

Public Class Form1

Private Sub Button1_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
If [Link] = True Then
a = 1
Else
a = 2
End If
[Link]()
End Sub

Private Sub Form1_Load(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
[Link] = True
[Link]()
End Sub
End Class

١١١
Prog : Mohamed Youssef

Public Class Form2


Dim hits As Integer = 0
Private Sub Form2_Load(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link] = False
[Link] = False
[Link] = False
End Sub

Private Sub Butstart_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
Select Case a
Case 2
[Link] = 1000
End Select
[Link] = True
[Link] = True
[Link] = True
[Link] = False
End Sub

Private Sub Butpress_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
hits = hits + 1
[Link] = Format(hits, "Number of hits = # ")
End Sub

Private Sub Timer2_Tick(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
[Link] = False
[Link] = False
[Link] = False
[Link] = True
End Sub

Private Sub Timer1_Tick(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
Randomize()
[Link] = 200 * Rnd()
[Link] = 200 * Rnd()
End Sub
End Class

١١٢
Prog : Mohamed Youssef
‫ﻛﯿﻔﯿﺔ ﺣﺴﺎب اﻟﺰﻣﻦ ﺑﺎﻟﺜﺎﻧﯿﺔ ﻣﻦ أى ﺗﺎرﯾﺦ‬

Public Class Form1


Dim a As Integer
Dim d As Long
Private Sub Radiodays_CheckedChanged(ByVal sender As [Link], ByVal e
As [Link]) Handles [Link]
a = 1
End Sub

Private Sub Radiohours_CheckedChanged(ByVal sender As [Link], ByVal e


As [Link]) Handles [Link]
a = 2
End Sub

Private Sub Radiominutes_CheckedChanged(ByVal sender As [Link], ByVal


e As [Link]) Handles [Link]
a = 3
End Sub

Private Sub Radioseconds_CheckedChanged(ByVal sender As [Link], ByVal


e As [Link]) Handles [Link]
a = 4
End Sub

Private Sub Button1_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
Select Case a
Case 1
d = DateDiff([Link], [Link], Now)
[Link]("the difference " & d & " Day")
Case 2
d = DateDiff([Link], [Link], [Link])
[Link]("the difference " & d & " Hour")
Case 3
d = DateDiff([Link], [Link],
[Link])
[Link]("the difference " & d & " Minute")
Case 4

١١٣
Prog : Mohamed Youssef
d = DateDiff([Link], [Link],
[Link])
[Link]("the difference " & d & " Second")
End Select
End Sub

Private Sub Form1_Load(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
[Link] = True
[Link] = "Date Calculater"
[Link] = "Calculater"
[Link] = True
[Link]()
End Sub
'Programming Mohamed Ahmed Youssef
End Class

١١٤
Prog : Mohamed Youssef
‫ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ ﺟﺪول اﻟﻀﺮب اﻟﻤﺘﻄﻮر‬

Public Class Form1

Private Sub Button1_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
If [Link] = True Then
a = 1
ElseIf [Link] = True Then
a = 2
Else
a = 3
End If
[Link]()
End Sub

Private Sub Form1_Load(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
[Link]()
[Link] = True
End Sub
End Class

١١٥
Prog : Mohamed Youssef

Public Class Form2


Dim n1, n2 As Integer
Dim r1, r2 As Integer
Private Sub Form2_Load(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link]
[Link]()
[Link] = "Plase Enter the Result"
Select Case a
Case 1
Randomize()
n1 = 1 + 10 * Rnd()
n2 = 1 + 10 * Rnd()
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
Case 2
Randomize()
n1 = 15 + 10 * Rnd()
n2 = 15 + 10 * Rnd()
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
Case 3
Randomize()
n1 = 100 + 10 * Rnd()
n2 = 100 + 10 * Rnd()
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
End Select
End Sub

Private Sub Button2_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
[Link]()
[Link] = "Plase Enter the Result"
Select Case a
Case 1
Randomize()
n1 = 1 + 10 * Rnd()
n2 = 1 + 10 * Rnd()
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
Case 2
Randomize()
n1 = 10 + 10 * Rnd()
n2 = 10 + 10 * Rnd()

١١٦
Prog : Mohamed Youssef
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
Case 3
Randomize()
n1 = 100 + 10 * Rnd()
n2 = 100 + 10 * Rnd()
[Link] = "The Result of multiplication " + CStr(n1) + "
by " + CStr(n2) + " = "
[Link] = ""
End Select
End Sub

Private Sub Button1_Click(ByVal sender As [Link], ByVal e As


[Link]) Handles [Link]
r1 = n1 * n2
Try
r2 = [Link]
If r1 = r2 Then
[Link] = "congratulation , True Result"
Else
[Link] = "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‬‬
‫ﻛﯿﻔﯿﺔ ﺗﺼﻤﯿﻢ أﺧﺘﺒﺎر ﺧﺎص ﺑﺄﻋﻼم اﻟﺪول‬

‫‪١١٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺠﺰء اﻟﺨﺎﻣﺲ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬

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


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

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


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

‫‪SQL Server Management Studio Express‬‬


‫‪[Link]
‫‪[Link]
‫‪ SQL2005_Service_Manager‬ﺗﺤﻤﯿﻞ‬
‫‪[Link]

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

‫ﺛﺎﻧﯿﺎ ‪SQL :‬‬

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


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

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

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

‫‪SQL service manager‬‬

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

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

‫‪[Link]

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

‫‪[Link]

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

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

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

‫‪١٢٠‬‬
Prog : Mohamed Youssef
: ‫ﺗﺤﻤﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‬

[Link]
5a0f62bf7796&displaylang=en
[Link]

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

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

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

١٢١
‫‪Prog : Mohamed Youssef‬‬
‫‪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‬‬

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

‫أ ‪- 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‬‬

‫‪١٢٣‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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

‫‪١٢٤‬‬
‫‪Prog : Mohamed Youssef‬‬

‫اﻧﺸﺎء ﺟﺪول ﺟﺪﯾﺪ‬


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

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

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

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

‫‪١٢٥‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

‫‪١٢٦‬‬
‫‪Prog : Mohamed Youssef‬‬

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

‫اﻟﻨﺘﯿﺠﺔ‬

‫اﻻن ﻋﻠﯿﻜﻢ ﺗﻤﻠﯿﺔ اﻟﺨﺎﻧﺎت ﺑﺎﻟﺒﯿﺎﻧﺎت ﺗﻤﮭﯿﺪا ﻟﻠﺪرس اﻟﻘﺎدم‬


‫اﻧﺘﮭﻰ اﻟﺪرس اﻟﺨﺎﻣﺲ‬
‫ﺳﻮف ﻧﺘﻨﺎول ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﺑﺎذن اﷲ اواﻣﺮ ‪SQL‬‬

‫اﻟﺪرس اﻟﺴﺎدس ‪:‬‬


‫ﺳﻮف ﻧﺘﻨﺎول ﻓﻲ ھﺬا اﻟﺪرس ﻋﺒﺎرت او ﻣﻌﺎﻣﻞ ‪SQL‬‬

‫‪١٢٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اوﻻ ‪ :‬ﻧﻀﻐﻂ ﻋﻠﻰ ‪New Query‬‬

‫ﻓﺘﻈﮭﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻻﺳﺘﻌﻼم‬


‫ﻣﻦ ﺧﺎﻧﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺮج ﻣﻨﮭﺎ اﻟﺒﯿﺎﻧﺎت‬

‫اﻻن ﻧﻜﺘﺐ اﻟﻜﻮد ﻓﻲ ﺷﺎﺷﺔ اﻻﺳﺘﻌﻼم ‪:‬‬

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


‫ﻓﻤﺜﻼ ‪ :‬اذا اردﻧﺎ اﻇﮭﺎر ﺑﯿﺎﻧﺎت اﻟﺠﺪول ‪ Emp_info‬ﻧﻜﺘﺐ اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‬
‫‪1- Select‬‬
‫‪2-‬اﺳﻢ او اﺳﻤﺎء اﻟﺤﻘﻮل‬
‫‪3- From‬‬
‫‪4-‬اﺳﻢ اﻟﺠﺪول‪.‬‬

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

‫ﻓﺘﻜﻮن اﻟﺼﯿﻐﺔ ﻛﺎﻻﺗﻲ ‪:‬‬

‫‪Select * From Emp_info‬ﺣﯿﺚ ان * ﺗﺪل ﻋﻠﻰ ﺟﻤﯿﻊ اﻟﺤﻘﻮل ‪.‬‬


‫ﻓﺘﻜﻮن اﻟﺼﻮرة ﻛﺎﻻﺗﻲ ‪:‬‬

‫‪١٢٨‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪2 -‬اﺧﺘﯿﺎر ﺣﻘﻮل ﻣﻌﯿﻨﺔ ﻣﻦ اﻟﺠﺪول ﻓﻠﯿﻜﻦ‪name - address - country‬‬


‫‪Select Name ,Adderss ,country From Emp_info‬‬
‫ﻓﺘﻜﻮن اﻟﻨﺘﯿﺠﺔ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة‬

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

‫‪Select DISTINCT Country From Emp_info‬‬

‫‪١٢٩‬‬
‫‪Prog : Mohamed Youssef‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

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

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


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

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

‫‪١٣٠‬‬
‫‪Prog : Mohamed Youssef‬‬
‫><ﻻ ﺗﺴﺎوي‬
‫<اﻛﺒﺮ ﻣﻦ‬
‫>اﺻﻐﺮ ﻣﻦ‬
‫<=اﻛﺒﺮ ﻣﻦ او ﺗﺴﺎوي‬
‫>=اﺻﻐﺮ ﻣﻦ او ﺗﺴﺎوي‬
‫‪Between‬ﺷﺮط ﺑﯿﻦ ﻗﯿﻤﺘﯿﻦ‬
‫‪Like‬ﻟﻠﺒﺤﺚ ﻋﻦ ﻛﻠﻤﺔ ﻣﺸﺎﺑﮭﺔ‬

‫‪5-‬ﻋﺒﺎرة‪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‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫‪١٣١‬‬
‫‪Prog : Mohamed Youssef‬‬

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


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

‫اﻟﻨﺘﯿﺠﺔ‬

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


‫ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﺳﻮف ﻧﺴﺘﻜﻤﻞ ﻣﻊ ﻋﺒﺎرات ) ‪( IN - Between - Alis - Like‬‬

‫اوﻻ ‪ :‬ﻣﻌﺎﻣﻞ ‪Count :‬‬


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

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


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

‫‪١٣٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺛﺎﻧﯿﺎ ‪ :‬ﻣﻌﺎﻣﻞ ‪ IN‬ھﻮ ﻋﺒﺎرة ﻋﻦ اﻇﮭﺎر ﺑﯿﺎﻧﺎت ﻣﻌﯿﻨﺔ ﻣﻦ ﺣﻘﻞ ﻣﻌﯿﻦ‬
‫ﻣﺜﺎل ‪Emp_info Select * From :‬‬
‫‪('Country IN('oman','uae where‬‬

‫ﺛﺎﻟﺜﺎ ‪:‬‬

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

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


‫ﻓﻲ اﻟﺒﺪاﯾﺔ ﻧﻘﻮم ﺑﺎﻧﺸﺎء ﺟﺪول ﺟﺪﯾﺪ ) راﺟﻊ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ )‬
‫واﺣﻔﻈﮫ ﺑﺎﻻﺳﻢ اﻟﺬي ﺗﺮﯾﺪ‬
‫اﻻن ادرج اﻟﺤﻘﻮل اﻟﺘﺎﻟﯿﺔ ﻓﻲ اﻟﺠﺪول اﻟﺠﺪﯾﺪ‬
‫‪ID‬‬
‫‪JobName‬‬
‫‪ContractType‬‬
‫‪selary‬‬
‫ﺑﻌﺪ اﻧﺸﺎء اﻟﺠﺪول واﺿﺎﻓﺔ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ﺟﺎء دور اﻟﺮﺑﻂ ﺑﯿﻦ اﻟﺠﺪوﻟﯿﻦ‬
‫اﺿﻐﻂ ﺑﺎﻟﺰر اﻻﯾﻤﻦ ﻋﻠﻰ ‪ DataBase Diagrams‬ﺑﻌﺪھﺎ اﺧﺘﺮ‪New DataBase Diagrams‬‬

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

‫‪١٣٣‬‬
‫‪Prog : Mohamed Youssef‬‬

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

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


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

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

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

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

‫‪[Link]

‫‪١٣٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺛﺎﻧﯿﺎ ‪ :‬ﺗﻨﺼﯿﺐ اﻟﺒﺮﻧﺎﻣﺞ‬

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

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

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

‫ﺑﻌﺪ ان ﻧﻔﺘﺢ ﺑﺮﻧﺎﻣﺞ ‪SQL2005‬‬


‫‪ - ١‬ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﯾﻤﻦ ﻋﻠﻰ‪Database‬‬
‫‪ - ٢‬ﺑﻌﺪھﺎ ﻧﺨﺘﺎر‪attach‬‬

‫‪١٣٥‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ - ٣‬ﺑﻌﺪھﺎ ﺗﻈﮭﺮ ﺷﺎﺷﺔ ﻻﺿﺎﻓﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر ‪Add‬‬

‫‪ - ٤‬اﻻن ﻧﺨﺘﺎر ﻣﻠﻒ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﻮﺟﻮد ﻓﻲ اﻟﻘﺮص اﻟﺤﻠﻲ ) ‪( C‬‬


‫ﻣﻼﺣﻈﺔ ‪ :‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ اﺧﺘﺮﻧﺎ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‪Northwind‬‬

‫‪١٣٦‬‬
Prog : Mohamed Youssef

‫ اﻟﻨﺘﯿﺠﺔ‬-٥

١٣٧
‫‪Prog : Mohamed Youssef‬‬

‫‪---------------------------------------------------------------------------------‬‬

‫اﻟﺪرس اﻟﺘﺎﺳﻊ ‪:‬‬

‫ﻃﺮﯾﻘﺔ ﻋﻤﻞ ﻧﺴﺨﺔ اﺣﺘﯿﺎﻃﯿﺔ ‪Backup‬‬

‫‪ -١‬ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﯾﻤﻦ ﻋﻠﻰ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺮاد ﻋﻤﻞ ﻧﺴﺨﺔ ﻟﮭﺎ‬

‫‪ -٢‬ﺗﻈﮭﺮ ﻟﻨﺎ ﺷﺎﺷﺔ ﺗﺨﺒﺮﻧﺎ ﻣﻜﺎن ﺣﻔﻆ اﻟﻤﻠﻒ‬

‫‪١٣٨‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ -٣‬اﻟﻨﺘﯿﺠﺔ‬

‫‪----------------------------:‬‬

‫ﻃﺮﯾﻘﺔ اﺳﺘﺮﺟﺎع اﻟﻨﺴﺨﺔ اﻻﺣﺘﯿﺎﻃﯿﺔ ‪:‬‬

‫ﻓﻲ اﻟﺪرس اﻟﺴﺎﺑﻖ ﺗﻌﻠﻤﻨﺎ ﻛﯿﻔﯿﺔ ﻋﻤﻞ اﻟﻨﺴﺨﺔ اﻻﺣﺘﯿﺎﻃﯿﺔ ﻟﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت ﻣﻌﯿﻨﺔ وﻗﻠﻨﺎ ان اﻟﻤﻠﻒ ﻣﻮﺟﻮد ﻓﻲ ﻣﺴﺎر ﻣﻌﯿﻦ‬

‫‪١٣٩‬‬
‫‪Prog : Mohamed Youssef‬‬

‫ﻓﻲ ھﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻨﺎول ﻛﯿﻔﯿﺔ اﺳﺘﺮﺟﺎع اﻟﻨﺴﺨﺔ اﻻﺣﺘﯿﺎﻃﯿﺔ ‪:‬‬

‫‪ -١‬اﻟﺨﻄﻮة اﻻوﻟﻰ ﯾﻤﻜﻨﻚ اﺳﺘﺨﺪام اﺣﺪى اﻟﻄﺮﯾﻘﺘﯿﻦ وﻛﻼھﻤﺎ ﺻﺤﯿﺢ‬

‫‪-‬ﯾﻤﻜﻦ اﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة وﺗﺴﻤﺴﺘﮭﺎ ﺑﺎﺳﻢ ﻣﻌﯿﻦ‬


‫‪-‬اﻟﻨﻘﺮ ﺑﺎﻟﺰر اﻻﯾﻤﻦ ﻋﻠﻰ ‪ Database‬وھﺬه اﻟﻄﺮﯾﻘﺔ اﻟﺘﻲ ﻧﺴﻨﺨﺪﻣﮭﺎ ﻓﻲ درﺳﻨﺎ‬

‫‪ -٢‬ﺗﻈﮭﺮ ﻟﻨﺎ ﺷﺎﺷﺔ ﺟﻠﺐ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‬

‫‪-‬ﻓﻲ ﺧﺎﻧﺔ ‪ To Database :‬ﻧﻜﺘﺐ اﺳﻢ اﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ) ﻛﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺟﺪﯾﺪة )‬

‫‪-‬ﻓﻲ اﻟﻘﺴﻢ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﺸﺎﺷﺔ ﻧﺨﺘﺎر ‪ From Device‬ﻟﺠﻠﺐ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﻘﺮص اﻟﻤﺤﻠﻲ‬

‫‪-‬اﻻن ﻧﺨﺘﺎر زر اﺳﺘﻌﺮاض‬

‫‪ - ٣‬ﻓﻲ ھﺬه اﻟﺸﺎﺳﺔ ﻧﺨﺘﺎر زر‪Add‬‬

‫‪١٤٠‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ - ٤‬اﻻن ﻧﻘﻮم ﺑﺎﺧﺘﯿﺎر اﻟﻨﺴﺨﺔ اﻻﺣﺘﯿﺎﻃﯿﺔ ﻣﻦ اﻟﻘﺮص او اﻟﻤﻜﺎن اﻟﺬي ﺗﻢ ﺗﺨﺰﯾﻨﮫ ﻓﯿﮫ ‪.‬‬

‫‪١٤١‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ - ٥‬اﻟﺨﻄﻮة اﻻﺧﯿﺮة ﻧﻼﺣﻆ وﺟﻮد ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻧﺨﺘﺎر زر ‪OK‬‬

‫‪١٤٢‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ -٦‬اﻟﻨﺘﯿﺠﺔ‬

‫ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﺳﻮف ﻧﺘﻄﺮق اﻟﻰ ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪Views‬‬

‫‪١٤٣‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺪرس اﻟﻌﺎﺷﺮ ‪: Views‬‬

‫ﻣﺸﺎھﺪ اﻟﺒﯿﺎﻧﺎت أو ‪ Views‬ﺗﺸﺒﮫ ﻛﺜﯿﺮاً اﺳﺘﻌﻼﻣﺎت اﻷﻛﺴﺲ) ‪( Query‬‬


‫وھﻲ ﺗﺴﺘﺨﺪم ﻟﻠﻌﺮض ﻣﻦ ﻋﺪة ﺟﺪاول ﻛﻤﺎ ﻧﻼﺣﻆ ﻓﻲ درﺳﻨﺎ‬
‫اﻟﻔﺎﺋﺪة ﻣﻦ اﻟﻤﺸﺎھﺪ‬
‫ﻃﺒﻌﺎً اﻟﻔﺎﺋﺪة اﻟﻜﺒﯿﺮة ﻣﻨﮫ اﻟﺘﺤﻜﻢ ﺑﺼﻼﺣﯿﺎت اﻟﻮﺻﻮل( ﻟﺘﺤﺪﯾﺪ اﻟﺤﻘﻮل اﻟﻤﺴﻤﻮح ﺑﺮؤﯾﺘﮭﺎ ﻣﺜﻼً ﻟﮭﺬا اﻟﻤﺴﺘﺨﺪم أو ذاك) ‪..‬‬
‫ﻓﻲ درﺳﻨﺎ ﺳﻮف ﻧﻨﺸﺊ ﻣﺸﺎھﺪ ) ‪ ( View‬وﻧﻀﯿﻒ ﻓﯿﮫ اﻟﺒﯿﺎﻧﺎت اﻻﺗﯿﺔ‬
‫ﺟﺪول‪: Customers ١‬‬
‫اﻟﺤﻘﻮل‪: CompanyName -- ContactName‬‬
‫ﺟﺪول‪: Orders٢‬‬
‫اﻟﺤﻘﻮل‪: OrderDate‬‬
‫ﺟﺪول‪: [Order Details]٣‬‬
‫اﻟﺤﻘﻮل ‪: UnitPrice --- Quantity --- Discount‬‬

‫ﺧﻄﻮات اﻟﻌﻤﻞ ‪:‬‬


‫*اﻧﺸﺎء ‪ View‬ﺟﺪﯾﺪ‬
‫ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﯾﻤﻦ ﻋﻠﻰ ‪ Views‬ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ‬

‫ﺛﻢ ﻧﺨﺘﺎر‪NewView‬‬
‫ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﻈﮭﺮ ﻟﻨﺎ ﻣﺮﺑﻊ ﻧﻀﯿﻒ اﻟﺠﺪاول اﻟﻤﻨﺎﺳﺒﺔ‬

‫‪١٤٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺑﻌﺪ اﺿﺎﻓﺔ اﻟﺠﺪاول اﻟﺘﻲ ﻧﺮﯾﺪ اﺳﺘﺨﺮاج اﻟﺒﯿﺎﻧﺎت ﻣﻨﮭﺎ ﻧﺨﺘﺎر اﻟﺤﻘﻮل اﻟﻤﻨﺎﺳﺒﺔ‬
‫ﻟﻠﻌﻠﻢ ) ﻧﻼﺣﻆ اﻧﮫ ﺑﻤﺠﺮ ﻣﺎ ﻧﻀﯿﻒ اﻟﺠﺪاول اﻟﻌﻼﻗﺎت ﺗﻈﮭﺮ ﺑﯿﻦ اﻟﺠﺪاول وﺑﺎﻻﻣﻜﺎن اﯾﻀﺎ ﻋﻤﻞ ﻋﻼﻗﺎت ﺑﯿﻦ اﻟﺠﺪاول )‬

‫ﻓﻲ ھﺬا اﻟﺸﻜﻞ ﻧﻼﺣﻆ ﻇﮭﻮر اﻟﺠﺪاول واﻟﺤﻘﻮل‬

‫وﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ اﻟﻜﻮد اﻟﺨﺎص ﺑﺎﻟﻤﺸﺎھﺪ وﻃﺮﯾﻘﺔ رﺑﻄﮫ‬

‫ﺑﻌﺪ اﻻﻧﺘﮭﺎء ﻣﻦ اﺿﺎﻓﺔ اﻟﺠﺪاول واﻟﺤﻘﻮل ﻧﻀﻐﻂ ﻋﻠﻰ زر ‪ F5‬او ﻋﻠﻰ‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫‪١٤٥‬‬
‫‪Prog : Mohamed Youssef‬‬

‫ﺛﺎﻧﯿﺎ ‪ :‬ﺧﯿﺎرات اﻟﺠﺪاول‬


‫ﯾﻤﻜﻨﻨﺎ اﺿﺎﻓﺔ اﻟﺨﯿﺎرات ﻣﻦ اﻟﺤﻘﻮل ﻣﺒﺎﺷﺮة او ﻣﻦ ﺧﻼل اﻟﺸﻔﺮة ﻛﻤﺎ ﻓﻌﻠﻨﺎ ﻓﻲ اﻟﺪروس اﻟﺴﺎﺑﻘﺔ) ‪( Count - where ...‬‬
‫ﺧﺎﺻﯿﺔ ‪Sort Type‬‬

‫ﻓﻲ ﺣﺎل ﻧﺮﯾﺪ اﻇﮭﺎر ﺑﯿﺎن ﻣﻌﯿﻦ ﻣﻦ ﺣﻘﻞ ﻣﻌﯿﻦ ﻓﻨﺨﺘﺎر ﺧﺎﺻﯿﺔ‪Filter‬‬

‫اﻟﻨﺘﯿﺠﺔ‬

‫‪.‬‬

‫‪١٤٦‬‬
‫‪Prog : Mohamed Youssef‬‬

‫ﺷﺮح اﻟﺘﻌﺎﻣﻞ ﻣﻊ ‪[Link]‬‬


‫‪ [Link] ..‬ھﻲ اﻟﺘﻘﻨﯿﺔ اﻟﺘﻲ ﺗﺴﻤﺢ ﻟﻨﺎ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻦ داﺧﻞ ﺑﯿﺌﺔ اﻟـ ‪ NET .‬ﺣﯿﺚ ﺗﻘﻮم ھﺬه‬
‫اﻟﺘﻘﻨﯿﺔ ﻋﻠﻰ ﻣﺒﺪأ اﻟـ ‪ , oriented programming Object‬وھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟـ ‪ classes‬و اﻟﺘﻲ‬
‫ﺗﻤﻜﻨﻨﺎ ﻣﻦ اﻟﻮﺻﻮل إﻟﻰ اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺧﻼل اﻟﻠﻐﺎت اﻟﺘﻲ ﺗﺪﻋﮫﻤﺎ ‪ . NET‬ﺿﻤﻦ ﻓﻀﺎﺋﻲ اﻷﺳﻤﺎء ‪ [Link]‬و‬
‫‪[Link] .‬‬

‫ﺣﯿﺚ ﺗﻤﺘﺎز اﻟـ ‪ [Link]‬ﺑﻤﯿﺰة اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت ﻓﻲ وﺿﻌﯿﻦ‪ :‬اﻷول وﺿﻊ ﻣﺘﺼﻞ ‪ connected‬و‬
‫اﻟﻮﺿﻊ اﻵﺧﺮ و ﺿﻊ ﻣﻨﻔﺼﻞ ‪. Disconnected‬‬

‫و ﻟﻘﺪ ﻧﺸﺄت اﻟـ ‪ [Link]‬ﻣﻦ ﺗﻘﻨﯿﺔ ﺳﺎﺑﻘﺔ ﺗﺪﻋﻰ ‪ ADO‬و ھﻲ اﺧﺘﺼﺎر ﻟﻠﻜﻠﻤﺎت ‪ ActiveX data Object‬و ﻛﺎﻧﺖ‬
‫اﻟـ‪ ADO‬ﺗﻤﺜﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟـ ‪ Classes‬اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﺴﺎﺑﻘﺔ ﻣﺜﻞ ‪ basic 6 visual‬ﻟﻠﻮﺻﻮل‬
‫إﻟﻰ اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ‪ ،‬و ‪ [Link]‬ﺗﻘﻮم ﺑﻨﻔﺲ اﻷﻏﺮاض اﻟﺘﻲ ﻛﺎﻧﺖ ﺗﻘﻮم ﺑﮫﺎ اﻟـ ‪ ADO‬و ﻟﻜﻦ‬
‫ﺑﺄﺳﻠﻮب ﻣﺤﺪث و أﺳﮫﻞ ‪.‬‬

‫ﻣﺰودات اﻟﺒﯿﺎﻧﺎت ‪:Data Providers‬‬

‫ﺗﺴﻤﺢ ﻟﻚ ‪ [Link]‬ﺑﺎﻻﺗﺼﺎل ﻣﻊ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت ) ﺑﺮاﻣﺞ إدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻋﻠﻰ اﺧﺘﻼﻓﮫﺎ‪ :‬أوراﻛﻞ‪SQL ،‬‬
‫‪ ،Access MS ،Server‬وﻏﯿﺮھﺎ( وﻟﺘﺤﻘﯿﻖ ھﺬا اﻟﺘﻌﻤﯿﻢ ﻳﻮﺟﺪ ﻣﺠﻤﻮﻋﺔ واﺣﺪة ﻣﻦ ال‪ Classes‬ﻓﻲ ‪![Link]‬‬
‫وﺑﻤﺎ أن ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ ﺗﻌﻤﻞ ﺑﺒﺮوﺗﻮﻛﻮﻻت ﻣﺨﺘﻠﻔﺔ‪ ،‬ﻟﺬﻟﻚ ﻓﻨﺤﻦ ﻧﺤﺘﺎج إﻟﻰ ﻃﺮﻳﻘﺔ ﺻﺤﯿﺤﺔ ﻟﻠﺘﻌﺎﻣﻞ‬
‫ﻣﻊ ﻛﻞ ﻣﺼﺪر ﺑﺎﻟﺒﺮوﺗﻮﻛﻮل اﻟﺬي ﻳﻨﺎﺳﺒﻪ‪ ،‬ﺑﻌﺾ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت اﻟﻘﺪﻳﻤﺔ ﺗﺴﺘﺨﺪم ‪ ODBC protocol‬وﺑﻌﺾ‬
‫اﻟﺤﺪﻳﺚ ﻣﻨﮫﺎ ﻳﺴﺘﺨﺪم ‪.protocol OleDb‬‬
‫‪ [Link]‬ﺗﻘﺪم ﻃﺮﻳﻘﺔ ﻋﺎﻣﺔ ﻧﺴﺒﯿﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت ﻛﻞً ﻋﻠﻰ ﺣﺪه ﻓﻲ ﻣﻜﺘﺒﺔ ﺧﺎﺻﺔ‪ ،‬ھﺬه‬
‫اﻟﻤﻜﺘﺒﺎت ﺗﺴﻤﻰ ‪ Data Providers‬وﻏﺎﻟﺒﺎً ﻳﻜﻮن اﺳﻤﮫﺎ ﻓﻲ ‪ [Link]‬ﻋﻠﻰ اﺳﻤﺎء اﻟﺒﺮوﺗﻮﻛﻮﻻت اﻟﺘﻲ‬
‫ﺗﺴﺘﻌﻤﻠﮫﺎ ﻣﺼﺎدر اﻟﺒﯿﺎﻧﺎت‪ ،‬اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻳﻮﺿﺢ ﺑﻌﺾ ﻣﺰودات اﻟﺒﯿﺎﻧﺎت اﻟﻤﻌﺮﻓﺔ ﻓﻲ ‪ [Link]‬وﺳﺎﺑﻘﺔ ‪API‬‬
‫اﻟﺘﻲ ﺳﺘﻌﻤﻠﮫﺎ وﻧﻮع ﻣﺼﺪر اﻟﺒﯿﺎﻧﺎت اﻟﺬي ﺗﺘﻌﺎﻣﻞ ﻣﻌﻪ‪:‬‬

‫‪Table 1. [Link] 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‬‬ ‫‪API‬‬
‫‪Data Source Description‬‬
‫‪Name‬‬ ‫‪Prefix‬‬
‫‪ODBC Data‬‬ ‫‪Data Sources with an ODBC interface. Normally older‬‬
‫‪Odbc‬‬
‫‪Provider‬‬ ‫‪data bases.‬‬
‫‪OleDb Data‬‬ ‫‪Data Sources that expose an OleDb interface, i.e.‬‬
‫‪OleDb‬‬
‫‪Provider‬‬ ‫‪Access or Excel.‬‬
‫‪Oracle Data‬‬
‫‪Oracle‬‬ ‫‪For Oracle Data Bases.‬‬
‫‪Provider‬‬
‫‪SQL Data‬‬
‫‪Sql‬‬ ‫‪For interacting with Microsoft SQL Server.‬‬
‫‪Provider‬‬
‫‪Borland Data‬‬ ‫‪Generic access to many data bases such as‬‬
‫‪Bdp‬‬
‫‪Provider‬‬ ‫‪Interbase, SQL Server, IBM DB2, and Oracle.‬‬

‫ﻛﻤﺜــﺎل ﻳﻮﺿــﺢ اﺳــﺘﺨﺪام ﺳــﺎﺑﻘﺔ ‪ :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‬وﺑﺈﻣﻜﺎﻧﻚ ﺗﻐﯿﯿﺮھﺎ إذا ﻛﻨﺖ ﺗﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺰود ﺑﯿﺎﻧﺎت ﻟﻘﺎﻋﺪة ﺑﯿﺎﻧﺎت أﺧﺮى ﻛﻤﺎ‬
‫ﻳﻮﺿﺢ اﻟﺠﺪول اﻟﺴﺎﺑﻖ!‬

‫‪١٤٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪[Link] Objects :‬‬

‫‪1-‬‬ ‫‪Connection‬‬

‫‪2-‬‬ ‫‪Command.‬‬

‫‪3-‬‬ ‫)وﺿﻊ ﻣﺘﺼﻞ( ‪DataReader.‬‬

‫‪4-‬‬ ‫)وﺿﻊ ﻣﻨﻔﺼﻞ( ‪DataAdapter.‬‬

‫‪5-‬‬ ‫‪).‬وﺿﻊ ﻣﻨﻔﺼﻞ ( ‪DataSet.‬‬

‫واﻟﺮﺳﻢ اﻟﺘﺎﻟﻲ ﻳﻮﺿﺢ ﻣﻔﮫﻮم اﺳﺘﺨﺪام ﻛﻞ ﻛﺎﺋﻦ وﻧﻄﺎﻗﻪ‪:‬‬

‫و إﻟﯿﻚ ﺧﻄﻮات رﺑﻂ ﺑﺮﻧﺎﻣﺞ ﺑﺎﻟـ ‪ #C‬ﻣﻊ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ﺗﻢ إﻧﺸﺎؤھﺎ ﻋﻠﻰ اﻟــ‪Microsoft Access :‬‬

‫ﻓﻲ اﻟﺒﺪاﻳﺔ أود ذﻛﺮ أن ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻗﻤﺖ ﺑﺎﻧﺸﺎءھﺎ ﺑﺴﯿﻄﺔ ﺟﺪا ﻗﻤﺖ ﺑﺘﺴﻤﯿﺘﮫﺎ ‪ k_s_b‬و ﺗﺤﺘﻮي ﻋﻠﻰ‬
‫ﺟﺪول واﺣﺪ ﻓﻘﻂ ﻳﺴﻤﻰ‪patient .‬‬

‫اﻵن ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪: view >> server explorer‬‬

‫‪١٤٨‬‬
‫‪Prog : Mohamed Youssef‬‬

‫ﺳﯿﻈﮫﺮ ﻟﻚ ﻣﺎ ﻳﻠﻲ ﺑﺠﺎﻧﺐ ﺻﻨﺪوق اﻷدوات‪:‬‬

‫‪١٤٩‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺳﯿﻈﮫﺮ ﻟﻚ ﻓﻲ ﻧﺎﻓﺬة اﻟـ ‪ Server explorer‬ﻣﺎ ﻳﻠﻲ‪:‬‬

‫ﻻﺣﻆ ﺑﺎﻷﻋﻠﻰ أﻧﻪ ﺗﻢ إدراج ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺳﻨﻘﻮم ﺑﺮﺑﻄﮫﺎ ﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ ‪ ,‬ﻓﻘﻂ ﻗﻢ اﻵن ﺑﺴﺤﺐ اﻟﺠﺪول‬
‫اﻟﻤﺮاد ﻣﻦ ھﻨﺎ و إﺳﻘﺎﻃﻪ ﻋﻠﻰ اﻟـ( ‪ form‬ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ اﺳﻢ اﻟﺠﺪول ‪ "Patient"),‬وﺑﻌﺪ ذﻟﻚ ﺳﯿﻈﮫﺮ ﻟﻚ‬
‫اﻟﻜﺎﺋﻨﯿﻦ اﻟﺘﺎﻟﯿﯿﻦ أﺳﻔﻞ اﻟـ‪form.‬‬

‫و ﻹﻧﺸﺎء اﻟﻜﺎﺋﻦ‪DataSet :‬‬

‫اﻧﺘﮫﯿﻨﺎ اﻵن ﻣﻦ رﺑﻂ اﻟـ ‪ form‬ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫ﻧﺮﻳﺪ اﻵن أن ﻧﺴﺘﻌﺮض ﻣﺤﺘﻮﻳﺎت أﺣﺪ ﺟﺪاول ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﻗﻤﻨﺎ ﺑﺮﺑﻄﮫﺎ ﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ‪:‬‬

‫وﻟﻌﻤﻞ ذﻟﻚ ﺳﻮف ﻧﺴﺘﺨﺪم اﻷداة ‪ DataGrid‬ﻟﻌﺮض اﻟﺠﺪول ﺑﮫﺎ ‪ ,‬ﻟﺬﻟﻚ ﻗﻢ ﺑﺴﺤﺐ ھﺬه اﻷداة اﻵن ﻣﻦ‬
‫ﺻﻨﺪوق اﻷدوات و إﺳﻘﺎﻃﮫﺎ ﻋﻠﻰ اﻟـ‪Form,‬‬

‫‪١٥٠‬‬
Prog : Mohamed Youssef

‫ ﺑﻤﺠﺮد ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻟﺬﻟﻚ ﺳﻮف ﻧﻘﻮم‬DataGrid ‫و ﻓﻲ ﺣﺎﻟﺘﻨﺎ ھﺬه ﻧﺮﻳﺪ أن ﻳﺘﻢ ﺗﺤﻤﯿﻞ اﻟﺠﺪول ﻋﻠﻰ اﻟـ‬
Constructor......‫ﺑﻜﺘﺎﺑﺔ اﻷواﻣﺮ داﺧﻞ اﻟـ‬

:‫ و اﻛﺘﺐ اﻷواﻣﺮ اﻟﺘﺎﻟﯿﺔ‬code ‫اﻵن اﻧﺘﻘﻞ إﻟﻰ ﻧﺎﻓﺬة اﻟـ‬

public Form1()

InitializeComponent();

try

// fill DataSet with data from OleDbDataAdapter

[Link](this.dataSet11, "Patient");

// bind DataGrid to DataSet

[Link](this.dataSet11, "Patient");

catch(Exception ex)

[Link]([Link], "error..!");

١٥١
‫‪Prog : Mohamed Youssef‬‬
‫ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ‪:‬‬

‫ﻓﻲ اﻟﺒﺪاﻳﺔ ﻗﻤﻨﺎ ﺑﺘﻌﺒﺌﺔ اﻟـ ‪ DataSet‬ﺑﺎﻟﺠﺪول "‪"Patient‬اﻟﻤﻮﺟﻮد ﻓﻲ ﻗﺎﻋـﺪة اﻟﺒﯿﺎﻧـﺎت اﻟﺘـﻲ ﻗﻤﻨـﺎ ﺑﺮﺑﻄﮫـﺎ ﻣـﻊ‬
‫اﻟﺒﺮﻧﺎﻣﺞ ‪ .‬و ذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ ‪ Fill‬ﻣﻊ اﻟﻜﻼس ‪ oleDbDataAdapter‬ﺑﺤﯿﺚ أﻧﮫﺎ ﺳﻮف ﺗﺴﺘﻘﺒﻞ ﻓﻲ اﻟﺒﺎرﻣﺘﺮ‬
‫اﻻول اﺳﻢ اﻟـ ‪ DataSet‬اﻟﻤﺮاد ﺗﻌﺒﺌﺘﮫﺎ‪ ،‬و اﻟﺒﺎرﻣﺘﺮ اﻟﺜﺎﻧﻲ ھﻮ اﺳﻢ اﻟﺠﺪول‪.‬‬

‫و ﻟﻜﻲ ﻧﻌﺮض اﻟﺠﺪول ﻓﻲ اﻷداة ‪ DataGrid‬ﻗﻤﻨﺎ ﻓﻲ اﻟﺴﻄﺮ اﻟﺬي ﻳﻠﯿﻪ ﺑـﺮﺑﻂ اﻷداة ‪ DataGrid‬ﺑﺎﻟــ ‪DataSet‬‬
‫وذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟـﺔ ‪ : ()SetDataBinding‬ﺑﺤﯿـﺚ أن ھـﺬه اﻟﺪاﻟـﺔ ﺗـﺴﺘﻘﺒﻞ ﺑـﺎرﻣﺘﺮﻳﻦ اﻷول و ھـﻮ اﺳـﻢ اﻟــ‬
‫‪DataSet‬و اﻟﺜﺎﻧﻲ ھﻮ اﺳﻢ اﻟﺠﺪول اﻟﻤﻮﺟﻮد ﺑﮫﺎ‪.‬‬

‫أﻣﺎ إذا ﻛﺎن ﻟﺪﻳﻚ اﺳﺘﻔﺴﺎر ﻓﻲ ﻋﺒﺎرة ‪ try , catch‬ﻓﻌﻠﯿﻚ ﻣﺮاﺟﻌﺔ اﻟﺪرس " اﻟﺴﯿﻄﺮة ﻋﻠﻰ اﻷﺧﻄﺎء ‪Exception‬‬
‫‪handling " ...‬‬

‫و ﻧﺘﯿﺠﺔ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﻟﻘﺪ ﺗﻤﻜﻨﺖ اﻵن ﻣﻦ رﺑﻂ ﺑﺮﻧﺎﻣﺠﻚ ﺑﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت و ﻋﺮض ﻣﺤﺘﻮﻳﺎت اﻟﺠﺪول ﻟﺪﻳﻚ ﺑﻨﺠﺎح‪ ،‬ﺳﺘﺘﻌﻠﻢ إن ﺷﺎء اﷲ‬
‫ﻓﻲ اﻟﺪروس اﻟﻘﺎدﻣﺔ اﻟﻘﯿﺎم ﺑﻌﻤﻠﯿﺎت ﻣﺘﻘﺪﻣﺔ أﻛﺜﺮ ﻋﻠﻰ اﻟﺠﺪاول‪..‬‬

‫‪١٥٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺘﻘﺎرﯾﺮ ‪Reports‬‬
‫ﻃﺮﯾﻘﺔ إﺿﺎﻓﺔ ﺗﻘﺮﯾﺮ ﻟﻠﻤﺸﺮوع ‪..‬‬
‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﯿﻢ‬
‫ﻣﻦ اﻟﻘﺴﻢ ‪ Solution Explorer‬أﻧﻘﺮ ﻋﻠﻰ اﺳﻢ اﻟﻤﺸﺮوع ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﺛﻢ ﺗﺎﺑﮫ اﻟﺼﻮر اﻟﺘﺎﻟﯿﺔ ‪:‬‬

‫‪١٥٣‬‬
Prog : Mohamed Youssef

١٥٤
Prog : Mohamed Youssef

١٥٥
‫‪Prog : Mohamed Youssef‬‬

‫‪ - [ ٢٨٥ ٥‬إﺿﻐﻂ ھﻨﺎ ﻟﻌﺮﺿﺎﻟﺤﺠﻢ اﻷﺻﻠﻲ‬

‫‪١٥٦‬‬
‫‪Prog : Mohamed Youssef‬‬

‫‪ - [ x‬إﺿﻐﻂ ھﻨﺎ ﻟﻌﺮض اﻟﺤﺞ‬ ‫اﺿﻒ ﻓﻲ اﻟﺘﻘﺮﯾﺮ ﺑﺎﻟﺬات ﻓﻲ ‪ Section2‬ﻣﺮﺑﻊ ﻧﺺ وﻟﯿﻜﻦ اﺳﻤﮫ ‪ text1‬ﻛﻌﻨﻮان ﻟﻠﺘﻘﺮﯾﺮ ‪.‬ﻟﺤﺠﻢ اﻷﺻﻠﻲ ] ‪592 ٨٣١‬‬

‫ثم ﻣﻦ اﻟﻘﺴﻢ ‪ Solution Explorer‬أﻧﻘﺮ ﻋﻠﻰ اﺳﻢ اﻟﻤﺸﺮوع ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﺛﻢ اﺧﺘﺮ << ‪ Add‬ﺛﻢ << ‪ NewItem‬ﺛﻢ اﺧﺘﺮ <<‬
‫‪ Windows Form‬ﺛﻢ اﻋﻄﯿﮫ اي اﺳﻢ وﻟﯿﻜﻮن ‪. Form2‬‬
‫ﺑﻌﺪ ذﻟﻚ اذھﺐ إﻟﻰ ‪ Form2‬واﺿﻒ إﻟﯿﺔ أداة ‪. CrystalReportViewer1‬‬
‫ﺑﻌﺪ ذﻟﻚ اذھﺐ إﻟﻰ ‪ Form2‬ﻓﻲ وﺿﻊ ﻛﺘﺎﺑﺔ اﻟﻜﻮد وأﻛﺘﺐ ﻣﺎ ﯾﻠﺰم ﻣﻦ اﻟﻜﻮد اﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻛﻮد‬

‫‪١٥٧‬‬
Prog : Mohamed Youssef
Imports [Link]
Imports [Link]
Public Class Form2
Friend strConn2 = "Provider=[Link].4.0;Data Source=" & [Link] &
"\[Link];User Id=admin;Password=;"
Friend strSQL2 As String = "SELECT [Link], [Link], [Link], [Link]
FROM TheBank INNER JOIN data ON [Link] = [Link] ORDER BY [Link];"
'"SELECT [Link], [Link], [Link], [Link] FROM TheBank INNER JOIN data
ON [Link] = [Link] WHERE ((([Link])=18)) ORDER BY [Link];" '"SELECT
[Link], [Link], [Link], [Link] FROM TheBank INNER JOIN data ON
[Link] = [Link] ORDER BY [Link];"
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 [Link]) Handles [Link]
Try
[Link]()
[Link](MyDS2, "TheBankAndData")
[Link]()
Dim rpt As New rptCrystalReport1
'‫اﻓﻘﻲ او ﻋﻤﻮدي ﺗﺤﺪﯾﺪ ﻣﺴﺎر اﻟﺘﻘﺮﯾﺮ و اﻟﺘﺤﻜﻢ ﻓﻲ وﺿﻊ اﻟﺘﻘﺮﯾﺮ اﻣﺎ‬
[Link]([Link] & "\" & "[Link]")
[Link]([Link]("TheBankAndData"))
' ‫ﻋﻤﻮدي ﻓﻲ وﺿﻊ اﻟﺘﻘﺮﯾﺮ اﻣﺎ اﻓﻘﻲ او اﻟﺘﺤﻜﻢ‬
[Link] =
[Link]
' ‫ ھﺬا اﻟﻜﻮد ﯾﻘﻮم ﺑﺎﻟﻜﺘﺎﺑﮫ ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ اﻟﻤﻮﺟﻮد ﺗﺎﺧﻞ اﻟﺘﻘﺮﯾﺮ ﻓﻲ اﻟﻤﻮﻗﻊ رﻗﻢ‬2
CType([Link]("Text1"),
[Link]).Text = "‫"واﻷﺟﻮﺑﺔ اﻟﻤﺨﺰﻧﮫ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻘﺮﯾﺮ ﯾﺴﺘﻌﺮض اﻻﺳﺌﻠﮫ‬
' ‫ﻣﻌﯿﻨﮫ ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻛﻲ ﺗﻈﮭﺮ ﻓﻲ اﻟﺘﻘﺮﯾﺮ اﺳﺘﻌﻤﺎل اﻟﻔﻮرﻣﻼ ﻟﺘﺤﺪﯾﺪ ﻣﺠﻤﻮﻋﺔ‬
'‫ﻟﻠﺘﻘﺮﯾﺮ ﺗﻌﯿﯿﻦ ﺷﺮط ﺗﺤﺪﯾﺪ اﻟﺒﯿﺎﻧﺎت‬
' ‫اﻟﺴﺠﻼت ﯾﻤﻜﻨﻚ اﻹﺳﺘﻐﻨﺎء ﻋﻦ اﻟﻔﻮرﻣﻼ إذا اردت ﻇﮭﻮر ﺟﻤﯿﻊ‬
[Link] = (" {[Link]} = " & [Link] & "")
' ‫وﻋﺮﺿﮫ ﺗﮭﯿﺌﺔﻣﺴﺘﻌﺮض اﻟﺘﻘﺮﯾﺮ‬
[Link] = rpt
[Link] = False
[Link] = False
[Link] = [Link]
' ‫اﻟﺘﻘﺮﯾﺮ ﻓﻲ ﺣﺠﻢ اﻟﺼﻔﺤﮫ ﻓﺘﺴﮭﻞ ﻋﻤﻠﯿﺔ ﻗﺮاءﺗﮫ وھﺬا اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻟﻜﻲ ﯾﻈﮭﺮ‬

١٥٨
Prog : Mohamed Youssef
' ‫وﻣﻼﺣﻈﺔ اﻟﻔﺮق ﯾﻤﻜﻨﻚ ﺗﻐﯿﯿﺮ اﻟﻘﯿﻤﺔ‬
'‫ﺷﯿﺌﺎ ﺣﺎول وﻟﻦ ﺗﺨﺴﺮ‬
[Link](1)
[Link]()
[Link]()
Catch ex As Exception
[Link]([Link], " Show CrystalReport ... ", [Link], _
[Link], MessageBoxDefaultButton.Button1, _
[Link])
End Try
End Sub
End Class

١٥٩
‫‪Prog : Mohamed Youssef‬‬
‫اﻟﺠﺰء اﻟﺴﺎدس ‪ :‬اﻟﻤﺴﺎﻋﺪة ‪Help‬‬

‫اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﺴﺎﻋﺪه‬


‫ﯾﺘﻀﻤﻦ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺳﺘﯿﺪﯾﻮ ﻣﺮﻛﺰ ﻣﺮاﺟﻊ اﻷﻟﻜﺘﺮوﻧﯿﺔ ﯾﺪﻋﻰ ‪Microsoft Visual Basic Studio 2005‬‬
‫‪ ) Documentation‬وﺛ ﺎﺋﻖ ﻣﺎﯾﻜﺮوﺳ ﻮﻓﺖ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ (٢٠٠٥‬ﯾﻤﻜﻨ ﻚ اﺳ ﺘﻌﻤﺎﻟﮫ ﻟﺘ ﺘﻌﻠﻢ أﻛﺜ ﺮ ﻋ ﻦ ﺑﯿﺌ ﺔ ﺗﻄ ﻮﯾﺮ‬
‫اﻟﻔﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ ،‬ﻟﻐ ﺔ اﻟﺒﺮﻣﺠ ﺔ ﻓﯿﺠ ﻮال ﺑﯿ ﺴﻚ ‪ ،‬اﻟﻤ ﻮارد ﻓ ﻰ اﻟﻤﻜﺘﺒ ﺔ ‪ ، .Net Framework‬اﻟﻤﺠﺘﻤﻌ ﺎت ﻋﻠ ﻰ اﻟﺨ ﻂ‬
‫اﻟﻤﺘﺨﺼ ﺼﺔ ﻓ ﻰ اﻟﻔﯿﺠ ﻮال ﺑﯿ ﺴﻚ و اﻟﻔﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ ،‬اﻻدوات اﻟﻤﺘﺒﻘﯿ ﺔ ﻓ ﻰ اﻟﻄﻘ ﻢ ﻓﯿﺠ ﻮال ﺳ ﺘﯿﺪﯾﻮ ‪ .‬ﺧ ﺼﺺ وﻗﺘ ﺎً‬
‫ﻻﺳﺘﻜﺸﺎف ﻣﻮارد اﻟﻤﺴﺎﻋﺪة ﺗﻠﻚ اﻻّن ﻗﺒﻞ أن ﺗﻨﺘﻘﻞ إﻟﻰ اﻟﻔﺼﻞ اﻟﺘﺎﻟﻰ ‪ ،‬ﺣﯿﺚ ﺳﺘﺒﻨﻰ ﺑﺮﻧﺎﻣﺠﻚ اﻷول‪.‬‬

‫ﻣﺼﺪران ﻟﻠﻤﺴﺎﻋﺪة ﻣﻠﻔﺎت اﻟﻤﺴﺎﻋﺪة اﻟﻤﺤﻠﯿﺔ و اﻟﻤﺤﺘﻮى ﻋﻠﻰ اﻹﻧﺘﺮﻧﺖ‬


‫ﻟﻘﺪ ﺟﺮت ﺗﺤﺴﯿﻨﺎت رﺋﯿﺴﯿﺔ ﻋﻠﻲ ﻣﺤﺘﻮي ﻣﻌﻠﻮﻣﺎت ﻣﺴﺎﻋﺪة ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ و اﻻدوات اﻟﺘﻲ ﺗﺰود وﺻﻮﻻ اﻟﻲ ﺗﻠﻚ‬
‫اﻟﻤﺴﺎﻋﺪة ‪ .‬ﻓﻲ اﻻﺳﺎس ‪ ،‬ھﻨﺎك ﻣﻮردان اﺳﺎﺳﯿﺎن ﻟﻠﻤﺴﺎﻋﺪة اﻻﻟﻜﺘﺮوﻧﯿﺔ ﻣﻦ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ‪:‬‬
‫ﯾﻤﻜﻨﻚ اﻟﻮﺻﻮل اﻟﻲ اﻟﻤﺴﺎﻋﺪة اﻟﻤﺤﻠﯿﺔ اﻟﺘ ﻲ ﺗﺜﺒﯿﺘﮭ ﺎ ﺧ ﻼل ﻋﻤﻠﯿ ﺔ اﻋ ﺪاد ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ ) ٢٠٠٥‬ﺗﻠ ﻚ اﻟﻤﻠﻔ ﺎت‬ ‫•‬
‫ﻣﺨﺰﻧﺔ ﻋﻠﻲ أﻗﺮاص ﺗﺴﻤﻲ ‪ - 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‬‬
‫‪ -٢‬اﻧﻘﺮ ﻣﻮﺿﻮﻋﺎ َ واﺣﺪاَ أو أﻛﺜﺮ ﺿﻤﻦ اﻟﻼﺋﺤﺔ ? ‪ How Do I‬ﻻﺳﺘﻜﺸﺎف ﻧﻮع اﻟﻤﻮاد اﻟﻤﺰودة ﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪٢٠٠٥‬‬
‫‪ ،‬ﯾﺤﺘ ﻮي ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻋﻠ ﻲ ﻣﺌ ﺎت اﻷوﺻ ﺎف اﻟﺘﻘﻨﯿ ﺔ واﻟﻤ ﻮاد اﻟﺘﻌﻠﯿﻤﯿ ﺔ ) ﯾﺘ ﻀﻤﻦ اﻟﻌﺪﯾ ﺪ ﻣﻨﮭ ﺎ ﻣﺜ ﺎل ( ‪ .‬اﻻن‬
‫ﺳﺘﻀﺒﻂ ﺗﻜﻮﯾﻦ ﻧﻈﺎم اﻟﻤﺴﺎﻋﺪة ﺑﺤﯿﺚ ﯾﻌﺮض ﻓﻘﻂ اﻟﻤﺤﺘﻮي اﻟﺬي ﺗﺮﯾﺪه ﻋﻨﺪﻣﺎ ﺗﻔﺘﺤﮫ ‪.‬‬
‫‪ -٣‬ﻋﻠﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ ﻣﺴﺘﻜﺸﻒ ﻣﺴﺘﻨﺪات ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ‪ ،‬اﻧﻘﺮ ‪ Tools‬ﺛﻢ اﻧﻘﺮ اﻻﻣﺮ ‪. Options‬‬
‫ﺳﺘﺮي ﺧﯿﺎرات اﻟﺘﺨﺼﯿﺺ اﻟﺘﻲ ﯾﻤﻜﻨﻚ اﺳﺘﻌﻤﺎﻟﮭﺎ ﻟﻀﺒﻂ ﻃﺮﯾ ﻖ ﻋﻤ ﻞ ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة و ) اﻻھ ﻢ ﻣ ﻦ ذﻟ ﻚ ( ﻣ ﺎ ھ ﻲ‬
‫اﻟﻤﻮارد اﻟﺘﻲ ﯾﻔﺤﺼﮭﺎ ﻧﻈﺎم اﻟﻤﺴﺎﻋﺪة ﻋﻨﺪﻣﺎ ﯾﺒﺤﺚ ﻋﻦ اﻟﻤﻌﻠﻮﻣﺎت ‪.‬‬
‫‪ -٤‬اﻧﻘﺮ اﻟﻤﻮﺿﻮع ‪ Online‬ﺗﺤﺖ اﻟﻔﺌﺔ ‪ Help‬اذا ﻟﻢ ﯾﻜﻦ ﻣﻨﺘﻘﻲ ﻣﻦ ﻗﺒﻞ ‪.‬‬
‫ﺗﺒﺪو ﺷﺎﺷﺘﻚ ﻣﺘﺸﺎﺑﮭﺔ ﻟﻠﺘﺎﻟﻲ ‪:‬‬
‫ﻧﺼﯿﺤﺘﻲ ﻟﻚ ھﻲ أن ﺗﻀﺒﻂ ﺧﯿﺎراﺗﻚ ﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ﻛﻤﺎ ھﻮ ﻣﺒﯿﻦ ﻓﻲ ھﺬه اﻟﺸﺎﺷﺔ ‪ -‬اﻧﮭﺎ اﻻﻋﺪادات اﻻﻓﺘﺮاﺿﯿﺔ ‪ .‬أوﻻ‬
‫‪ ،‬اﻧﺘﻖ زر اﻟﺨﯿﺎر اﻟﻮﺳﻄﻲ ﻟﺘﺤﻤﯿﻞ ﻣﺤﺘﻮي اﻟﻤﺴﺎﻋﺪة ﻣﻦ اﻟﻤﺼﺎدر اﻟﻤﺤﻠﯿﺔ ﻓﻲ ﻗﺮﺻﻚ اﻟﺼﻠﺐ أوﻻ ﺛﻢ ﻣﻦ اﻟﻤﺼﺎدر‬
‫ﻋﻠ ﻲ اﻹﻧﺘﺮﻧ ﺖ ‪ .‬ﺗﺄﻛ ﺪ ﺑﻌ ﺪھﺎ ﻣ ﻦ اﻧﺘﻘ ﺎء ‪ ) Code zone Community ، MSDN Online‬اﻟﻤﺠﻤﻮﻋ ﺔ ‪NET‬‬
‫‪ ( Code Wise Community‬ﻟﻜ ﻲ ﯾﺤﻤ ﻞ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ اﻟﻤﻘ ﺎﻻت اﻟﺤﺪﯾﺜ ﺔ ﻣ ﻦ ﻣﻄ ﻮري ﻓﯿﺠ ﻮال ﺑﯿ ﺴﻚ ﻛﻠﻤ ﺎ‬
‫اﺳﺘﻌﻤﻠﺖ اﻻﻣ ﺮ ‪ . Search‬اذا وﺟ ﺪت ﺑﻌ ﺪ ﻓﺘ ﺮة اﻧ ﻚ ﺗﻔ ﻀﻞ ﺑﻌ ﺾ اﻟﻤﺠﺘﻤﻌ ﺎت ‪ Codezone‬ﻋﻠ ﻲ ﺑﻌ ﻀﮭﺎ اﻻﺧ ﺮ ‪،‬‬
‫ﯾﻤﻜﻨﻚ ﺗﻌﺪﯾﻞ ﺗﺮﺗﯿﺐ اﻟﺒﺤﺚ أو ازاﻟﺔ اﻟﺒﻨﻮد ﻣﻦ اﻟﻼﺋﺤﺔ ‪.‬‬
‫‪ -٥‬اﻧﺘﻖ ﺧﯿﺎرات اﻟﺘﻜﻮﯾﻦ اﻟﺘﻲ ﯾﻨﺎﺳﺒﻚ ‪ ،‬ﺛﻢ اﻧﻘﺮ ‪ OK‬ﻟﺤﻔﻈﮭﺎ ‪.‬‬
‫ﯾﻤﻜﻨﻚ اﻟﻌﻮدة اﻟﻲ ﻗﺎﺋﻤﺔ ‪ Option‬ﺿ ﻤﻦ ﻣﺴﺘﻜ ﺸﻒ اﻟﻤ ﺴﺘﻨﺪات ﻓ ﻲ اي وﻗ ﺖ ﯾﻜ ﻮن ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻣﻔﺘﻮﺣ ﺎ ‪ .‬اﻻن‬
‫ﺣﺎول اﺳ ﺘﻌﻤﺎل ﻣﯿ ﺰة ﺟﺪﯾ ﺪة اﺧ ﺮي ﻓ ﻲ ﻓﯿﺠ ﻮال ﺳ ﺘﺪﯾﻮ ‪ ، ٢٠٠٥‬ﻻﺋﺤ ﺔ ﻣﻔ ﻀﻼت اﻟﻤ ﺴﺎﻋﺪة ‪ ،‬ﺗﻌﻤ ﻞ ﺑ ﺸﻜﻞ ﻣ ﺸﺎﺑﮫ‬
‫ﻛﺜﯿﺮا ﻟﻼﺋﺤﺔ اﻟﻤﻔﻀﻼت ﺿﻤﻦ اﻧﺘﺮﻧﺖ اﻛﺴﺒﻠﻮرر ‪.‬‬

‫ﻓﻰ ﺑﺮﻧﺎﻣﺞ ‪-: Visual [Link] 2005‬‬ ‫‪Help‬‬ ‫اﻟﻘﺎﺋﻤﺔ‬

‫ﺻﯿﺎﻧﺔ ﻻﺋﺤﺔ ﻣﻔﻀﻼت ﺿﻤﻦ اﻟﻤﺴﺎﻋﺪة ‪-:‬‬


‫‪ -١‬ﻋﻠﻲ ﺷﺮﯾﻂ أدوات ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪ ،‬اﻧﻘﺮ زر اﻻﺿﺎﻓﺔ اﻟ ﻲ ﻣﻔ ﻀﻼت اﻟﻤ ﺴﺎﻋﺪة ) اﻟ ﺰر اﻟﻤﻮﺟ ﻮد ﺑﺠﺎﻧ ﺐ اﻟ ﺰر‬
‫‪ Help Favorites‬واﻟﺬي ﯾﺒﯿﻦ ﺻﻔﺤﺔ ﻋﻠﯿﮭﺎ ﻋﻼﻣﺔ ﺟﻤﻊ (‪.‬‬
‫ﻋﻨﺪﻣﺎ ﺗﻨﻘﺮ ھﺬا اﻟﺰر ‪ ،‬ﯾﻀﯿﻒ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات اﻟﻤﻘﺎل اﻟﻤﺮﺋ ﻲ ﺣﺎﻟﯿ ﺎ اﻟ ﻲ ﻻﺋﺤ ﺔ ﻣ ﺴﺘﻨﺪات اﻟﻤ ﺴﺎﻋﺪة اﻟﻤﻔ ﻀﻠﺔ‬
‫ﻟﺪﯾﻚ ‪ .‬ﯾﻤﻜﻨﻚ اﻻن اﺑﻘﺎء وﻣﺎردﻣﺴﺎﻋﺪﺗﻚ اﻟﻤﻔﻀﻠﺔ ﻣﻨﻈﻤﺔ وﺑﻤﺘﻨﺎول اﻟﯿﺪ داﺋﻤﺎ !‬
‫‪ -٢‬اﻧﻘﺮ ﻋﻼﻣﺔ اﻟﺘﺒﻮﯾﺐ ‪ Search‬ﻓﻲ أﻋﻠﻲ اﻃﺎر ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪.‬‬
‫ﯾﻔﺘﺢ اﻻﻃ ﺎر ‪ Search‬ﻣ ﺰودا أداة ﯾﻤﻜﻨ ﻚ اﺳ ﺘﻌﻤﺎﻟﮭﺎ ﻻﺟ ﺮاء ﻋﻤﻠﯿ ﺎت ﺑﺤ ﺚ ﻧ ﺼﯿﺔ ﻣﺤ ﺪدة ﺿ ﻤﻦ ﻣ ﻮارد ﻣ ﺴﺎﻋﺪﺗﻚ‬
‫اﻟﻤﺤﻠﯿﺔ وﻋﻠﻲ اﻹﻧﺘﺮﻧﺖ ‪.‬‬
‫‪ -٣‬اﻧﻘﺮ ﺳﮭﻢ اﻟﺨﯿﺎر ‪ ) Language‬ﻋﺎﻣﻞ ﺗﺼﻔﯿﺔ ﻟﻠﻤﺤﺘﻮي ( واﻟ ﻎ ﻋﻼﻣ ﺎت اﻻﺧﺘﯿ ﺎر ﻋ ﻦ ﻛ ﻞ اﻟﻠﻐ ﺎت ﻣ ﺎ ﻋ ﺪا ﻓﯿﺠ ﻮال‬
‫ﺑﯿﺴﻚ ‪.‬‬

‫‪١٦١‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﯾﻤﻜﻨ ﻚ ﺿ ﺒﻂ ﺗﻜ ﻮﯾﻦ ﻧﻈ ﺎم اﻟﻤ ﺴﺎﻋﺪة ﻟﺠﻌ ﻞ ﺑﺤﺜ ﻚ ﯾﻘﺘ ﺼﺮ ﻓﻘ ﻂ ﻋﻠ ﻲ اﻟﻠﻐ ﺎت واﻟﺘﻘﻨﯿ ﺎت واﻟﻤﻮاﺿ ﯿﻊ اﻟﺘ ﻲ ﺗﺮﯾ ﺪھﺎ‬
‫ﺑﺎﺳﺘﻌﻤﺎل أﺳﮭﻢ ﻋﻮاﻣﻞ اﻟﺘﺼﻔﯿﺔ ‪ .‬ﻻن ﺑﺪأت ﺑﺎﺳﺘﻌﻤﺎل ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ﻟﻠﺘﻮ ‪ ،‬ﻓﺪ ﺗﺮﯾﺪ ﺑﺤﺜﻚ ﯾﻘﺘﺼﺮ ﻓﻘﻂ ﻋﻠﻲ ﻓﯿﺠﻮال‬
‫ﺑﯿﺴﻚ ﻓﻲ اﻟﻮﻗﺖ اﻟﺤﺎﺿﺮ ‪.‬‬
‫‪ -٤‬ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ ‪ ، 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‬‬
‫ﯾﻈﮭﺮ أإول ﻣﻘﺎل ﺣﻔﻈﺘﮫ ﻓﻲ ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪ .‬ﺳﺘﺘﻤﺮن اﻻن ﻋﻠﻲ ﺣ ﺬف ﻣﻔ ﻀﻠﺔ ‪ ،‬وھ ﺬه ﻣﮭ ﺎرة ﺗ ﺼﺒﺢ ﻣﮭﻤ ﺔ‬
‫ﻋﻨﺪﻣﺎ ﺗﻨﻤﻮ ﻻﺋﺤﺔ ﻣﻘﺎﻻت ﻣﺴﺎﻋﺪﺗﻚ اﻟﻤﻔﻀﻠﺔ وﺗﺤﺘﺎج اﻟﻲ ﺗﺼﻐﯿﺮھﺎ ‪.‬‬
‫‪ -٩‬اﻧﻘﺮ زر اﻟﺤﺬف ﻓﻲ اﻻﻃﺎر ‪. Help Favorites‬‬

‫‪١٦٢‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪ -١٠‬اذاﻃﻠﺐ ﻣﻨﻚ ﺗﺄﻛﯿﺪ ﻧﺘﻚ ﺑﺤﺬف ھﺬه اﻟﻤﻔﻀﻠﺔ ‪ ،‬اﻧﻘﺮ ‪. Yes‬‬
‫ﯾﺤﺬف اﻟﻤﻘﺎل ? ‪ How Do I‬ﻣﻦ ﻻﺋﺤﺔ ﻣﻔﻀﻼﺗﻚ ) وﻟﻜﻦ ﻟﯿﺲ ﻣﻦ ﻧﻈﺎﻣﺎﻟﻤﺴﺎﻋﺪة (‪.‬‬
‫‪ -١١‬اﻧﻘﺮ زر اﻻﻏﻼق ﻋﻠﻲ ﺷﺮﯾﻂ ﻋﻠﻲ ﺷﺮﯾﻂ ﻋﻨﻮان ﻣﺴﺘﻜﺸﻒ اﻟﻤﺴﺘﻨﺪات ‪.‬‬
‫ھﻨﺎك ﻣﯿﺰات اﻟﻤﺴﺎﻋﺪة اﺿﺎﻓﯿﺔ ﻟﺘ ﺘﻌﻠﻢ ﻋﻨﮭ ﺎ وﺗﺨﺘﺒﺮھ ﺎ ‪ ،‬ﻟﻜ ﻦ اﻟﻮﻗ ﺖ ﺟﯿ ﺪ اﻻن ﻟﻜ ﻲ أﻟﺨ ﺺ ﻟ ﻚ أواﻣ ﺮ اﻟﻤ ﺴﺎﻋﺪة‬
‫اﻟﻤﮭﻤﺔ وﻟﻜﻲ ﺗﻨﺘﻘﻞ اﻟﻲ ﻛﺘﺎﺑﺔ أول ﺑﺮﻧﺎﻣﺞ ﻟﻚ ﻓﻲ اﻟﻔﺼﻞ ‪. ٢‬‬

‫ﺗﻠﺨﯿﺺ أواﻣﺮ اﻟﻤﺴﺎﻋﺪة ‪-:‬‬


‫اﻟﯿﻚ ﻻﺋﺤﺔ ﻗﺼﯿﺮة ﺑﺄواﻣﺮ اﻟﻤﺴﺎﻋﺪة اﻟﻤﻔﯿﺪة واﺳﺘﻌﻤﺎﻻﺗﮭﺎ ﺿﻤﻦ ﺑﯿﺌﺔ ﺗﻄﻮﯾﺮ ﻓﯿﺠﻮال ﺳﺘﺪﯾﻮ ‪-: Visual [Link] 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‬‬ ‫ﻋﻦ اﻻﺗﺼﺎل ﺑﻤﺎﯾﻜﺮوﺳﻮﻓﺖ ﻟﻠﺤﺼﻮل ﻋﻠﻰ دﻋﻢ اﻟﻤﻨﺘﺞ‬

‫‪١٦٣‬‬
‫‪Prog : Mohamed Youssef‬‬

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


‫ﯾﻤﻜﻨﻚ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻤﻮاﻗﻊ اﻟﻌﺮﺑﯿﺔ اﻟﺘﺎﻟﯿﺔ ‪:‬‬

‫ﻣﻮاﻗﻊ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ اﻟﻌﻤﻼﻗﺔ ﻓﻰ اﻟﺸﺮح اﻻﺟﻨﺒﯿﺔ ‪-:‬‬

‫‪1-‬‬ ‫‪[Link]/vbasic/‬‬
‫‪2-‬‬ ‫‪[Link]/‬‬
‫‪3-‬‬ ‫‪[Link]/learning/books/‬‬
‫‪4-‬‬ ‫‪[Link]/learning/training/‬‬
‫‪5-‬‬ ‫‪[Link]/communities/‬‬

‫ﻛﺘﺐ اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﻐﺔ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻓﻰ اﻟﻔﺮوع اﻻﺗﯿﺔ‪-:‬‬

‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﻠﻐﺔ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪.٢٠٠٥‬‬ ‫•‬


‫ﺑﺮﻣﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻣﻊ ‪.[Link]‬‬ ‫•‬
‫ﺑﺮﻣﺠﺔ اﻹﻧﺘﺮﻧﺖ ‪.[Link]‬‬ ‫•‬
‫اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﻠﻐﺔ ‪.Visual Basic for Applications‬‬ ‫•‬
‫ﻛﺘﺐ ﻋﺎﻣﺔ ﻋﻦ ﺑﺮﻣﺠﺔ اﻟﻜﻤﺒﯿﻮﺗﺮ‪.‬‬ ‫•‬

‫‪١٦٤‬‬
Prog : Mohamed Youssef

١٦٥
‫‪Prog : Mohamed Youssef‬‬
‫‪SQL‬‬ ‫ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﻟﻐﺔ ﺍﻷﺳﺘﻌﻼﻣﺎﺕ‬
‫اﻟﮭﺪف اﻟﻌﺎم‪:‬‬

‫ﻟﻐﺔ ﺗﺴﺘﺨﺪم ﻓﻰ ‪ Visual [Link] 2005‬ﻋﻨﺪ أﺳﺘﺨﺪام ‪ [Link] 2 Programming‬ﻟﻠﺘﻌﺎﻣﻞ ﻟﺮﺑﻂ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻘﻮاﻋﺪ‬
‫اﻟﺒﯿﺎﻧﺎت‪.‬‬

‫اﻷھﺪاف‪:‬‬

‫ﺑﻌﺪ إﻛﻤﺎل ھﺬا اﻟﻤﻠﺤﻖ ‪ ،‬ﺳﺘﺘﻤﻜﻦ ﻣﻦ ﺗﻨﻔﯿﺬ ﻣﺎ ﯾﻠﻰ ‪-:‬‬

‫ﻣﻌﺮﻓﺔ أھﻤﯿﺔ ﻟﻐﺔ اﻻﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬ ‫‪-١‬‬


‫اﻟﻔﺮق ﺑﯿﻦ أواﻣﺮ ‪ SQL‬و ﺗﺼﻨﯿﻔﺎﺗﮭﺎ‪.‬‬ ‫‪-٢‬‬
‫أﺳﺘﻌﻤﺎل اواﻣﺮ اﻟﺮﺑﻂ ‪ ،‬اﻟﺘﺠﻤﯿﻊ ‪ ،‬اﻟﻔﺮز‪.‬‬ ‫‪-٣‬‬
‫أﺳﺘﺨﺪام اﻟﺪوال اﻟﺘﺠﻤﯿﻌﯿﺔ‪.‬‬ ‫‪-٤‬‬
‫أﺳﺘﺨﺪام أواﻣﺮ اﻻﻧﺸﺎء ‪ ،‬اﻟﺤﺬف ‪ ،‬اﻟﺘﻌﺪﯾﻞ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت واﻟﺠﺪول‪.‬‬ ‫‪-٥‬‬
‫أﻧﺸﺎء اﻻﺳﺘﻌﻼﻣﺎت و اﻟﻔﮭﺎرس ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٦‬‬
‫أﺳﺘﺨﺪام أواﻣﺮ إدﺧﺎل اﻟﺒﯿﺎﻧﺎت ‪ ،‬اﻟﺤﺬف ‪ ،‬اﻟﺘﻌﺪﯾﻞ ﻟﻠﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٧‬‬
‫أﺟﺮاء اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ و اﻟﻤﻨﻄﻘﯿﺔ ﻟﻠﺒﯿﺎﻧﺎت‪.‬‬ ‫‪-٨‬‬
‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻼت و اﻟﻔﺮق ﺑﯿﻨﮭﻤﺎ ﻓﻰ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﻄﻠﻮﺑﺔ ‪.‬‬ ‫‪-٩‬‬
‫ﻣﻌﺮﻓﺔ اﻟﻔﺮق ﺑﯿﻦ اﻟﺮﺑﻂ ‪ ،‬اﻟﺪﻣﺞ ﺑﺄﻧﻮاﻋﮫ‪.‬‬ ‫‪-١٠‬‬

‫ﻣﺎﯾﻜﺮوﺳﻮﻓﺖ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٥‬ھﻮ ﺗﺮﻗﯿﺔ و ﺗﺤﺴﯿﻦ ﻣﮭﻤﯿﻦ ﻟﻨﻈﺎم ﺗﻄﻮﯾﺮ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٦‬و ﺗﺮﻗﯿﺔ ﺗﻜﺮارﯾﺔ ﻟﺒﺮﻧﺎﻣﺞ‬
‫اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ٢٠٠٣‬دوت ﻧﺖ و ﯾﻌﻄﯿﻚ اﻟﻤﻠﺤﻖ اﻟﻘﺪرة ﻋﻠﻰ ﻣﻌﺮﻓﺔ ﻟﻐﺔ اﻻﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬

‫و ﺗﺴﺘﺨﺪم ﻋﻨﺪ رﺑﻂ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﺑﻘﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و ﺗﺴﺘﺨﺪم ‪ [Link] 2 Programming‬و اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻜﺘﺒﺎت ‪(OleDB‬‬
‫) ‪ , SQLClient‬واﺳﺘﺨﺪام اﻟﺘﺼﻨﯿﻔﺎت اﻟﺘﻰ ﺗﺴﺘﺨﺪم ﻟﺮﺑﻂ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺄﻧﻮاﻋﮭﺎ ﻣﺜﻞ‪-:‬‬

‫•‬ ‫‪SQL Server 2000 OR 2005‬‬


‫•‬ ‫‪Oracle‬‬
‫•‬ ‫‪My SQL‬‬
‫•‬ ‫‪Ms Access 2000 OR 2003‬‬

‫ھﺬه ھﻰ اﻟﺒﺮاﻣﺞ اﻟﺘﻰ ﺗﺴﺘﺨﺪم ﻟﻐﺔ اﻻﺳﺘﻌﻼﻣﺎت ‪.SQL‬‬

‫‪١٦٦‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪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‬‬

‫اوﻻ ﻣﻘﺪﻣﮫ ﻓﻰ ‪: 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
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
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
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‬‬
‫‪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
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
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
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
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

: AND ‫أﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ‬

١٧٦
Prog : Mohamed Youssef
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
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'

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

١٧٨
Prog : Mohamed Youssef
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‬‬
‫اﻟﺮﺑﻂ ‪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 [Link], [Link]‬‬


‫‪FROM Employees, Orders‬‬
‫‪WHERE Employees.Employee_ID=Orders.Employee_ID‬‬

‫اﻟﻨﺘﯿﺠﮫ ‪Result:‬‬

‫‪Name‬‬ ‫‪Product‬‬
‫‪Hansen, Ola‬‬ ‫‪Printer‬‬
‫‪Svendson, Stephen‬‬ ‫‪Table‬‬
‫‪Svendson, Stephen‬‬ ‫‪Chair‬‬

‫ﻣﺜﺎل ‪ :‬ﻧﺮﯾﺪ ان ﻧﻌﺮف ﻣﻦ ﻃﻠﺐ اﻟﻤﻨﺘﺞ )‪(Printer‬‬

‫‪SELECT [Link]‬‬
‫‪FROM Employees, Orders‬‬
‫‪WHERE Employees.Employee_ID=Orders.Employee_ID‬‬
‫'‪AND [Link]='Printer‬‬

‫‪١٨٠‬‬
Prog : Mohamed Youssef
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 [Link], [Link]
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 [Link], [Link]
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‬‬
‫‪SELECT field1, field2, field3‬‬
‫‪FROM first_table‬‬
‫‪RIGHT JOIN second_table‬‬
‫‪ON first_table.keyfield = second_table.foreign_keyfield‬‬
‫ﺗﻨﻔﯿﺬ اﻟﺠﻤﻠﮫ ﻋﻠﻰ اﻟﻤﺜﺎل ‪:‬‬
‫‪SELECT [Link], [Link]‬‬
‫‪FROM Employees‬‬
‫‪RIGHT JOIN Orders‬‬
‫‪ON Employees.Employee_ID=Orders.Employee_ID‬‬

‫اﻟﻨﺘﯿﺠﮫ ‪Result:‬‬

‫‪Name‬‬ ‫‪Product‬‬
‫‪Hansen, Ola‬‬ ‫‪Printer‬‬
‫‪Svendson, Stephen‬‬ ‫‪Table‬‬
‫‪Svendson, Stephen‬‬ ‫‪Chair‬‬
‫ﺗﻘﻮم اﻟﺠﻤﻠﮫ ‪ RIGHT JOIN‬ﺑﻌﺮض ﺟﻤﯿﻊ اﻟﺒﯿﺎﻧﺎت ﻣﻦ اﻟﺠﺪول اﻟﺜﺎﻧﻰ ‪ Orders‬ﺣﺘﻰ ﻟﻮﺗﺔﺟﺪ ﻓﻰ اﻟﺠﺪول اﻷول‬

‫ﻣﺜﺎل ﻋﻠﻰ أﺳﺘﺨﺪام ﺟﻤﻠﮫ ‪: INNER JOIN‬‬

‫ﻧﺮﯾﺪ ﻋﺮض اﺳﻤﺎء اﻟﻤﻮﻇﻔﯿﻦ اﻟﺬن ﻃﻠﺒﻮا اﻟﻤﻨﺘﺞ )‪(Printer‬‬

‫‪SELECT [Link]‬‬
‫‪FROM Employees‬‬
‫‪INNER JOIN Orders‬‬
‫‪ON Employees.Employee_ID=Orders.Employee_ID‬‬
‫'‪WHERE [Link] = 'Printer‬‬

‫‪Result:‬اﻟﻨﺘﯿﺠﮫ‬

‫‪Name‬‬
‫‪Hansen, Ola‬‬

‫ﺟﺪول ﯾﻮﺿﺢ اﻟﻔﺮق ﺑﯿﻦ اﻧﻮاع اﻟﺮﺑﻂ ﻓﻰ ﻟﻐﺔ اﻻﺳﺘﻌﻼﻣﺎت ‪-:‬‬


‫اﻟﺴﺠﻼت اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻟﺠﺪول اﻻﯾﻤﻦ‬ ‫اﻟﺴﺠﻼت اﻟﻨﺎﺗﺠﺔ ﻣﻦ اﻟﺠﺪول اﻻﯾﺴﺮ‬ ‫ﻧﻮع اﻟﺮﺑﻂ‬
‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻻﯾﺴﺮ ﻓﻘﻂ‬ ‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻻﯾﻤﻦ ﻓﻘﻂ‬ ‫‪INNER‬‬
‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻻﯾﺴﺮ ﻓﻘﻂ‬ ‫ﺟﻤﯿﻊ اﻟﺴﺠﻼت‬ ‫‪LEFT‬‬
‫ﺟﻤﯿﻊ اﻟﺴﺠﻼت‬ ‫اﻟﺴﺠﻼت اﻟﻤﺘﻌﻠﻘﺔ ﺑﺎﻟﺠﺪول اﻻﯾﻤﻦ ﻓﻘﻂ‬ ‫‪RIGHT‬‬

‫وﺑﮭﺬا ﻧﻜﻮن اﻧﺘﮭﯿﻨﺎ ﻣﻦ ﺷﺮح ﺟﻤﻠﮫ ‪. JOIN‬‬

‫‪UNION and UNION ALL‬‬ ‫اﻟﺪﻣﺞ‬


‫ﺗﺴﺘﺨﺪم ﻟﺪﻣﺞ ﺣﻘﻠﯿﻦ ﻣﻦ ﺟﺪوﻟﯿﻦ ﻣﺨﺘﻠﻔﯿﻦ وﻟﻜﻦ ﯾﺠﺐ‬
‫ان ﯾﻜﻮن ﻧﻮع اﻟﺒﯿﺎﻧﺎت ﻓﻰ اﻟﺤﻘﻠﯿﻦ واﺣﺪ اى ﯾﻜﻮن ﻧﺼﻮص او ارﻗﺎم ‪……….‬إﻟﺦ‬

‫اﻟﺒﻨﺎء ﻟﻠﺠﻤﻠﮫ ﯾﻜﻮن ﻛﺎﻟﺘﺎﻟﻰ ‪:‬‬


‫‪SQL Statement 1‬‬
‫‪UNION‬‬
‫‪SQL Statement 2‬‬

‫‪١٨٢‬‬
Prog : Mohamed Youssef
: ‫ﻣﺜﺎل‬

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

‫ ﻓﻰ اﻟﺠﺪوﻟﯿﻦ اﻟﺴﺎﺑﻘﯿﻦ‬E_NAME ‫ ﻧﺮﯾﺪ دﻣﺞ اﻟﺤﻘﻞ‬: ‫ﻣﺜﺎل‬

SELECT E_Name FROM Employees_Norway


UNION ALL
SELECT E_Name FROM Employees_USA

Result: ‫اﻟﻨﺘﯿﺠﮫ‬

١٨٣
Prog : Mohamed Youssef
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)

: ‫ﻣﺠﻤﻮﻋﮫ ﻣﻦ اﻷﻣﺜﻠﮫ‬

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

١٨٤
Prog : Mohamed Youssef
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

‫ﻧﻼﺣﻆ اﻧﮫ ﺗﻢ ﺟﻤﻊ ﻛﻞ ﺳﺠﻞ وﺣﺪه وأﺻﺒﺤﺖ اﻟﻨﺘﯿﺠﮫ اوﺿﺢ‬

‫ ﺗﺴﺘﺨﺪم ﻟﻔﺮز اﻟﺒﯿﺎﻧﺎت ﺣﺴﺐ ﺷﺮط ﻣﻌﯿﻦ‬HAVING ‫اﻟﺪاﻟﮫ‬

: ‫ﺑﻨﺎء اﻟﺠﻤﻠﮫ‬

SELECT column,SUM(column) FROM table


GROUP BY column
HAVING SUM(column) condition value

١٨٥
Prog : Mohamed Youssef
: ‫ﺗﻄﺒﯿﻖ ﻋﻠﻰ ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ‬

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‬‬
‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ "ﺗﻌﺮﯾﻒ اﻟﺒﯿﺎﻧﺎت" ﺑـ )‪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‬‬
‫اﻧﺸﺎء اﻟﻔﮭﺎرس ‪: 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
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
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 '[Link]'


FROM Persons

:‫ﯾﻤﻜﻦ أﯾﻀﺎ ﻧﺴﺦ ﺣﻘﻮل ﻣﺤﺪده ﻓﻘﻂ‬

SELECT LastName,FirstName INTO Persons_backup


FROM Persons

Where : ‫ﻧﻔﺲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﻣﻊ إدﺧﺎل ﺷﺮط‬

SELECT LastName,Firstname INTO Persons_backup


FROM Persons
WHERE City='Sandnes'

: ‫إذا اردﻧﺎ ﻧﺴﺦ اﻟﺠﺪول ﻟﻜﻦ ﻓﻰ وﺟﻮد ﻋﻼق ﻣﻊ ﺟﺪول أﺧﺮ‬

SELECT [Link],[Link]
INTO Empl_Ord_backup
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

CREATE VIEW ‫ﺟﻤﻠﮫ‬


‫ﺗﺴﺘﺨﺪم ﻻﻧﺸﺎء ﺟﻤﻠﮫ ﺗﻌﺮض ﺑﯿﺎﻧﺎت ﺗﺤﺖ ﺷﺮط ﻣﻌﯿﻦ‬
‫ ﺑﮭﺎ ﻣﺜﻞ ﻋﻤﻞ ﻋﻼﻗﮫ‬SQL ‫ﯾﻤﻜﻦ أﺳﺘﺨﺪام اى ﻣﻦ ﺟﻤﻞ‬
. ‫او إﺿﺎﻓﮫ داﻟﮫ ﻣﻦ اﻟﺪوال‬

١٩٠
Prog : Mohamed Youssef
: ‫ﯾﻜﻮن ﺑﻨﺎﺋﮭﺎ اﻟﻌﺎم ﻛﺎﻟﺘﺎﻟﻰ‬

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
 SQL
Books
‫ ﻣﮭﻨﺪس ﻋﺰب ﻣﺤﻤﺪ ﻋﺰب‬، ‫ ﻣﻌﻠﻮﻣﺎت أﺳﺎﺳﯿﺔ و ﻗﻮاﻋﺪ اﻟﻠﻐﺔ‬Oracle ، ‫ﺳﻠﺴﻠﺔ ﺗﻌﻠﻢ ﺑﺴﮭﻮﻟﺔ‬ •
‫ ﺻﺎﻟﺢ زرﻣﺒﮫ‬/‫ د‬، SQL For Oracle ‫ﻣﻠﺨﺺ أواﻣﺮ‬ •
‫ ﺻﺎﻟﺢ زرﻣﺒﮫ‬/‫ د‬، ‫ ﻛﺎﻣﻠﺔ‬Oracle ‫ﻛﯿﻔﯿﺔ ﻋﻤﻞ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‬ •
‫ ﻋﺒﺪ اﻟﺮﺣﻤﻦ ﺳﺎﻟﻢ‬/‫ أ‬، SQL Server 2000 ‫( ﺑﺈﺳﺘﺨﺪام‬٢) ‫ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬Sections ‫ﻣﻠﺨﺺ‬ •

PDF 
‫ ﻗﺎم ﺑﺎﻟﻨﻘﻞ واﻟﺘﺮﺟﻤﺔ أﺣﻤﺪ ﺣﺎﻣﺪ‬، SQL ‫ اﻟﻤﺮﺟﻊ اﻟﺸﺎﻣﻞ ﻓﻰ ﺟﻤﻞ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻰ ﻟﻠﺒﺮﻣﺠﺔ‬ •
‫ ﺗﺄﻟﯿﻒ ﺧﻀﺮ ﯾﻮﺳﻒ ﺗﺮزى‬، ‫ ﺑﻨﺎء اﻟﺘﻄﺒﯿﻘﺎت ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت اﻟﻌﻤﻼﻗﺔ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻰ ﻟﻠﺒﺮﻣﺠﺔ‬ •
‫ ﺗﺄﻟﯿﻒ أﺣﻤﺪ ﻛﻤﺎل‬، Ms-SQL Server ‫ ﻣﺮﺟﻊ اﻷواﻣﺮ‬، ‫ﻣﻮﻗﻊ اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻰ ﻟﻠﺒﺮﻣﺠﺔ‬ •
‫ ﺗﺄﻟﯿﻒ ﻣﺤﻤﻮد ﻣﺤﻤﺪ ﻋﺒﺪ اﻟﺮازق‬، (‫ )اﻟﺠﺰء اﻷول‬SQL Server ‫ ﺗﻌﻠﻢ‬، ‫ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ‬ •
‫ ﺗﺄﻟﯿﻒ ﻣﺠﻼد ﻣﺸﺎرى اﻟﺴﺒﻌﻰ‬، Database ‫اﻷﺳﺎﺳﯿﺎت ﻓﻰ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‬ •
MaaSTracK ‫ ﺗﺄﻟﯿﻒ‬، ‫ ﻟﻠﻤﺒﺘﺪﺋﯿﻦ‬SQL ‫دﻟﯿﻞ ﺗﻌﻠﻢ اﻟـ‬ •
‫ ﺗﺄﻟﯿﻒ ﻣﮭﻨﺪس إﺑﺮاھﯿﻢ دروﯾﺶ‬، SQL ‫ﻣﻘﺪﻣﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﺑﺈﺳﺘﺨﺪام‬ •

Web Sites 

1- [Link]
2- [Link]
3- [Link]
4- [Link]
5- [Link]
6- [Link]
7- [Link]
8- [Link]
9- [Link]
10- [Link]
11- [Link]
12- [Link]
13- [Link]

١٩٢
Prog : Mohamed Youssef

 
 
 

 
 

 

 
 
 

١٩٣
‫‪Prog : Mohamed Youssef‬‬
‫‪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‬‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﺤﺮف أو اﻟﺮﻣﺰ اﻟﻤﻨﺎﻇﺮ ﻟﻜﻮد‬
‫ﻣﻌﯿﻦ‬
‫‪١٩٤‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫‪Circle‬‬ ‫رﺳﻢ داﺋﺮة )وﺳﯿﻠﺔ ﻟﻠﻨﻤﻮذج ‪ ،‬ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Classes‬‬ ‫اﻟﺘﺼﻨﯿﻒ أو اﻟﻔﺌﺔ‬
‫‪Click‬‬ ‫ﻧﻘﺮ ﻣﻨﻔﺮد ﺑﺎﻟﺰر اﻷﯾﺴﺮ ﻟﻠﻔﺄرة )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪CLS‬‬ ‫ﻣﺴﺢ اﻟﻜﺘﺎﺑﺔ واﻟﺮﺳﻢ ﻣﻦ داﺧﻞ اﻟﻜﺎﺋﻦ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Code Window‬‬ ‫ﻧﺎﻓﺬة اﻷﻛﻮاد اﻟﺒﺮﻣﺠﺔ‬
‫‪Comma‬‬ ‫اﻟﻔﺎﺻﻠﺔ )‪(,‬‬
‫‪Command Button‬‬ ‫زر أواﻣﺮ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Comparison Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﻤﻘﺎرﻧﺔ‬
‫‪Compiler‬‬ ‫اﻟﻤﺘﺮﺟﻢ‬
‫‪Computer Languages‬‬ ‫ﻟﻐﺎت اﻟﻜﻤﺒﯿﻮﺗﺮ‬
‫‪Concatenation - String‬‬ ‫ﺳﻠﺴﻠﺔ‬
‫‪Concatenation Operator‬‬ ‫اﻟﻤﻌﺎﻣﻼت اﻟﺮﺑﻂ‬
‫‪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‬‬ ‫اﻟﺒﺮاﻣﺞ اﻟﻤﻮﺟﮭﺔ ﺑﺎﻷﺣﺪاث‬
‫‪١٩٥‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫‪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‬‬ ‫ﻧﺎﻓﺬة اﻟﻨﻤﻮذج‬
‫‪[Link]‬‬ ‫ﺑُﻌﺪ ﻧﺎﻓﺬة اﻟﻨﻤﻮذج ﻋﻨﺪ ﺣﺎﻓﺔ اﻟﺸﺎﺷﺔ اﻟﻌﻠﯿﺎ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪FormBorderStyle‬‬ ‫اﻟﺘﺤﻜﻢ ﻓﻰ اﻷﻃﺎر )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Function‬‬ ‫داﻟﺔ – ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻨﺘﯿﺠﺔ ﻗﺪ ﺗﻜﻮن )ﺣﺮﻓﯿﺔ ‪ ،‬ﻋﺪدﯾﺔ ‪(..... ،‬‬
‫‪GroupBox‬‬ ‫وﻋﺎء ﺗﺠﻤﯿﻊ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Hardware‬‬ ‫اﻷﺟﮭﺰة اﻟﻤﺎدﯾﺔ‬
‫‪Height‬‬ ‫ارﺗﻔﺎع )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Help‬‬ ‫ﻣﺴﺎﻋﺪة‬
‫‪High Level Language‬‬ ‫اﻟﻠﻐﺔ ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى )ﻟﻐﺔ ﯾﻔﮭﻤﮭﺎ اﻹﻧﺴﺎن(‬
‫‪Hscrollbar‬‬ ‫ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻷﻓﻘﻲ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪HScrollbar -LargeChange‬‬
‫أﻛﺒﺮ ﺗﻐﯿﯿﺮ ﻓﻲ ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻻﻓﻘﻰ‬
‫)ﺧﺎﺻﯿﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ(‬
‫‪HScrollbar -SmallChange‬‬
‫أﻗﻞ ﺗﻐﯿﯿﺮ ﻓﻲ ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ اﻻﻓﻘﻰ‬
‫)ﺧﺎﺻﯿﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ(‬
‫‪Icon‬‬ ‫رﻣﺰ أو أﯾﻘﻮﻧﺔ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪If….Then ….. Else….‬‬ ‫ﺟﻤﻠﺔ ﺷﺮﻃﯿﺔ )ﻛﻮد ﺑﺮﻣﺠﻲ(‬
‫‪Image‬‬ ‫أداة رﺳﻢ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Image‬‬ ‫أﺿﺎﻓﺔ ﺻﻮرة اﻟﻰ ﻛﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Inheritance‬‬ ‫اﻟﺘﻮرﯾﺚ‬
‫) ( ‪InputBox‬‬
‫داﻟﺔ ﺗﻌﺮض رﺳﺎﻟﺔ داﺧﻞ ﺻﻨﺪوق ﺣﻮار‪ ،‬ﺛﻢ ﯾﻨﺘﻈﺮ ﻣﻦ اﻟﻤﺴﺘﺨﺪم‬
‫إدﺧﺎل ﻧﺺ أو اﻟﻨﻘﺮ ﻋﻠﻰ أي زر ﻣﻦ أزرار ﺻﻨﺪوق اﻟﺤﻮار‪.‬‬

‫‪١٩٦‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫) ( ‪Instr‬‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﻣﻜﺎن ﺣﺮف أو ﻣﻜﺎن ﻛﻠﻤﺔ ﻣﻄﻠﻮب‬
‫اﻟﺒﺤﺚ ﻋﻨﮭﺎ داﺧﻞ ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ‪.‬‬
‫‪Integer‬‬ ‫ﻋﺪد ﺻﺤﯿﺢ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪IntelliSense list‬‬ ‫أﺳﺘﺸﻌﺎر ذﻛﻲ )ھﻰ اﻟﻘﺎﺋﻤﺔ اﻟﺘﻰ ﺗﻈﮭﺮ ﻋﻨﺪ ﻛﺘﺎﺑﺔ اﻟﻜﻮد(‬
‫‪Interpreter‬‬ ‫اﻟﻤﻔﺴﺮ‬
‫‪Interval‬‬ ‫ﻓﺘﺮة زﻣﻨﯿﺔ ﻣﺴﺘﻐﺮﻗﺔ )ﺗﻔﺎوت ﻋﻠﻰ ﻓﺘﺮات ‪ ،‬ﺧﺎﺻﯿﺔ ﻟﻤﯿﻘﺎﺗﻲ(‬
‫‪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‬‬ ‫ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ‬
‫‪[Link]‬‬ ‫داﻟﺔ ﻋﺮض اﻟﺮﺳﺎﺋﻞ اﻟﺜﺎﺑﺘﺔ ﺑﺄى ﻃﺮق‬
‫‪Method‬‬ ‫وﺳﯿﻠﺔ‬
‫) ( ‪Mid‬‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺟﺰء ﻣﻦ ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ ﺑﺪءًا ﻣﻦ‬
‫ﺣﺮف ﻣﻌﯿﻦ داﺧﻞ ھﺬه اﻟﺴﻠﺴﻠﺔ‪.‬‬
‫‪Min Button‬‬ ‫زر ﺗﺼﻐﯿﺮ اﻟﻨﺎﻓﺬة )ﻣﻦ ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج(‬
‫‪Module‬‬ ‫وﺣﺪة ﻧﻤﻄﯿﺔ )ﺟﺰء اﻟﺒﺮﻣﺠﺔ(‬
‫‪Mouse Down‬‬ ‫زر اﻟﻔﺎرة ﻟﻠﻀﻐﻂ ﻋﻠﯿﮫ )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Mouse Move‬‬ ‫ﺣﺮﻛﺔ زر اﻟﻔﺎرة )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Mouse Up‬‬ ‫ﺗﺮك زر اﻟﻔﺎرة ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﯿﮫ )ﺣﺪث ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫) ( ‪MsgBox‬‬ ‫داﻟﺔ ﺗﻌﺮض رﺳﺎﻟﺔ ﻓﻲ ﺻﻨﺪوق ﺣﻮار‬
‫‪MultiLine‬‬ ‫اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﺻﻨﺪوق اﻟﻨﺼﻮص ﻓﻲ ﻋﺪة اﺳﻄﺮ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﺺ(‬
‫‪١٩٧‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫‪Multimedia‬‬ ‫اﻟﻮﺳﺎﺋﻂ اﻟﻤﺘﻌﺪدة‬
‫‪Multiple Branching‬‬ ‫اﻟﺘﻔﺮع اﻟﻤﺘﻌﺪد‬
‫‪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‬‬ ‫ﻧﻤﻂ اﻟﺘﺸﻐﯿﻞ‬
‫‪١٩٨‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫‪Save Form‬‬ ‫ﺣﻔﻆ اﻟﻨﻤﻮذج‬
‫‪Save Project‬‬ ‫ﺣﻔﻆ اﻟﻤﺸﺮوع‬
‫‪Scale Height‬‬ ‫ﻋﺪد اﻟﻮﺣﺪات اﻟﺮأﺳﯿﺔ ﻟﻠﻜﺎﺋﻦ و ھﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻣﻊ اﻟﺮﺳﻮﻣﺎت‬
‫‪Scale Mode‬‬ ‫ﻧﻤﻂ وﺣﺪة اﻟﻘﯿﺎس ﻓﻲ اﻟﻜﺎﺋﻦ )ﺧﺎﺻﯿﺔ ﻟﻠﻨﻤﻮذج(‬
‫‪Scale Width‬‬ ‫ﻋﺪد اﻟﻮﺣﺪات اﻷﻓﻘﯿﺔ ﻟﻠﻜﺎﺋﻦ و ھﻲ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻣﻊ اﻟﺮﺳﻮﻣﺎت‬
‫‪Screen Saver‬‬ ‫ﺷﺎﺷﺔ ﺗﻮﻗﻒ‬
‫‪Scrollbar – Max Value‬‬
‫) ‪( Maximum Value‬‬
‫أﻛﺒﺮ ﻗﯿﻤﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ‬
‫‪Scrollbar – Min Value‬‬
‫) ‪( Minimum Value‬‬
‫أﻗﻞ ﻗﯿﻤﺔ ﻟﺸﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ‬
‫‪SDLC‬‬ ‫دورة ﺣﯿﺎة ﺗﻄﻮﯾﺮ اﻟﻨﻈﺎم‬
‫‪System Development Life Cycle‬‬
‫‪Select a control‬‬ ‫أﺧﺘﯿﺎر اﻟﺰر‬
‫‪Semi Colon‬‬ ‫اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ );(‬
‫‪Setup Project‬‬ ‫إﻋﺪاد اﻟﻤﺸﺮوع ﻟﻠﻨﺸﺮ‬
‫‪Single‬‬ ‫ﻋﺪدي ﺣﻘﯿﻘﻲ )ﻧﻮع اﻟﺒﯿﺎن(‬
‫‪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‬‬ ‫ﺧﺎﺻﯿﺔ اﻟﻜﺘﺎﺑﺔ داﺧﻞ ﺻﻨﺪوق اﻟﻨﺺ‬
‫‪١٩٩‬‬
‫‪Prog : Mohamed Youssef‬‬
‫ﺍﻟﻤﺼﻄﻠﺢ‬ ‫ﺍﻟﻤﻌﻨﻰ‬
‫) ( ‪TimeOfDay‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻰ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻮﻗﺖ ﻓﻰ اﻟﯿﻮم‬
‫‪Timer‬‬ ‫اﻟﺘﻮﻗﯿﺖ – اﻟﻤﯿﻘﺎﺗﻲ )أداة ﻣﻦ ﺻﻨﺪوق اﻷدوات(‬
‫‪Title Bar‬‬ ‫ﺷﺮﯾﻂ اﻟﻌﻨﻮان‬
‫‪Toolbar‬‬ ‫ﺷﺮﯾﻂ اﻷدوات‬
‫‪Toolbox‬‬ ‫ﺻﻨﺪوق أدوات‬
‫‪Tools‬‬ ‫أدوات )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ(‬
‫‪True‬‬ ‫ﺻﻮاب‬
‫…… ‪Try ….. Catch‬‬
‫ﻟﺘﻔﺎدى اﻻﺧﻄﺎء اﻟﻤﻨﻄﻘﯿﺔ واﻟﺒﺮﻣﺠﯿﺔ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ )ﻗﻨﺺ‬
‫اﻻﺧﻄﺎء(‬
‫) ( ‪UCase‬‬ ‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﯾﻞ اﻟﺤﺮوف اﻹﻧﺠﻠﯿﺰﯾﺔ اﻟﺼﻐﯿﺮة إﻟﻲ اﻟﻜﺒﯿﺮة‬
‫‪Unconditional Branching‬‬ ‫اﻟﺘﻔﺮع اﻟﻐﯿﺮ اﻟﻤﺸﺮوط‬
‫‪User Interface‬‬ ‫واﺟﮭﺔ اﻟﻤﺴﺘﺨﺪم‬
‫‪[Link]‬‬ ‫ﺷﺮﯾﻂ اﻟﺘﻤﺮﯾﺮ رأﺳﻲ‬
‫) ( ‪Val‬‬
‫داﻟﺔ ﺗﺴﺘﺨﺪم ﻓﻲ اﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻘﯿﻤﺔ اﻟﻌﺪدﯾﺔ ﻟﺴﻠﺴﻠﺔ ﺣﺮﻓﯿﺔ ﻣﻌﯿﻨﺔ‬
‫أو ﻣﺘﻐﯿﺮ ﺣﺮﻓﻲ‬
‫‪Value‬‬ ‫ﻗﯿﻤﺔ )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Variable‬‬ ‫ﻣﺘﻐﯿﺮ‬
‫‪View‬‬ ‫ﻋﺮض )ﻗﺎﺋﻤﺔ ﻓﻲ ﺷﺮﯾﻂ اﻟﻘﻮاﺋﻢ ﻣﻦ ﺧﻼﻟﮭﺎ إﻇﮭﺎر اﻟﻨﻮاﻓﺬ(‬
‫‪Visible‬‬ ‫ﻇﮭﻮر اﻟﻜﺎﺋﻦ أو إﺧﻔﺎؤه )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت(‬
‫‪Visual Basic‬‬ ‫اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻲ‬
‫‪Visual [Link]‬‬ ‫ﺣﺰﻣﺔ اﻟﺒﺮﻣﺠﺔ اﻟﺘﻰ ﺗﺤﺘﻮى ﻋﻠﻰ ﺑﺮﻧﺎﻣﺞ اﻟﺒﯿﺰﯾﻚ اﻟﻤﺮﺋﻰ‬
‫‪Web Portal‬‬ ‫اﻟﺒﻮاﺑﺔ اﻷﻟﻜﺘﺮوﻧﯿﺔ‬
‫‪Width‬‬ ‫ﻋﺮض )ﺧﺎﺻﯿﺔ ﻟﺒﻌﺾ اﻟﻜﺎﺋﻨﺎت ﻟﻘﯿﺎس أو ﻟﻀﺒﻂ ﻋﺮﺿﮭﺎ(‬
‫‪Working Area‬‬ ‫ﻧﺎﻓﺬة ﻣﻨﻄﻘﺔ ﻋﻤﻞ‬

‫‪٢٠٠‬‬
‫‪Prog : Mohamed Youssef‬‬
‫‪References‬‬ ‫‪‬‬
‫‪Books ‬‬

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


‫‪ -٢‬اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ " ٢٠٠٥‬ﺗﻌﻠﻢ ﺧﻄﻮة ﺑﺨﻄﻮة " ‪ ،‬اﻟﻄﺒﻌﺔ اﻷوﻟﻰ ‪ ، ٢٠٠٦‬ﺗﺄﻟﯿﻒ ﻣﺎﯾﻜﻞ ھﺎﻟﻔﺮﺳﻮن ‪ ،‬ﺗﺮﺟﻤﺔ‬
‫ﻣﺮﻛﺰ اﻟﺘﻌﺮﯾﺐ واﻟﺒﺮﻣﺠﺔ ﺑﺪار اﻟﻌﺮﺑﯿﺔ ﻟﻠﻌﻠﻮم ‪.‬‬
‫‪ -٣‬ﻣﺎدة اﻟﻜﻤﺒﯿﻮﺗﺮ اﻟﺼﻒ اﻟﺜﺎﻟﺚ اﻷﻋﺪادى ‪ -‬اﻟﺼﻒ اﻻول اﻟﺜﺎﻧﻮى ‪ ،‬ﻣﻘﺪﻣﺔ اﻟﺒﺮﻣﺠﺔ ﺑﺈﺳﺘﺨﺪام ‪، Visual [Link] 2005‬‬
‫ﻟﻠﻌﺎم اﻟﺪراﺳﻰ ‪ ، ٢٠٠٩/٢٠٠٨‬إﻋﺪاد أ‪.‬د‪ /‬أﺣﻤﺪ ﻓﮭﻤﻰ أﻣﯿﻦ ﻣﺤﺮوس ‪ ،‬ﻣﺮاﺟﻌﺔ أ‪.‬د‪ /‬ﺻﻼح أﻣﯿﻦ ﻋﻠﯿﻮة‪.‬‬

‫‪PDF, exe ‬‬

‫ﻣﻮﻗﻊ ﻓﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب ‪ ،‬ﻣﺠﻠﺔ ﻣﻮﻗﻊ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب ‪ ،‬اﻟﻌﺪد اﻷول ﻟﺸﮭﺮ ﯾﻨﺎﯾﺮ ‪ ، ٢٠٠٨‬إﻋﺪاد ﻓﺮﯾﻖ ﻋﻤﻞ‬ ‫‪-١‬‬
‫اﻟﻤﻮﻗﻊ‪.‬‬
‫ﻣﻨﺘﺪى ﻋﺮب ﻧﺎو ‪ ،‬دورة ﻛﺎﻣﻠﺔ ﻓﻰ ‪ ، [Link]‬ﺑﻮاﺳﻄﺔ ‪. Youssef‬‬ ‫‪-٢‬‬
‫ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ ‪ ،‬ﻃﺮﯾﻘﺔ ﺗﺼﻤﯿﻢ أﻟﮫ اﻟﺤﺎﺳﺒﺔ ﺑﺈﺳﺘﺨﺪام ‪ ، [Link]‬ﺗﺄﻟﯿﻒ ‪.Visual Lover‬‬ ‫‪-٣‬‬
‫ﻣﻨﺘﺪى ﻋﺮب ﻧﺎو ‪ ،‬أﺣﺪث اﻟﺘﻄﺒﯿﻘﺎت ﻟﺒﺮﻧﺎﻣﺞ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، Application Events ٢٠٠٥‬ﺑﻮاﺳﻄﺔ‬ ‫‪-٤‬‬
‫‪.Kenana‬‬
‫ﻣﻮﻗﻊ اﻟﻌﺎﺻﻔﺔ ‪ ،‬ﺗﺤﺰﯾﻢ ﺑﺮاﻣﺞ اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ ‪ ٢٠٠٥‬ﻋﻤﻞ اﻟـ ‪ ، Setup‬اﻟﻜﺎﺗﺐ اﻻﻣﺒﺮاﻃﻮر ‪.XMT‬‬ ‫‪-٥‬‬
‫ﻣﻨﺘﺪى اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ﻟﻠﻌﺮب ‪ ،‬ﻓﻰ رﺣﺎب ‪ ، .Net Framework‬إﻋﺪاد ﻓﺮﯾﻖ أﻋﻀﺎء اﻟﻤﻨﺘﺪى‪.‬‬ ‫‪-٦‬‬
‫ﻣﻨﺘﺪى اﻟﻤﺤﯿﻂ اﻟﻌﺮﺑﻰ ‪ ،‬ﺗﻌﻘﺐ وﺗﺼﺤﯿﺢ اﻻﺧﻄﺎء ﻓﻰ اﻟﺪوت ﻧﺖ ‪ ،‬إﻋﺪاد ﻋﻼء ﺟﻤﻌﮫ‪.‬‬ ‫‪-٧‬‬
‫اﻟﻤﻮﺳﻮﻋﺔ اﻟﻌﺮﺑﯿﺔ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ و اﻹﻧﺘﺮﻧﺖ ‪ ،‬ﻗﺴﻢ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ ‪ ،‬ﺳﻠﺴﺔ ﻛﺘﺐ اﻟﺪورات اﻟﺘﻌﻠﯿﻤﯿﺔ اﻻﻟﻜﺘﺮوﻧﯿﺔ ‪،‬‬ ‫‪-٨‬‬
‫ﻣﺪﺧﻞ إﻟﻰ ‪ ، [Link]‬ﺗﺄﻟﯿﻒ ﺷﺎﻛﺮ ‪ ،‬ﺗﺠﻤﯿﻊ ﻓﺮﯾﻖ ﺑﯿﻮﻛﻮم ﻟﻠﺘﻜﻨﻮﻟﻮﺟﯿﺎ‪.‬‬
‫ﺷﺒﻜﺔ اﻟﻤﻄﻮرون اﻟﻌﺮب ‪ ،‬ﺑﺮﻣﺠﺔ أﻃﺎرﻋﻤﻞ ﺑﺈﺳﺘﺨﺪام ‪، Visual [Link]‬إﻋﺪاد ﺗﺮﻛﻰ اﻟﻌﺴﯿﺮى‪.‬‬ ‫‪-٩‬‬
‫ﻣﻨﺘﺪى اﻟﻔﺮﯾﻖ اﻟﻌﺮﺑﻰ ﻟﻠﺒﺮﻣﺠﺔ ‪ ،‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺼﻮر و اﻟﺮﺳﻢ ‪ ،‬إﻋﺪاد أ‪ /‬ﻋﺒﺪ اﻟﺮﺣﻤﻦ ‪ ،‬أ‪ /‬ﻓﮭﻤﻰ ﯾﺎﺳﯿﻦ‪.‬‬ ‫‪-١٠‬‬
‫ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ ‪ ،‬ﺗﻌﻠﻢ ﻟﻐﺔ ‪ Visual Basic‬ﻟﻠﻤﺒﺘﺪﺋﯿﻦ و اﻟﻤﺘﻮﺳﻄﯿﻦ ‪ ،‬ﺗﺄﻟﯿﻒ ﺣﺴﻦ ﻋﺜﻤﺎن ﻗﺤﻮم‪.‬‬ ‫‪-١١‬‬
‫اﻟﻤﺮﻛﺰ اﻟﻌﺎﻟﻰ ﻟﻠﻤﮭﻦ اﻟﺸﺎﻣﻠﺔ درﻧﺔ ‪ ،‬ﻗﺴﻢ اﻟﺤﺎﺳﻮب ‪ ،‬ﻣﻠﺨﺼﺎت ﻓﻰ ‪، Visual [Link] 2003‬إﻋﺪاد ﻣﻈﮭﺮ رﺷﯿﺪ‪.‬‬ ‫‪-١٢‬‬
‫ﻣﻮﻗﻊ ﻛﺘﺐ اﻟﺤﺎﺳﺐ اﻟﻌﺮﺑﯿﺔ ‪ ،‬ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻣﻜﺘﯿﺔ )‪ ، ADO (OLEDB‬ﺗﺄﻟﯿﻒ ﺳﺎﻣﺢ ﺳﻨﻮﺳﻰ‪.‬‬ ‫‪-١٣‬‬
‫ﺗﻌﻠﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻻﺻﺪارة اﻷوﻟﻰ ‪ ،‬ﺗﺄﻟﯿﻒ ﻣﺤﻤﺪ ﻋﻠﻰ ﻛﻨﯿﻔﻮ‪.‬‬ ‫‪-١٤‬‬
‫ﺗﻌﻠﻢ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻻﺻﺪارة اﻟﺜﺎﻧﯿﺔ ‪ ،‬ﺗﺄﻟﯿﻒ ﻣﺤﻤﺪ ﻋﻠﻰ ﻛﻨﯿﻔﻮ‪.‬‬ ‫‪-١٥‬‬
‫ﻣﺤﺎﺿﺮات ﻣﺎدة ‪ ) [Link] 2005‬ﻧﻈﺮى ‪ -‬ﻋﻤﻠﻰ ( ‪ ،‬ﺗﺄﻟﯿﻒ أ‪.‬م‪.‬ﻣﺤﻤﺪ اﻟﺤﺎج‪.‬‬ ‫‪-١٦‬‬
‫إﻋﺪاد اﻟﻔﯿﺠﻮال ﺳﺘﯿﺪﯾﻮ‪ ،٢٠٠٥‬ﺗﺄﻟﯿﻒ ﻏﺪﯾﺮ ﺳﮭﯿﻞ ﻣﺤﻤﺪ‪.‬‬ ‫‪-١٧‬‬
‫ﻣﺪﺧﻞ إﻟﻰ ‪ ، Visual [Link] 2005‬إﻋﺪاد ﻣﺤﻤﻮد ﺻﻘﺮ‪.‬‬ ‫‪-١٨‬‬
‫ﻣﻘﺪﻣﺔ ﻓﻰ اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ ‪ ، ٢٠٠٥‬اﻟﻄﺒﻌﺔ اﻻوﻟﻰ ‪ ، ٢٠٠٦‬ﺗﺮﺟﻤﺔ ﻣﮭﻨﺪس ﻣﺤﻤﺪ ﻋﻠﻰ ﯾﻮﺳﻒ‪.‬‬ ‫‪-١٩‬‬
‫ﻛﯿﻔﯿﺔ ﺗﺤﺰﯾﻢ ﺑﺮاﻣﺞ ‪ ، [Link] 2005‬اﻟﻜﺎﺗﺐ ﻏﯿﺮ ﻣﻌﺮوف‪.‬‬ ‫‪-٢٠‬‬
‫أﻧﺸﺎء ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت ‪ SQL‬ﺑﺒﺮﻧﺎﻣﺞ ‪ ، [Link] 2005‬ﺗﺄﻟﯿﻒ ‪.Ahmed Hattar‬‬ ‫‪-٢١‬‬
‫ﺗﺤﺰﯾﻢ اﻟﺒﺮاﻣﺞ ﺑﺎﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ ‪ ، ٢٠٠٥‬ﺗﺄﻟﯿﻒ ‪. Fahmyessia‬‬ ‫‪-٢٢‬‬
‫اﻟﻮﺟﯿﺰ ﻓﻰ اﻟﺠﺪﯾﺪ ‪ ،‬أﺳﺘﺜﻤﺮ اﻟﻠﻐﺔ ﺑﻜﻞ ﻃﺎﻗﺘﮭﺎ ‪ ، Visual [Link] 2005‬اﻟﻄﺒﻌﺔ اﻻوﻟﻰ ‪ ، ٢٠٠٥‬ﺗﺄﻟﯿﻒ ﻣﺤﻤﺪ ﻋﺒﺪ‬ ‫‪-٢٣‬‬
‫اﻟﻨﺎﺻﺮ ﺧﻄﯿﺐ‪.‬‬
‫‪ ، Programming with [Link]‬إﻋﺪاد ﻣﮭﻨﺪس ﻣﺤﻤﺪ ﺟﻮدة ﺣﻤﺎﯾﻞ‪.‬‬ ‫‪-٢٤‬‬
‫دورة اﻟﻔﯿﺠﻮال ﺑﯿﺴﻚ دوت ﻧﺖ اﻟﺸﺎﻣﻠﺔ "‪ ، "Step By Step‬ﺗﺄﻟﯿﻒ ﻣﺤﻤﺪ اﻟﺸﮭﺮى‪.‬‬ ‫‪-٢٥‬‬
‫ﻣﻦ اﻟﺼﻔﺮ إﻟﻰ اﻻﺣﺘﺮاف ‪ ، [Link]‬إﻋﺪاد ﻣﺤﻤﺪ ﺣﻤﺪى ﻏﺎﻧﻢ‪.‬‬ ‫‪-٢٦‬‬
‫ﺗﻌﻠﻢ إﻧﺸﺎء ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ‪ ، SQL Server 2005‬اﻟﻜﺎﺗﺐ ﻏﯿﺮ ﻣﻌﺮوف‪.‬‬ ‫‪-٢٧‬‬
‫ﻣﻘﺪﻣﺔ ﻋﺎﻣﺔ ﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ ‪ ،‬إﻋﺪاد ط ‪ /‬ﻋﻤﺎر اﻟﺘﺮك‪.‬‬ ‫‪-٢٨‬‬

‫‪٢٠١‬‬
Prog : Mohamed Youssef
Web Sites 

1- [Link]
2- [Link]
3- [Link]
4- [Link]
5- [Link]
6- [Link]
7- [Link]
8- [Link]
9- [Link]
10- [Link]
11- [Link]
12- [Link]
13- [Link]
14- [Link]
15- [Link]
16- [Link]
17- [Link]
18- [Link]
19- [Link]
20- [Link]
21- [Link]
22- [Link]
23- [Link]
24- [Link]
25- [Link]
26- [Link]
27- [Link]
28- [Link]
29- [Link]
30- [Link]

Learn with Video:-

31- [Link]
32- [Link]
33- [Link]
34- [Link]
35- [Link]
36- [Link]

٢٠٢
Prog : Mohamed Youssef

٢٠٣

You might also like