Professional Documents
Culture Documents
) ﺷﺮح ﻣﺒﺴﻂ ﻟﻠﺮاﻏﺒﯿﻦ ﻓﻲ ﻓﮫﻢ ﻣﺴﺎر ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﺑﺼﻔﺔ ﻋﺎﻣﺔ و ﻟﻐﺔ دﻟﻔﻲ ﻋﻠﻰ وﺟﻪ اﻟﺨﺼﻮص (
ﺗﻤﮫﯿﺪ:
ﺳﻨﻘﻮم ﻓﻲ ھﺬا اﻟﻜﺘﯿﺐ إن ﺷﺎء اﷲ ﺑﺎﻗﺘﺤﺎم ﻋﺎﻟﻢ اﻟﺒﺮﻣﺠـﺔ اﻟﺤﺎﺳـﻮﺑﯿﺔ ,ﻣﺘﺨـﺬﻳﻦ ﻣـﻦ ﻟﻐـﺔ دﻟﻔـﻲ ﻣﻄﯿـﺔ
ﻟﺒﻠﻮغ اﻟﻐﺎﻳﺔ اﻟﺘﻲ ﻳﺼﺒﻮا إﻟﯿﮫﺎ ﻛﻞ ﻣﺒﺮﻣﺞ ﻣﺒﺘﺪئ أو أي ﺷﺨﺺ ﻳﻨﻮي اﻟﺒﺪاﻳﺔ ﻓﻲ ھﺬا اﻟﻌﺎﻟﻢ اﻟﺮﺣﺐ.
ﻋﺎﻟﻢ اﻟﺒﺮﻣﺠﺔ ﺑﻜﻞ ﺗﺄﻛﯿﺪ ﻳﺮﺣﺐ ﺑﻜﻞ ﺿﯿﻮﻓﻪ و ﻻ ﻳﻤﯿﺰ ﺑﯿﻦ ﻋﺎﻟﻢ رﻳﺎﺿﯿﺎت ﺗﻠﻘﻰ ﺗﻌﻠﯿﻤﻪ ﺑﺄﺳﻠﻮب أﻛـﺎدﻳﻤﻲ أو
ھﺎو ﻟﮫﺬا اﻟﻤﺠﺎل.
ﻳﺠﺪر ﺑﻨﺎ اﻟﺬﻛﺮ أن ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﺗﺘﻄﻠﺐ ﺗﻔﺮغ ذھﻨﻲ ,و أأﻛﺪ ﻋﻠﻰ ھﺬه اﻟﻌﺒﺎرة ,ﻛﻤﺎ أﻋﺘﻘـﺪ أن أيّ إﻏﻔـﺎل أو
اﺑﺘﻌﺎد ﻋﻦ اﻟﻌﺎﻟﻢ اﻟﺴﺒﺮاﻧﻲ ﻗﺪ ﻳﻜﻠﻒ اﻟﻤﺒﺮﻣﺞ إﺿـﺎﻋﺔ اﻟﻜﺜﯿـﺮ ﻣـﻦ اﻟﻮﻗـﺖ ﻟﻤﺮاﺟﻌـﺔ ﻣـﺎ ﺗﻌﻠﻤـﻪ ﺳـﺎﺑﻘﺎ .ﻟﮫـﺬا
ﻳﻨﺒﻐﻲ ﻋﻠﻰ ﻛﻞ ﻣﻦ أراد اﻟﺨﻮض ﻓﻲ ھﺬا اﻟﻤﺠﺎل أن ﻳﺤﺮص ﻛﻞ اﻟﺤﺮص ﻋﻠﻰ ﺗﺨـﺼﯿﺺ اﻟﻜﺜﯿـﺮ ﻣـﻦ اﻟﻮﻗـﺖ
ﻟﺘﻌﻠﻢ اﻟﺒﺮﻣﺠﺔ ,أيّ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ,ﺳﻮاء أ ﻛﺎﻧﺖ ﻣﻦ ﻋﮫﺪ اﻟﺴﺘﯿﻨﺎت أو وﻟﯿﺪة اﻟﯿﻮم.ﻛـﺬﻟﻚ ﻳﻨﺒﻐـﻲ أن ﻻ ﻳـﺸﻌﺮ
اﻟﻤﺮء ﺑﺎﻹﺣﺒﺎط ﻣﺴﺘﺴﻠﻤﺎ ﻟﻠﯿﺄس ﻓﻲ ﺣﺎﻟﺔ ﻣﺎ أﻣﻀﻰ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ دون اﻟﻮﺻﻮل إﻟﻰ ﻧﺘﯿﺠﺔ ﻣﻌﯿﻨﺔ ,ﻓﻘﺪ
ﻻﺣﻈﺖ أن اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻳﺴﺘﺴﻠﻤﻮن ﺑﻤﺠﺮد أن ﻳـﻮاﺟﮫﮫﻢ ﻋـﺎﺋﻖ ﺑـﺴﯿﻂ.ﻓﻘـﺪ ﻳﻘـﻮل ﻣﺒـﺮﻣﺞ اﻟﯿـﻮم
ﻛﯿﻒ ﻟﻲ أن أﺗﺎﺑﻊ اﻟﺒﺮﻣﺠﺔ و أﻧﺎ ﻟﻢ أﺳﺘﻄﯿﻊ ﺣـﻞ ﻣـﺸﻜﻠﺔ ﺑـﺴﯿﻄﺔ ﻛﮫـﺬه أﻣـﺎم اﻟﻜـﻢ اﻟﮫﺎﺋـﻞ ﻣـﻦ اﻷدوات و
اﻟﺘﺴﮫﯿﻼت اﻟﺘـﻲ أﺿـﺤﺖ ﻣﺘـﻮﻓﺮة ,ﺑﯿﻨﻤـﺎ أﺳـﻼﻓﻨﺎ ﻓـﻲ ﻋـﺼﺮ اﻟﻜﻮﺑـﻮل اﺳـﺘﻄﺎﻋﻮا ﻋﻤـﻞ اﻟﻜﺜﯿـﺮ و إن ﻗﻠّـﺖ
اﻹﻣﻜﺎﻧﯿﺎت.
ﺟﺮت اﻟﻌﺎدة ﻋﻨﺪ إﺧﺘﯿﺎر ﻋﻤﻞ ﻣﺎ أن ﻳﻄﺮح اﻟﺴﺆال اﻟﺘﺎﻟﻲ :ﻟﻤﺎذا ھﺬا اﻟﻌﻤﻞ ﺑﺎﻟﺬات؟
ﻧﺤﻦ ﻟﻦ ﻧﺠﯿﺐ ﻋﻦ ھﺬا اﻟﺴﺆال ﻷﻧﻪ ﻣﺘﻌﻠﻖ ﺑﺎﻟﻘﺎرئ ﺑﺼﻔﺔ ﺧﺎﺻﺔ و ﺣﺪﻳﺜﻨﺎ ﻋﻦ اﻟﺒﺮﻣﺠﺔ اﻟﯿﻮم ﻳﺒـﺪو ﺑـﺸﻜﻞ
ﻋﺎم و إن ﻛﻨﺎ ﻗﺪ إﺧﺘﺮﻧﺎ اﻟﺪﻟﻔﻲ ﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺼﻔﺎت اﻟﻤﻤﯿﺰة ﻓﯿﮫﺎ.ﻟﻜﻦ و ﻣﻦ أﺟﻞ اﻟﻮﺻﻮل إﻟﻰ ﺟـﻮاب ﺗﻘﺮﻳﺒـﻲ
ﻟﻠﺴﺆال اﻟﻤﻄﺮوح ,ﻻ ﺑﺪ ﻟﻨﺎ ﻣﻦ ﺗﺼﻨﯿﻒ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻛﻲ ﻳﻌﺮف ﻛﻞ ﺷﺨﺺ اﻹﺟﺎﺑﺔ اﻟﺘﻲ ﺗﺨﺼﻪ.
ﻳﻤﻜﻨﻨﺎ أن ﻧﺼﻨﻒ اﻟﻤﺒﺮﻣﺠﯿﻦ إﻟﻰ ﺻﻨﻔﯿﻦ :
-1أﻛﺎدﻣﯿﯿﻦ :و ھﻢ اﻟـﺬﻳﻦ ﺗﻠﻘـﻮا ﺗﻌﻠـﯿﻤﮫﻢ ﺑﺄﺳـﻠﻮب أﻛـﺎدﻳﻤﻲ ﻓـﻲ اﻟﺠﺎﻣﻌـﺎت و ﻣﻌﺎھـﺪ اﻟﻜﻤﺒﯿـﻮﺗﺮ و
اﻹﻋﻼم اﻵﻟﻲ و اﻟﮫﻨﺪﺳﺔ .و ﺗﺘﻤﯿﺰ ھﺬه اﻟﻔﺌﺔ ﺑﺎﻟﺪﻗﺔ ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﻧﻈﺮا ﻟﺘﻜﻮن اﻟﻔﻜﺮ اﻟﺒﺮﻣﺠـﻲ ﻟـﺪى
اﻟﺸﺨﺺ ,ﻛﻮن أﻧﻪ ﺗﻠﻘﻰ ﺗﻌﻠﯿﻤﻪ وﻓﻘﺎ ﻟﻤﻨﮫﺞ ﻣﺴﻄﺮ ﻣﻦ ﻗﺒﻞ ﺧﺒﺮاء.ﻓﻼ ﻳﻤﻜﻦ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜـﺎل
أن ﺗﺠﺪ ﻣﺒﺮﻣﺠﺎ ﺑﻠﻐﺔ دﻟﻔﻲ ﻟﻢ ﻳﺴﺒﻖ ﻟﻪ اﻟﻌﻤﻞ ﻋﻠﻰ ﺑﺎﺳﻜﺎل و ﺣﺘﻰ ﻓﻲ ﻳﻮﻣﻨﺎ ھـﺬا ,أي ﺑﻌـﺪ أن
أﺻﺒﺤﺖ ھﺬه اﻟﻠﻐﺔ ﺑﻤﺘﺮﺟﻤﮫﺎ اﻟﺸﮫﯿﺮ ﻣﻦ ﺧﺒﺮ ﻛﺎن ,ذﻟﻚ ﻷﻧﻪ ﺗﻢ دﻣﺠﮫﺎ ﻓﻲ ﻟﻐـﺔ دﻟﻔـﻲ .ﻣـﻊ ﻛـﻞ
ھﺬا ﻻ ﻳﻤﻜﻦ اﻟﺠﺰم ﺑﺄن ھﺬه اﻟﻔﺌﺔ ﺗﻤﺘﻠﻚ زﻣﺎم اﻷﻣﻮر ﻓﻜﻤﺎ ﻳﻌﻠـﻢ اﻟﻜﺜﯿـﺮ ﻣـﻦ اﻹﺧـﻮة أن ﺟﺎﻣﻌﺎﺗﻨـﺎ
اﻟﻌﺮﺑﯿﺔ ﺗﻠﺘﺰم ﺑﺎﻟﺠﺎﻧﺐ اﻟﻨﻈﺮي أﻛﺜﺮ ﻣﻦ اﻟﺠﺎﻧﺐ اﻟﺘﻄﺒﯿﻘﻲ .ﻓﻼ ﺗﺴﺘﻐﺮب إذا ﻣﺎ وﺟﺪت ﻣﺒﺮﻣﺠﺎ ھﺎو
ﻳﺸﺮح ﺑﻌﺾ اﻷﻣﻮر ﻓﻲ ﻟﻐﺔ دﻟﻔﻲ ﻟﻸﻛﺎدﻳﻤﻲ و إن ﻛﺎن ھﺬا اﻷﺧﯿﺮ ﻳﺤﻤﻞ ﻗﺎﻋﺪة ﻣﻨﻮﻃـﺔ ﺑﺎﻟﻤﻌﺮﻓـﺔ
اﻟﺸﺎﻣﻠﺔ ﻟﺨﻔﺎﻳﺎ اﻟﺒﺮﻣﺠﺔ .
-2ھﻮاة :ﻳﻤﻀﻮن اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ أﻣﺎم ﺷﺎﺷﺔ اﻟﻜﻤﺒﯿﻮﺗﺮ ﻣﺪاﻋﺒﯿﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﯿﺢ و اﻟﻔﺄرة.ﺗﺘﻤﯿﺰ ھﺬه
اﻟﻔﺌﺔ ﺑﺘﻠﻘﯿﮫﺎ اﻟﻔﻜﺮ اﻟﺒﺮﻣﺠﻲ ﻣﻦ ﺧﻼل اﻟﻤﻄﺎﻟﻌﺔ اﻟﺸﺨﺼﯿﺔ أي ﺑﺸﻜﻞ ﻋﺼﺎﻣﻲ .إن اﻹرادة اﻟﻘﻮﻳـﺔ
و ﺣﺐ اﻛﺘﺸﺎف اﻟﻤﺠﮫﻮل ھﻮ اﻷﻣﺮ اﻟﻼﻓﺖ ﻟﻼﻧﺘﺒـﺎه ﻟـﺪى ھـﺬه اﻟﻔﺌـﺔ ,ﻓﻌﻠـﻰ اﻟـﺮﻏﻢ ﻣـﻦ أﻧﮫـﺎ ﻟـﻢ
ﺗﺘﻠﻘـﻰ ﺗﻌﻠﯿﻤﮫــﺎ وﻓﻘــﺎ ﻟﻤﻨـﺎھﺞ ﻣــﺴﻄﺮة إﻻ أﻧﮫــﺎ ﺗــﺴﺘﻄﯿﻊ ﺑﻠـﻮغ أھــﺪاﻓﮫﺎ ﺑــﺴﮫﻮﻟﺔ ﺧــﺼﻮﺻﺎ و أن
اﻟﺸﺒﻜﺔ اﻟﻤﻌﻠﻮﻣﺎﺗﯿﺔ أﺻﺒﺤﺖ ﻛﺎﻟﻤﺼﺒﺎح اﻟﺴﺤﺮي .أﻛﺘﺐ أي ﻋﺒﺎرة ﺗﺮﻳﺪ اﻟﺒﺤﺚ ﻋﻨﮫـﺎ ﻓـﻲ google
أو ﺑﺎﻗﻲ ﻣﺤﺮﻛﺎت اﻟﺒﺤﺚ و ﺳﺘﻈﮫﺮ ﻟﻚ اﻟﻌﺸﺮات ﻣﻦ اﻟﻨﺘﺎﺋﺞ .ﻋﻤﻮﻣﺎ ﻳﻤﻜـﻦ اﻟﻘـﻮل أن ﻋـﺪم اﻻﻟﺘـﺰام
ﺑﺄي واﺟﺒﺎت ﺑﺮﻣﺠﯿﺔ ھﻮ أﺣﺪ أﺳﺮار ھﺬه اﻟﻔﺌـﺔ ﺛـﻢ إن ﻣﻔﮫـﻮم ﺗﺤﻮﻳـﻞ ﻛـﻞ ﺣﺘﻤﯿـﺔ أو ﻋـﺎﺋﻖ إﻟـﻰ
ﻣﺤﻔﺰ ھﻮ ﺛﺎﻧﻲ أﺣﺪ أھﻢ أﺳﺮار اﻟﮫﻮاة.
ﻛﺬﻟﻚ ﻳﻤﻜﻨﻨﺎ اﻟﺘﻤﯿﯿﺰ ﺑﯿﻦ اﻟﻤﺒﺮﻣﺠﯿﻦ وﻓﻘﺎ ﻟﺤﺎﺟﺎﺗﮫﻢ اﻟﺒﺮﻣﺠﯿﺔ ﻓﺎﻟﺬي ﻳﻌﻤﻞ ﻓﻲ ﻣﺆﺳﺴﺔ ﻟﻠﺒﺮﻣﺠﯿﺎت ﺿﻤﻦ
ﻓﺮﻳﻖ ﻋﻤﻞ ﻣﺘﻜﺎﻣﻞ ﺑﻜﻞ ﺗﺄﻛﯿﺪ ﻟﯿﺲ ﻛﺎﻟﺸﺨﺺ اﻟﺬي ﻳﻌﻤﻞ ﺑﻤﻔﺮده .ﻓﺈذا ﻛﺎن اﻷول ﻳﻌﻤﻞ ﻋﻠﻰ ﺗﻄﻮﻳﺮ ﺑﺮاﻣﺞ
ﻣﻮﺟﮫﺔ ﻟﻠﺴﻮق ﺗﺘﻄﻠﺐ ﻋﻠﻰ اﻷﻗﻞ أن ﻻ ﺗﺘﻠﻘـﻰ اﺳـﺘﯿﺎء اﻟﺰﺑـﻮن .ﻓـﺈن اﻟﺜـﺎﻧﻲ ﺗﻘﺘـﺼﺮ أﻋﻤﺎﻟـﻪ ﻋﻠـﻰ ﺑـﺮاﻣﺞ
ﺻﻐﯿﺮة ﺗﺘﺪاول ﻋﻠﻰ ﻣﻮاﻗﻊ اﻹﻧﺘﺮﻧﺖ ﻟﯿﺴﺘﻔﺎد ﻣﻨﮫﺎ ,ﺳﻮاءا أﻛﺎﻧﺖ ﻣﺠﺎﻧﯿﺔ أو ﺗﺘﻄﻠﺐ اﻟﺪﻓﻊ اﻟﻤﺴﺒﻖ ﻟﻠﺤـﺼﻮل
ﻋﻠﯿﮫﺎ .أﻗﻮل أن اﻟﺬي ﻳﻌﻤﻞ ﺑﻤﻔﺮده ﺗﺠﺪه ﻣﻤﺰﻗ ﺎ ﺑﯿﻦ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﮫﺎم ,ﻓﺈذا ﻛﺎن ﻳﻄﻮر ﺑﺮﻧـﺎﻣﺞ ﻗﺎﻋـﺪة ﺑﯿﺎﻧـﺎت
ﻓﻠﻦ ﻳﺠﺪ زﻣﯿﻼ ﻷداء اﻟﻤﮫﺎم ﻋﻨﻪ ,ﻷﻧﻪ ﻳﻌﻤﻞ ﺑﻤﻔﺮده.ﻟﺬا ﻋـﺎدة ﻣـﺎ ﻧﺠـﺪ أن اﻟﮫـﻮاة ﻳﺘﻘﻨـﻮن ﺑﺮﻣﺠـﺔ ﺗﻄﺒﯿﻘـﺎت
وﻳﻨﺪوز و ﺑﺮﻣﺠﺔ اﻹﻧﺘﺮﻧﺖ و اﻟﻌﻤﻞ ﻋﻠﻰ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت ﻓﻀﻼ ﻋﻦ اﻟﻌﻤﻞ ﻋﻠﻰ ﺑﺮاﻣﺞ اﻟﺮﺳﻢ و اﻟﻔـﻼش ﺑﻼﻳـﺮ
و ﺑﺎﻗﻲ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﻋﺎدة ﻣﺎ ﺗﺪﻣﺞ ﻓﻲ أي ﺗﻄﺒﯿﻖ .ﻟﻜﻦ اﻟﺸﻲء اﻟﻤﻼﺣﻆ أن اﻟﮫﻮاة ﻣﻨﮫﻢ ﻣـﻦ ﻳﮫـﺪف إﻟـﻰ
ﻟﻤﺎذا اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺬات ؟ ﻟﻜﺴﺐ ﻟﻘﻤﺔ اﻟﻌﯿﺶ ,ﻟﻠﺪﻓﺎع ﻋﻦ ﺣﺮﻣﺔ اﻹﺳﻼم ,ﻟﻨﺸﺮ اﻟﺜﻘﺎﻓﺎت اﻟﻤﺤﻠﯿﺔ ,ﻟﻠﺮﻗـﻲ
ﺑﺎﻟﻌﺎﻟﻢ اﻟﻌﺮﺑﻲ ﻓﻲ اﻟﻤﺠـﺎل اﻟﺘﻘﻨـﻲ .ﻟﻤـﺴﺎﻳﺮة ﻋـﺼﺮ ﺗـﺪﻓﻖ اﻟﻤﻌﻠﻮﻣـﺎت.ﻟﻤـﺴﺎﻋﺪة اﻟﻮاﻟـﺪ ﻓـﻲ اﻟﻤﺘﺠـﺮ أو
اﻟﺼﺪﻳﻖ ﻓﻲ ...
إن اﻟﻜﻤﺒﯿﻮﺗﺮ ﻣﺠﺮد أﻟﺔ ﺑﺴﯿﻄﺔ ﺗﺆدي ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﮫﺎم اﻟﻤﺨﺘﻠﻔﺔ ,ﻛﺎﻟﻌـﺪ ﻋﻠـﻰ ﺳـﺒﯿﻞ اﻟﻤﺜـﺎل.إن ﻣﮫـﺎم
اﻟﻜﻤﺒﯿﻮﺗﺮ ﻻ ﺗﺘﻢ إﻻ وﻓﻖ ﺳﻠﺴﻠﺔ ﻣﻦ اﻷواﻣﺮ اﻟﻤﺘﺮاﺑﻄﺔ و اﻟﺘﻲ ﺗﺴﻤﻰ ﺗﻄﺒﯿﻘﺎ .ﻳـﺘﻢ ﺗـﺼﻤﯿﻢ اﻟﺘﻄﺒﯿـﻖ ﻣـﻦ
ﻗﺒﻞ ﺷﺨﺺ ﻳﺪﻋﻰ اﻟﻤﺒﺮﻣﺞ .ﻳﻌﺘﻤﺪ ﻛﻞ ﻣﺒﺮﻣﺞ ﻋﻠﻰ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﻌﯿﻨﺔ ﺗﺴﺘﻘﻞ ﺑﺘﻌﻠﯿﻤﺎت ,ﺗﻨﺴﯿﻖ ,ﻛﻠﻤﺎت
ﻣﺤﺠﻮزة و ﺗﺮﻛﯿﺐ ﻣﻌﯿﻦ ﻳﻤﯿﺰھﺎ ﻋﻦ ﺑﺎﻗﻲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ.ﺗﺨﺘﻠﻒ اﻟﺒﺮﻣﺠـﺔ ﻣـﻦ ﻟﻐـﺔ إﻟـﻰ أﺧـﺮى ﻣـﻦ ﺣﯿـﺚ
اﻟﺘﻌﻘﯿﺪ ,ﻓﻘﺪ ﺗﺒﺪو ﻟﻐﺎت اﻟﯿﻮم أﻗﺮب إﻟﻰ ﻟﻐﺔ اﻹﻧﺴﺎن ,ﺑﯿﻨﻤﺎ ﻓﻲ اﻟﻤﺎﺿﻲ ﻛﺎﻧﺖ أﻗﺮب ﻟﻠﻐﺔ اﻵﻟﺔ.
-1ﻟﻐﺔ اﻵﻟﺔ :ھﻲ اﻟﻠﻐﺔ اﻟﻮﺣﯿﺪة اﻟﺘﻲ ﻳﻔﮫﻤﮫﺎ اﻟﻜﻤﺒﯿﻮﺗﺮ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ,ﻓﮫـﻲ ﺗﻌﺘ ﻤـﺪ ﺑﺎﻷﺳـﺎس ﻋﻠـﻰ
ﺗﻌﻠﯿﻤﺎت ﺛﻨﺎﺋﯿﺔ ,ﻟﮫﺬا ﺗﺴﻤﻰ ﺑﺎﻟﻠﻐﺔ اﻟﺜﻨﺎﺋﯿﺔ .ﺣﯿﺚ أن أيّ أﻣﺮ ﻳﻮﺟﻪ إﻟﻰ اﻟﻜﻤﺒﯿﻮﺗﺮ ﻳﻨﺒﻐﻲ أن ﻳﺘـﺄﻟﻒ ﻣـﻦ
ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﺻﻔﺎر و اﻵﺣﺎد ) (0,1ﺣﯿﺚ ﻳﻌﻨﻲ اﻟﺼﻔﺮ offو ﻳﻌﻨـﻲ اﻟﻮاﺣـﺪ . onﻣـﺜﻼ ﻟـﻮ أراد اﻟـﺸﺨﺺ
ﺗﻮﺟﯿﻪ أﻣﺮ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ ﺑﻄﺒﺎﻋﺔ ﺣﺮف Aﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻓﻼ ﺑﺪ أن ﻳﻨﺸﺄ اﻷﻣﺮ ﻋﻠـﻰ اﻟـﺸﻜﻞ اﻟﺘـﺎﻟﻲ:
. 10101001ﻳﺘﻢ ﺗﻮزﻳﻊ اﻷرﻗﺎم اﻟﺴﺎﺑﻘﺔ وﻓﻖ ﺗﺮﺗﯿﺐ ﻣﻌﯿﻦ ﻳﺼﻌﺐ إن ﻟﻢ ﻧﻘﻞ ﻳـﺴﺘﺤﯿﻞ ﻋﻠـﻰ اﻹﻧـﺴﺎن
ﺣﻔﻈﻪ .ﺗﺨﯿﻞ ﻣﻌﻲ أﻧﻚ ﺗﻮد أ ن ﺗﻜﺘﺐ ﻓﻘﺮة ﺻـﻐﯿﺮة ﺑﻠﻐـﺔ اﻵﻟـﺔ .إن ھـﺬا ﻳﺘﻄﻠـﺐ ﻣﻌﺮﻓـﺔ ﺟﯿـﺪة ﻟﻠﺘﺮﻛﯿـﺐ
اﻟﺪاﺧﻠﻲ ﻟﻠﻜﻤﺒﯿﻮﺗﺮ و ﻛﺬا اﻟﻌﻨﺎوﻳﻦ اﻟﺮﻗﻤﯿﺔ ﻟﻤﻮاﻗﻊ اﻟﺘﺨﺰﻳﻦ .و ﻣﻊ ذﻟﻚ ﺳﻨﺸﮫﺪ ﻋﺸﺮات اﻷﺧﻄﺎء .
إن ﻛﻞ ﻛﻤﺒﯿﻮﺗﺮ ﻳﻨﻔﺮد ﺑﻠﻐﺔ أﻟﺔ ﺧﺎﺻﺔ ﺑﻪ ﻣﻤﺎ ﻳﻌﻨﻲ أن اﻟﺒﺮﻧﺎﻣﺞ اﻟﺬي ﺻﻤﻤﺘﻪ ﻟﻠﺘﻌﺎﻣﻞ ﻣـﻊ ھـﺬا اﻟﺠﮫـﺎز
ﻗﺪ ﻻ ﻳﻌﻤﻞ ﻋﻠﻰ اﻟﺠﮫﺎز اﻷﺧﺮ و ھﺬا ﻣﺎ ﻳﺰﻳﺪ اﻷﻣﺮ ﺗﻌﻘﯿﺪا.أﻣﺎم ھﺬا اﻟﻮﺿﻊ اﻟﻤﻌﻘـﺪ ﺗـﻢ إﺑﺘﻜـﺎر ﻧﻈـﺎم ﻋـﺪ
آﺧﺮ ﻟﺘﻤﺜﯿﻞ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ﻣﺜﻞ اﻟﻨﻈﺎم اﻟﺴﺖ ﻋﺸﺮي ) ( HEXADECIMALاﻟﺬي ﻳﺤﺘـﻮي ﻋﻠـﻰ ﺳـﺘﺔ
ﻋﺸﺮ رﻣﺰا .اﻟﻌﺸﺮ أرﻗﺎم اﻷوﻟﻰ ) (9 - 0زاﺋﺪ اﻟﺴﺖ أﺣﺮف اﻷوﻟﻰ ) . (A-Fﻣﻤﺎ ﻳﺠﻌﻞ اﻷﻣﺮ أﺳﮫﻞ ﻧﻮﻋـﺎ
ﻣ ﺎ.
-2ﻟﻐﺔ اﻷﺳﻤﺒﻠﻲ)اﻟﺘﺠﻤﯿﻊ( :ھﻲ ﻋﺒﺎرة ﻋﻦ وﺳﯿﻂ ﺑﯿﻦ ﻟﻐﺔ اﻹﻧﺴﺎن و ﻟﻐـﺔ اﻷﻟـﺔ ,ﺣﯿـﺚ أﻧﮫـﺎ اﻟﻠﻐـﺔ
اﻷوﻟﻰ اﻟﺘﻲ ﺑﺪأت اﻻﻋﺘﻤﺎد ﻋﻠﻰ اﻟﺮﻣﻮز اﻟﮫﺠﺎﺋﯿﺔ ﺑﺪﻻ ﻣﻦ اﻟﻨﻈﺎم اﻟﺜﻨـﺎﺋﻲ اﻟﺮﻗﻤـﻲ.ﻳﻘـﻮم اﻟﻤﺒـﺮﻣﺞ
ﺑﺘﺼﻤﯿﻢ ﺗﻄﺒﯿﻘﺎت و ﺑﺮاﻣﺞ ﻣﻌﯿﻨﺔ ﻣﻌﺘﻤﺪا ﻋﻠـﻰ ﺗﺮﻛﯿـﺐ ھـﺬه اﻟﻠﻐـﺔ ﺗﺎرﻛـﺎ ﻣﮫـﺎم ﺗﺮﺟﻤـﺔ اﻷواﻣـﺮ أو
ﺗﺤﻮﻳﻠﮫﺎ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ ﻟﻠﻤﻔﺴﺮ ) اﺳﻤﺒﻠﺮ(.و ﻧﻈﺮا ﻟﻜﻮن ﻟﻐﺔ اﻷﺳﻤﺒﻠﻲ ﻗﺮﻳﺒﺔ ﻣـﻦ ﻟﻐـﺔ اﻵﻟـﺔ ﻓـﺈن
اﻟﻤﺒﺮﻣﺞ ﻳـﺴﺘﻄﯿﻊ اﻻﺳـﺘﻐﻼل اﻷﻣﺜـﻞ ﻟﻤـﻮارد اﻟﺤﺎﺳـﺐ .ﺣﯿـﺚ أن ﺑـﺮاﻣﺞ ﻟﻐـﺔ اﻷﺳـﻤﺒﻠﻲ ﺗﺘﻤﯿـﺰ
ﺑﺴﺮﻋﺔ اﻟﺘﻨﻔﯿﺬ و ﻗﻠﺔ اﻟﺤﺠﻢ ﻟﺬا ھﻲ اﻟﻠﻐﺔ اﻟﻤﻔﻀﻠﺔ ﻟﺪى اﻟﮫﺎﻛﺮز و اﻟﻜﺮاﻛﺮز .
-3ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻌﻠﯿﺎ :ﺗﺸﻜﻞ ھﺬه اﻟﻠﻐﺎت ﻗﻔﺰة ﻧﻮﻋﯿﺔ ﻓﻲ ﻋﺎﻟﻢ اﻟﺒﺮﻣﺠﺔ ,ﺣﯿﺚ ﻟﻢ ﻳﻌﺪ ﻟﺰاﻣﺎ ﻋﻠـﻰ
اﻟﻤﺒﺮﻣﺞ أن ﻳﻜﻮن ﻋﻠﻰ ﻋﻠﻢ ﺑﻤﻮاﻗﻊ اﻟﺘﺨﺰﻳﻦ و ﺗﻔﺎﺻﯿﻞ اﻟﺠﮫﺎز .ﻳﻤﻜـﻦ ﻟﻠﺒـﺮاﻣﺞ اﻟﺘـﻲ ﺗـﺼﻤﻢ ﺑﮫـﺬه
اﻟﻠﻐﺔ اﻟﻌﻤﻞ ﻋﻠﻰ ﻣﺨﺘﻠﻒ اﻷﺟﮫﺰة.ﻛﻤﺎ أن ﺗﺮﻛﯿﺒﮫﺎ ﺑﺎت أﻛﺜـﺮ ﻳـﺴﺮا ﻣـﻦ ﻟﻐـﺎت اﻷﺳـﻤﺒﻠﻲ ﻛـﻮن أن
اﻟﻌﺒﺎرات اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﯿﮫﺎ ھﻲ أﻗﺮب ﻟﻠﻐﺔ اﻹﻧﺴﺎن ﻣﻦ ﻟﻐﺔ اﻵﻟﺔ.ﺗﻮﺟﺪ اﻟﻜﺜﯿـﺮ ﻣـﻦ ﻟﻐـﺎت اﻟﺒﺮﻣﺠـﺔ
اﻟﻌﻠﯿﺎ ,ﻓﻤﻨﮫﺎ اﻟﻜﻮﺑﻮل و اﻟﻔﻮرﺗﺮان و اﻟﺴﻲ و اﻟﺴﻲ , ++اﻟﺒﯿﺴﻚ و ﺑﺎﺳﻜﺎل.
ﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ اﻟﺴﮫﻮﻟﺔ اﻟﺘﻲ ﺗﻤﯿﺰت ﺑﮫ ﺎ ھﺬه اﻟﻠﻐﺎت ﺑﺎﻟﻤﻘﺎرﻧـﺔ ﻟﻤـﺎ ﺳـﺒﻘﮫﺎ ,إﻻ أﻧﮫـﺎ ﻇﻠـﺖ ﻣﻘـﺼﻮرة
ﻋﻠﻰ ﻓﺌﺔ ﻣﻌﯿﻨﺔ ,ﺑﺎﻋﺘﺒﺎر أن ﺗﺼﻤﯿﻢ أي ﺑﺮﻧﺎﻣﺞ ﺳﯿﺴﺘﻐﺮق وﻗﺖ ﻃﻮﻳﻞ .ﻓﻤﺜﻼ ﻹﻇﮫﺎر ﻧﺎﻓﺬة ﻓﺎرﻏﺔ ﻛﺎن
ﻳﻨﺒﻐﻲ ﻋﻠﻰ اﻟﻤﺒﺮﻣﺞ ﻛﺘﺎﺑﺔ ﺻﻔﺤﺔ أو اﺛﻨﺘﯿﻦ ﻣﻦ اﻷﻛﻮاد .ﻟﻘﺪ دﻓﻊ ھـﺬا اﻷﻣـﺮ ﺷـﺮﻛﺎت اﻟﺒﺮﻣﺠـﺔ ﻟﺘﻄـﻮﻳﺮ
ﺑﺮاﻣﺞ ﻣﻦ أﺟﻞ ﺗﺴﮫﯿﻞ اﻟﻌﻤﻞ ﻋﻠﻰ اﻟﻤﻄﻮرﻳﻦ ,ﻓﻘﺪ ﺗﻢ دﻣﺞ ﺑﻌﺾ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﺿﻤﻦ ﺑﯿﺌﺎت ﻣﺘﻜﺎﻣﻠـﺔ
ﺗﺤﺘﻮي ﻋﻠﻰ أدوات ﻣﺮﺋﯿﺔ و ھﺬا ﻣـﻦ أﺟـﻞ ﺗﻄـﻮﻳﺮ اﻟﺒـﺮاﻣﺞ ﺑـﺸﻜﻞ ﺳـﺮﻳﻊ .ﻓﻨﺠـﺪ أن ﻟﻐـﺔ اﻟﺒﯿـﺴﻚ ﺗـﻢ
ﺗﻄﻮﻳﺮھﺎ إﻟﻰ ﻓﯿﺰوال ﺑﯿﺴﻚ ,أﻣﺎ اﻟﺒﺎﺳﻜﺎل ﻓﻘﺪ ﻇﮫﺮ ﻋﻨﮫﺎ اﻟﺪﻟﻔﻲ اﻟﺬي ﻧﺤﻦ ﺑﺼﺪد اﻟﻌﻤـﻞ ﻋﻠﯿـﻪ ﻓـﻲ
ھﺬا اﻟﻜﺘﺎب .ﺣﯿﺚ ﻳﺘﻤﯿﺰ اﻟﺪﻟﻔﻲ ﺑﺎﻟﺨﺎﺻﯿﺔ RADو اﻟﺘﻲ ﺗﻌﻨﻲ) (Rapid Application Developmenأي
اﻟﺘﻄﻮﻳﺮ اﻟﺴﺮﻳﻊ ﻟﻠﺒﺮﻣﺠﯿﺎت.
إن اﻟﺒﺮﻣﺠﺔ ﻻ ﺗﻘﺘﺼﺮ ﻋﻠﻰ ﻣﺎ ﺳـﺒﻖ ذﻛـﺮه ﻓﺤـﺴﺐ ,ﺑـﻞ ﺗﻮﺟـﺪ اﻟﻜﺜﯿـﺮ ﻣـﻦ ﻟﻐـﺎت اﻟﺒﺮﻣﺠـﺔ ﻓـﻲ ﻋـﺎﻟﻢ
اﻟﻜﻤﺒﯿﻮﺗﺮ .ﻧﺠﺪ ﺑﺮﻣﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت و اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﻟﻐﺔ اﻹﺳﺘﻌﻼم اﻟﺒﻨﯿﻮﻳﺔ ) (SQLو ھﻮ إﺧﺘﺼﺎر
ﻣﻘﺪﻣــﺔ ﻟﻠﻐــﺔ اﻟﺒﺮﻣﺠــﺔ دﻟﻔــﻲ :إن ﻟﻐــﺔ visual basicﺗﻌﻠــﻦ ﻣــﻦ ﺗــﺴﻤﯿﺘﮫﺎ أﻧﮫــﺎ ﻟﻐــﺔ اﻟﺒﯿــﺴﻚ اﻟﻤﺮﺋﯿــﺔ أو
اﻟﺮﺳﻮﻣﯿﺔ ,ﺑﯿﻨﻤﺎ اﻟﺘﺴ ﻤﯿﺔ اﻟﻐﯿﺮ ﻣﻌﻠﻨـﺔ ﻟﻠـﺪﻟﻔﻲ ھـﻲ ﺑﺎﺳـﻜﺎل اﻟﻤﺮﺋﯿـﺔ .و اﻟﻤﻘـﺼﻮد ﺑﮫـﺬا أن ﺑﯿﺌـﺔ اﻟﺘﻄـﻮﻳﺮ
دﻟﻔﻰ ﺗﻌﺘﻤﺪ ﻓﻲ اﻷﺳﺎس ﻋﻠﻰ ﺗﺮﻛﯿﺐ ﻟﻐﺔ ﺑﺎﺳﻜﺎل ﻣﺼﺤﻮﺑﺔ ﺑﻤﻜﺘﺒﺔ ﺿﺨﻤﺔ ﻣﻦ اﻷدوات اﻟﻤﺮﺋﯿﺔ اﻟﺠـﺎھﺰة
و اﻟﺘﻲ ﻳﻤﻜﻦ ﻟﻠﻤﺒﺮﻣﺞ اﺳﺘﺨﺪاﻣﮫﺎ ﻣﺒﺎﺷﺮة .و ھﺬه اﻷدوات ﻓـﻲ ﻣﻌﻈـﻢ اﻷﺣـﻮال ﻻ ﻳﺨـﻞ ﻣﻨﮫـﺎ ﺑﺮﻧـﺎﻣﺞ ﻣـﻦ
اﻟﺒﺮاﻣﺞ.ﻓﻼ ﻳﻤﻜﻦ أن ﻧﺘﺼﻮر ﺑﺮﻧﺎﻣﺞ ﺑﺪون أزرار أو ﻧﻤﻮذج إﻻ ﻓﯿﻤﺎ ﻧﺪر.
ﻛﻤﺎ ﺳﺒﻖ اﻟﺬﻛﺮ ﻓﺈن ﻟﻐﺔ دﻟﻔﻲ ھﻲ ﻟﻐﺔ اﻟﺘﻄﻮﻳﺮ اﻟﺴﺮﻳﻊ ﻟﻠﺒﺮاﻣﺞ ﺑﺎﺳـﺘﺨﺪام اﻷدوات أو اﻟﻤﻜﻮﻧـﺎت اﻟﻤﺘـﻮﻓﺮة
ﻣﺜﻞ اﻷزرار و اﻟﻨﻤﻮذج و أداة اﻟﻨﺺ و اﻟﻜﺜﯿﺮ ﻣﻦ اﻷدوات اﻷﺧﺮى .ﻳﻌﺘﺒﺮ اﻟﻨﻤﻮذج ھﻮ اﻟﺤ ﺎﺿﻦ اﻷﺳﺎﺳﻲ ﻟﮫـﺬه
اﻟﻤﻜﻮﻧﺎت ﺣﯿﺚ ﻳﺘﻢ ﺗﻨﺴﯿﻘﮫﺎ و ﻓﻖ ﻧﻤﻂ ﻣﻌﯿﻦ ﻳﺘ ﻨﺎﺳﺐ و اﻟﻌﻤﻞ اﻟﻤﻨﺸﻮد.ﻳﻌﺒﺮ ﻋﻦ اﻷدوات ﺑﻌـﺪة ﺗـﺴﻤﯿﺎت
ﻣﻨﮫﺎ اﻟﻤﻜﻮﻧﺎت أو اﻟﻜﺎﺋﻨﺎت.إن اﻟﺘﺴﻤﯿﺔ اﻷﺧﯿﺮة ﺗﺒـﺪو أﻛﺜـﺮ ﺑﻼﻏـﺔ ,ﺣﯿـﺚ ﻧﻔﮫـﻢ ﻣـﻦ ذﻟـﻚ أن ﻛـﻞ ﻛـﺎﺋﻦ ﻟـﻪ
ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟ ﺨﺼﺎﺋﺺ ,ﻣﻦ ﻃﻮل و ﻋﺮض ,ﻣـﺴﻄﺢ أو ﺛﻼﺛـﻲ اﻷﺑﻌـﺎد ,ﻣﺮﺋـﻲ أو ﻏﯿـﺮ ﻣﺮﺋـﻲ ,ﻟـﻪ ﻋﻨـﻮان
ﻣﻌﯿﻦ و إﺳﻢ ﻳﺨﺘﻠﻒ ﺑﺎﻟﻀﺮورة ﻋﻦ ﺑﺎﻗﻲ اﻟﻤﻜﻮﻧﺎت اﻟﺘـﻲ ﺗـﺸﺘﺮك ﻣﻌـﻪ ﻓـﻲ اﻟﺠـﻨﺲ .ﻋﻠـﻰ ﺳـﺒﯿﻞ اﻟﻤﺜـﺎل
ﻳﻤﻜــﻦ أن ﻧﻌﻄــﻲ ﺗــﺴﻤﯿﺔ ﻟــﺰر ﻣﻌــﯿﻦ Button1ﻛﻤــﺎ ﻳﻤﻜــﻦ أن ﻧــﺴﻤﻲ اﻟﻨﻤــﻮذج أﻳــﻀﺎ ﺑــﻨﻔﺲ اﻟﺘــﺴﻤﯿﺔ
ﻻﺧﺘﺎﻟﻔﮫﻤﺎ ﻓﻲ اﻟﺠﻨﺲ.ﺑﯿﻨﻤﺎ ﻟﻮ أﺿـﻔﻨﺎ زر أﺧـﺮ و أﻋﻄﯿﻨـﺎه ﻧﻔـﺲ اﻟﺘـﺴﻤﯿﺔ ) (Button1ﻓـﺈن ﺑﺮﻧـﺎﻣﺞ دﻟﻔـﻲ
ﻳﺮﻓﻀﮫﺎ ﻷﻧﮫﻤﺎ ﻣﻦ ﻧﻔﺲ اﻟﺠﻨﺲ .
ﺗﻤﺜﻞ ھﺬه اﻟﺼﻮرة ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻣﻜﻮﻧﺎت دﻟﻔﻲ ﺿﻤﻦ ﻧﻤﻮذج رﺋﯿﺴﻲ.ﻛﻤﺎ ھـﻮ واﺿـﺢ ﻣـﻦ اﻟـﺼﻮرة ﻓـﺈن ﻛـﻞ
ﻣﻜﻮن ﻳﺤﻤﻞ اﻟﺘﺴﻤﯿﺔ اﻟﺨﺎﺻـﺔ ﺑـﻪ ,ﺣﺘـﻰ اﻟﻨﻤـﻮذج ﻳﻌﺘﺒـﺮ ﻣﻜـﻮن و ھـﻮ اﻟـﺬي ﻳـﺸﻜﻞ واﺟﮫـﺔ اﻟﻤـﺴﺘﺨﺪم.
ﻣﻦ اﻵن و ﺻﺎﻋﺪا ﻓﺈن اﻟﺘﺴﻤﯿﺎت اﻟﺨﺎﺻﺔ ﺑﻤﻜﻮﻧﺎت دﻟﻔﻲ ﻳﺠﺐ أن ﺗﺤﻔﻆ ﻓﻲ اﻟﺬھﻦ ﺑﻠﻐﺘﮫـﺎ اﻷم .ﻓـﺈذا ﻗﻠﻨـﺎ
اﻷداة ComboBoxﻳﺬھﺐ ذھﻦ اﻟﻤﺒﺮﻣﺞ ﻣﺒﺎﺷﺮة إﻟﻰ ﺗﻠﻜﻢ اﻷداة اﻟﺘﻲ ﺗﺤﻤﻞ ﻧﻔﺲ اﻟﺘﺴﻤﯿﺔ ﻓﻲ اﻟﺼﻮرة .
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻤﻔﮫﻮم اﻟﺨﺼﺎﺋﺺ ﺳﯿﺘﻀﺢ ﻟﻮ ﻗﻤﻨﺎ ﺑﺎﻟﺘﻼﻋﺐ ﺑـﺒﻌﺾ اﻟﻤﻜﻮﻧـﺎت .ﻓﻠـﻮ ﻗﻤﻨـﺎ ﺑﺘﻐﯿﯿـﺮ ﻋﻨـﻮان اﻟﻨﻤـﻮذج
) (captionإﻟﻰ " اﻟﺒﺮﻧﺎﻣﺞ اﻷول" ﺑﺪﻻ ﻣﻦ " "form1ﻧﻜﻮن ﻗﺪ ﺗﻌﺎﻣﻠﻨﺎ ﻣﻊ ﺧﺼﺎﺋﺺ ھﺬا اﻟﻜﺎﺋﻦ و ﻛـﺬﻟﻚ ﻧﻔـﺲ
اﻟﺸﻲء ﻟﻮ ﻗﻤﻨﺎ ﺑﺈﻋﻄﺎء ﻣﺴﺎﺣﺔ أﻛﺒﺮ ﻟﻸداة . Edit1إن ﻋﻤﻞ ھـﺬه اﻟﻤﻜﻮﻧـﺎت ﻳﺘﻮﻗـﻒ ﻋﻠـﻰ ﻣﺠﻤﻮﻋـﺔ ﻣـﻦ
اﻷﻛﻮاد و اﻹﺟﺮاءات ) (proceduresاﻟﺘﻲ ﺗﻨﻔﺬ إﺛﺮ اﻟﻘﯿﺎم ﺑﺤﺪث ﻣﻌﯿﻦ ) (eventﻟﻤﻜﻮن ﻣﺎ .ﻓـﺎﻟﻨﻘﺮ ﻣـﺜﻼ ﻳﻌﺘﺒـﺮ
ﺣﺪث و ﺗﻤﺮﻳﺮ اﻟﻔﺄرة ﻋﻠﻰ أداة ﻣﻌﯿﻨﺔ ﻳﻌﺘﺒﺮ ﻛﺬﻟﻚ ﺣﺪﺛﺎ .ﻓﯿﻤﻜﻨﻨﺎ ﻣﺜﻼ إﻋﻄﺎء أﻣﺮ ﺑﺈﻏﻼق اﻟﺒﺮﻧـﺎﻣﺞ إﺛـﺮ ﺗﻨﻔﯿـﺬ
ﺣﺪث ﺗﻤﺮﻳﺮ اﻟﻔﺄرة ﻋﻠﻰ اﻷداة .CheckBox1و ھﻜﺬا ﻟﻮ ﻗﺎم اﻟﻤﺴﺘﺨﺪم ﺑﺘﻤﺮﻳﺮ اﻟﻔـﺄرة ﻋﻠـﻰ ھـﺬه اﻷداة ﻓـﺈن
اﻟﺒﺮﻧﺎﻣﺞ ﺳﻮف ﻳﻐﻠﻖ ﻣﺒﺎﺷﺮة.
ﺗﻤﺮ اﻟﺒﺮﻣﺠﺔ ﺑﺪﻟﻔﻲ ﺑﻤﺮﺣﻠﺘﯿﻦ أﺳﺎﺳﯿﺘﯿﻦ ,ﻳﺘﻢ ﻓﻲ اﻟﻤﺮﺣﻠﺔ اﻷوﻟـﻰ ﺗﻨـﺴﯿﻖ و ﺿـﺒﻂ ﺧـﺼﺎﺋﺺ اﻟﻤﻜﻮﻧـﺎت
ﻋﻠﻰ اﻟﻨﻤﻮذج.ﺑﯿﻨﻤﺎ ﻳﺘﻢ ﻓﻲ اﻟﻤﺮﺣﻠﺔ اﻟﺜﺎﻧﯿﺔ ﻛﺘﺎﺑﺔ أﻛﻮاد ﺑﺮﻣﺠﯿﺔ ﺿﻤﻦ إﺟﺮاءات ﻣﺮﺗﺒﻄﺔ ﺑﺄﺣﺪاث ﻣﻌﯿﻨﺔ.
ﻋﻨﺪ ﻓﺘﺢ ﺑﺮﻧﺎﻣﺞ دﻟﻔﻲ ﻓﺈﻧﻪ ﻳﻘﻮم ﺗﻠﻘﺎﺋﯿﺎ ﺑﺈﻧﺸﺎء ﻧﻤﻮذج ﻳﺤﻤﻞ اﻟﺨﺼﺎﺋﺺ اﻹﻓﺘﺮاﺿﯿﺔ و اﻟﺘـﻲ ﻳﻤﻜـﻦ ﺗﻐﯿﯿﺮھـﺎ
ﻣﻦ ﻗﺒﻞ اﻟﻤﺒﺮﻣﺞ.ﻓﺈذا ﻋﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ أن اﻟﻤﺮﺣﻠﺔ اﻷوﻟﻰ ﺗﺘﻢ ﻋﻠﻰ اﻟﻨﻤﻮذج ﻓﺄﻳﻦ ﻳﺎ ﺗﺮى ﻳﺘﻢ ﻛﺘﺎﺑﺔ اﻹﺟﺮاءات؟.
end.
اﻟﺴﻄﺮ اﻷول ﻳﻀﻢ إﺳﻢ اﻹﺟﺮاء وھﻮ اﻹﺟﺮاء اﻟﻤﺮﺗﺒﻂ ﺑﺤﺪث اﻟﻨﻘﺮ ﻋﻠﻰ اﻷداة .button1
أﻣﺎ اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻓﮫﻮ ﻳﻌﻠﻦ ﻋﻦ ﻧﮫﺎﻳﺔ ﻛﻞ اﻹﺟﺮاءات ﺣﯿﺚ ﻣﺎ ﻳﺘﻢ ﻛﺘﺎﺑﺘﻪ ﺑﻌﺪ ھﺬا اﻷﻣﺮ ﺳﯿﺘﻢ ﺗﺠﺎھﻠﻪ أﺛﻨـﺎء
ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ .و ﻣﻌﻨﻰ اﻟﺘﻨﻔﯿﺬ ھﻮ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻌﺪ اﻹﻧﺘﮫﺎء ﻣﻦ ﺑﺮﻣﺠﺘﻪ ﺟﺰﺋﯿﺎ أو ﻛﻠﯿﺎ .أي ﺑﻌـﺪ اﻹﻧﺘﮫـﺎء
ﻣﻦ وﺿﻊ اﻟﺘﺼﻤﯿﻢ ﺗﺄﺗﻲ ﻣﺮﺣﻠﺔ اﻟﺘﻨﻔﯿﺬ و اﻟﺘﻲ ﻣﻦ ﺧﻼﻟﮫـﺎ ﻧﻜﺘـﺸﻒ ﻣـﺎ إذا ارﺗﻜﺒﻨـﺎ أﺧﻄـﺎء ﺑﺮﻣﺠﯿـﺔ ﻣـﺎ .ﻷن
دﻟﻔﻲ ﻋﺎدة ﻣﺎ ﻳﻔﻀﺢ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻓﻲ ھﺬه اﻟﻤﺮﺣﻠﺔ)ﻣﺠﺮد ﻣﺰﺣﺔ ,أﻗﺼﺪ ﻳﻨﺒﮫﮫﻢ ﻟﻮﺟﻮد ﻟﺒﺲ ﻣﺎ ﻓﻲ اﻟﻜﻮد(
ﻗﺪ ﻳﺒﺪو اﻟﺠﺎﻧﺐ اﻟﻨﻈﺮي ﺻﻌﺐ اﻟﻔﮫﻢ ﻧﻮﻋﺎ ﻣﺎ ﻟﻜﻨﻨﺎ ﺑﻤﺠﺮد اﻟﺒﺪء ﻓﻲ اﻟﻌﻤﻞ اﻟﺘﻄﺒﯿﻘﻲ ﺳﺘﺘﻀﺢ اﻷﻣﻮر.
1
2
7 3
5
4
6
ﺗﻤﺜﻞ ھﺬه اﻟﺼﻮرة اﻟﻮاﺟﮫﺔ اﻟﺮﺋﯿﺴﯿﺔ ﻟﺒﯿﺌﺔ اﻟﺘﻄﻮﻳﺮ اﻟﻤﺘﻜﺎﻣﻠﺔ اﻟﺨﺎﺻﺔ ﺑﻠﻐﺔ دﻟﻔﻲ.ﺣﯿﺚ ﺗﺤﺘﻮي ﻋﻠﻰ ﻛﻞ ﻣـﺎ
ﻳﺤﺘﺎﺟﻪ اﻟﻤﺒـﺮﻣﺞ ﻣـﻦ أدوات ﻟﺒﻨـﺎء ﺑﺮﻧﺎﻣﺠـﻪ و ﺗﺠﺮﻳﺒـﻪ .و ﻳـﺄﺗﻲ ﻣـﻊ ﺑﻌـﺾ ﻧـﺴﺦ دﻟﻔـﻲ ﺑﺮﻧـﺎﻣﺞ INSTALL
SHIELDاﻟﺬي ﻳﺴﻤﺢ ﺑﺘﺤﺰﻳﻢ أو ﻋﻤﻞ setupﻟﻠﺒﺮﻧﺎﻣﺞ اﻟﺬي ﺗﻢ ﺗﺼﻤﯿﻤﻪ ,وھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻳﺄﺗﻲ ﻣﻨﻔـﺼﻞ ﻋـﻦ
ﺑﯿﺌﺔ اﻟﺘﻄﻮﻳﺮ اﻟﻤﺘﻜﺎﻣﻠﺔ.ﻟﻜﻦ ﻟﻦ ﺗﺤﺘﺎج إﻟﻰ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻟﺘﻮزﻳﻊ ﺑﺮﻧﺎﻣﺠﻚ ﻓﻲ ﻛﻞ اﻷﺣـﻮال.ﻷن دﻟﻔـﻲ ﻳـﺪﻋﻢ
ﻋﻤﻮﻣﺎ ﻳﻤﻜﻦ ﺗﻘﺴﯿﻢ ﺑﯿﺌﺔ اﻟﺘﻄﻮﻳﺮ دﻟﻔﻲ إﻟﻰ 6أﺟﺰاء ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة:
اﻟﻤﮫﺎم اﻟﻌﻨﻮان
أو ﺷﺮﻳﻂ اﻟﻌﻨﻮان ﺣﯿﺚ ﻳﻈﮫﺮ ﻓﯿﻪ إﺳﻢ اﻟﻤﺸﺮوع ﺑﻌﺪ رﻗﻢ إﺻﺪار دﻟﻔـﻲ ,و ﻳﻤﻜـﻦ title bar
ﺗﻐﯿﯿﺮ إﺳﻢ اﻟﻤﺸﺮوع ﻋﻨﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺨﺰﻳﻦ. 1
أو ﺷﺮﻳﻂ اﻟﻘﻮاﺋﻢ و ﻳﻀﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﺋﻢ ﻣﻨﮫﺎ ﻣﺎ ھﻮ ﺷﺎﺋﻊ ﻓـﻲ ﻣﺨﺘﻠـﻒ اﻟﺒـﺮاﻣﺞ main menu
ﻣﺜﻞ اﻟﻘﺎﺋﻤﺔ FILEو EDITو ﻣﻨﮫﺎ ﻣﺎ ھﻮ ﺧﺎص ﺑﺒﯿﺌﺔ دﻟﻔﻲ: 2
و ھﻮ اﻟﺤﺎﺿﻨﺔ اﻟﺘـﻲ ﺗﺠﻤـﻊ اﻷدوات اﻟﻤـﺴﺘﺨﺪﻣﺔ ﻓـﻲ اﻟﻤـﺸﺮوع ,ﺣﯿـﺚ أﻧـﻪ ﻳـﺸﻜﻞ 4اﻟﻨﻤﻮذج )( Form
واﺟﮫﺔ اﻟﺘﻄﺒﯿﻖ .
ﻳﻘﻮم ھﺬا اﻹﻳﻄﺎر ﺑﻌﺮض اﻷدوات اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﻤـﺸﺮوع ﺑـﺸﻜﻞ ﻋﻼﺋﻘـﻲ .ﺣﯿـﺚ Object 5
ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ﻣﺸﺎھﺪة اﻷدوات و ﺗﺤﺪﻳﺪھﺎ ﻣﻦ أﺟـﻞ ﺿـﺒﻂ ﺧﺼﺎﺋـﺼﮫﺎ ﻣـﻦ ﻧﺎﻓـﺬة TreeView
اﻟﺨﺼﺎﺋﺺ.
ﻳﺤﺘﻮي ھﺬا اﻹﻳﻄﺎر ﻋﻠﻰ ﺻﻔﺤﺘﯿﻦ أﺳﺎﺳﯿﺘﯿﻦ : Object 6
:Propertiesو ﺗــﻀﻢ ﺧــﺼﺎﺋﺺ ﻛــﻞ أداة ﻣــﺴﺘﺨﺪﻣﺔ ,ﺣﯿــﺚ ﻳﻤﻜــﻦ ﻟﻠﻤﺒ ـﺮﻣﺞ اﻟﺘﻌــﺪﻳﻞ Inspector
ﻋﻠﯿﮫﺎ.
:Eventsﺻﻔﺤﺔ اﻷﺣﺪاث ﺗﻤﻜﻨﻨﺎ ﻣﻦ إﺧﺘﯿﺎر اﻟﺤﺪث اﻟﻤﺮﺗﺒﻂ اﻟﺬي ﻧﺮﻳﺪ إﻧﺸﺎء إﺟﺮاء إﺛـﺮ
ﺣﺪوﺛﻪ ,ﻳﻤﻜﻦ إﺧﺘﯿﺎر أي ﺣﺪث ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠﻰ اﻹﻳﻄﺎر اﻟﻤﻘﺎﺑﻞ ﻟﻪ ,و ﺳﻮف ﺗﻔـﺘﺢ
ﻧﺎﻓﺬة ﺗﺤﺮﻳﺮ اﻟﻜﻮد ﻣﺼﺤﻮﺑﺔ ﺑﺎﻹﺟﺮاء اﻟﻤﺮﺗﺒﻂ ﺑﺎﻟﺤﺪث اﻟﻤﺤﺪد.
ﺗﻀﻢ ھﺬه اﻷﺷﺮﻃﺔ أزرارا ﻟﻠﻮﺻﻮل اﻟﺴﺮﻳﻊ ﻷھﻢ أواﻣﺮ دﻟﻔﻲ .ﻳﻤﻜﻦ ﺗﻨﻔﯿـﺬ اﻟﺒﺮﻧـﺎﻣﺞ أو Speed Buttons 7
إﺿﺎﻓﺔ ﻧﻤﻮذج ﻣﻦ ﺧﻼل ھﺬا اﻟﺸﺮﻳﻂ .ﻳﺠﺪر ﺑﻨﺎ اﻟﺬﻛﺮ أن أﺳﻤﺎء و وﺿﺎﺋﻒ أدوات دﻟﻔـﻲ Bars
ﻋﺎدة ﻣﺎ ﺗﻈﮫﺮ ﻋﻨﺪ وﺿﻊ اﻟﻤﺆﺷﺮ ﻋﻠﯿﮫﺎ .ﻓﻠﻮ ﻗﻤﺖ ﻣﺜﻼ ﺑﻮﺿﻊ اﻟﻤﺆﺷﺮ ﻓﻮق اﻟﺰر اﻷﺧﻀﺮ ,
ﺳﯿﻈﮫﺮ اﻟﺘﻌﻠﯿﻖ اﻟﺘﺎﻟﻲ " . "Run F9و اﻟﺬي ﻳﺨﺒﺮﻧﺎ ﺑﻤﮫﺎم اﻟﺰر اﻟﻤﺤﺪد.
ﺗﻈﮫﺮ ھﺬه اﻟﻨﺎﻓﺬة ﺧﻠﻒ اﻟﻨﻤﻮذج ,و ﺗﺴﺘﺨﺪم ﻛﻤﺤﺮر ﻟﻸﻛـﻮاد .و ﻛﻤـﺎ ﺳـﺘﻼﺣﻆ ﻓﮫـﻲ UNIT 8
ﺗﺘﻜﻮن ﻣﻦ اﻟﺘﺮﻛﯿﺐ اﻟﺨﺎص ﺑﻠﻐﺔ دﻟﻔﻲ ﺣﯿﺚ ﺗﺒﺪأ ﺑﺈﺳﻢ اﻟﻮﺣﺪة و ﺗﻨﺘﮫﻲ ﺑﺎﻟﻜﻠﻤﺔ End
ﻳﻤﻜﻦ ﻣﻼﺣﻈﺔ أن إﺳﻢ اﻷداة ﻓﻲ أﻋﻠﻰ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ و ھﻮ ". "Button1أﻣـﺎ ﻋﻨـﻮان اﻷداة أي ""caption
ﻓﮫﻮ " ﻣﺮﺣﺒﺎ" .ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺨﺎﺻﯿﺔ Cursorﻓﮫﻲ " . " crHand pointﻻﺣﻆ أن ﻋﻨﻮان اﻷداة ﻳﻈﮫﺮ ﻣﺒﺎﺷﺮة ﺑﻌـﺪ
اﻟﻘﯿﺎم ﺑﺘﻌﺪﻳﻠﻪ ﺣﯿﺚ ﻛﺎن ﻓﻲ اﻟﺴﺎﺑﻖ , Button1أﻣـﺎ اﻟﺨﺎﺻـﯿﺔ اﻟﺜﺎﻧﯿـﺔ اﻟﺘـﻲ ﻗﻤﻨـﺎ ﺑﺘﻌـﺪﻳﻠﮫﺎ Cursorﻓﮫـﻲ
ﻟﺘﺤﺪﻳﺪ ﻧﻮع اﻟﻤﺆﺷﺮ اﻟﺬي ﻳﻈﮫﺮ ﻋﻠﻰ اﻷداة ﻋﻨﺪ ﺗﻘﺮﻳﺐ ﻣﺆﺷﺮ اﻟﻔ ﺄرة ﻣﻨﮫﺎ.و ﻛﻤﺎ ﺗﺸﺎھﺪ ﻓﻲ اﻟﻘﺎﺋﻤـﺔ ,ﻓﻘـﺪ
اﺧﺘﺮﻧﺎ ﻣﺆﺷﺮ اﻟﯿﺪ .ﻟﻜﻦ ھﺬه اﻟﺨﺎﺻﯿﺔ ﻻ ﻳﻤﻜﻦ ﻣﻼﺣﻈﺘﮫﺎ أﺛﻨﺎء اﻟﺘﺼﻤﯿﻢ ﺑﻞ ﻻﺑﺪ أن ﻧﻨﺘﻈﺮ وﻗﺖ اﻟﺘﻨﻔﯿﺬ.ﺗﻮﺟﺪ
اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﻳﻤﻜﻦ اﻟﺘﻌﺪﻳﻞ ﻓﯿﮫﺎ ,ﻟﻜﻨﻨﺎ ﻣﻊ ذﻟﻚ ﻟﻦ ﻧﺜﻘﻞ ﻋﻠﯿﻚ ﻓﻲ ﻣﺸﺮوﻋﻚ اﻷول.
اﻵن ﺣﺎن وﻗﺖ ﻛﺘﺎﺑﺔ اﻷﻛﻮاد.ﺣﺴﻨﺎ ,ﻗـﻢ ﺑـﺎﻟﻨﻘﺮ اﻟﻤـﺰدوج ﻋﻠـﻰ اﻟـﺰر " ﻣﺮﺣﺒـﺎ" ﻓـﻲ اﻟﻨﻤـﻮذج أو ﻋﻠـﻰ اﻷداة
Button1ﻓﻲ إﻳﻄﺎر Object TreeViewﻟﯿﻈﮫﺮ ﻟﻚ ﻣﺤﺮر اﻷﻛﻮاد.
ﺑﯿﻦ اﻟﻜﻠﻤﺘﯿﻦ اﻟﻤﺤﺠﻮزﺗﯿﻦ Beginو Endأﻛﺘﺐ اﻷﻣﺮ اﻟﺬي ﻳﻈﮫﺮ ﺑﺎﻟﻠﻮن اﻷزرق:
end.
ﻣﻔﺎد اﻷﻣﺮ اﻟﺴﺎﺑﻖ ھﻮ :ﻋﻨﺪ اﻟﻨﻘـﺮ ﻋﻠـﻰ اﻷداة , Button1أﻇﮫـﺮ اﻟﺮﺳـﺎﻟﺔ اﻟﺘﺎﻟﯿـﺔ " ﻣﺮﺣﺒـﺎ ﺑﻜـﻢ ﻓـﻲ ﻋـﺎﻟﻢ
دﻟﻔﻲ".
ﻟﻠﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ ﻣﺎ ﻗﻤﺖ ﺑﻪ ,ﻳﺠﺐ ﺗﻨﻔﯿـﺬ اﻟﺒﺮﻧـﺎﻣﺞ و ذﻟـﻚ إﻣـﺎ ﻣـﻦ اﻟﻘﺎﺋﻤـﺔ Runﺿـﻤﻦ ﺷـﺮﻳﻂ اﻟﻘـﻮاﺋﻢ أو
اﻟﺴﮫﻢ اﻷﺧﻀﺮ ﺿﻤﻦ , Speed Buttons Barsأو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ . F9ﻗـﻢ ﺑﺎﻟـﻀﻐﻂ ﻋﻠـﻰ اﻷداة اﻟﺘـﻲ ﺗﺤﻤـﻞ
اﻟﻌﻨﻮان" ﻣﺮﺣﺒﺎ " و ﺳﯿﻈﮫﺮ ﻣﺎ ﻳﻠﻲ:
اﻟﺨﺼﺎﺋﺺ و اﻷﺣﺪاث
-1اﻟﺨﺼﺎﺋﺺ
ﺗﺸﺘﺮك اﻟﻜﺜﯿﺮ ﻣﻦ اﻷدوات ﻓﻲ ﺑﻌﺾ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻲ ﻻﺑﺪ ﻣﻦ ﻣﻌﺮﻓﺘﮫﺎ .ﺑﯿﻨﻤﺎ ﺗﺒﻘـﻰ ﺑﻌـﺾ اﻟﺨـﺼﺎﺋﺺ ﺣﻜـﺮا
ﻋﻠﻰ أداة دون أﺧﺮى.
ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﺳﻨﻘﻮم ﺑﺎﻟﺘﻌﺮف ﻋﻠﻰ أھﻢ اﻟﺨﺼﺎﺋﺺ .و ﻧﺄﺧﺬ اﻷداة Formﻛﻤﺜﺎل ﻟﻌﻤﻠﻨﺎ ھـﺬا ,ﺑﯿﻨﻤـﺎ
ﻳﺴﺘﻄﯿﻊ ﻛﻞ ﺷﺨﺺ اﺧﺘﺒﺎر ﺧﺼﺎﺋﺺ ﺑﺎﻗﻲ اﻷدوات ﺑﻤﻔﺮده .
ﻃﺒﻌﺎ ﻻ ﻳﺴﻌﻨﺎ اﻟﻮﻗﺖ ﻟﻠﺤﺪﻳﺚ ﻋﻦ ﺟﻤﯿﻊ اﻟﺨﺼﺎﺋﺺ و إﻧﻤﺎ ﺳﻨﺮﻛﺰ ﻋﻠﻰ اﻷھﻢ ﻓﺎﻷھﻢ.
ﻳﻤﻜﻨﻚ إﺧﺘﯿﺎر اﻟﺤﺪث اﻟﻤﻨﺎﺳﺐ ﻣﻦ ﺧﻼل اﻟﻘﺎﺋﻤﺔ اﻟﺘﺎﻟﯿﺔ و ذﻟﻚ ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠـﻰ اﻹﻳﻄـﺎر اﻟﻤﻘﺎﺑـﻞ ﻟﮫـﺎ,
ﻟﺘﻔﺘﺢ ﻧﺎﻓﺬة ﺗﺤﺮﻳﺮ اﻷﻛﻮاد .ﺳﻨﺄﺧﺬ اﻟﻜﻮد اﻟﺴﺎﺑﻖ اﻟﺬي ﻳﻘﻮم ﺑﻌﺮض رﺳﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺪم ﻣﻊ اﻷﺣـﺪاث اﻟﺘﺎﻟﯿـﺔ
ﻛﻲ ﻧﻔﮫﻢ ﺟﯿﺪا وﺿﯿﻔﺘﮫﺎ
ﺑﻌﺪﻣﺎ ﺗﻌﺮﻓﻨﺎ ﻋﻠﻰ اﻟﺨﺼﺎﺋﺺ و اﻷﺣﺪاث ,ﻧﻨﺘﻘﻞ اﻵن ﻹﻧﺠﺎز ﺑﻌﺾ اﻟﻤﺸﺎرﻳﻊ اﻟﻌﻤﻠﯿـﺔ اﻟﺘـﻲ ﺗـﺴﺎﻋﺪﻧﺎ ﻋﻠـﻰ
ﻓﮫﻢ اﻟﺘﺮﻛﯿﺐ اﻟﺪاﺧﻠﻲ ﻟﻠﻐﺔ ﺑﺎﺳﻜﺎل.ﻧﺤﻦ ﻓﻲ ھﺬا اﻟﻜﺘﯿﺐ ﻟﻦ ﻧﺘﻌﻤﻖ ﻓﻲ ﻓﮫـﻢ ﺗﺮﻛﯿـﺐ ھـﺬه اﻟﻠﻐـﺔ و إﻧﻤـﺎ
ﺳﻨﻜﺘﻔﻲ ﺑﺒﻌﺾ اﻟﻨﻤﺎذج اﻟﺘﻲ ﺗﺠﻌﻠﻨﺎ ﻧﻌﺘﺎد ﻋﻠﻰ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮫﺎ ﻓﻲ ﻣﻌﻈﻢ اﻟﻤﺸﺎرﻳﻊ.
إذا ﻛﻨﺖ ﺗﺮﻏﺐ ﻓﻲ ﻓﮫـﻢ ﻛـﻞ ﺻـﻐﯿﺮة و ﻛﺒﯿـﺮة ﻋـﻦ ﻟﻐـﺔ ﺑﺎﺳـﻜﺎل اﻟﻤﺪﻣﺠـﺔ ﻓـﻲ ﻟﻐـﺔ دﻟﻔـﻲ ﻓﺈﻧﻨـﺎ ﻧﻨـﺼﺤﻚ
ﺑﻤﻄﺎﻟﻌﺔ اﻟﻜﺘﺐ اﻟﻤﺘﻮﻓﺮة ﻓﻲ اﻟـﺴﻮق أو ﻋﻠـﻰ اﻟـﺸﺒﻜﺔ اﻟﻤﻌﻠﻮﻣﺎﺗﯿـﺔ)ﺳﻨﺨـﺼﺺ ﻓـﻲ آﺧـﺮ اﻟﻜﺘـﺎب ﻓـﺴﺤﺔ
ﻟﻠﺘﻌﺮف ﻋﻠﻰ اﻟﻜﺘﺐ و اﻟﻤﻮاﻗﻊ اﻟﻤﮫﺘﻤﺔ ﺑﮫﺬه اﻟﻠﻐﺔ(.
ﺑﺪاﻳﺔ ﻳﻤﻜﻦ اﻟﻘﻮل أن ﻣﻌﻈﻢ اﻟﻠﻐﺎت ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﺪوال اﻟﺸﺮﻃﯿﺔ و اﻟﺘﻲ ﺗﺴﺎﻋﺪﻧﺎ ﻋﻠﻰ اﻟﻘﯿﺎم ﺑﺤﺪث وﻓﻘـﺎ
ﻟﺘﺤﻘﻖ اﻟﺸﺮط ﻣﻦ ﻋﺪﻣﻪ .
ﻣﺜﻼ ﻓﻲ ﺑﻌﺾ اﻟﺒﺮاﻣﺞ ﻳﻄﻠﺐ ﻣﻨﻚ إدراج ﻛﻠﻤﺔ اﻟﻤﺮور ,ﻓﺈذا ﻛﺎﻧـﺖ اﻟﻜﻠﻤـﺔ ﺻـﺤﯿﺤﺔ ﻳﻔـﺘﺢ اﻟﺒﺮﻧـﺎﻣﺞ أﻣـﺎ إذا
ﻛﺎﻧﺖ ﺧﺎﻃﺌﺔ ﻓﯿﻐﻠﻖ اﻟﺒﺮﻧﺎﻣﺞ.
ﺳــﻨﻘﻮم ﻓــﻲ اﻟﻤــﺸﺮوع اﻟﺘــﺎﻟﻲ ﺑــﻨﻔﺲ اﻟﻌﻤــﻞ .ﺣﯿــﺚ ﺳــﯿﻄﻠﺐ ﻣــﻦ اﻟﻤــﺴﺘﺨﺪم إدراج ﻛﻠﻤــﺔ ﻣــﺮور ﻧﺤــﻦ
ﻧﺤﺪدھﺎ .إذا ﺗﻮاﻓﻘﺖ ﻛﻠﻤﺔ اﻟﻤﺮور اﻟﻤﺪرﺟﺔ ﻓﻲ اﻹﻳﻄﺎر اﻟﻤﺨﺼﺺ ﻣﻊ اﻟﻜﻠﻤﺔ اﻟﺘﻲ ﺣـﺪدﻧﺎھﺎ ﺳـﻨﻘﻮم ﺑﺘﻐﯿﯿـﺮ
ﻋﻨﻮان اﻟﻨﻤﻮذج إﻟﻰ ﻋﺒﺎرة ' ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻣﺴﺠﻞ'
أﻣﺎ إذا ﻛﺎﻧﺖ ﻛﻠﻤﺔ اﻟﻤﺮور ﺧﺎﻃﺌﺔ ﻓﺈﻧﻨﺎ ﻧﻐﯿﺮ ﻋﻨﻮان اﻟﻨﻤﻮذج إﻟﻰ ﻋﺒﺎرة ' ﻏﯿﺮ ﻣﺴﺠﻞ'
اﻟﺼﻮرة اﻟﺘﺎﻟﯿﺔ ﺗﻮﺿﺢ ﻣﺎ ﺳﺒﻖ ذﻛﺮه.
ﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﻈﺎھﺮ ﺑﺎﻟﻠﻮن اﻷزرق ﻷن ﺑﺎﻗﻲ اﻟﻌﺒﺎرات ﺗﺪرج ﻣﻦ ﻗﺒﻞ دﻟﻔﻲ ﺗﻠﻘﺎﺋﯿﺎ.
ﺳﻨﺘﻌﺮف اﻵن ﻋﻠﻰ اﻟﻜﻮد ﺧﻄﻮة ﺧﻄﻮة.ﻛﻲ ﻳﻜﻮن ﺑﺎﺳﺘﻄﺎﻋﺘﻚ اﻧﺸﺎء ﻧﻤﺎذج ﻣﻤﺎﺛﻠﺔ ﻻ ﺣﻘﺎ.
ﻗﻤﻨﺎ أوﻻ ﺑﺎﻹﻋﻼن ﻋﻦ وﺟﻮد ﻣﺘﻐﯿﺮ ' ' var
اﺳﻢ اﻟﻤﺘﻐﯿﺮ ھﻮ ' ' InputSTRINGو ھﻮ ﻣﻦ ﻧﻮع STRINGأي ﺳﻠﺴﻠﺔ ﻧﺼﯿﺔ
إذا IF
إذن /ﺑﺎﻟﺘﺎﻟﻲ THEN
ﻋﺪا ذﻟﻚ ) ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮط( Else
ﻧﻔﺬ اﻟﺒﺮﻧﺎﻣﺞ و ﻗﻢ ﺑﺈدﺧﺎل ﻛﻠﻤﺔ اﻟﻤـﺮور اﻟـﺼﺤﯿﺤﺔ ) (DELPHIو ﺳـﺘﻼﺣﻆ ﺗ ﺤـﻮل ﻋﻨـﻮان اﻟﻨﻤـﻮذج إﻟـﻰ
ﻣﺎﻳﻠﻲ:
ﻧﺤﻦ ﻓﻲ ﻣﺜﺎﻟﻨﺎ ھﺬا رﺑﻄﻨﺎ ﻧﺘﯿﺠﺔ ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮط ﺑﺘﺤﻮﻳﻞ ﻋﻨﻮان اﻟﻨﻤﻮذج إﻟﻰ ' ﻏﯿﺮ ﻣﺴﺠﻞ'.
ﻳﻤﻜﻨﻚ اﺳﺘﺒﺪال ھﺬا اﻟﺸﺮط ﺑﺸﺮط آﺧﺮ .
ﻗﻢ ﺑﺤﺬف آﺧﺮ ﺳﻄﺮ ﻓﻲ اﻟﻜﻮد
;)'ﻏﯿﺮ ﻣﺴﺠﻞ'(=Form1.Caption:
ﻛﺎن ھﺬا ﻣﺠﺮد ﻣﺜﺎل ﺑﺴﯿﻂ ﻋﻦ اﻟﺪاﻟﺔ اﻟﺸﺮﻃﯿﺔ IFو ﺳﺘﻼﺣﻆ ﻋﺪم ﻛﻔﺎﺋﺘﮫـﺎ ﻓـﻲ ﺑﻌـﺾ اﻷﺣـﻮال .ﻟﻜـﻦ ﻻ
ﻋﻠﯿﻚ ﻓﻠﻐﺔ دﻟﻔﻲ ﺗﻮﻓﺮ ﻟﻚ اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺒﺪاﺋﻞ.
ﻣـﻦ ﺑـﯿﻦ اﻟـﺪوال اﻟـﺸﺮﻃﯿﺔ اﻷﻛﺜـﺮ ﺷـﮫﺮة ﻓـﻲ ﻟﻐـﺔ دﻟﻔـﻲ ﻧﺠـﺪ اﻟﺪاﻟـﺔ . Caseو اﻟﺘـﻲ ﺳﻨـﺴﺘﺜﻤﺮھﺎ ﻓـﻲ
ﻣﺸﺮوﻋﻨﺎ اﻟﺘﺎﻟﻲ.
اﻟﻤﺸﺮوع اﻟﺘﺎﻟﻲ ھﻮ ﻗﺎﻣﻮس إﻧﺠﻠﯿﺰي ﻋﺮﺑﻲ ﻧﺎﻃﻖ.
ﻃﺒﻌﺎ ﻟﻦ ﻧﻌﺘﻤﺪ ﻋﻠﻰ ﻗﻮاﻋﺪ ﺑﯿﺎﻧﺎت ﻓﻲ ھﺬا اﻟﻤﺸﺮوع ﻧﻈﺮا ﻟﺘﻄﻠﺒﮫﺎ ﻟﻠﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ و اﻟﺘﺮﻛﯿﺰ.
ﻟﻜﻦ ﻗﺒﻞ ذﻟﻚ ﺧﺬ ﻟﻚ ﻧﻔﺴﺎ .ﻗﺒﻞ اﻟﻤﺘﺎﺑﻌﺔ .
أوﻻ ﻳﺠـﺐ إﺿـﺎﻓﺔ اﻷداة DirectSSﻟﻠﻘﺎﺋﻤـﺔ ActiveXو ذﻟـﻚ ﺑﺎﻹﻧﺘﻘـﺎل ﻟﻠﻘﺎﺋﻤـﺔ Componentﺿـﻤﻦ ﺷـﺮﻳﻂ
اﻟﻘﻮاﺋﻢ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة و اﺧﺘﯿﺎر . Import ActiveX Control
أﺿﻒ اﻷداة ListBoxﻣﻦ اﻟﻘﺎﺋﻤﺔ Standardواﺿﺒﻂ ﺧﺎﺋﺼﮫﺎ ﻛﻤﺎ ﻓﻌﻠﺖ ﻣﻌﺎ اﻷداة Edit
إﺿﺎﻓﺔ إﻟﻰ اﻟﺨﺎﺻﯿﺔ اﻟﺘﺎﻟﯿﺔ
Align=alLeft
أﺿﻒ اﻷداة DirectSSﻣﻦ اﻟﻘﺎﺋﻤﺔ . ActiveX
واﺿﺒﻂ ﺧﺼﺎﺋﺼﮫﺎ ﻛﻤﺎ ﻳﻠﻲ
Visible=false
أﺿﺒﻂ ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ:
BiDiMode= bdRightToLeft
اﻟﻘﺎﻣﻮس اﻟﻨﺎﻃﻖ =Caption
Color= clMaroon
ﻣﻦ اﻟﺘﻔﺮع font
Color= clWhite
ﻣﻦ اﻟﺘﻔﺮع BorderIcons
BiMaximize=false
و ﺳﻮف ﻳﻜﻮن اﻟﻨﻤﻮذج ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ
ﻛﻲ ﺗﻈﮫﺮ اﻷزرار ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺬي ﻳﺤـﺎﻛﻲ ﻧﻈـﺎم Windows Xpﻳﻤﻜﻨـﻚ إﺿـﺎﻓﺔ اﻷداة XpManifestﻣـﻦ
اﻟﻘﺎﺋﻤﺔ . Win32و ھﺬه اﻷداة ﻣﺘﻮﻓﺮة اﺑﺘﺪاءا ﻣﻦ اﻹﺻﺪار اﻟﺴﺎﺑﻊ ﻟﺒﺮﻧﺎﻣﺞ دﻟﻔﻲ.
ﻣﺎ ﺗﻼﺣﻆ أﻧﻪ ﻧﺎﻗﺺ ﺳﻮف ﻧﻘﻮم ﺑﺈﺿﺎﻓﺘﻪ ﻓﯿﻤﺎ ﻳﻠﻲ :
ﺣﺪد اﻷداة LisBox
ﻣﻦ اﻟﺨﺎﺻﯿﺔ Itemsﻗﻢ ﺑﺘﻌﺒﺌﺔ اﻟﻨﺎﻓﺬة اﻟﺘﻲ ﺗﻈﮫﺮ ﻛﻤﺎ ﻓﻲ اﻟﺼﻮرة.
اﻧﻘﺮ ﻧﻘﺮا ﻣﺰدوﺟﺎ ﻋﻠﻰ اﻷداة ListBox1و اﻛﺘﺐ اﻷﻣﺮ اﻟﺘﺎﻟﻲ ﺑﯿﻦ اﻟﻜﻠﻤﺘﯿﻦ اﻟﻤﺤﺠﻮزﺗﯿﻦ Beginو End
ﻣﻔﺎد اﻟﻜﻮد اﻟﺴﺎﺑﻖ ھﻮ ﻓﻲ ﺣﺎﻟﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ اﻷداة ListBox1ﻓﺈن اﻟـﻀﻐﻂ ﻋﻠـﻰ اﻟﻌﻨـﺼﺮ اﻷول ﻓـﻲ
اﻟﻘﺎﺋﻤﺔ ﺳﯿﻨﺘﺞ ﻋﻨﻪ ﺗﻐﯿﯿﺮ ﻓﻲ ﻧـﺺ اﻷداة Edit2و ﻓـﻖ ﻣـﺎ ﻳﺤـﺪده اﻟﻤﺒـﺮﻣﺞ .و ﻗـﺲ ﻋﻠـﻰ ھـﺬا اﻟﻨﺤـﻮ ﻣـﻊ
اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮاﻟﯿﺔ .
اﻟﺴﻄﺮ اﻷﺧﯿﺮ ﻓﻲ اﻟﻜﻮد ﻳﺴﻤﺢ ﺑﺈﻇﮫﺎر اﻟﻌﻨﺼﺮ اﻟﻤﺤﺪد ﻓﻲ اﻟﻘﺎﺋﻤﺔ ﻓﻲ أداة اﻟﻨﺺ . Edit1و اﻟﻐﺎﻳﺔ ﻣﻦ ھﺬا
اﻷﻣﺮ ھﻮ ﺗﻤﻜﯿﻨﻨﺎ ﻣﻦ ﺗﺴﮫﯿﻞ ﻧﻄﻖ اﻟﻜﻠﻤﺔ اﻟﻤﺤﺪدة .
ﺟﺮب اﻟﺒﺮﻧﺎﻣﺞ و ﺳﺘﻼﺣﻆ ﻋﻤﻠﯿﺔ اﻟﺘﺮﺟﻤﺔ.
ﺑﺎﻟﻨﺴﺒﺔ ﻟﺨﺎﺻﯿﺔ ﻧﻄﻖ اﻟﻜﻠﻤﺎت اﻟﻤﺤﺪدة ﻓﮫﻲ ﺟﺪ ﺳﮫﻠﺔ :ﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻟﻤﺰدوج ﻋﻠـﻰ زر اﻹﺳـﺘﻤﺎع ,و اﻛﺘـﺐ
اﻟﻜﻮد اﻟﺘﺎﻟﻲ:
; )DirectSS1.Speak(Edit1.text
ﺑﺎﻟﻨﺴﺒﺔ ﻟﺰر اﻟﺨﺮوج ﻓﮫﻮ ﻻ ﻳﺤﺘﺎج ﻷي أﻣﺮ ﻟﻜﻦ ﻣﻊ ذﻟﻚ .ﻳﻤﻜﻦ اﺳﺘﻌﻤﺎل اﻷﻣـﺮ Closeإذا ﻣـﺎ دﻋـﺖ اﻟﺤﺎﺟـﺔ
إﻟﻰ ذﻟﻚ .
أﻣﺎ اﻟﺰر ﺣﻮل اﻟﺒﺮﻧﺎﻣﺞ ﻓﯿﻤﻜﻨﻚ اﻇﮫﺎر رﺳﺎﻟﺔ ﺣﻮار ﻛﻤﺎ ﻓﻌﻠﻨﺎ ﺳﺎﺑﻘﺎ.
أﻣﺎ إذا أردت أن ﺗﺠﻌﻞ اﻟﻨﺎﻓﺬة اﻟﺘﻲ ﺗﻈﮫﺮ أﻛﺜﺮ ﺟﺎذﺑﯿﺔ ﻓﺴﯿﻜﻮن ﺑﺈﻣﻜﺎﻧﻚ إﺿﺎﻓﺔ ﻧﻤﻮذج ﺟﺪﻳـﺪ ﻟﻠﺒﺮﻧـﺎﻣﺞ و ﻗـﻢ
ﺑﺈﺿﺎﻓﺔ ﻣﺎ ﺗﺮﻳﺪه ﻣﻦ ﻣﻌﻠﻮﻣﺎت ﺻﻮر أو رواﺑﻂ ﻟﻤﻮاﻗﻊ ﻣﻌﯿﻨﺔ .ﻣﺎ ﻋﻠﯿﻚ اﻟﻘﯿﺎم ﺑﻪ ﺑﻌﺪ ذﻟﻚ ھﻮ ﻣﺠﺮد و ﺿﻊ اﻟﻜﻮد
اﻟﺘﺎﻟﻲ :إﺛﺮ ﺣﺪث اﻟﻨﻘﺮ ﻋﻠﻰ زر ﺣﻮل اﻟﺒﺮﻧﺎﻣﺞ
form2.show
و اﻟﺬي ﻳﻘﻮم ﺑﺈﻇﮫﺎر اﻟﻨﻤﻮذج اﻟﺜﺎﻧﻲ إذا ﻣﺎ اﻓﺘﺮﺿﻨﺎ أﻧﻚ ﻗﺪ ﻗﻤﺖ ﺣﻘﺎ ﺑﺈﻧﺸﺎﺋﻪ.
ﺳﻨﻘﻮم اﻵن ﺑﺈﻧﺸﺎء ﺑﺮﻧﺎﻣﺞ ﻻﺑﺪ و أن اﻟﻜﺜﯿﺮ ﻣﻨﺎ ﻛﺎﻧﺖ ﻟﮫﻢ رﻏﺒﺔ ﺟﻤﺔ ﻓﻲ ﺑﻨﺎء ﺑﺮاﻣﺞ ﻣﻤﺎﺛﻠـﺔ ﻟـﻪ .ﻓﻨﺠـﺪ أن
اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻤﺒﺮﻣﺠﯿﻦ ﻳﺴﻌﻮن ﺣﺜﯿﺜﺎ ﻟﻤﺤﺎﻛﺎة اﻟﺘﻄﺒﯿﻘﺎت اﻟﺘﻲ ﺗﻌﻤﻞ ﻣـﻊ ﺑـﺪأ اﻟﺘـﺸﻐﯿﻞ ﻣﺜـﻞ ﺑﺮﻧـﺎﻣﺞ اﻵذان
اﻟﺸﮫﯿﺮ .ﻧﺤﻦ ﻓﻲ ھﺬا اﻟﻤﺸﺮوع ﻟﻦ ﻧﻨﺸﺄ ﺑﺮﻧﺎﻣﺞ ﺑﺤﺠﻢ ھﺬا اﻷﺧﯿﺮ ,ﺑﻞ ﺳﻨﻜﺘﻔﻲ ﺑﺒﺮﻧـﺎﻣﺞ ﻳﻌﻤـﻞ ﻣـﻊ ﺑـﺪء
ﺗﺸﻐﯿﻞ اﻟﻮﻳﻨﺪوز ﻟﯿﻈﮫﺮ ﻟﻨﺎ ﻓﻲ ﻛﻞ ﻣﺮة ﺣﺪﻳﺜﺎ ﻧﺒﻮﻳﺎ ) ﻳﻤﻜﻦ ﻟﻠﻤﺒﺮﻣﺞ اﺧﺘﯿﺎر ﻣﺎ ﻳﺸﺎء( ﻋﻠﻰ ھﯿﺌﺔ ﺻـﻮرة jpg
ﺑﯿﻨﻤﺎ ﻳﻤﻜﻦ اﺳﺘﺒﺪال ھﺬه اﻟﮫﯿﺌﺔ ﺑﻨﺺ txtأو ﻣﻠﻒ ﺻﻮﺗﻲ mp3و ﻗـﺲ ﻋﻠـﻰ ذﻟـﻚ .و اﻟﻤﻘـﺼﻮد ﻣـﻦ ھـﺬا
اﻟﺒﺮﻧﺎﻣﺞ ھﻮ إﻧﻌﺎش اﻟﻌﻘﻞ اﻟﺮﻳﺎﺿﻲ ﻟﻠﻤﺒﺮﻣﺞ .ﻓﯿﺎ ﺗﺮى ﻛﯿﻒ ﻳﺘﻢ ذﻟﻚ ؟
ﻛﻞ ﻣﺎ ﻧﺤﺘﺎﺟﻪ ھﻮ اﻷداة Timer , UpDown , editأﻣﺎ XPManifestﻓﻼ ﺣﺎﺟـﺔ ﻟﻨـﺎ ﺑـﻪ إذ وﻇﯿﻔﺘـﻪ إﻋﻄـﺎء
ﺷﻜﻞ وﻳﻨﺪوز أﻛﺲ ﺑﻲ ﻟﻠﻨﻤﻮذج ,و ﻧﺤﻦ ﻓﻲ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻟﻦ ﻧﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ رؤﻳﺔ ھﺬه اﻟﻮاﺟﮫﺔ.
و ﻧﻀﺒﻂ ﺧﺼﺎﺋﺺ اﻷداة UpDown1ﻛﻤﺎ ﻳﻠﻲAssociate = Edit1 :
وﻣﮫﺎم اﻟﺒﺮﻧﺎﻣﺞ ھﻮ ﻓﺘﺢ ﺻﻮرة ﻣﻦ اﻟﺼﻮر ﻓﻲ ﻛﻞ ﻣﺮة ﻳﺸﺘﻐﻞ ﻓﯿﮫﺎ اﻟﺒﺮﻧﺎﻣﺞ و ﻟﯿﺘﻢ ذﻟﻚ ﻗﻢ ﺑﺎﻟﻨﻘﺮ اﻟﻤـﺰدوج
ﻋﻠﻰ اﻟﻨﻤﻮذج و اﻛﺘﺐ اﻷﻣﺮ اﻟﺘﺎﻟﻲ:
begin
;)ShellExecute (Handle, 'open', PChar ('c:\islam\test\'+ edit1.text +'.jpg') , nil, nil, SW_SHOW
;end
c:\islam\testأﻣـﺎ اﺳـﻢ اﻟﻤﻠـﻒ ﻓﮫﻨـﺎ ﺗﻜﻤـﻞ ﺣﯿﺚ ﻳﻘﻮم ھﺬا اﻷﻣﺮ ﺑﻔﺘﺢ ﻣﻠﻒ ﻣـﺎ ﻣـﻦ اﻟﻤـﺴﺎر اﻟﺘـﺎﻟﻲ
اﻟﻤﺸﻜﻠﺔ ﻓﻠﻮ ﺣﺪدﻧﺎه ب 0.jpgﻓﺴﯿﻜﻮن اﻟﻤﺴﺎر ﻋﻠﻰ ھﺬا اﻟﻨﺤـﻮ ) ('c:\islam\test\0.jpgﻣﻤـﺎ ﻳﻌﻨـﻲ
أﻧﻨﺎ ﺳﻨﻜﺘﺐ 10أواﻣﺮ )ﻣﻦ ﺻﻔﺮ إﻟﻰ (9و إذا ﻛﺎن ﻋﺪد اﻟﺼﻮر ) اﻷﺣﺎدﻳﺚ( اﻟﺘﻲ أرﻏﺐ ﻓﻲ ﻋﺮﺿﮫﺎ 300ﻓﮫـﺬا
ﻳﻌﻨﻲ أﻧﻨﻲ ﻣﺠﺒﺮ ﻋﻠﻰ ﻛﺘﺎﺑﺔ 301ﻛﻮد ﻣﻊ ﺗﻐﯿﯿﺮ إﺳﻢ اﻟﻤﻠﻒ .300.jpg..... 2.jpg 1.jpg 0.jpgﻟﺘﺠﻨـﺐ
ھﺬه اﻟﻤﺸﻘﺔ رأﻳﺖ أن أﺟﻌـﻞ إﺳـﻢ اﻟﻤﻠـﻒ ھـﻮ ﻣﺤﺘـﻮى ) ﻧـﺺ( اﻷداة + edit1اﻟـﻨﺺ ' '.jpgﻓـﺈذا ﻗﻤﻨـﺎ
ﺑﺘﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ ﺳﯿﻘﻮم ﺑﺎﻟﺬھﺎب إﻟﻰ اﻟﻤﺠﻠﺪ testو اﻟﺒﺤﺚ ﻋﻦ اﻟﻤﻠﻒ اﻟﺬي ﻳﺤﻤﻞ اﻹﺳﻢ اﻟﺘﺎﻟﻲ:
إذا ﻛﺎن ﻣﺤﺘﻮى اﻷداة edit1ﻳﺴﺎوي 4ﻓﺈﻧﻪ ﺳﯿﺘﻢ إﺿﺎﻓﺘﮫﺎ إﻟﻰ اﻟﻨﺺ ' '.jpgﻓﯿﺼﺒﺢ اﺳـﻢ اﻟـﺼﻮرة اﻟﺘـﻲ
ﺳﯿﻈﮫﺮھﺎ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ اﻟﻤﺴﺎر '\ 'c:\islam\testھﻲ 4.jpgﻓﯿﺼﺒﺢ و ﻛﺄﻧﻨﺎ ﻛﺘﺒﻨﺎ اﻷﻣﺮ اﻟﺘﺎﻟﻲ
;)ShellExecute (Handle, 'open', PChar ('c:\islam\test\4.jpg') , nil, nil, SW_SHOW
ﻻﺑﺪ و أﻧﻚ أدرﻛﺖ أﻧﻨﺎ أردﻧﺎ ﺟﻌﻞ ﻣﺤﺘﻮى اﻟﻨﺺ ﻣﺘﻐﯿﯿﺮا آﻟﯿﺎ ﻓﯿﻜﻮن اﻟﺼﻔﺮ ﻋﻨﺪ أول إﺳﺘﺨﺪام ﺛﻢ ﻳﻨﺘﻘﻞ ﻟﻠﺮﻗﻢ
..... 1إﻟﻰ ﻏﺎﻳﺔ ﺑﻠﻮغ اﻟﻌﺪد اﻟﻨﮫﺎﺋﻲ وﻓﻘﺎ ﻟﻌﺪد اﻟﺼﻮر اﻟﺘﻲ وﺿﻌﺘﮫﺎ ﻓﺈذا ﻛﻨﺖ ﻗﺪ وﺿﻌﺖ ﺗﺴﻊ ﺻﻮر ﻓﻼﺑﺪ ﻟـﻚ
ﻣﻦ إﻧﺸﺎء أﻣﺮ ﻳﺠﻌﻞ ﻣﺤﺘﻮى اﻟﻨﺺ ﻳﻌﻮد إﻟـﻰ اﻟـﺼﻔﺮ ) ﻳﺴﺘﺤـﺴﻦ وﺿـﻊ ﻣـﺎ ﻳﺰﻳـﺪ ﻋـﻦ 100ﺻـﻮرة ﺣﺘـﻰ ﻻ
ﻳﺸﻌﺮ اﻟﻤﺴﺘﺨﺪم ﺑﺄﻧﻪ ﻳﻘﺮأ ﻧﻔﺲ اﻷﺣﺎدﻳﺚ(.
اﻟﻜﻮد اﻟﺬي أﺿﻔﻨﺎه ﻳﻘﻮم ﺑﺠﻌﻞ وﺿﻊ اﻷداة = updown1ﻣﺤﺘﻮى اﻷداة edit1+1أﻣﺎ اﻟﺪاﻟﺔ StrToint
ﻓﺘﻤﻜﻨﻨﺎ ﻣﻦ ﺗﺤﻮﻳﻞ ﻣﺤﺘﻮى اﻷداة اﻟﻨﺼﯿﺔ إﻟﻰ ﺣﺎﻟﺔ رﻗﻤﯿﺔ .و ﻣﺠﻤﻞ اﻟﻘـﻮل ھـﻮ أن اﻟﺒﺮﻧـﺎﻣﺞ ﻋﻨـﺪ اﺷـﺘﻐﺎﻟﻪ
ﺳﯿﻘﻮم ﺑﺘﻨﻔﯿﺬ ﻣﺎﻳﻠﻲ:
;)ShellExecute (Handle, 'open', PChar ('c:\islam\test\0.jpg') , nil, nil, SW_SHOW
ﺛﻢ ﻳﻨﻈﺮ إﻟﻰ ﻣﺤﺘﻮى اﻷداة Edit1ﻓﺈذا و ﺟﺪه = 0ﻓﺈﻧﻪ ﻳﻀﯿﻒ ﻟﻪ اﻟﺮﻗﻢ 1ﻓﯿﺼﺒﺢ 1
ﻓﺘﺼﺒﺢ اﻟﺼﻮرة ) اﻟﺤﺪﻳﺚ( اﻟﺘﻲ ﺳﺘﻔﺘﺢ اﻟﻤﺮة اﻟﻘﺎدﻣﺔ ھﻲ
;)ShellExecute (Handle, 'open', PChar ('c:\islam\test\1.jpg') , nil, nil, SW_SHOW
ﺛﻢ ﻳﻨﻈﺮ إﻟﻰ ﻣﺤﺘﻮى اﻷداة Edit1ﻣﺠﺪدا ﻓﺈذا و ﺟﺪه = 1ﻓﺈﻧﻪ ﻳﻀﯿﻒ ﻟﻪ اﻟﺮﻗﻢ 1ﻓﯿﺼﺒﺢ 2
ﻓﺘﺼﺒﺢ اﻟﺼﻮرة ) اﻟﺤﺪﻳﺚ( اﻟﺘﻲ ﺳﺘﻔﺘﺢ اﻟﻤﺮة اﻟﻘﺎدﻣﺔ ھﻲ
;)ShellExecute (Handle, 'open', PChar ('c:\islam\test\2.jpg') , nil, nil, SW_SHOW
ﻓﺈذا ﺑﻠﻎ ﻋﺪد اﻟﺼﻮر ﺗﺴﻌﺔ ﺳﯿﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﻌﻮدة إﻟﻰ اﻟﺼﻮرة رﻗﻢ 0و ذﻟﻚ وﻓﻘﺎ ﻟﻠﻜﻮد اﻟﺘﺎﻟﻲ
و ﺳﺘﻈﻞ ﻧﻔـﺲ اﻟـﺼﻮرة ﺗﻈﮫـﺮ1 ﻳﻤﻜﻨﻚ ﺣﻔﻆ اﻟﺒﺮﻧﺎﻣﺞ ﺛﻢ إﻋﺎدة ﺗﺸﻐﯿﻞ اﻟﻮﻳﻨﺪوز و ﺳﺘﻈﮫﺮ ﻟﻚ اﻟﺼﻮرة رﻗﻢ
:ﻣﻊ ﻛﻞ ﺗﺸﻐﯿﻞ ﻣﺎﻟﻢ ﺗﻀﻒ اﻟﻜﻮد اﻟﺘﺎﻟﻲ
ﻗﻢ ﺑﺈﺿﺎﻓﺔ ﻣﺎﻳﻠﻲ- 1
public
constructor Create(AOwner: TComponent); override; // (1)
procedure BeforeDestruction; override; // (2)
end;
-2
var
Form1: TForm1;
PreservePath: string; // (3)
implementation
-3
{$R *.dfm}
PreservePath := ExtractFilePath(Application.ExeName) +
'Preserve';
if not DirectoryExists(PreservePath) then
CreateDir(PreservePath);
PreservePath := PreservePath + '\';
inherited Create(AOwner);
end;
-4
procedure TForm1.BeforeDestruction; // (5)
begin
inherited;
end.
http://www.shagrouni.com/arabic/index.html
ﺑﮫﺬا ﻧﻜﻮن ﻗﺪ أﻧﮫﯿﻨﺎ ﺑﺮﻧﺎﻣﺠﻨﺎ و ﻻ ﻧﺤﺘﺎج ﻟﺸﻲء ﺳﻮى ﺗﺤﺰﻳﻤﻪ ﻋﻠﻰ ﺷﺮط اﺳﺘﺨﺮاج اﻟﺒﺮﻧﺎﻣﺞ و اﻟﻤﺠﻠﺪ
اﻟﻔﺮﻋﻲ TESTاﻟﺬي ﻳﻀﻢ اﻟﺼﻮر ﻓﻲ ھﺬا اﻟﻤﺴﺎر c:\islamو ھﺬا اﻟﻌﻤﻞ ﻻ ﻳﺤﺘﺎج إﻟﻰ ﻋﺒﻘﺮﻳﺔ ﺧﺼﻮﺻﺎ
ﻣﻊ ﺗﻮﻓﺮ ﻋﺪد ﻛﺒﯿﺮ ﻣﻦ اﻟﺒﺮاﻣﺞ اﻟﺨﺎﺻﺔ ﺑﻌﻤﻞ . SETUP
ھﺬا ﻧﻤﻮذج ﻟﻤﺎ ﻳﻈﮫﺮ ﻣﻊ ﺑﻌﺪ اﻟﺘﺸﻐﯿﻞ .ﻳﻤﻜﻨﻚ اﻟﺘﻼﻋﺐ ﺑﮫﯿﺌﺔ اﻟﻤﻠﻔﺎت ﻛﻤﺎ ﺗﺸﺎء ﻛﻤﺎ ﻳﻤﻜﻨﻚ إﻇﮫﺎر واﺟﮫﺔ
اﻟﺒﺮﻧﺎﻣﺞ و ﺗﻤﻜﯿﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ ﺿﺒﻂ ﺑﻌﺾ اﻟﺨﺼﺎﺋﺺ ﻛﺄن ﻳﺨﺘﺎر ﻧﻮع اﻷﺣﺎدﻳﺚ وﻓﻘﺎ ﻟﻠﻤﻮﺿﻮع أو اﺧﺘﯿﺎر
ﻣﻠﻔﺎت ﺻﻮﺗﯿﺔ أو ﻣﻠﻔﺎت اﻟﻔﻼش ﺑﻼﻳﺮ اﻟﺘﻲ ﺗﻜﻮن ﻗﺪ ﺻﻤﻤﺘﮫﺎ أو ﺣﺼﻠﺖ ﻋﻠﯿﮫﺎ ﻣﻦ ﻋﻨﺪ زﻣﯿﻞ ﻣﺨﺘﺺ ﻓﻲ
ھﺬا اﻟﻤﺠﺎل ﻛﻲ ﺗﺒﻨﻲ ﺑﺮاﻣﺞ ﻣﺤﺘﺮﻣﺔ .
ﻣﻮﻗﻊ اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ ,و ھﻮ أﺣﺪ أﻏﻨـﻰ اﻟﻤﻮاﻗـﻊ ﺑﺎﻟﻤـﺎدة اﻟﻌﻠﻤﯿـﺔ اﻟﺮاﻗﯿـﺔ اﻟﻤﺘـﻮﻓﺮة ﻋﻠـﻰ ﺻـﻔﺤﺎت
ﻣﻨﺘﺪﻳﺎﺗﻪ اﻟﻤﺨﺘﻠﻔﺔ.
www.arabteam2000.com
ﻟﻘﺪ ﺗﻢ اﻹﺳﺘﻌﺎﻧﺔ ﺑﺒﻌﺾ اﻟﻤﻮاﺿﯿﻊ اﻟﻤﻮﺟﻮدة ﻋﻠﻰ ﺻﻔﺤﺎت ھﺬا اﻟﻤﻮﻗﻊ ﻓﻲ ﻛﺘﺎﺑﻨﺎ ھﺬا.