Professional Documents
Culture Documents
com
ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻫﻲ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺘﻲ ﻴﻜﻭﻥ ﻓﻴﻬﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﺘﺼﻼ ﺒﺎﺴﺘﻤﺭﺍﺭ • ﺘﻌﺭﻴﻔﻬﺎ :
ﺒﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻁﻭﺍل ﻓﺘﺭﺓ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ.
• ﺃﻤﺜﻠﺔ ﻋﻠﻴﻬﺎ :ﺃﺤﺩ ﺍﻷﻤﺜﻠﺔ ﻫﻲ ﺃﻥ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻨﻅﺎﻡ ﺸﺅﻭﻥ ﻤﻭﻅﻔﻴﻥ ﻴﻜﻭﻥ ﻓﻴﻪ ﺍﻟﻤﺴﺘﻔﻴﺩ
ﻋﻠﻰ ﺍﺘﺼﺎل ﻤﺒﺎﺸﺭ ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ .
• ﻓﻭﺍﺌﺩﻫﺎ :
-١ﺘﺤﻜﻡ ﺃﻗﻭﻯ ﺒﺎﻟﻌﻤل ﺍﻟﺠﻤﺎﻋﻲ :ﻷﻥ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻓﻲ ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﺤﻴﻥ ﻴﻘﻭﻡ ﺒﺘﺤﺩﻴﺙ
ﺒﻴﺎﻨﺎﺕ ﻓﺈﻨﻪ ﻴﺘﻡ ﺇﻏﻼﻕ ﻋﻤﻠﻴﺔ ﺍﻟﺘﺤﺩﻴﺙ ﻟﻬﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺤﺘﻰ ﻴﻨﺘﻬﻲ ﻫﺫﺍ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻤﻥ ﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ
ﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺇﻏﻼﻕ ﺍﻟﺘﺤﺩﻴﺙ ﻟﻠﻤﺴﺘﻔﻴﺩﻴﻥ ﺍﻵﺨﺭﻴﻥ ﻟﻜﻴﻼ ﻴﺤﺩﺙ ﺘﻌﺎﺭﺽ ﻓﻲ ﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻋﻤﻠﻴﺔ ﺇﻏﻼﻕ ﺍﻟﺴﺠﻼﺕ ﻫﻲ ﻋﻤﻠﻴﺔ ﻴﺴﺘﻁﻴﻊ ﻤﺩﻴﺭ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺃﻭ ﺍﻟﻤﻁﻭﺭ ﺍﻟﺘﺤﻜﻡ ﺒﻬﺎ ﻓﻘﺩ
ﻴﻜﻭﻥ ﺇﻏﻼﻕ ﺍﻟﺴﺠﻼﺕ ﻋﻠﻰ ﻤﺴﺘﻭﻯ ﺍﻟﺼﻑ ﺃﻭ ﻋﻠﻰ ﻤﺴﺘﻭﻯ ﺍﻟﺠﺩﻭل ﺃﻭ ﻗﺩ ﻴﻜﻭﻥ ﻋﻨﺩ ﺘﺤﺭﻴﺭ
ﺍﻟﺤﻘﻭل ﺃﻭ ﻋﻨﺩ ﺘﺤﺩﻴﺜﻬﺎ ﻓﻘﻁ .
-٢ﺤﺩﺍﺜﺔ ﺃﻜﺜﺭ ﻓﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ :ﻭﺫﻟﻙ ﺃﻨﻙ ﺤﻴﻥ ﺘﺴﺘﺭﺠﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﻥ ﻫﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻲ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻷﺨﻴﺭﺓ ﻤﺎ ﻟﻡ ﻴﻜﻥ ﻫﻨﺎﻙ ﺘﺤﺩﻴﺙ ﻟﻬﺎ ﻓﻲ ﻓﺘﺭﺓ ﺍﻻﺴﺘﺭﺠﺎﻉ ،ﻤﻊ ﺍﻟﻌﻠﻡ ﺃﻨﻪ ﻴﻤﻜﻥ ﻤﻨﻊ
ﺍﻻﺴﺘﺭﺠﺎﻉ ﺃﺜﻨﺎﺀ ﻓﺘﺭﺓ ﺍﻟﺘﺤﺩﻴﺙ ﻭﻫﻭ ﻤﺎ ﺴﻴﺘﻡ ﺸﺭﺤﻪ ﻻﺤﻘﺎ.
• ﻋﻴﻭﺒﻬﺎ :
-١ﻭﺠﻭﺏ ﻭﺠﻭﺩ ﺸﺒﻜﺔ ﺍﺘﺼﺎل ﺩﺍﺌﻡ :ﻨﻅﺭﺍ ﻷﻥ ﻗﻨﺎﺓ ﺍﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻔﺘﻭﺤﺔ
ﻓﻼ ﺒﺩ ﻤﻥ ﻭﺠﻭﺩ ﺸﺒﻜﺔ ﺍﺘﺼﺎل ﺩﺍﺌﻤﺔ ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻫﻭ ﻤﺎ ﻻ ﻴﺘﻭﻓﺭ ﻓﻲ ﻜل ﺍﻷﺤﻴﺎﻥ.
-٢ﻀﻌﻑ ﻓﻲ ﺍﻟﺘﻭﺴﻊ ﻭ ﺍﻻﻤﺘﺩﺍﺩ :ﻜل ﻤﺴﺘﺨﺩﻡ ﻓﻲ ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻟﻪ ﺍﺘﺼﺎل ﻤﻊ ﻗﻭﺍﻋﺩ
ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻻ ﻴﻤﻜﻥ ﻷﻱ ﻤﺴﺘﺨﺩﻤﻴﻥ ﺃﻥ ﻴﺸﺘﺭﻜﺎ ﻓﻲ ﻨﻔﺱ ﺍﻻﺘﺼﺎل ﻤﻤﺎ ﻴﻌﻨﻲ ﺃﻨﻪ ﻤﻊ ﺯﻴﺎﺩﺓ ﻋﺩﺩ
ﺍﻟﻤﺴﺘﻔﻴﺩﻴـﻥ ﻴﺠﺏ ﻋﻠﻴﻨﺎ ﺯﻴﺎﺩﺓ ﺍﻻﺘﺼﺎﻻﺕ ﻁﺭﺩﺍ ﻭﻫﻭ ﻤﺎ ﻴﺠﻌل ﺍﻟﻌﻤﻠﻴﺔ ﺸﺒﻪ ﻤﺴﺘﺤﻴﻠﺔ ﻟﺤﺎﻟﺔ ﻤﺜل
ﻤﻭﻗﻊ ﻋﻠﻰ ﺍﻻﻨﺘﺭﻨﺕ ﻴﺭﺘﺎﺩﻩ ﻤﺌﺎﺕ ﺍﻷﻟﻭﻑ ﻜل ﻴﻭﻡ.
2
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
• ﺘﻌﺭﻴﻔﻬﺎ :ﻴﻤﻜﻥ ﺘﻌﺭﻴﻑ ﻫﺫﻩ ﺍﻟﺒﻴﺌﺔ ﺒﺄﻨﻬﺎ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﺘﻡ ﻨﺴﺨﻬﺎ ﻤﻥ
ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺘﻌﺩﻴﻠﻬﺎ ﺒﻌﻴﺩﺍ ﻋﻥ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻤﻥ ﺜﻡ ﺇﺭﺠﺎﻉ ﻫﺫﻩ ﺍﻟﺘﻌﺩﻴﻼﺕ
ﺇﻟﻰ ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻓﻲ ﻫﺫﻩ ﺍﻟﺒﻴﺌﺔ ﻻ ﺘﻭﺠﺩ ﻗﻨﺎﺓ ﺍﺘﺼﺎل ﻤﻔﺘﻭﺤﺔ ﻤﻊ ﻗﻭﺍﻋﺩ
ﺍﻟﺒﻴﺎﻨﺎﺕ.
• ﺃﻤﺜﻠﺔ ﻋﻠﻴﻬﺎ :ﺍﻟﻤﻭﺍﻗﻊ ﺍﻟﺘﺠﺎﺭﻴﺔ ﻓﻲ ﺍﻻﻨﺘﺭﻨﺕ ﻤﺜل ﻤﻭﻗﻊ ﻴﺒﻴﻊ ﻤﻨﺘﺠﺎﺕ ﻤﺎ ﻓﺈﻨﻙ
ﻋﻨﺩ ﺘﺼﻔﺢ ﺃﺤﺩ ﺍﻟﻤﻨﺘﺠﺎﺕ ﻻ ﺘﻘﻭﻡ ﺒﺈﻏﻼﻕ ﻋﻤﻠﻴﺔ ﺍﻟﺸﺭﺍﺀ ﻋﻥ ﺃﻱ ﻤﺘﺼﻔﺢ ﺁﺨﺭ ،ﻟﺫﺍ
ﻓﻘﺩ ﻴﺘﻡ ﺸﺭﺍﺀ ﺍﻟﻤﻨﺘﺞ ﺍﻟﺫﻱ ﺘﻘﻭﻡ ﺒﺘﺼﻔﺤﻪ ﻤﻥ ﻗﺒل ﻤﺘﺼﻔﺢ ﺁﺨﺭ.
• ﻓﻭﺍﺌﺩﻫﺎ :ﻴﻤﻜﻥ ﺫﻜﺭ ﻓﺎﺌﺩﺘﻴﻥ ﻟﻠﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻭﻫﻤﺎ :
-١ﺇﻤﻜﺎﻨﻴﺔ ﺍﺸﺘﺭﺍﻙ ﺃﻜﺜﺭ ﻤﻥ ﻤﺴﺘﺨﺩﻡ ﺒﻨﻔﺱ ﺍﻻﺘﺼﺎل :ﻨﻅﺭﺍ ﻷﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻴﻘﻭﻡ ﺒﺎﻻﺘﺼﺎل ﺜﻡ
ﻨﺴﺦ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺜﻡ ﻗﻁﻊ ﺍﻻﺘﺼﺎل ﻓﺈﻥ ﻓﺘﺭﺓ ﻭﺠﻭﺩ ﺍﻻﺘﺼﺎل ﻤﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﺘﺭﺓ ﻀﺌﻴﻠﺔ ﺠﺩﺍ ،ﻟﺫﺍ
ﻴﻤﻜﻥ ﺃﻥ ﻴﺴﺘﻔﻴﺩ ﻤﺴﺘﺨﺩﻡ ﺁﺨﺭ ﻤﻥ ﻨﻔﺱ ﺍﻻﺘﺼﺎل ﺒﻌﺩ ﺃﻥ ﻴﻨﺘﻬﻲ ﻤﻨﻪ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﻷﻭل.
-٢ﺃﺩﺍﺀ ﻋﺎﻟﻲ ﻭ ﻗﺎﺒل ﻟﻠﺘﻭﺴﻊ ﺒﺸﻜل ﻜﺒﻴﺭ ﻤﻘﺎﺭﻨﺔ ﺒﺎﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ :ﻨﻅﺭﺍ ﻷﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻻ
ﻴﺤﺠﺯ ﺍﻻﺘﺼﺎل ﻓﺈﻥ ﻋﺩﺩ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﺤﻴﻥ ﻴﺯﻴﺩ ﻓﺈﻨﻨﺎ ﻗﺩ ﻨﺴﺘﺨﺩﻡ ﺒﻌﺽ ﺍﻟﺘﻘﻨﻴﺎﺕ ﻤﺜل ﺘﻘﻨﻴﺔ
ﺃﺤﻭﺍﺽ ﺍﻻﺘﺼﺎل – ﺴﻴﺄﺘﻲ ﻟﻬﺎ ﺍﻟﻜﻼﻡ ﻓﻲ ﻓﺼل ﺍﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ -ﻭﻫﻭ ﻤﺎ ﻴﻭﻓﺭ ﺃﻋﺩﺍﺩﺍ
ﻜﺒﻴﺭﺓ ﻤﻥ ﺍﻻﺘﺼﺎﻻﺕ.
• ﻋﻴﻭﺒﻬﺎ :
-١ﻋﺩﻡ ﺤﺩﺍﺜﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ :ﻟﻭ ﺭﺠﻌﻨﺎ ﺇﻟﻰ ﻤﺜﺎل ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﺫﻱ ﻴﺭﻴﺩ ﺸﺭﺍﺀ
ﻤﻨﺘﺞ ﻤﻥ ﺍﻻﻨﺘﺭﻨﺕ ﻟﻭﺠﺩﻨﺎ ﺃﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﺘﻭﺠﺩ ﻋﻨﺩﻩ ﻏﻴﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺤﻘﻴﻘﺔ،
ﺒﻤﻌﻨﻰ ﺃﻥ ﺭﺼﻴﺩ ﺍﻟﻜﺘﺏ ﻤﺜﻼ ﺍﻟﻤﻭﺠﻭﺩ ﺃﻤﺎﻤﻪ ﻏﻴﺭ ﺍﻟﺭﺼﻴﺩ ﺍﻟﺤﻘﻴﻘﻲ ﻷﻨﻪ ﻗﺩ ﻗﺎﻡ ﻋﺩﺓ
ﻤﺘﺼﻔﺤﻴﻥ ﺒﺸﺭﺍﺀ ﻨﻔﺱ ﺍﻟﻜﺘﺎﺏ ﺃﺜﻨﺎﺀ ﺘﺼﻔﺤﻪ ﻟﻪ.
-٢ﺇﻤﻜﺎﻨﻴﺔ ﺤﺩﻭﺙ ﺘﻀﺎﺭﺏ ﻋﻨﺩ ﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻫﻭ ﻤﺎ ﻴﺘﻁﻠﺏ ﺤل ﻫﺫﺍ
ﺍﻟﺘﻀﺎﺭﺏ :ﻭﻫﻭ ﻤﺎ ﻴﺘﻀﺢ ﺒﺎﻟﻤﺜﺎل ﻓﻠﻭ ﺍﻓﺘﺭﻀﻨﺎ ﺃﻥ ﻫﻨﺎﻙ ﺒﺭﻨﺎﻤﺠﺎ ﻟﺸﺅﻭﻥ
ﺍﻟﻤﻭﻅﻔﻴﻥ ﻭ ﺃﻨﺎ ﺃﻗﻭﻡ ﺒﺘﺤﺩﻴﺙ ﻋﻤﺭ ﺍﻟﻤﻭﻅﻑ ﻭ ﺼﺎﺩﻑ ﺃﻥ ﻜﺎﻥ ﻫﻨﺎﻙ ﻤﻭﻅﻑ
3
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻏﻴﺭﻱ ﻴﻘﻭﻡ ﺒﺘﺤﺩﻴﺙ ﺒﻴﺎﻥ ﺍﻟﻌﻤﺭ ﻟﻨﻔﺱ ﺍﻟﻤﻭﻅﻑ ﻓﺈﻥ ﻫﺫﺍ ﺍﻟﺸﻲﺀ ﺴﻭﻑ ﻴﺤﺩﺙ
ﺘﻀﺎﺭﺒﺎ ﻓﻲ ﺍﻟﺘﺤﺩﻴﺙ ﻴﺘﻁﻠﺏ ﺤﻼ ﻭﻫﻭ ﻤﺎ ﺴﺘﻌﺭﻑ ﻜﻴﻑ ﺘﻘﻭﻡ ﺒﻪ.
ﻨﻅﺭﺍ ﻷﻥ ﺍﻟﺒﻴﺌﺔ ﻏﻴﺭ ﻤﺘﺼﻠﺔ ﻓﻼ ﻴﻭﺠﺩ ﺃﻱ ﻗﻔل ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻟﺫﺍ
ﻓﺎﻟﺘﻀﺎﺭﺏ ﻭﺍﺭﺩ ﺒﺸﻜل ﻜﺒﻴﺭ.
ﻭﻟﻌﻠﻨﺎ ﻋﻨﺩ ﺫﻜﺭ ﻁﺒﻘﺎﺕ ﺍﻟﻨﻅﺎﻡ ﻨﻌﻁﻲ ﺘﻘﺴﻴﻤﺎ ﺃﻭﻟﻴﺎ ﻟﺜﻼﺙ ﻁﺒﻘﺎﺕ ﺸﻬﻴﺭﺓ :
ﺍﻟﺸﺭﺡ ﺍﻟﻁﺒﻘﺔ
ﺘﺤﻭﻱ ﻫﺫﻩ ﺍﻟﻁﺒﻘﺔ ﻭﺍﺠﻬﺔ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻤﺜل ﺃﺯﺭﺍﺭ ﺍﻷﻤﺭ ﻭ ﻤﺭﺒﻌﺎﺕ ﺍﻟﻨﺹ ﻁﺒﻘﺔ ﻭﺍﺠﻬﺔ ﺍﻟﻤﺴﺘﻔﻴﺩ
ﻭﻗﺩ ﺘﺤﺘﻭﻱ ﻫﺫﻩ ﺍﻟﻁﺒﻘﺎﺕ ﻋﻠﻰ ﺒﻌﺽ ﺍﻟﺘﺩﻗﻴﻘﺎﺕ ﺍﻟﺘﻲ ﻻ ﺘﺤﺘﺎﺝ ﺍﻟﻭﺼﻭل
ﺇﻟﻰ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﺜل ﺘﺩﻗﻴﻕ ﺃﻗﺼﻰ ﻁﻭل ﻟﺤﻘل ﻤﺎ ﺃﻭ ﺘﺩﻗﻴﻕ ﺃﻥ ﺘﺎﺭﻴﺦ
ﺍﻟﻤﻴﻼﺩ ﻴﻤﺜل ﺘﺎﺭﻴﺨﺎ ﺼﺤﻴﺤﺎ.
ﺘﺤﺘﻭﻱ ﻫﺫﻩ ﺍﻟﻁﺒﻘﺔ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺘﻲ ﺘﻁﺒﻕ ﻗﻭﺍﻋﺩ ﺍﻟﻌﻤل ﻤﺜل ﺍﻟﻭﻅﻴﻔﺔ ﺍﻟﺘﻲ ﻁﺒﻘﺔ ﻗﻭﺍﻋﺩ ﺍﻟﻌﻤل
ﺘﺩﻗﻕ ﺍﺴﺘﺤﻘﺎﻕ ﻤﻭﻅﻑ ﻤﺎ ﻹﺠﺎﺯﺓ ﻤﻥ ﻋﺩﻤﻪ.
ﻫﺫﻩ ﺍﻟﻁﺒﻘﺔ ﻫﻲ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﺎﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻋﻤل ﺍﻟﺘﺤﺩﻴﺜﺎﺕ ﻁﺒﻘﺔ ﺍﻟﻭﺼﻭل ﻟﻠﺒﻴﺎﻨﺎﺕ
ﻋﻠﻴﻬﺎ.
4
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
.Bﻨﻤﻭﺫﺝ ﺍﻟﻁﺒﻘﺘﻴﻥ
• ﻓﻜﺭﺓ ﺍﻟﻨﻤﻭﺫﺝ :ﻓﻜﺭﺓ ﻫﺫﺍ ﺍﻟﻨﻤﻭﺫﺝ ﺘﺘﻤﺜل ﻓﻲ ﺃﺤﺩ ﺍﻟﺨﻴﺎﺭﺍﺕ ﺍﻟﺜﻼﺜﺔ :
.Iﺇﻤﺎ ﺍﺠﺘﻤﺎﻉ ﻁﺒﻘﺔ ﻭﺍﺠﻬﺔ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻭ ﻁﺒﻘﺔ ﻗﻭﺍﻋﺩ ﺍﻟﻌﻤل ﻤﻊ ﺒﻌﻀﻴﻬﻤﺎ ﻭﻤﻥ ﺜﻡ
ﺘﻜﻭﻥ ﺍﻟﻁﺒﻘﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻫﻲ ﻁﺒﻘﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
.IIﺃﻭ ﺍﺠﺘﻤﺎﻉ ﻁﺒﻘﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻊ ﻁﺒﻘﺔ ﻗﻭﺍﻋﺩ ﺍﻟﻌﻤل.
.IIIﺃﻭ ﺘﻭﺯﻴﻊ ﻁﺒﻘﺔ ﻗﻭﺍﻋﺩ ﺍﻟﻌﻤل ﺒﻴﻥ ﻁﺒﻘﺔ ﻭﺍﺠﻬﺔ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻭ ﻁﺒﻘﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
•
ﻤﺜﺎﻟﻪ :ﻤﻥ ﺃﻤﺜﻠﺔ ﻫﺫﺍ ﺍﻟﻨﻤﻭﺫﺝ ﻤﺎ ﻴﺴﻤﻰ ﺒﺎﻟﺨﺎﺩﻡ/ﺍﻟﻤﺴﺘﻔﻴﺩ.
• ﺍﻟﻤﺯﺍﻴﺎ :ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒﺄﻥ ﺃﺒﺭﺯ ﻤﻤﻴﺯﺍﺕ ﻫﺫﺍ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻲ ﺍﻟﻔﺼل ﺍﻟﺠﺯﺌﻲ ﻟﻭﻅﺎﺌﻑ
ﺍﻟﻨﻅﺎﻡ.
5
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻤﺯﺍﻴﺎ :ﺴﻬﻭﻟﺔ ﺍﻟﺼﻴﺎﻨﺔ ﻭﻟﻭ ﻜﺎﻨﺕ ﻭﺍﺠﻬﺔ ﺍﻟﻤﺴﺘﻔﻴﺩ Webﻟﻜﺎﻨﺕ ﺘﻜﻠﻔﺔ ﺼﻴﺎﻨﺔ •
ﺃﺠﻬﺯﺓ ﺍﻟﻤﺴﺘﻔﻴﺩ = ﺼﻔﺭ.
ﺍﻟﻌﻴﻭﺏ :ﻗﺩ ﺘﺒﺭﺯ ﺘﻜﺎﻟﻴﻑ ﺠﺩﻴﺩﺓ ﻤﺜل ﺘﻜﺎﻟﻴﻑ ﺨﺎﺩﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ. •
ﺸﻜل : ١ -١ﻨﻤﻭﺫﺝ ﺍﻟﻁﺒﻘﺎﺕ ﺍﻟﺜﻼﺙ
ﻟﻤﺴﺘﻔﻴﺪواﺟﻬﺔوﻟﺠﻬﺔ ا
اﻟﻤﺴﺘﻔﻴﺪ ﻃﺒﻘﺔ ﻃﺒﻘﺔ
6
kal_judaia@hotmail.com اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
ﺇﻁﺎﺭ ﺍﻟﻌﻤل-١
ﻴﻌﺘﺒﺭ ﺇﻁﺎﺭ ﺍﻟﻌﻤل ﻗﻠﺏ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻟﺫﻟﻙ ﻻﺒﺩ ﻤﻥ ﺘﻬﻴﺌﺔ ﺇﻁﺎﺭ ﺍﻟﻌﻤل ﻓﻲ ﺃﻱ ﺠﻬﺎﺯ ﺴﻭﻑ
ﻴﻤﻜﻥ ﺇﻨﺯﺍل ﺇﻁﺎﺭ ﺍﻟﻌﻤل ﻤﺠﺎﻨﺎ ﻤﻥ ﻤﻭﻗﻊ.ﻴﻌﻤل ﻋﻠﻴﻪ ﺘﻁﺒﻴﻕ ﺼﻤﻡ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ
: ﻴﻤﻜﻥ ﺘﻘﺴﻴﻡ ﺇﻁﺎﺭ ﺍﻟﻌﻤل ﺇﻟﻰ ﻗﺴﻤﻴﻥ ﺃﺴﺎﺴﻴﻴﻥ ﻫﻤﺎ.ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ
Common Language Runtime ﺍﻟﺘﺸﻐﻴل ﺍﻟﻤﺸﺘﺭﻙ ﻟﻠﻐﺎﺕ.I
Common Language Specification ﺍﻟﻤﻭﺍﺼﻔﺎﺕ ﺍﻟﻤﺸﺘﺭﻜﺔ ﻟﻠﻐﺎﺕ.II
ASP.NET
ASP.NET WindowsForms
Windows Forms
Web Services Web Forms Controls Drawing
The.NET
The .NETClass
ClassLibrary
Library
ADO.NET IO XML Threading Security
CommonLanguage
Common LanguageRuntime
Runtime
Type System Metadata Execution
WindowsAPI
Windows API COM+Services
COM+ Services
7
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
8
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻊ ﺍﻟﻌﻠﻡ ﺃﻥ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻤﺴﺘﻀﺎﻓﺔ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻟﻬﺎ ﺍﻟﺤﻕ ﻓﻲ ﺯﻴﺎﺩﺓ ﻤﻤﻴﺯﺍﺕ ﺃﺨﺭﻯ ﻟﻜﻥ ﻫﺫﻩ
ﺍﻟﻤﻤﻴﺯﺍﺕ ﻟﻥ ﺘﺴﺘﻁﻴﻊ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻜﺎﺌﻨﺎﺕ ﺍﻟﺩﻭﺕ ﻨﺕ.
ﺍﻟﻜﻭﺩ ﺍﻟﻤﻁﻭﺭ ﺒﻠﻐﺔ ﻤﻭﺍﻓﻘﺔ ﻟــ CLSﻴﺴﻤﻰ ﻜﻭﺩ ﻤﺩﺍﺭ –Managed Code
ﺃﻤﺎ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ ﻴﻌﺘﻤﺩ ﻋﻠﻰ ﺘﻘﻨﻴﺔ COMﺃﻭ WIN32 APIﻴﺴﻤﻰ ﻜﻭﺩ ﻏﻴﺭ ﻤﺩﺍﺭ
ﻟﺫﺍ ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒﺄﻥ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ٦ﻜﻭﺩ ﻏﻴﺭ ﻤﺩﺍﺭ ﺒﻨﺴﺒﺔ ﻤﺎﺌﺔ ﺒﺎﻟﻤﺎﺌﺔ ﻭ ﻋﻠﻰ ﺍﻟﻨﻘﻴﺽ ﻤﻨﻪ
ﻟﺫﺍ ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒﺄﻥ ﺍﻟﻜﻭﺩ ﻏﻴﺭ ﺍﻟﻜﻭﺩ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻫﻭ ﻜﻭﺩ ﻤﺩﺍﺭ ﺒﻨﺴﺒﺔ ﻤﺎﺌﺔ ﺒﺎﻟﻤﺎﺌﺔ.
ﺍﻟﻤﺩﺍﺭ ﻟﻥ ﻴﺴﺘﻔﻴﺩ ﻤﻥ ﺍﻟﺨﺩﻤﺎﺕ ﺍﻟﻤﻘﺩﻤﺔ ﻤﻥ ﻗﺒل .CLR
ﻋﻨﺩﻤﺎ ﺘﻘﻭﻡ ﺒﺈﻨﺘﺎﺝ ﺍﻟﻜﻭﺩ – -Compileﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻓﺈﻨﻪ ﻻ ﻴﺘﻡ ﺘﺄﻟﻴﻔﻪ ﺇﻟﻰ ﻜﻭﺩ ﺃﻭﻟﻲ –
. -Native codeﻴﻘﻭﻡ ﻤﺅﻟﻑ ﺍﻟﺩﻭﺕ ﻨﺕ ﺒﺈﻨﺸﺎﺀ ﻤﻠﻑ ﻴﺤﻭﻱ ﺍﻟﺘﺎﻟﻲ :
.aﻟﻐﺔ ﻭﺴﻁﻴﺔ .IL
.bﺒﻴﺎﻨﺎﺕ ﻭﺍﺼﻔﺔ :Metadataﻭﺘﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻤﺜل :
-١ﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﺠﻤﻴﻊ ﺍﻷﻨﻭﺍﻉ ﺍﻟﺘﻲ ﺍﺴﺘﺨﺩﻤﺘﻬﺎ.
-٢ﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﻜل ﺃﻨﻭﺍﻉ ﺍﻟﺩﻭﺍل.
-٣ﺍﻟﺩﻭﺍل ﺍﻟﺘﻲ ﺘﻭﺠﺩ ﻟﻬﺎ ﻤﺭﺠﻌﻴﺔ ﻓﻲ ﻜﻭﺩﻙ.
ﻭﻏﻴﺭﻫﺎ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﻴﺤﺘﺎﺠﻬﺎ CLRﻓﻲ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺘﺸﻐﻴﻠﻴﺔ ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٣-١
9
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
Native JIT
Code Compiler ﻋﻨﺩ ﺍﺴﺘﺩﻋﺎﺀ ﺍﻟﻨﻅﺎﻡ ﻷﻭل ﻤﺭﺓ
ﺍﻟﺘﻨﻔﻴﺫ
• ﻨﻅﺭﺍ ﻷﻥ ﺍﻟﻤﻠﻑ ﺍﻟﻤﺅﻟﻑ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺍﻟﺸﻴﺌﻴﻥ ﺍﻟﺴﺎﺒﻘﻴﻥ ﻓﺈﻨﻪ ﻴﻌﺘﺒﺭ ﻤﻠﻔﺎ
ﻤﻭﻀﺤﺎ ﻟﻤﺤﺘﻭﺍﻩ ﻟﺫﺍ ﻓﻼ ﻴﻭﺠﺩ ﺃﻱ ﺤﺎﺠﺔ ﺒﻌﺩ ﺍﻟﻴﻭﻡ ﻟﻤﻜﺘﺒﺎﺕ ﺍﻷﻨﻭﺍﻉ Type Libraryﻭﻻ
ﺇﻟﻰ ﻤﻠﻔﺎﺕ IDLﻜﻤﺎ ﻻ ﺘﻭﺠﺩ ﺤﺎﺠﺔ ﻟﺘﻌﺭﻴﻔﺎﺕ ﻓﻲ ﺍﻟﺭﻴﺠﺴﺘﺭﻱ.
10
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﻨﻼﺤﻅ ﻤﺎ ﻴﻠﻲ – ﺃﺭﺠﻭﺍ ﺃﻥ ﺘﻬﺘﻡ ﺒﺎﻟﻔﻜﺭﺓ ﻭ ﻟﻴﺱ ﺒﺎﻟﻤﺤﺘﻭﻯ: -
.Iﻓﻲ ﺒﺩﺍﻴﺔ ﺍﻟﻜﻭﺩ ﺃﻀﻔﻨﺎ ﻤﺭﺠﻊ ﺇﻟﻰ ﻓﻀﺎﺀ ﺍﺴﻡ System.Convert
.IIﺜﻡ ﻗﻤﻨﺎ ﺒﻤﻜﺎﻥ ﺁﺨﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ ToInt32ﻭ ﺍﻟﺘﻲ ﺘﻨﺘﻤﻲ ﺇﻟﻰ ﻓﻀﺎﺀ ﺍﻻﺴﻡ
، System.Convertﻟﺫﻟﻙ ﻗﻤﻨﺎ ﺒﻜﺘﺎﺒﺔ ﺍﺴﻡ ﺍﻟﺩﺍﻟﺔ ﻤﺒﺎﺸﺭﺓ.
.IIIﻟﻭ ﻟﻡ ﻨﻀﻑ ﻤﺭﺠﻊ ﺇﻟﻰ ﻓﻀﺎﺀ ﺍﻻﺴﻡ System.Convertﻟﻭﺠﺏ ﻋﻠﻴﻙ ﻋﻨﺩ
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ ToInt32ﺃﻥ ﺘﻜﺘﺏ ﺍﻻﺴﻡ ﻜﺎﻤﻼ ﻭﻫﻭ :
System.convert.ToInt32
ﻋﻨﺩ ﺇﻀﺎﻓﺔ ﻤﺭﺠﻊ ﺇﻟﻰ ﻓﻀﺎﺀ ﺍﻻﺴﻡ ﻤﺎ ﻻﺒﺩ ﻤﻥ ﻭﻀﻊ ﺠﻤﻠﺔ ﺍﻻﺴﺘﻴﺭﺍﺩ ﻓﻲ ﺒﺩﺍﻴﺔ ﺍﻟﻜﻭﺩ ﻗﺒل ﺃﻱ
ﺠﻤﻠﺔ.
11
اﻋﺪاد ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻋﻥ ﻁﺭﻴﻕ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤل :ﺍﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻹﻀﺎﻓﺔ ﻤﺭﺠﻊ ﻋﻥ ﻁﺭﻴﻕ
ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤل :
.Iﺍﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻋﻠﻰ ﻤﺠﻠﺩ Refrencesﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﻤﺴﺘﻜﺸﻑ
ﺍﻟﺤﻠﻭل ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل )(٤-١
12
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﺒل ﺃﻥ ﺘﺒﺩﺃ ﺒﺎﻟﺘﻁﻭﻴﺭ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻋﻠﻴﻙ ﺒﺘﻔﺤﺹ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ .ﻨﻌﻨﻲ ﺒﺒﻴﺌﺔ
ﺍﻟﺘﻁﻭﻴﺭ ﻜل ﻤﺎ ﺘﺘﻌﺎﻤل ﻤﻌﻪ ﺃﺜﻨﺎﺀ ﺘﻁﻭﻴﺭﻙ ﻟﺒﺭﻨﺎﻤﺞ ﻤﺎ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ .ﻋﻨﺩﻤﺎ ﺘﺸﻐل
ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻓﺈﻥ ﻜل ﻤﺎ ﺘﺭﺍﻩ ﺃﻤﺎﻤﻙ ﻫﻭ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ .ﺴﻭﻑ ﻨﺤﺎﻭل ﺠﺎﻫﺩﻴﻥ ﻓﻲ ﻫﺫﺍ
ﺍﻟﻔﺼل ﺃﻥ ﻨﺘﻌﺭﺽ ﻷﻫﻡ ﻤﺎ ﺘﺤﺘﺎﺠﻪ ﺃﺜﻨﺎﺀ ﺘﻁﻭﻴﺭ ﻨﻅﺎﻡ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ .ﻗﺩ ﻻ ﻨﺸﺭﺡ ﻜل
ﺸﻲﺀ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ ﻟﻜﻥ ﻟﻥ ﻨﺘﺭﻙ ﺸﻴﺌﺎ ﻤﻬﻤﺎ ﺘﺤﺘﺎﺠﻪ ﺒﺎﺴﺘﻤﺭﺍﺭ ﺇﻻ ﻭ ﺴﻨﺘﻌﺭﺽ ﻟﻪ ﺇﻤﺎ
ﺒﺎﻟﺘﺼﺭﻴﺢ ﺃﻭ ﺒﺎﻟﺘﻠﻤﻴﺢ.
ﻁﺭﻴﻘﺔ ﺍﻟﺩﺨﻭل ﺇﻟﻰ Visual Studio.Net
-١ﺍﻨﻘﺭ ﻓﻭﻕ ﺯﺭ Startﺍﻟﻤﻭﺠﻭﺩ ﻋﻠﻰ ﺸﺭﻴﻁﺎ ﺍﻟﻤﻬﺎﻡ ﻓﻲ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل .Windows
-٢ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ﺍﺨﺘﺭ .Programs
-٣ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ﻓﺭﻋﻴﺔ ﻓﻴﻬﺎ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﺒﺭﺍﻤﺞ.
-٤ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﻟﻘﺎﺌﻤﺔ Microsoft Visual Studio.Net
-٥ﺍﻨﻘﺭ ﻋﻠﻰ Microsoft Visual Studioﻜﻤﺎ ﻴﻅﻬﺭ ﻓﻲ ﺍﻟﺸﻜل ).(١-٢
15
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺼﻔﺤﺔ ﺍﻷﻭﻟﻰ
ﺒﻌﺩ ﺍﻟﺩﺨﻭل ﻋﻠﻰ ﺒﺭﻨﺎﻤﺞ ﻓﻴﺠﻭﺍل ﺴﺘﻭﺩﻴﻭ ﺩﻭﺕ ﻨﺕ ﻓﺈﻥ ﺃﻭل ﻤﺎ ﺴﻴﻭﺍﺠﻬﻙ ﻫﻭ ﺍﻟﺼﻔﺤﺔ ﺍﻷﻭﻟﻰ ﻜﻤﺎ
ﺘﻼﺤﻅ ﻓﻲ ﺍﻟﺸﻜل . ٢-٢
ﺸﻜل : ٢ -٢ﺍﻟﺼﻔﺤﺔ ﺍﻷﻭﻟﻰ ﺒﻌﺩ ﺩﺨﻭل ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ
ﺸﻜل ٣-٢
16
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺍﻟﺠﺯﺀ ﺍﻷﻴﺴﺭ :ﺘﺴﺘﻁﻴﻊ ﻤﻥ ﺨﻼﻟﻪ ﺯﻴﺎﺭﺓ ﻤﻭﻗﻊ ﻤﻴﻜﺭﻭﺴﻭﻓﺕ ﻭ ﺍﻹﻁﻼﻉ ﻋﻠﻰ ﻤﺠﻤﻭﻋﺎﺕ
ﺍﻷﺨﺒﺎﺭ ﻭ ﺁﺨﺭ ﺍﻟﺘﺤﺩﻴﺜﺎﺕ ﻭ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻷﺸﻴﺎﺀ ﺍﻷﺨﺭﻯ.
17
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻼﺤﻅﺔ :ﺘﻌﺘﺒﺭ ﺍﻋﺩﺍﺩﺍﺕ ﺍﻟﻤﻠﻑ ﺍﻟﺸﺨﺼﻲ ﻤﻥ ﺍﻻﻋﺩﺍﺩﺍﺕ ﺍﻟﻜﻤﺎﻟﻴﺔ ﺍﻟﺘﻲ ﻗﺩ ﻻ ﺘﺤﺘﺎﺝ ﺃﻥ ﺘﺭﺠﻊ ﻟﻬﺎ
ﻁﻭﺍل ﻓﺘﺭﺓ ﺍﻟﺘﻁﻭﻴﺭ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ
18
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
19
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ ﺍﺨﺘﺭ File Î New ÎProjectﻜﻤﺎ ﻫﻭ ﻭﺍﻀﺢ ﻤﻥ ﺍﻟﺸﻜل )(٧-٢
-٣ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ) (٨-٢ﻭ ﺍﻟﺫﻱ ﻴﻨﻘﺴﻡ ﺇﻟﻰ ﺜﻼﺜﺔ ﺃﺠﺯﺍﺀ :
• ﺍﻟﺠﺯﺀ ﺍﻷﻴﺴﺭ ﻭ ﺘﺴﺘﻁﻴﻊ ﻤﻥ ﺨﻼﻟﻪ ﺘﺤﺩﻴﺩ ﺍﻟﻠﻐﺔ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻜﺘﺏ ﺍﻟﺘﻁﺒﻴﻕ ﻓﻴﻬﺎ.
• ﺍﻟﺠﺯﺀ ﺍﻷﻴﻤﻥ ﻭ ﺍﻟﺫﻱ ﻴﺤﻭﻱ ﻨﻭﻉ ﺍﻟﺘﻁﺒﻴﻕ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺇﻨﺸﺎﺌﻪ
• ﺍﻟﺠﺯﺀ ﺍﻟﺴﻔﻠﻲ ﻭ ﺍﻟﺫﻱ ﺘﺴﺘﻁﻴﻊ ﻤﻥ ﺨﻼﻟﻪ ﺘﺤﺩﻴﺩ ﺍﺴﻡ ﺍﻟﻤﺸﺭﻭﻉ ﻭ ﺍﻟﻤﺴﺎﺭ ﺍﻟﺫﻱ
ﺴﻭﻑ ﻴﺨﺯﻥ ﻓﻴﻪ ﻭﻤﻥ ﺜﻡ ﺘﺤﺩﻴﺩ ﻤﺎ ﺇﺫﺍ ﺃﺭﺩﺕ ﺇﻀﺎﻓﺔ ﻫﺫﺍ ﺍﻟﻤﺸﺭﻭﻉ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ
ﺍﻟﻤﻔﺘﻭﺡ ﺇﻥ ﻭﺠﺩ ﺃﻭ ﺒﺩﺀ ﻤﺸﺭﻭﻉ ﺠﺩﻴﺩ.
ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭ ﻟﻐﺔ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﺜﻡ ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭ Windows Applicationﺜﻡ ﺍﻜﺘﺏ ﺍﺴﻡ
ﺍﻟﻤﺸﺭﻭﻉ MyFirstApplicationﺜﻡ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﻤﻭﺍﻓﻕ
20
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻻﺤﻅ ﺃﻥ ﺍﻤﺘﺩﺍﺩ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻭ vbﻭﻫﺫﺍ ﺍﻻﻤﺘﺩﺍﺩ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻩ ﺒﻨﺎﺀ ﻋﻠﻰ ﺍﻟﻠﻐﺔ ﺍﻟﺘﻲ
ﺍﺨﺘﺭﺕ ﺃﻥ ﺘﻜﺘﺏ ﺒﻬﺎ ﺍﻟﺘﻁﺒﻴﻕ .ﻓﻠﻭ ﻗﻤﺕ ﺒﺎﺨﺘﻴﺎﺭ ﻟﻐﺔ C#ﻟﺘﻜﻭﻥ ﻟﻐﺔ ﻜﺘﺎﺒﺔ ﺍﻟﺘﻁﺒﻴﻕ ﻓﺈﻥ
ﺍﻤﺘﺩﺍﺩ ﺍﻟﻨﻤﺎﺫﺝ ﺴﻭﻑ ﻴﻜﻭﻥ CSﻭﻫﻭ ﺍﺨﺘﺼﺎﺭ .C Sharp
ﺘﻭﺠﺩ ﻓﻲ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ ﻭ ﺘﻌﺘﺒﺭ ﺍﻷﺩﺍﺓ ﺍﻷﺴﺎﺴﻴﺔ ﻟﻠﻌﻤل ﻤﻊ ﺍﻟﺤﻠﻭل ﻭ ﻤﻊ ﺍﻟﻤﺸﺎﺭﻴﻊ
– ﺍﻨﻅﺭ ﺸﻜل ) - (٩-٢ﻭﻫﻲ ﺃﺩﺍﺓ ﻤﻤﺎﺜﻠﺔ ﻟﻨﺎﻓﺫﺓ ﺍﻟﻤﺸﺭﻭﻉ Project Windowﺍﻟﺘﻲ ﻜﺎﻨﺕ ﻓﻲ
ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺩﺱ ﻏﻴﺭ ﺃﻨﻬﺎ ﺘﺤﻤل ﺇﻀﺎﻓﺎﺕ ﺃﺨﺭﻯ ﻤﺜل ﻋﺭﻀﻬﺎ ﻟﻠﻤﺭﺍﺠﻊ ﺍﻟﺘﻲ ﻴﺴﺘﺨﺩﻤﻬﺎ ﺍﻟﻤﺸﺭﻭﻉ.
ﻭﻴﻌﺭﺽ ﻤﺘﺼﻔﺢ ﺍﻟﻤﺸﺎﺭﻴﻊ ﻜل ﻋﻨﺎﺼﺭ ﺒﺭﻨﺎﻤﺠﻙ ﻤﻥ ﻤﺸﺎﺭﻴﻊ ﻭﻤﻜﻭﻨﺎﺕ ،ﻭﻤﺎ ﻴﻨﺩﺭﺝ ﺘﺤﺕ ﻜل ﻤﻨﻬﺎ
ﻱ ﻤﻨﻬﺎ ﻤﺭﺘﻴﻥ ﺃﻥ ﺘﻌﺭﻀﻪ ﻓﻲ ﻤﺼﻤﻡ ﺍﻟﻨﻤﺎﺫﺝ ـ ﻟﻭ ﻜﺎﻥ
ﻤﻥ ﺃﻋﻀﺎﺀ ﻭﻋﻨﺎﺼﺭ ،ﺒﺤﻴﺙ ﻴﻤﻜﻨﻙ ﺒﻨﻘﺭ ﺃ
ﻤﻥ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﺘﻲ ﺘﻌﺭﺽ ﻭﺍﺠﻬﺔ ـ ﺃﻭ ﻓﺘﺤﻪ ﻓﻲ ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ ﻟﻭ ﻜﺎﻥ ﻤﻠﻔﹰﺎ ﻨﺼﻴﺎ ﻓﺤﺴﺏ.
ﻜﻤﺎ ﻴﻤﻜﻨﻙ ﺃﻥ ﺘﹸﻅﻬﺭ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻭﻀﻌﻴﺔ ﺒﻀﻐﻁ ﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻓﻭﻕ ﺃﻱ ﻋﻨﺼﺭ ،ﺤﻴﺙ ﻴﻤﻜﻨﻙ
ﺍﺨﺘﻴﺎﺭ ﺍﻷﻤﺭ "ﺨﺼﺎﺌﺹ" ،Propertiesﻟﺘﻌﺭﺽ ﻨﺎﻓﺫﺓ ﺍﻟﺨﺼﺎﺌﺹ ،ﻟﺘﻌﺩل ﺨﺼﺎﺌﺹ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ .
ﻭﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺸﺭﻭﻉ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺃﻜﺜﺭ ﻤﻥ ﻨﻤﻭﺫﺝ ،ﻭﺘﺭﻴﺩ ﺃﻥ ﺘﺠﻌل ﺃﺤﺩﻫﺎ ﻫﻭ ﺃﻭل ﻤﺎ ﻴﻅﻬﺭ ﻟﻙ ﻋﻨﺩ
ﺘﺸﻐﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ،ﻓﺎﻀﻐﻁ ﺍﻷﻤﺭ "ﺍﺠﻌﻠﻪ ﻜﺎﺌﻥ ﺒﺩﺀ ﺍﻟﺘﺸﻐﻴل" Set As StartUp Objectﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ
ﺍﻟﻤﻭﻀﻌﻴﺔ.
ﻤﻥ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺃﻥ ﺘﺠﺩﻫﺎ ﻓﻲ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ﻜل ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﺘﻲ ﺘﻭﺠﺩ ﻓﻲ ﺍﻟﻤﺸﺭﻭﻉ ﻓﻠﻭ
ﻨﻅﺭﺕ ﺇﻟﻰ ﺍﻟﺸﻜل) (٩-٢ﻟﻭﺠﺩﺕ ﺃﻨﻪ ﻻ ﻴﻭﺠﺩ ﻟﺩﻴﻨﺎ ﺇﻻ ﻨﻤﻭﺫﺝ ﻭﺍﺤﺩ ﻭﻫﻭ Form1.vbﺍﻟﺫﻱ
21
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﺎﻤﺕ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺒﺈﻨﺸﺎﺌﻪ ﻟﻨﺎ .ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﺃﻱ ﻋﻨﺼﺭ ﻓﻲ ﺍﻟﻤﺴﺘﻜﺸﻑ ﺘﺴﺘﻁﻴﻊ ﺇﻅﻬﺎﺭ
ﺨﺼﺎﺌﺼﻪ.
ﻤﻥ ﺨﻼل ﺍﻴﻘﻭﻨﺎﺕ ﺼﻐﻴﺭﺓ ﺘﻅﻬﺭ ﻓﻲ ﻗﺎﺌﻤﺔ ﺍﻟﻤﺴﺘﻜﺸﻑ.
ﺇﺫﺍ ﺃﺭﺩﺕ ﺍﻻﻨﺘﻘﺎل ﺇﻟﻰ ﺃﻱ ﻋﻨﺼﺭ ﻓﻲ ﺍﻟﻤﺴﺘﻜﺸﻑ ﻴﻤﻜﻨﻙ ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ.
ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻟﻭ ﻜﺎﻥ ﻟﺩﻴﻙ ﺃﻜﺜﺭ ﻤﻥ ﻨﻤﻭﺫﺝ ﻓﻲ ﻨﻔﺱ ﺍﻟﻤﺸﺭﻭﻉ ﻓﺈﻨﻪ ﻴﻤﻜﻨﻙ ﺍﻻﻨﺘﻘﺎل ﻤﻥ
ﻨﻤﻭﺫﺝ ﺇﻟﻰ ﺁﺨﺭ ﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺫﻱ ﺘﺭﻏﺏ ﻓﻴﻪ ﻭﺴﻭﻑ ﻴﻅﻬﺭ ﺃﻤﺎﻤﻙ .ﻋﻨﺩ
ﺍﺨﺘﻔﺎﺀ ﻨﺎﻓﺫﺓ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل ﻭﺘﺴﺘﻁﻴﻊ ﺇﻅﻬﺎﺭﻫﺎ ﻤﻥ ﺨﻼل Ctrl+Alt+Lﺃﻭ ﺍﻟﻘﺎﺌﻤﺔ
View ÎSolution Explorer
ﺇﻀﺎﻓﺔ ﻋﻨﺼﺭ ﺁﺨﺭ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ ﻓﺈﺫﺍ ﻜﻨﺕ ﺘﺭﻴﺩ ﺇﻀﺎﻓﺔ ﻨﻤﻭﺫﺝ ﺁﺨﺭ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ
ﺍﻟﺫﻱ ﺃﻨﺸﺄﺘﻪ .ﻗﻡ ﺒﻤﺎ ﻴﻠﻲ :
-١ﺍﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻋﻠﻰ ﺍﺴﻡ ﺍﻟﻤﺸﺭﻭﻉ – ﻓﻲ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل -ﻟﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ
ﺍﺨﺘﺭ Addﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ﻓﺭﻋﻴﺔ ﺍﺨﺘﺭ Add New Itemﺍﻨﻅﺭ ﺸﻜل )(١٠-٢
22
kal_judaia@hoﻟﻠﻤﺸﺭﻭﻉ
: ١٠ -tmail.comﺇﻀﺎﻓﺔ ﻋﻨﺼﺭ
ﺸﻜل ٢ ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
-٢ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ) (١١-٢ﻭ ﺍﻟﺫﻱ ﻴﺤﻭﻱ ﻋﺩﺩ ﻤﻥ ﺃﻨﻭﺍﻉ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺃﻥ
ﺘﻀﻴﻔﻬﺎ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ .ﻓﻌﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﺘﺴﺘﻁﻴﻊ ﺇﻀﺎﻓﺔ ﻨﻅﺎﻡ ﺘﻁﺒﻴﻘﻲ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ ﻭ
HTMLﺇﺫﺍ ﺍﺤﺘﺠﺕ ﺇﻟﻰ ﺫﻟﻙ .ﻤﺎ ﻨﺭﻴﺩ ﺃﻥ ﻨﻀﻴﻔﻪ ﺇﻟﻰ ﻤﺸﺭﻭﻋﻨﺎ ﻫﻭ ﻨﻤﻭﺫﺝ ﻤﻥ ﻨﻭﻉ
ﻭﻴﻨﺩﻭﺯ ﻭﻫﻭ ﻤﺎ ﻴﻭﺠﺩ ﺒﺎﺴﻡ Window Formﻗﻡ ﺒﺎﻟﺘﻅﻠﻴل ﻋﻠﻴﻪ .ﺴﻭﻑ ﺘﻼﺤﻅ ﻓﻲ ﺍﻷﺴﻔل
ﻤﺭﺒﻊ ﻨﺹ ﻻﺨﺘﻴﺎﺭ ﺍﺴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺇﻀﺎﻓﺘﻪ .ﺘﺴﺘﻁﻴﻊ ﺘﻐﻴﻴﺭﻩ ﺃﻭ ﺘﺭﻜﻪ ﻜﻤﺎ ﻫﻭ.
ﺍﻀﻐﻁ ﻋﻠﻰ ﺯﺭ Open
23
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺭﺠﻊ ﺇﻟﻰ ﻨﺎﻓﺫﺓ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل ﻟﺘﻼﺤﻅ ﺃﻨﻪ ﻗﺩ ﺃﻀﻴﻑ ﻨﻤﻭﺫﺝ ﺁﺨﺭ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ
ﺍﻟﺸﻜل ).(١٢-٢
ﻓﺈﺫﺍ ﺃﺭﺩﺕ ﺍﻟﺘﻨﻘل ﺒﻴﻥ ﺍﻟﻨﻤﻭﺫﺠﻴﻥ ﻴﻤﻜﻨﻙ ﺍﺨﺘﻴﺎﺭ ﺍﺤﺩ ﺍﻟﻁﺭﻴﻘﺘﻴﻥ ﺍﻟﺘﺎﻟﻴﺘﻴﻥ :
ﺸﻜل : ١٢ -٢ﺍﻟﺘﻨﻘل ﺒﻴﻥ ﺍﻟﻨﻤﺎﺫﺝ
.Iﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺍﻻﻨﺘﻘﺎل ﺇﻟﻴﻪ ﻤﻥ ﺨﻼل ﻨﺎﻓﺫﺓ ﻤﺴﺘﻜﺸﻑ
ﺍﻟﺤﻠﻭل.
.IIﺍﻟﻨﻘﺭ ﻤﺭﺓ ﻭﺍﺤﺩﺓ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺜﻡ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﻋﻨﺎﺼﺭ ﻗﺎﺌﻤﺔ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل ﻭﻫﻲ
View Designer Formﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل)(١٣-٢
ﺸﻜل : ١٣ -٢ﻁﺭﻴﻘﺔ ﺃﺨﺭﻯ ﻟﻠﺘﻨﻘل
ﺒﻴﻥ ﺍﻟﻨﻤﺎﺫﺝ
ﺇﺫﺍ ﺃﺭﺩﺕ ﺃﻥ ﺘﺤﺫﻑ ﻋﻨﺼﺭًﺍ ﺒﺎﺴﺘﺨﺩﺍﻡ ،Exclude From Projectﻓﺈﻥ ﻫﺫﺍ ﺍﻷﻤﺭ ﻻ
ﻴﻘﻭﻡ ﺒﺤﺫﻑ ﻤﻠﻑ ﺍﻟﻌﻨﺼﺭ ﻤﻥ ﺍﻟﺠﻬﺎﺯ ﻨﻬﺎﺌﻴﺎ ،ﺤﻴﺙ ﺘﺴﺘﻁﻴﻊ ﺇﻋﺎﺩﺘﻪ ﻟﻠﻤﺸﺭﻭﻉ ﻤﻥ ﺠﺩﻴﺩ .ﺇﺫﺍ
ﺃﺭﺩﺕ ﺤﺫﻑ ﺍﻟﻤﻠﻑ ﻨﻬﺎﺌﻴًﺎ ﻤﻥ ﺍﻟﻤﺸﺭﻭﻉ ﻭﺍﻟﻘﺭﺹ ﺍﻟﺼﻠﺏ ﺍﺴﺘﺨﺩﻡ ﺍﻷﻤﺭ "ﺤﺫﻑ" .Remove
24
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺼﻨﺩﻭﻕ ﺍﻷﺩﻭﺍﺕ
ﻴﻭﺠﺩ ﻓﻲ ﺍﻟﺠﻬﺔ ﺍﻟﻴﺴﺭﻯ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ ﻭ ﻫﻭ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﻴﺤﻭﻱ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻲ
ﺒﻨﺎﺀ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﻜﻤﺎ ﻴﻅﻬﺭ ﻟﻙ ﻤﻥ ﺍﻟﺸﻜل ). (١٤-٢
ﻴﻭﺠﺩ ﺜﻼﺜﺔ ﻁﺭﻕ ﻹﻀﺎﻓﺔ ﺃﺩﺍﺓ ﺇﻟﻰ ﻨﻤﻭﺫﺝ ﻤﺎ ﻭﻫﻰ ﻜﻤﺎ ﻴﻠﻲ :
-١ﺍﻟﺴﺤﺏ ﻭ ﺍﻹﻓﻼﺕ :ﻭ ﺫﻟﻙ ﺒﺴﺤﺏ ﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﺍﺩ ﻭ ﻀﻌﻬﺎ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻤﻥ ﺜﻡ ﺇﻓﻼﺘﻬﺎ ﻓﻲ
ﻤﺤﻴﻁ ﺍﻟﻨﻤﻭﺫﺝ.
-٢ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ :ﻭﺫﻟﻙ ﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺍﻷﺩﺍﺓ – ﺍﻨﺘﺒﻪ ﻟﻠﻤﻼﺤﻅﺔ ﺍﻟﺘﺎﻟﻴﺔ –
ﻭﻫﻭ ﻤﺎ ﺴﻴﻀﻴﻔﻬﺎ ﺇﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ.
-٣ﺍﻟﻨﺴﺦ :ﻭﺫﻟﻙ ﺒﻨﺴﺦ ﺃﺩﺍﺓ ﻤﻭﺠﻭﺩﺓ ﻤﺴﺒﻘﺎ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻤﻥ ﺜﻡ ﻟﺼﻘﻬﺎ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ.
ﻤﻼﺤﻅﺔ :ﻹﻀﺎﻓﺔ ﺃﺩﺍﺓ ﺇﻟﻰ ﻨﻤﻭﺫﺝ ﻻﺒﺩ ﺃﻥ ﻴﻜﻭﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻤﻔﺘﻭﺤﺎ ﺒﺸﻜﻠﻪ ﺍﻟﺘﺼﻤﻴﻤﻲ ﻭ ﻟﻴﺱ ﺒﺸﻜل
ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ.
ﻤﻥ ﺍﻹﻀﺎﻓﺎﺕ ﺍﻟﺠﺩﻴﺩﺓ ﺇﻟﻰ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻓﻴﻤﺎ ﻴﺨﺘﺹ ﺒﺼﻨﺩﻭﻕ ﺍﻷﺩﻭﺍﺕ ﻫﻲ ﺃﻨﻙ
ﺘﺴﺘﻁﻴﻊ ﺇﻀﺎﻓﺔ ﻤﺩﺨل ﺠﺩﻴﺩ ﺇﻟﻰ ﺼﻨﺩﻭﻕ ﺍﻷﺩﻭﺍﺕ ﺃﻭ ﺤﺫﻑ ﺃﻭ ﺘﻌﺩﻴل ﻭ ﻫﻲ ﺇﻀﺎﻓﺔ ﻗﻭﻴﺔ ﻟﻠﺘﺤﻜﻡ
ﺒﺘﻨﻅﻴﻡ ﺍﻷﺩﻭﺍﺕ ﺍﻨﻅﺭ ﺍﻟﺸﻜل ). (١٦-٢
25
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺴﻭﻑ ﻴﻔﺘﺢ ﻟﻙ ﻤﻜﺎﻨﺎ ﻟﻜﺘﺎﺒﺔ ﺍﺴﻡ ﺍﻟﺸﺭﻴﻁ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل ) ) (١٦-٢ﻻﺤﻅ ﺃﻨﻨﻲ
ﻜﺘﺒﺕ ( This Is New Tab
ﺸﻜل : ١٦ -٢ﺘﺴﻤﻴﺔ ﺍﻟﺸﺭﻴﻁ
ﺍﻟﺠﺩﻴﺩ
26
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
"ﺃﺩﻭﺍﺕ :HTML
ﻭﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﺘﺴﺘﺨﺩﻡ ﻤﻊ ﻨﻤﺎﺫﺝ ﺍﻹﻨﺘﺭﻨﺕ.
27
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻜﺘﺎﺒﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ
-١ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ :ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺃﻱ ﺃﺩﺍﺓ ﻓﺈﻥ ﺫﻟﻙ ﺴﻭﻑ ﻴﻘﻭﻡ ﺒﻨﻘﻠﻙ ﺇﻟﻰ ﻤﺤﺭﺭ
ﺍﻟﻜﻭﺩ.
-٢ﻤﻥ ﺨﻼل ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل :ﺍﻷﻴﻘﻭﻨﺔ ﺍﻷﻭﻟﻰ ﻤﻥ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل ﺘﻨﻘﻠﻙ ﺇﻟﻰ ﻤﺤﺭﺭ
ﺍﻟﻜﻭﺩ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل ) (١٧-٢ﻭ ﺍﻷﻴﻘﻭﻨﺔ ﺍﻟﺘﻲ ﺒﺠﺎﻨﺒﻬﺎ ﺘﻨﻘﻠﻙ ﺇﻟﻰ ﻭﻀﻊ ﺘﺼﻤﻴﻡ
ﺍﻟﻨﻤﻭﺫﺝ.
28
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﺍﻟﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻋﻠﻰ ﺃﻱ ﺃﺩﺍﺓ ﻤﻭﺠﻭﺩﺓ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺜﻡ ﺍﺨﺘﻴﺎﺭ ViewCodeﻜﻤﺎ
ﻴﻅﻬﺭ ﻤﻥ ﺸﻜل )(١٨-٢
ﺒﻌﺩ ﺍﻻﻨﺘﻘﺎل ﺇﻟﻰ ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ ﺃﻨﻅﺭ ﺍﻟﺸﻜل ) (١٩-٢ﻭﻫﻭ ﻤﺎ ﻴﻤﺜل ﻭﺍﺠﻬﺔ ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ.
ﺸﻜل ١٩-٢
ﻟﻠﺭﺠﻭﻉ ﺇﻟﻰ
ﻭﺍﺠﻬﺔ ﺘﺼﻤﻴﻡ
ﺍﻟﻨﻤﻭﺫﺝ
29
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
30
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺨﺼﺎﺌﺹ Properties
ﺘﺘﻤﻴﺯ ﻜل ﺃﺩﺍﺓ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺒﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ .ﻴﻤﻜﻥ ﺃﻥ ﺘﻌﺭﻑ ﺍﻟﺨﺼﺎﺌﺹ ﻋﻠﻰ
ﺃﻨﻬﺎ ﻤﺎ ﻴﺘﻤﻴﺯ ﺒﻪ ﺍﻟﻜﺎﺌﻥ ﻤﻥ ﻤﻭﺍﺼﻔﺎﺕ ﻤﺜل ﺍﻟﻁﻭل ،ﺍﻟﻌﺭﺽ ،ﺍﻟﻠﻭﻥ ...ﺍﻟﺦ .ﻭﻫﺫﻩ ﺍﻟﺨﺼﺎﺌﺹ
ﻗﺩ ﻴﺘﺸﺎﺒﻪ ﺒﻌﻀﻬﺎ ﺒﻴﻥ ﺃﺩﺍﺘﻴﻥ ﻤﺨﺘﻠﻔﺘﻴﻥ ﻭﻫﻭ ﻤﺎ ﻴﺘﻜﺭﺭ ﻜﺜﻴﺭﺍ ﻭ ﻗﺩ ﺘﺘﻤﻴﺯ ﻜل ﺃﺩﺍﺓ ﺒﺨﺎﺼﻴﺔ ﺃﻭ
ﺃﻜﺜﺭ ﻻ ﺘﻭﺠﺩ ﺇﻻ ﻓﻴﻬﺎ .ﻴﻭﺠﺩ ﻁﺭﻴﻘﺘﻴﻥ ﻟﺘﻌﻴﻴﻥ ﺨﺎﺼﻴﺔ ﻷﺩﺍﺓ ﻤﺎ ﻫﻤﺎ :
-١ﺇﻋﻁﺎﺀ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺃﺜﻨﺎﺀ ﻭﻗﺕ ﺍﻟﺘﺼﻤﻴﻡ.
-٢ﺇﻋﻁﺎﺀ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺃﺜﻨﺎﺀ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل.
ﻤﻼﺤﻅﺔ :ﻴﻭﺠﺩ ﻓﺼل ﻜﺎﻤل ﻴﺘﻜﻠﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺍﻷﺩﻭﺍﺕ ﻭ ﺍﻟﻘﻴﻡ ﺍﻟﺘﻲ ﺘﺄﺨﺫﻫﺎ ﻭ ﺸﺭﺡ ﻜل ﻗﻴﻤﺔ ﻭ
ﻤﺜﺎل ﺘﻁﺒﻴﻘﻲ ﻋﻠﻴﻬﺎ .ﻴﺠﺩﺭ ﺒﻙ ﻤﺭﺍﺠﻌﺔ ﻫﺫﺍ ﺍﻟﻔﺼل ﻭ ﺍﻟﺘﻤﺭﻥ ﻋﻠﻴﻪ ﺠﻴﺩﺍ
31
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺍﻟﻁﺭﻴﻘﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻟﻠﻭﺼﻭل ﺇﻟﻰ ﻨﺎﻓﺫﺓ ﺍﻟﺨﺼﺎﺌﺹ ﺃﻥ ﺘﻘﻭﻡ ﺒﺎﺨﺘﻴﺎﺭ ﺍﻟﺘﺎﻟﻲ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺭﺌﻴﺴﻴﺔ
View Î Property Window
ﺧﺼﺎﺋﺺ ﻓﺮﻋﻴﺔ
ﻓﺮﻋﻴﺔ وﺟﻮد ﺧﺼﺎﺋﺺ
ﻻﺣﻆ وﺟﻮد
ﻻﺣﻆ
ﻟﺨﺎﺻﻴﺔ اﻟﺨﻂ
اﻟﺨﻂ ﻟﺨﺎﺻﻴﺔ
32
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺝ ـ ﺘﻁﺒﻴﻕ :
-١ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﺯﺭ ﺃﻤﺭ
-٢ﺍﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻋﻠﻴﻪ ﺜﻡ ﺍﺨﺘﺭ Properties
-٣ﺍﺫﻫﺏ ﺇﻟﻰ ﺨﺎﺼﻴﺔ Textﻭ ﺍﻜﺘﺏ ﻤﺤﺎﻭﻟﺔ ﺘﻐﻴﻴﺭ
ﺍﻟﺨﺼﺎﺌﺹ.
-٤ﻻﺤﻅ ﻜﻴﻑ ﺘﻐﻴﺭ ﺍﻟﻨﺹ ﺍﻟﻤﻜﺘﻭﺏ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ
33
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻷﺤﺩﺍﺙ Events
ﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻪ ﺒﺯﻤﻥ ﺤﺼﻭﻟﻪ ﺤﻴﺙ ﻴﺤﺼل ﻋﻨﺩ ﻗﻴﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺃﻭ ﺍﻟﻨﻅﺎﻡ ﺒﻌﻤل ﻤﺎ ﺘﺠﺎﻩ ﺃﺩﺍﺓ ﻤﺎ ،ﻤﺜل
ﻨﻘﺭ ﺒﺎﻟﻔﺄﺭﺓ ﻋﻠﻰ ﺯﺭ ﺃﻤﺭ ،ﻟﺘﻐﻴﻴﺭ ﻤﺤﺘﻭﻱ ﺼﻨﺩﻭﻕ ﺍﻟﻨﺹ .ﻓﻠﻭ ﺃﺨﺫﻨﺎ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﺃﺩﺍﺓ ﺯﺭ
ﺍﻷﻤﺭ ﻟﻭﺠﺩﻨﺎ ﺃﻨﻪ ﺒﻤﺠﺭﺩ ﻨﻘﺭ ﺍﻟﻔﺄﺭﺓ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻓﺈﻥ ﺤﺩﺙ ﺍﻟﻨﻘﺭ ﺴﻭﻑ ﻴﻌﻤل .ﻓﺈﺫﺍ ﺃﺭﺩﺕ ﺃﻥ
ﺘﻅﻬﺭ ﺭﺴﺎﻟﺔ ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻓﺈﻨﻙ ﺴﻭﻑ ﺘﻜﺘﺏ ﺍﻟﻜﻭﺩ ﻓﻲ ﺤﺩﺙ ﺍﻟﻨﻘﺭ ﺍﻟﺨﺎﺹ ﺒﺯﺭ ﺍﻷﻤﺭ.
-٢ﺍﻨﻘﺭ ﻤﺯﺩﻭﺠﺎ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻟﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ) .(٢٥-٢ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺍﻵﻥ ﺃﻨﻙ ﺩﺍﺨل
ﺍﻟﺤﺩﺙ ﻓﻜل ﻤﺎ ﺴﺘﻜﺘﺒﻪ ﻓﻲ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﺴﻭﻑ ﻴﻨﻔﺫ ﻋﻨﺩ ﺍﻟﻨﻘﺭ
ﺸﻜل : ٢٥- ٢ﺒﻌﺩ ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﺘﻡ ﺍﻻﻨﺘﻘﺎل ﺇﻟﻰ ﺤﺩﺙ ﺍﻟﻨﻘﺭ ﺍﻟﺨﺎﺹ ﺒﻬﺫﺍ ﺍﻟﺯﺭ
اﻟﺪوت ﻧﺖ
ﻧﺖ ﺑﻴﺌﺔ اﻟﺪوت
ﺗﻘﻮم ﺑﻴﺌﺔ
ﺗﻘﻮم
ﻣﻌﻠﻮﻣﺎت ﺑﺎﻧﺸﺎء
ﺑﺎﻧﺸﺎءﻣﻌﻠﻮﻣﺎت
اﻟﺤﺪث
اﻟﺤﺪث
34
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺗﺮﻳﺪ اﻟﻮﺻﻮل
اﻟﻮﺻﻮل اﻟﺘﻲ ﺗﺮﻳﺪ
اﻷداة اﻟﺘﻲ
اﺧﺘﺮ اﻷداة
اﺧﺘﺮ
ﻷﺣﺪاﺛﻬﺎ اﺧﺘﺮ اﻟﺤﺪث
اﻟﺤﺪث اﺧﺘﺮ
ﻷﺣﺪاﺛﻬﺎ
ﺗﻜﺒﻴﺮ اﻟﻜﻮد
اﻟﻜﻮد او ﺗﻜﺒﻴﺮ
ﺗﺼﻐﻴﺮ او
ﺗﺼﻐﻴﺮ
35
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻼﺤﻅﺔ :ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺃﻴﺔ ﺃﺩﺍﺓ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻓﺈﻥ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺴﻭﻑ ﺘﻘﻭﺩﻙ
ﺇﻟﻰ ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ ﻭ ﺘﻀﻌﻙ ﻓﻲ ﺍﻟﺤﺩﺙ ﺍﻟﺨﺎﺹ ﺒﺘﻠﻙ ﺍﻷﺩﺍﺓ
-IIIﺍﻟﻘﺴﻡ ﺍﻟﺜﺎﻟﺙ :ﻭﻫﻭ ﻋﺒﺎﺭﺓ Windows Form Designer generated code
ﻭﻴﻭﺠﺩ ﺃﻤﺎﻤﻪ ﻋﻼﻤﺔ ﺯﺍﺌﺩ +ﻟﻭ ﻀﻐﻁﺕ ﻋﻠﻴﻬﺎ ﻟﻅﻬﺭ ﻟﻙ ﺤﺠﻡ ﻜﺒﻴﺭ ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ .ﻫﺫﻩ ﺍﻟﻤﻨﻁﻘﺔ
ﻫﻲ ﻤﺎ ﻴﺴﻤﻰ ﺒﺎﻟﻜﻭﺩ ﺍﻟﻤﻨﺘﺞ ﻤﻥ ﻗﺒل ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻭﻴﺤﻭﻱ ﻋﺩﺓ ﺃﺸﻴﺎﺀ ﻤﻨﻬﺎ :
ﺸﺭﺤﻬﺎ اﻟﻌﺒﺎرة
ﻻﻜﺘﺴﺎﺏ ﺍﻟﻤﻌﺎﻟﻡ ﺍﻷﺴﺎﺴﻴﺔ ﻟﻠﻨﻤﻭﺫﺝ ﻤﻥ Inherits System.WinForms.Form
WinForms.Formﻭﻤﻌﻨﻰ ﺫﻟﻙ ﺃﻥ ﻫﺫﺍ
ﺍﻟﻨﻤﻭﺫﺝ Form1ﻗﺎﺌﻡ ﻭﻤﻌﺘﻤﺩ ﻭﻤﻜﺘﺴﺏ
ﻟﻠﺨﺼﺎﺌﺹ ﺍﻷﺴﺎﺴﻴﺔ ﻟـWinForms.Form
ﻭﺒﺩﻭﻥ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﻻ ﻴﻤﻜﻥ ﺃﻥ ﻴﻌﻤل ﺍﻟﻨﻤﻭﺫﺝ.
ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻹﺠﺭﺍﺀ ﻋﻨﺩ ﺒﺩﺀ ﺘﺤﻤﻴل
)(Public Sub New
)(MyBase.New
ﺍﻟﻨﻤﻭﺫﺝ .ﻭﻫﻭ ﻴﺤل ﻤﺤل Form_Intialize 'This call is required by
the Windows Form Designer.
ﻭﺍﻟﺘﻲ ﻜﺎﻨﺕ ﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺒﻕ ﻤﻥ )(InitializeComponent
ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ .ﺇﺫﺍ ﺃﺭﺩﺕ ﻋﻤل ﺸﻲﺀ ﻤﺎ ﻓﻲ 'Add any initialization
after )(the InitializeComponent
ﺒﺩﺍﻴﺔ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻓﺎﻜﺘﺒﻪ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺫﻱ ﻴﻠﻲ ﺩﺍﻟﺔ call
36
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻼﺤﻅﺔ :ﺃﻨﺼﺢ ﺒﻌﺩﻡ ﻤﺤﺎﻭﻟﺔ ﺘﻌﺩﻴل ﺍﻟﻘﺴﻡ ﺍﻟﺜﺎﻟﺙ ﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﺍﻟﻜﻭﺩ ﺍﻟﻤﻨﺘﺞ ﺇﻻ ﺇﺫﺍ ﻜﻨﺕ ﻋﻠﻰ
ﺩﺭﺍﻴﺔ ﺘﺎﻤﺔ ﺒﻤﺎ ﺘﻌﻤل.
37
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻋﻨﺩ ﻭﺠﻭﺩ ﺨﻁﺄ ﺒﻨﺎﺌﻲ ﻓﺈﻥ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺘﻅﻬﺭ ﺨﻁﺎ ﻤﺘﻌﺭﺠﺎ ﺘﺤﺕ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﻲ ﻴﻜﻤﻥ ﻓﻴﻬﺎ
ﺍﻟﺨﻁﺄ ﻭﺘﻅﻬﺭ ﻫﺫﻩ ﺍﻷﺨﻁﺎﺀ ﻓﻲ ﻨﺎﻓﺫﺓ ﺍﻟﻤﻬﺎﻡ ﻋﻨﺩ ﻤﺤﺎﻭﻟﺔ ﺇﻨﺘﺎﺝ ﺍﻟﻨﻅﺎﻡ.
-٢ﺍﻷﺨﻁﺎﺀ ﺍﻟﺘﺸﻐﻴﻠﻴﺔ :ﻭﻴﺤﺼل ﻫﺫﺍ ﺍﻟﺨﻁﺄ ﻋﻨﺩ ﻤﺤﺎﻭﻟﺔ ﺘﻨﻔﻴﺫ ﺠﻤﻠﺔ ﻤﻥ ﺍﻟﻤﺴﺘﺤﻴل ﺘﻨﻔﻴﺫﻫﺎ.ﻭ
ﻻ ﻴﻅﻬﺭ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻷﺨﻁﺎﺀ ﺇﻻ ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﺍﻟﻨﻅﺎﻡ.ﻜﻤﺎ ﺍﻨﻪ ﻻ ﻴﻤﻜﻥ ﺍﻜﺘﺸﺎﻑ ﻫﺫﻩ
ﺍﻷﺨﻁﺎﺀ ﻋﻨﺩ ﺇﻨﺘﺎﺝ ﺍﻟﻨﻅﺎﻡ ﻭﻟﻌل ﺃﺒﺭﺯ ﺍﻷﻤﺜﻠﺔ ﻋﻠﻰ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻫﻭ ﻤﺤﺎﻭﻟﺔ ﺍﻟﻘﺴﻤﺔ ﻋﻠﻰ
ﺼﻔﺭ ﻭﻫﺎﻙ ﻤﺜﺎل ﺁﺨﺭ ﻤﺎﺫﺍ ﻟﻭ ﺤﺎﻭل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻜﻥ ﺍﻟﺨﺎﺩﻡ ﺍﻟﺫﻱ
ﺘﻭﺠﺩ ﻓﻴﻪ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﺎﻥ ﻻ ﻴﻌﻤل ﻟﺴﺒﺏ ﺃﻭ ﻵﺨﺭ ﻓﺈﻥ ﻫﺫﺍ ﺍﻟﺨﻁﺄ ﻫﻭ ﺨﻁﺄ ﺘﺸﻐﻴﻠﻲ
ﺒﺤﺕ.ﻭ ﻋﻨﺩ ﻋﺩﻡ ﻤﻌﺎﻟﺠﺔ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻷﺨﻁﺎﺀ ﻗﺩ ﻴﺘﻭﻗﻑ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻌﺩ ﺤﺩﻭﺙ ﺍﻟﺨﻁﺄ.
38
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﺍﻷﺨﻁﺎﺀ ﺍﻟﻤﻨﻁﻘﻴﺔ :ﺘﻌﺘﺒﺭ ﻤﻥ ﺍﻷﺨﻁﺎﺀ ﺍﻟﺘﻲ ﻴﺼﻌﺏ ﺇﻴﺠﺎﺩﻫﺎ ﻭ ﻴﺤﺩﺙ ﻋﻨﺩﻤﺎ ﻻ ﻴﺅﺩﻱ
ﺍﻟﻨﻅﺎﻡ ﻨﺘﺎﺌﺠﻪ ﻜﻤﺎ ﻴﻨﺒﻐﻲ .ﺍﻨﻅﺭ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ :
Dim a As Integer
a = 5
Do While a < 5
a = a - 5
Loop
ﻻﺤﻅ ﺃﻥ ﻫﺫﺍ ﺍﻟﺘﻜﺭﺍﺭ ﻟﻥ ﻴﻨﺘﻬﻲ.
ﻴﺘﻡ ﻤﻌﺎﻟﺠﺔ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻷﺨﻁﺎﺀ ﺒﻤﺭﺍﺠﻌﺔ ﺍﻟﻜﻭﺩ ﻴﺩﻭﻴﺎ ﻤﻥ ﻗﺒل ﺍﻟﻤﺒﺭﻤﺞ ﻭ ﺍﻜﺘﺸﺎﻑ ﺍﻟﺨﻁﺄ
ﺒﻨﻔﺴﻪ.
39
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺩﺭﺱ ﺍﻷﻭل
ﺍﻟﻬﺩﻑ :ﺴﻭﻑ ﺘﻜﻭﻥ ﺒﺩﺍﻴﺔ ﺍﻟﺘﻌﺎﻤل ﺍﻟﺤﻘﻴﻘﻲ ﻤﻊ ﺒﻴﺌﺔ vb.netﻤﻤﺎ ﻴﻜﻭﻥ ﻟﻪ ﺍﻟﺩﻭﺭ ﻓﻲ ﺇﺯﺍﻟﺔ
ﺍﻟﺤﺎﺠﺯ ﺍﻟﻨﻔﺴﻲ ﻭﻴﻤﻜﻨﻙ ﻤﻥ ﺍﻟﺘﻌﻠﻡ ﻋﻠﻰ ﺃﺴﺎﺴﻴﺎﺕ ﻫﺫﻩ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺒﺭﻤﺠﻴﺔ.
ﻤﺎﺫﺍ ﺴﻴﻨﺘﺞ . :ﺒﻌﺩ ﻨﻘﺭ ﺯﺭ ﺍﻷﻤﺭ ﺒﺎﻟﻔﺄﺭﺓ ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻨﺎ " ﻤﺭﺤﺒﺎ ﺒﻜﻡ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻲ ﺍﻷﻭل
" ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ
40
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
41
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٤ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ -١ﺍﺭﺠﻊ ﺇﻟﻰ ﺸﺎﺸﺔ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺫﻟﻙ ﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ Form1.vb
ﻭﻤﻼﺤﻅﺔ ﺘﻐﻴﺭ ﺃﺩﺍﺓ ﻓﻲ ﺍﻟﻤﺴﺘﻜﺸﻑ ﺃﻭ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺸﺭﻴﻁ *] Form1.vb[Designﻓﻲ ﺃﻋﻠﻰ
ﺍﻟﻌﻨﻭﺍﻥ ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﺸﺎﺸﺔ ﻤﺤﺭﺭ ﺍﻟﻜﻭﺩ.
ﺃﻭ ﺍﺨﺘﺭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ Debugﺜﻡ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ -٢ ،ﻟﺘﺸﻐﻴل ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻀﻐﻁ F5
ﻭ ﺒﻤﻌﻨﻰ ﺁﺨﺭ ﺃﻥ .Start
ﺍﻟﺤﺩﺙ – Click
ﺍﻨﻅﺭ -٣ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﻤﺭﺤﺒﺎ ﺜﻡ ﻻﺤﻅ ﺘﻐﻴﺭ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ
ﺘﻨﻔﻴﺫﻩ ﺘﻡ ﺍﻟﻨﻘﺭ-
ﺍﻟﺸﻜل ).(٢٨-٢
ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺯﺭ
ﺸﻜل : ٢٨-٢ﻅﻬﻭﺭ " ﻤﺭﺤﺒﺎ ﺒﻜﻡ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻲ ﺍﻷﻭل ﺍﻷﻤﺭ.
" ﺒﻌﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻤﺭﺤﺒﺎ
42
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ
ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺘﺴﺘﺨﺩﻡ ﻟﻌﺭﺽ ﺍﻟﻨﺼﻭﺹ ﺍﻟﺘﻲ ﻻ ﻴﺭﻏﺏ ﺃﻥ ﻴﺤﺭﺭﻫﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ .ﻓﻲ ﺍﻟﻌﺎﺩﺓ ﺘﺴﺘﺨﺩﻡ
ﻋﻨﻭﺍﻨﺎ ﻷﺩﻭﺍﺕ ﺃﺨﺭﻯ.
ﻋﻨﺩﻤﺎ ﻴﻜﻭﻥ ﻋﻨﺩﻙ ﻤﺭﺒﻊ ﻨﺹ ﻹﺩﺨﺎل ﺍﺴﻤﺎﺀ ﺍﻟﻁﻼﺏ ﺍﺴﺘﺨﺩﻡ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻟﺘﻜﻭﻥ ﻤﺜﺎل
ﺷﻜﻞ ١ -٥ﺍﺳﺘﺨﺪﺍﻡ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻮﺍﻥ ﻋﻨﻭﺍﻨﺎ ﻟﻬﺫﺍ ﺍﻟﻤﺭﺒﻊ ﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل)(١-٥
.١ﺨﺎﺼﻴﺔ ﺍﻻﺴﻡ :ﺍﺴﻡ ﻟﻸﺩﺍﺓ ﻤﻊ ﻤﻼﺤﻅﺔ ﺃﻨﻪ ﻻﻴﻤﻜﻥ ﺃﻥ ﺘﻭﺠﺩ ﺃﺩﺍﺘﻴﻥ ﻋﻠﻰ ﻨﻔﺱ ﺍﻟﻨﺎﻓﺫﺓ ﺒﻨﻔﺱ
ﺍﻻﺴﻡ.
٦٦
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.٢ﺍﻟﻤﺭﺴﺎﺓ ﺃﻭ ﺍﻟﻤﺜﺒﺘﺔ :ﻫﻲ ﺨﺎﺼﻴﺔ ﺠﺩﻴﺩﺓ ﺘﺴﺘﺨﺩﻡ ﻟﻠﻤﺤﺎﻓﻅﺔ ﻋﻠﻰ ﻤﻭﺍﻗﻊ ﺍﻷﺩﻭﺍﺕ ﻓﻲ ﺍﻟﻨﺎﻓﺫﺓ
ﻋﻨﺩ ﺘﻐﻴﻴﺭ ﺤﺠﻤﻬﺎ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻤﺜﺎل :ﺇﺫﺍ ﺍﺨﺘﺭﻨﺎ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ )ﺸﻜل (٢-٥ﻤﻥ ﻫﺫﻩ ﺠﻤﻴﻊ ﺍﻟﺠﻬﺎﺕ ﻤﺜل Anchor
ﺍﻟﺨﺎﺼﻴﺔ ﻓﺈﻥ ﺍﻟﻤﺴﺎﻓﺔ ﺒﻴﻥ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻭ ﺍﻟﻜﺎﺌﻥ ﺍﻟﺤﺎﻭﻱ ﻴﻤﻴﻥ ﺃﻭ ﻴﺴﺎﺭ ﺃﻭ
ﻟﻪ ﻤﻥ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ ﺴﻭﻑ ﺘﺒﻘﻰ ﻜﻤﺎ ﻫﻲ ﺴﻭﺍﺀ ﻴﻤﻴﻥ ﻓﻭﻕ ﺃﻭ
ﺼﻐﺭﻨﺎ ﺍﻟﻜﺎﺌﻥ ﺍﻟﺤﺎﻭﻱ ﺃﻭ ﻜﺒﺭﻨﺎﻩ .ﻓﻲ ﺍﻟﺸﻜل)(٣-٥ ﻴﺴﺎﺭ ﺃﺴﻔل
ﻟﻤﺎ ﺍﺨﺘﺭﻨﺎ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ ﻤﻥ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﻘﻴﺕ
ﺍﻟﻤﺴﺎﻓﺔ ﻜﻤﺎ ﻫﻲ ﺒﻴﻥ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭﺤﺩ ﺍﻟﻨﻤﻭﺫﺝ –
ﺍﻟﻜﺎﺌﻥ ﺍﻟﺤﺎﻭﻱ -ﺍﻷﻴﻤﻥ
ﺷﻜﻞ ٣-٥ﻛﻤﺎ ﺗﻼﺣﻆ ﺍﳌﺴﺎﻓﺔ ﺑﲔ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻮﺍﻥ ﻭ ﺍﳊﺪ ﺍﻷﳝﻦ ﻟﻠﻨﻤﻮﺫﺝ ﱂ ﺗﺘﻐﲑ ﺷﻜﻞ ٢-٥ﻛﻤﺎ ﺗﺮﻯ ﺍﺧﺘﺮﻧﺎ ﺍﳉﻬﺔ ﺍﻟﻴﻤﲎ
.٣ﺍﻟﺤﺠﻡ ﺍﻟﺘﻠﻘﺎﺌﻲ :ﺘﺴﺘﺨﺩﻡ ﻋﻨﺩﻤﺎ ﺘﻜﻭﻥ ﻏﻴﺭ ﻤﺘﺄﻜﺩ ﻤﻥ ﻁﻭل ﺍﻟﻨﺹ ﺍﻟﺫﻱ ﺴﻴﻌﺭﺽ ﻋﻠﻰ ﺃﺩﺍﺓ
ﺍﻟﻌﻨﻭﺍﻥ .ﺍﺠﻌﻠﻬﺎ Trueﻟﺘﻤﺘﺩ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻤﻊ ﺍﻟﻨﺹ ﻁﻭﻻ ﻭ ﻗﺼﺭﺍ ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ
ﻭﺍﻟﺘﻨﻔﻴﺫ .ﻤﺜﺎل ﻟﻭ ﺃﺭﺩﺕ ﺃﻥ ﺘﻐﻴﺭ ﻗﻴﻤﺘﻬﺎ ﺃﺜﻨﺎﺀ ﺍﻟﺘﻨﻔﻴﺫ ﻷﺩﺍﺓ Label1
Label1.Autosize = True
.٤ﻟﻭﻥ ﺍﻟﺨﻠﻔﻴﺔ :ﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﻟﻭﻥ ﺍﻟﺨﻠﻔﻴﺔ ﻟﻸﺩﺍﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
٦٧
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.٥ﺸﻜل ﺍﻟﺤﺩ :ﺘﺴﺘﺨﺩﻡ ﻟﺘﻐﻴﻴﺭ ﺸﻜل ﺤﺩﻭﺩ ﺍﻷﺩﺍﺓ ،ﻓﻲ ﺍﻟﻌﺎﺩﺓ ﻨﺴﺘﺨﺩﻤﻬﺎ ﻟﻠﺘﻔﺭﻴﻕ ﺒﻴﻥ ﺃﺩﻭﺍﺕ ﺍﻟﻌﻨﻭﺍﻥ
ﺍﻟﻤﺨﺘﻠﻔﺔ .ﻤﺜل ﻟﻭ ﻜﺎﻥ ﻋﻨﺩﻙ ﻋﻠﻰ ﺍﻟﻨﺎﻓﺫﺓ ﺃﺩﻭﺍﺕ ﻋﻨﻭﺍﻥ ﻟﻌﺭﺽ ﺍﻷﺴﻌﺎﺭ ﻭ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻟﻌﺭﺽ
ﺍﻟﻤﺠﻤﻭﻉ ﻓﺎﻷﺩﺍﺓ ﺍﻷﺨﻴﺭﺓ ﺘﺄﺨﺫ ﻏﻴﺭ ﺍﻷﺩﻭﺍﺕ ﺍﻷﻭﻟﻰ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ
lblHello ﻤﺜﺎل ﻟﻠﺘﻐﻴﻴﺭ ﺃﺜﻨﺎﺀ ﺍﻟﺘﻨﻔﻴﺫ ﻷﺩﺍﺓ ﺍﺴﻤﻬﺎ
lblHello.BorderStyle = BorderStyle.Fixed3D
٦٨
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.٦ﺍﻟﺘﺤﻘﻕ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻠﺘﺤﻘﻕ ﻤﻥ ﺃﻱ ﺃﻤﺭ ﻴﺭﻴﺩﻩ ﺍﻟﻤﺴﺘﺨﺩﻡ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ
ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ Trueﻴﺘﻡ ﺭﺒﻁ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻤﻊ ﺃﺩﺍﺓ True CauseValidate
ﺃﺨﺭﻯ ﻟﻠﺘﺤﻘﻕ ﻤﻥ ﺸﺭﻭﻁ ﻤﻌﻴﻨﺔ ﻭﻤﻥ ﺜﻡ ﺴﻭﻑ ﻴﻨﻔﺫ
ﺍﻟﺤﺩﺙ .Validateﺴﻴﺄﺘﻲ ﻟﻬﺎ ﻤﺯﻴﺩ ﺘﻔﺼﻴل ﻻﺤﻘﺎ.
ﻟﻥ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻤﺎﺴﺒﻕ. False
.٧ﻗﺎﺌﻤﺔ ﺍﻟﺯﺭ ﺍﻷﻴﻤﻥ :ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺭﺒﻁ ﻗﺎﺌﻤﺔ ﺍﻟﺯﺭ ﺍﻷﻴﻤﻥ ﺒﺄﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺭﺒﻁ ﺍﻟﻘﺎﺌﻤﺔ ﺒﺄﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ .ﻓﻌﻨﺩﻤﺎ ﺍﺴﻡ ﺍﻟﻘﺎﺌﻤﺔ Contextmenu
ﺘﻀﻐﻁ ﺍﻟﺯﺭ ﺍﻷﻴﻤﻥ ﻭﺍﻟﻤﺅﺸﺭ ﻋﻨﺩ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﺴﻭﻑ
ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ،ﻫﻲ ﻨﻔﺱ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺘﻲ ﺭﺒﻁﺕ ﺃﺩﺍﺓ
ﺍﻟﻌﻨﻭﺍﻥ ﺒﻬﺎ.
.٨ﺍﻟﻤﺅﺸﺭ :ﻟﺘﻐﻴﻴﺭ ﻨﻭﻉ ﺍﻟﻤﺅﺸﺭ ﻋﻨﺩ ﻤﺭﻭﺭﺓ ﻓﻭﻕ ﻫﺫﻩ ﺍﻷﺩﺍﺓ .ﻓﻲ ﺍﻟﻌﺎﺩﺓ ﺘﺴﺘﺨﺩﻡ ﺤﺴﺏ ﻨﻭﻉ
ﺍﻟﻤﺅﺸﺭ ﻓﻤﺜﻼ ﻤﺅﺸﺭ ﺍﻟﺴﺎﻋﺔ ﺍﻟﺭﻤﻠﻴﺔ ﻴﺨﺒﺭ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺄﻥ ﻫﻨﺎﻙ ﻋﻤﻠﻴﺔ ﻤﺎ ﺘﺤﺩﺙ ﺍﻵﻥ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ
ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﺘﺘﻴﺢ ﻟﻙ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﻐﻴﻴﺭ ﻨﻭﻉ ﻤﺅﺸﺭ ﺍﻟﻔﺄﺭﺓ ﻋﻨﺩ ﻨﻭﻉ ﺍﻟﻤﺅﺸﺭ Curser
ﻤﺭﻭﺭﺓ ﻓﻭﻕ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ .ﻫﻨﺎﻙ ﻗﺎﺌﻤﺔ ﻤﻥ ﺍﻟﻤﺅﺸﺭﺍﺕ
ﺤﺎﻭل ﺘﺠﺭﺒﺘﻬﺎ.
.٩ﺍﻟﺤﻭﺽ :ﻫل ﺘﺫﻜﺭ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺸﺠﺭﻴﺔ ﻷﺴﻤﺎﺀ ﺍﻟﻤﺠﻠﺩﺍﺕ ﻓﻲ ﻤﺴﺘﻜﺸﻑ ﺍﻟﻨﻭﺍﻓﺫ Windows
.Explorerﺍﻨﻬﺎ ﺜﺎﺒﺘﻪ ﻭﻤﺎﻟﺌﺔ ﻟﻠﺠﻬﺔ ﺍﻟﻴﺴﺭﻯ .ﺇﺫﺍ ﺃﺭﺩﺕ ﺘﺜﺒﻴﺕ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻓﻲ ﺃﻱ ﺠﻬﺔ ﻓﻴﻤﻜﻨﻙ
ﻤﻥ ﺨﻼل ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .ﻓﻘﻁ ﺍﺨﺘﺭ ﺍﻟﺠﻬﺔ ﺍﻨﻅﺭ ﺍﻟﺸﻜﻠﻴﻥ ) (٦-٥ﻭ ) .(٧-٥ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ
ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
٦٩
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.١٠ﺍﻟﺘﻤﻜﻴﻥ :ﺘﺴﺘﺨﺩﻡ ﻟﻤﻨﻊ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﻤﻥ ﺍﻹﺴﺘﺠﺎﺒﺔ ﻟﻸﺤﺩﺍﺙ .ﻤﺜﻼ ﻟﻭ ﺃﺭﺩﺕ ﻤﻨﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ
ﻨﻘﺭ ﺯﺭ ﺩﺨﻭل ﺤﺘﻰ ﻴﺩﺨل ﻜﻠﻤﺔ ﺍﻟﺴﺭ ﻭﺍﺴﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﺠﻌل ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .Falseﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ
ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
٧٠
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.١١ﺍﻟﺨﻁ :ﻟﺘﻐﻴﻴﺭ ﺨﺼﺎﺌﺹ ﺍﻟﺨﻁ ﻋﻠﻰ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﻭﻴﻨﺩﺭﺝ ﺘﺤﺕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻋﺩﺓ ﺨﺼﺎﺌﺹ
ﻓﺭﻋﻴﺔ ﻭﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﺠﻤﻴﻊ ﻫﺫﻩ ﺍﻟﺨﺼﺎﺌﺹ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﺃﻭ ﺍﻟﺘﻨﻔﻴﺫ.
٧١
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.١٢ﻟﻭﻥ ﺍﻟﻜﺘﺎﺒﺔ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺘﻐﻴﻴﺭ ﻟﻭﻥ ﺍﻟﻜﺘﺎﺒﺔ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻟﺘﻐﻴﻴﺭ ﻟﻭﻥ ﺍﻟﺨﻁ ForeColor
.١٣ﺍﻹﻏﻼﻕ :ﺘﺴﺘﺨﺩﻡ ﻟﺘﺜﺒﻴﺕ ﻤﻜﺎﻥ ﻭﺤﺠﻡ ﺍﻷﺩﺍﺓ ﻓﻲ ﻭﻗﺕ ﺍﻟﺘﺼﻤﻴﻡ .ﻤﺜﺎل :ﻋﻨﺩ ﺍﻨﺘﻬﺎﺌﻙ ﻤﻥ
ﺘﺼﻤﻴﻡ ﻨﺎﻓﺫﺓ ﻤﻌﻴﻨﺔ ﺘﺭﻏﺏ ﻓﻲ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺤﺘﻰ ﻻﺘﻐﻴﺭ ﺤﺠﻡ ﺃﻭ ﻤﻜﺎﻥ ﺃﺩﺍﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻟﻥ ﺘﺴﺘﻁﻴﻊ ﺘﻜﺒﻴﺭ ﻭﻻ ﺘﺼﻐﻴﺭ ﻭﻻ ﺘﺤﺭﻴﻙ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ True Locked
ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ.
ﺘﺴﺘﻁﻴﻊ ﺘﻜﺒﻴﺭ ﻭ ﺘﺼﻐﻴﺭ ﻭ ﺘﺤﺭﻴﻙ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﺃﺜﻨﺎﺀ False
ﺍﻟﺘﺼﻤﻴﻡ.
.١٥ﺍﻟﺤﺠﻡ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻠﺘﺤﻜﻡ ﺒﺤﺠﻡ ﺍﻷﺩﺍﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ ﻭﻟﻬﺎ ﻋﺩﺓ ﺨﺼﺎﺌﺹ
ﻓﺭﻋﻴﺔ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻟﻔﺭﻋﻴﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻴﺤﺩﺩ ﻁﻭل ﻫﺫﻩ ﺍﻷﺩﺍﺓ Heght Size
ﻴﺤﺩﺩ ﻋﺭﺽ ﻫﺫﻩ ﺍﻷﺩﺍﺓ Width
.١٦ﺍﻹﻨﺘﻘﺎل ﺒﻴﻥ ﺍﻷﺩﻭﺍﺕ :ﺘﺤﺩﺩ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺭﺘﻴﺏ ﺍﻹﻨﺘﻘﺎل ﺒﻴﻥ ﺃﺩﻭﺍﺕ ﺍﻟﻨﺎﻓﺫﺓ .ﻴﺤﺩﺩ vb.net
ﺘﺭﺘﻴﺏ ﺍﻹﻨﺘﻘﺎل ﺍﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﺤﺴﺏ ﺇﻀﺎﻓﺘﻙ ﻟﻬﺫﻩ ﺍﻷﺩﺍﺓ ﻋﻠﻰ ﺍﻟﻨﺎﻓﺫﺓ ﻭﻴﻤﻜﻨﻙ ﺘﻌﺩﻴل ﻫﺫﺍ ﺍﻟﺘﺭﺘﻴﺏ
ﻜﻤﺎ ﺘﺭﻴﺩ .ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ .ﻤﻊ ﻤﻼﺤﻅﺔ ﺃﻥ ﺍﻟﺒﺩﺀ ﻓﻲ ﺍﻟﺘﺭﺘﻴﺏ ﻴﻜﻭﻥ ﻤﻥ ﺍﻟﺼﻔﺭ.
٧٢
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻼﺤﻅﺔ :ﺍﻟﺒﺩﺀ ﻓﻲ ﺍﻟﺘﺭﺘﻴﺏ ﻴﻜﻭﻥ ﻤﻥ ﺍﻟﺼﻔﺭ .ﻟﺫﻟﻙ ﺘﻼﺤﻅ ﺃﻥ ﺍﻟﻘﻴﻤﺔ ﺘﺘﺭﺍﻭﺡ ﻤﻥ ١ﺇﻟﻰ
ﻤﺠﻤﻭﻉ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﻋﻠﻰ ﺍﻟﻨﺎﻓﺫﺓ ﻨﺎﻗﺹ ﻭﺍﺤﺩ .ﻤﺜﻼ ﺘﻜﻭﻥ ﺃﻭل ﺃﺩﺍﺓ ﺘﺭﻴﺩ ﺯﻴﺎﺭﺘﻬﺎ ﺘﺭﺘﻴﺒﻬﺎ
ﺼﻔﺭ ﻭﺍﻟﺜﺎﻨﻴﺔ ﻭﺍﺤﺩ ﻭﻫﻠﻡ ﺠﺭﺍ.
.١٧ﺍﻟﻨﺹ :ﺘﻤﺜل ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻟﻨﺹ ﺍﻟﻤﻜﺘﻭﺏ ﺩﺍﺨل ﻫﺫﻩ ﺍﻷﺩﺍﺓ .ﺘﺴﺘﺨﺩﻡ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ
،ﻤﺜﻼ ﻟﻭ ﺃﺭﺩﻨﺎ ﺘﻐﻴﻴﺭ ﺍﻟﻨﺹ ﺍﻟﻤﻜﺘﻭﺏ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭﺍﻟﺘﻲ ﻟﻬﺎ ﺍﻻﺴﻡ Label1ﺃﺜﻨﺎﺀ ﺍﻟﺘﺸﻐﻴل
ﺇﻟﻰ ﻤﺭﺤﺒﺎ ﺒﻜﻡ .
"ﻤﺭﺤﺒﺎ ﺒﻜﻡ" = Label1.Text
.١٨ﻤﺤﺎﺫﺍﺓ ﺍﻟﻨﺹ ﺍﻷﻓﻘﻴﺔ :ﺘﺘﻴﺢ ﻟﻙ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﻨﺴﻴﻕ ﺍﻟﻨﺹ ﺩﺍﺨل ﺍﻷﺩﺍﺓ ﺇﻤﺎ ﺇﻟﻰ ﺍﻟﻴﻤﻴﻥ ﺃﻭ ﺇﻟﻰ
ﺍﻟﻴﺴﺎﺭ ﺃﻭ ﻓﻲ ﺍﻟﻭﺴﻁ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ .ﻟﺘﻨﺴﻴﻕ ﺍﻟﻨﺹ ﻟﻠﻭﺴﻁ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺸﻐﻴل
ﻷﺩﺍﺓ ﺍﺴﻤﻬﺎ .Label1
Label1.Textalig = Label1.HorizontalAlignment.Center
٧٣
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.١٩ﺍﻟﺫﺍﻜﺭﻴﺔ ﺃﻭ ﺍﻟﺭﺍﺒﻁﺔ :ﺘﺴﺘﺨﺩﻡ ﻟﺘﺤﺩﻴﺩ ﻤﺎ ﺇﺫﺍ ﻜﺎﻨﺕ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﺴﻭﻑ ﺘﺴﺘﺠﻴﺏ ﻟﻌﻼﻤﺔ &
ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺨﺎﺼﻴﺔ ﺍﻟﻨﺹ ﻟﻨﻔﺱ ﺍﻷﺩﺍﺓ .ﺇﺫﺍ ﻜﺎﻨﺕ ﻗﻴﻤﺔ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ Trueﻓﺈﻨﻪ ﻴﺘﻡ ﺍﻟﻭﺼﻭل ﺇﻟﻰ
ﺍﻷﺩﺍﺓ ﺍﻷﺩﺍﺓ ﺍﻟﺘﻲ ﺘﻠﻲ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻓﻲ ﺘﺭﺘﻴﺏ ﺨﺎﺼﻴﺔ Tabﻋﻥ ﻁﺭﻴﻕ + Altﺍﻟﺤﺭﻑ ﺍﻟﻤﺴﺒﻭﻕ
ﺒﻌﻼﻤﺔ & ﻓﻲ ﺨﺎﺼﻴﺔ ﺍﻟﻨﺹ . Text
٧٤
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺘﺴﺘﺨﺩﻡ ﻹﺩﺨﺎل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻋﺭﻀﻬﺎ ﻜﻤﺎ ﺘﺴﺘﺨﺩﻡ ﻟﺘﺤﺭﻴﺭ ﺍﻟﻨﺼﻭﺹ .
ﻋﻨﺩﻤﺎ ﻴﻜﻭﻥ ﻋﻨﺩﻙ ﻤﺭﺒﻊ ﻨﺹ ﻹﺩﺨﺎل ﺍﺴﻤﺎﺀ ﺍﻟﻁﻼﺏ ﺍﺴﺘﺨﺩﻡ ﻤﺭﺒﻊ ﻨﺹ ﻟﻜﺘﺎﺒﺔ ﻤﺜﺎل
ﺷﻜﻞ : ١-٦ﺃﺩﺍﺓ ﻣﺮﺑﻊ ﺍﻟﻨﺺ ﺃﺴﻤﺎﺀ ﺍﻟﻁﻼﺏ.
ﺍﻟﺸﻜل)(١-٦
ﻫﻨﺎﻙ ﺨﺼﺎﺌﺹ ﻟﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭﻫﻲ :
، CauseValidate ، Borderstyle ، Backcolor ، Autosize ، Anchor
، Locked ، ForeColor ، Font ، Enabled ، Dock ، Curser ، Contextmenu
TextAlign ، Text ، TabIndex ، Size
ﻭﻫﻨﺎﻙ ﺒﻌﺽ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻲ ﻻﺘﻭﺠﺩ ﻓﻲ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭﻫﻲ ﻤﺎﺴﻨﺸﺭﺤﻪ ﺍﻵﻥ ﺒﺈﺴﻬﺎﺏ :
٧٦
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
TxtUpper.CharcterCasing = CharcterCasing.Upper
ﻤﻼﺤﻅﺔ :ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺤﺭﻭﻑ ﺍﻟﻠﻐﺔ ﺍﻹﻨﺠﻠﻴﺯﻴﺔ ﻓﻘﻁ ﻓﻌﻨﺩﻤﺎ ﻴﺩﺨل ﺍﻟﻤﺴﺘﺨﺩﻡ bﺘﺘﺤﻭل ﺇﻟﻰ
Bﺇﺫﺍ ﻜﺎﻨﺕ ﺤﺎﻟﺔ ﺍﻷﺤﺭﻑ .Upper
-٢ﺍﺨﻔﺎﺀ ﺍﻟﺘﻅﻠﻴل :ﻋﻨﺩﻤﺎ ﺘﻅﻠل ﻨﺼﺎ ﻤﻭﺠﻭﺩ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻭﺘﻨﺘﻘل ﻤﻥ ﻫﺫﺍ ﺍﻟﻤﺭﺒﻊ ﻭﺘﺭﻴﺩ ﺃﻥ
ﻴﺒﻘﻰ ﺍﻟﺘﻅﻠﻴل ﺤﺘﻰ ﺒﻌﺩ ﺍﻨﺘﻘﺎﻟﻙ ﻤﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺍﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٣-٦
-٣
-٤
٧٧
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٥ﺨﺎﺼﻴﺔ ﺍﻟﺤﺩ ﺍﻷﻗﺼﻰ :ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺤﺩﺩ ﻋﺩﺩ ﺍﻷﺤﺭﻑ ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺇﺩﺨﺎﻟﻬﺎ ﻓﻲ ﻤﺭﺒﻊ
ﺍﻟﻨﺹ ،ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻻﻴﻭﺠﺩ ﻗﻴﺩ ﻋﻠﻰ ﻋﺩﺩ ﺍﻷﺤﺭﻑ ﺍﻟﻤﺩﺨﻠﺔ ﺃﻭ ﺍﻟﻤﻌﺭﻭﻀﺔ. ٠ MaxLength
ﻫﻭ ﺍﻟﺤﺩ ﺍﻷﻋﻠﻰ ﻟﻌﺩﺩ ﺍﻟﺤﺭﻭﻑ ﺍﻟﻤﺩﺨﻠﺔ ﻟﻸﺩﺍﺓ. ﺭﻗﻡ ﺼﺤﻴﺢ
-٦ﺨﺎﺼﻴﺔ ﺍﻷﺴﻁﺭ ﺍﻟﻤﺘﻌﺩﺩﺓ :ﻤﺎﺫﺍ ﻟﻭ ﺃﺭﺩﺕ ﺃﻥ ﺘﻜﺘﺏ ﺃﻭ ﺘﻌﺭﺽ ﺃﻜﺜﺭ ﻤﻥ ﺴﻁﺭ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻨﺹ.
ﺍﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.
٧٨
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
: PasswordChar-٧ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻹﻅﻬﺎﺭ ﺭﻤﺯ ﻤﻌﻴﻥ ﺒﺩﻻ ﻤﻥ ﺍﻟﻨﺹ ﺍﻟﻤﻜﺘﻭﺏ .ﻤﺜﺎل :
ﻟﻭ ﻜﺎﻥ ﻋﻨﺩﻙ ﺸﺎﺸﺔ ﺍﺩﺨﺎل ﺍﻟﻜﻠﻤﺔ ﺍﻟﺴﺭﻴﺔ ﻓﺈﻨﻙ ﻻﺘﺭﻴﺩ ﺃﻥ ﺘﻅﻬﺭ ﺍﻟﺤﺭﻭﻑ ﺇﻨﻤﺎ ﺘﺭﻴﺩ ﺃﻥ ﻴﻅﻬﺭ ﺒﺩﻻ
ﻤﻨﻬﺎ ﻨﺠﻤﺔ ﺃﻭ ﺃﻱ ﺭﻤﺯ ﺁﺨﺭ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٤-٦
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﺘﻅﻬﺭ ﻟﻙ ﻨﺠﻤﺔ ﺒﺩل ﺍﻟﺤﺭﻑ. * PasswordChar
ﺘﻅﻬﺭ ﻟﻙ ﻋﻼﻤﺔ ﺍﺴﺘﻔﻬﺎﻡ ﺒﺩل ﺍﻟﺤﺭﻑ. ؟
ﺷﻜﻞ 0 ٤-٦ﻻﺣﻆ ﻇﻬﻮﺭ ﺍﻟﻨﺠﻤﺔ ﻣﻊ ﺃﻧﲏ ﺃﺩﺧﻞ ﺣﺮﻭﻑ
-٨ﺍﻟﻘﺭﺍﺀﺓ ﻓﻘﻁ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺇﺫﺍ ﺃﺭﺩﺕ ﻋﺭﺽ ﻨﺹ ﻤﻌﻴﻥ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺒﺩﻭﻥ ﺃﻥ ﺘﻤﻜﻨﻪ ﻤﻥ
ﺘﻌﺩﻴﻠﻪ.
-٩ﺍﻟﺘﻭﻗﻑ :ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺴﻤﺢ ﺒﺯﻴﺎﺭﺓ ﺃﻭ ﻋﺩﻡ ﺯﻴﺎﺭﺓ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻋﻨﺩ ﺍﻟﻀﻐﻁ ﻋﻠﻰ ﺯﺭ .Tab
٧٩
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻼﺤﻅﺔ :ﺇﺫﺍ ﻜﺎﻨﺕ ﻗﻴﻤﺔ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ Trueﻓﺴﻭﻑ ﺘﺘﻡ ﺯﻴﺎﺭﺓ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺤﺴﺏ ﺍﻟﺘﺭﺘﻴﺏ
ﻟﺨﺎﺼﻴﺔ ﺍﻹﻨﺘﻘﺎل ﺒﻴﻥ ﺍﻷﺩﻭﺍﺕ) .(TabIndex
-١٠ﺍﻟﻅﻬﻭﺭ :ﺇﺫﺍ ﺃﺭﺩﺕ ﺍﺨﻔﺎﺀ ﺃﺩﺍﺓ ﻤﺎ ﺍﺜﻨﺎﺀ ﺍﻟﺘﻨﻔﻴﺫ ﻴﻤﻜﻨﻙ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .ﻭﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ
ﺘﻌﻤل ﻋﻨﺩ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ .ﻹﺨﻔﺎﺀ ﻤﺭﺒﻊ ﺍﻟﻨﺹ txtNameﻋﻨﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺍﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ :
TxtName.visible = False
٨٠
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
٨١
kal_judaia@hotmail.com ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ
TextBox1.Copy()
اﺧﺘﻴﺎر آﻞ اﻟﻨﺺ ﰒ ﻗﺼﻪ '
TextBox1.SelectAll()
TextBox1.Cut()
٨٢
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺯﺭ ﺍﻷﻤﺭ
ﺍﺴﺘﺨﺩﺍﻤﻪ ﻴﺴﺘﺨﺩﻡ ﺯﺭ ﺍﻷﻤﺭ ﻓﻲ ﺍﻟﻌﺎﺩﺓ ﻟﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺎﺕ ﻤﻌﻴﻨﺔ ﺒﻌﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻴﻪ.
ﻋﻨﺩﻤﺎ ﻴﻜﻭﻥ ﻋﻨﺩﻙ ﻤﺭﺒﻊ ﻨﺹ ﻹﺩﺨﺎل ﺍﺴﻤﺎﺀ ﺍﻟﻁﻼﺏ ﺍﺴﺘﺨﺩﻡ ﺯﺭ ﺍﻷﻤﺭ – ﻤﺜﻼ- ﻤﺜﺎل
ﻟﺤﻔﻅ ﻫﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﺴﻭﻑ ﺘﺘﻌﻠﻡ ﺇﻥ ﺸﺎﺀ ﺍﷲ.
ﻫﻨﺎﻙ ﺨﺼﺎﺌﺹ ﻟﺯﺭ ﺍﻷﻤﺭ ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺍﻷﺩﺍﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻫﻲ :
، Dock ، Curser ، Contextmenu ، CauseValidate ، Backcolor ، Anchor
، Text ، TabStop، TabIndex ، Size ، Locked ، ForeColor ، Font ، Enabled
Visible ، TextAlign
ﻭﻫﻨﺎﻙ ﺒﻌﺽ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻲ ﻻﺘﻭﺠﺩ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻭﻻ ﻓﻲ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭﻫﻲ ﻤﺎﺴﻨﺸﺭﺤﻪ ﺍﻵﻥ
ﺒﺈﺴﻬﺎﺏ :
-١ﺍﻟﺨﻠﻔﻴﺔ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻌﺭﺽ ﺼﻭﺭﺓ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(١-٧
ﻜﻤﺎ ﺫﻜﺭﻨﺎ ﻤﺴﺒﻘﺎ ﻟﻥ ﻨﺘﻁﺭﻕ ﻟﺠﻤﻴﻊ ﺍﻟﺨﺼﺎﺌﺹ ﻷﻥ ﺫﻟﻙ ﺴﻴﻁﻭل ﺠﺩﺍ ﻭﺴﻴﻀﻴﻊ ﺍﻟﻔﺎﺌﺩﺓ ﻤﻥ ﻫﺫﺍ
ﺍﻟﻜﺘﺎﺏ ﺇﻨﻤﺎ ﺴﻭﻑ ﻨﺘﻜﻠﻡ ﻋﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻲ ﺘﺴﺎﻋﺩ ﻓﻲ ﺘﺤﻘﻴﻕ ﻫﺩﻑ ﻫﺫﺍ ﺍﻟﻜﺘﺎﺏ.
ﺷﻜﻞ ١-٧ﻻﺣﻆ ﺍﻟﺼﻮﺭﺓ ﻋﻠﻰ ﺯﺭ ﺍﻷﻣﺮ
٨٤
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻨﺘﻴﺠﺔ ﻨﺎﻓﺫﺓ ﺍﻟﺤﻭﺍﺭ : DialogResultﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﺤﺘﻔﻅ ﺒﻘﻴﻤﺔ ﻨﺘﻴﺠﺔ ﻨﺎﻓﺫﺓ ﺍﻟﺤﻭﺍﺭ،
ﻟﻨﻀﺭﺏ ﻟﻙ ﻤﺜﺎﻻ ﺤﺘﻰ ﺘﺘﻀﺢ ﺃﻜﺜﺭ .ﻟﻨﻔﺘﺭﺽ ﺃﻥ ﺃﻤﺎﻤﻙ ﺸﺎﺸﺔ ﺤﻭﺍﺭ ﻓﻴﻬﺎ ﺯﺭﻱ ﺃﻤﺭ )ﻨﻌﻡ
/ﻻ( ﻭﻗﻴﻤﺔ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻬﻤﺎ Okﻟﻸﻭل ﻭ Cancelﻟﻠﺜﺎﻨﻲ .ﻓﺈﻨﻙ ﻟﻭ ﻨﻘﺭﺕ ﻋﻠﻰ ﺃﻱ
ﻤﻨﻬﻤﺎ ﻓﺴﻭﻑ ﺘﻐﻠﻕ ﻨﺎﻓﺫﺓ ﺍﻟﺤﻭﺍﺭ ﺒﺩﻭﻥ ﺍﻟﺤﺎﺠﺔ ﻟﻜﺘﺎﺒﺔ ﺃﻱ ﺃﻤﺭ ﻹﻏﻼﻗﻬﺎ ﻭﻜﺫﻟﻙ ﺴﻭﻑ
ﺘﺴﺘﻁﻴﻊ ﻤﻌﺭﻓﺔ ﺃﻱ ﺯﺭ ﺍﺨﺘﺎﺭﻩ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻷﻥ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺴﻭﻑ ﺘﺤﺘﻔﻅ ﻟﻙ ﺒﺎﺨﺘﻴﺎﺭﻩ.
ﻤﻼﺤﻅﺔ :ﻴﺠﺏ ﺃﻥ ﺘﻜﻭﻥ ﻨﺎﻓﺫﺓ ﺍﻟﺤﻭﺍﺭ ﻗﺩ ﻓﺘﺤﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻷﻤﺭ ShowDialogﻟﻜﻲ ﺘﺼﺒﺢ
ﻨﺎﻓﺫﺓ ﺤﻭﺍﺭ .ﺴﻭﻑ ﻨﻁﺒﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺘﻔﺼﻴﻠﻴﺎ ﻓﻲ ﺍﻟﻔﺼل ﺍﻟﻘﺎﺩﻡ ﻓﻼ ﺘﻘﻠﻕ ﺇﺫﺍ ﻟﻡ ﺘﺴﺘﻭﻋﺒﻬﺎ.
-٣ﺍﻟﻨﻤﻁ :FlatStyleﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺘﻐﻴﻴﺭ ﺸﻜل ﺯﺭ ﺍﻷﻤﺭ ﻋﻨﺩﻤﺎ ﺘﻤﺭﺭ ﺍﻟﻔﺄﺭﺓ
ﻋﻠﻴﻪ ﺃﻭ ﺘﻀﻐﻁ ﻋﻠﻴﻪ ﺒﺎﻟﻔﺄﺭﺓ ﺍﻨﻅﺭ ﺍﻟﺸﻜل 1.12ﻫﻨﺎﻙ ﺜﻼﺜﺔ ﻗﻴﻡ ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .ﻓﻲ ﺍﻟﺸﻜل
1.12ﻴﻤﻜﻨﻙ ﻤﻼﺤﻅﺔ ﺍﻟﺯﺭ ﻗﺒل ﺍﻟﻤﺭﻭﺭ ﻋﻠﻴﻪ ﺒﺎﻟﻔﺄﺭﺓ ﻭﺒﻌﺩ ﺍﻟﻤﺭﻭﺭ ﻋﻠﻴﻪ ﺒﺎﻟﻔﺄﺭﺓ ﻟﺘﻌﺭﻑ
ﺍﻟﻔﺭﻕ ﻤﻊ ﻤﻼﺤﻅﺔ ﺃﻥ ﺍﻟﺠﻬﺔ ﺍﻟﻴﺴﺭﻯ ﻗﺒل ﻤﺭﻭﺭ ﺍﻟﻔﺄﺭﺓ ﻭﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ ﺒﻌﺩ ﻤﺭﻭﺭﻫﺎ .ﻫﺫﻩ
ﺍﻟﺨﺎﺼﻴﺔ ﻤﺘﻭﻓﺭﺓ ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻫﻭ ﺍﻟﺸﻜل ﺍﻟﺜﺎﺍﻟﺙ ﻓﻲ ﺸﻜل ).(٢-٧ Flat FlatStyle
ﻫﻭ ﺍﻟﺸﻜل ﺍﻟﺜﺎﻨﻲ ﻓﻲ ﺸﻜل).(٢-٧ PopUP
ﺍﻟﺸﻜل ﺍﻷﻭل ﻓﻲ ﺸﻜل).(٢-٧ Standard
٨٥
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ
ﺍﺴﺘﺨﺩﺍﻤﻪ ﻴﺴﺘﺨﺩﻡ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﻟﺘﺤﺩﻴﺩ ﺃﻭ ﻋﺭﺽ ﺃﺤﺩ ﺍﻹﺨﺘﻴﺎﺭﺍﺕ ﻤﺜل )ﻨﻌﻡ/ﻻ( )ﺼﺢ/ﺨﻁﺄ(
ﻓﻴﻅﻬﺭ ﻓﻲ ﺍﻷﺩﺍﺓ ﻋﻼﻤﺔ 9ﻋﻨﺩ ﺍﻹﺨﺘﻴﺎﺭ ﻭ ﺘﺨﺘﻔﻲ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﻋﻨﺩ ﻋﺩﻡ ﺍﻹﺨﺘﻴﺎﺭ
ﻭﻗﺩ ﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻗﻴﻤﺔ ﺜﺎﻟﺜﺔ ﻭﻫﻲ ﻋﻼﻤﺔ 9ﻤﻅﻠﻠﺔ ﺘﻌﻨﻲ ﻋﺩﻡ ﺘﺤﺩﻴﺩ ﺍﻹﺨﺘﻴﺎﺭ.
ﻋﻨﺩﻤﺎ ﺘﺘﺼل ﺒﺎﻹﻨﺘﺭﻨﺕ ﺘﺄﺘﻴﻙ ﻨﺎﻓﺫﺓ ﻓﻴﻬﺎ ﻤﺭﺒﻊ ﺨﻴﺎﺭ ﻴﺴﺄﻟﻙ ﻫل ﺘﺭﻴﺩ ﺤﻔﻅ ﺍﻟﻜﻠﻤﺔ ﻤﺜﺎل
ﺍﻟﺴﺭﻴﺔ ﻋﻨﺩ ﺍﻟﺩﺨﻭل ﻓﻲ ﺍﻟﻤﺭﺓ ﺍﻟﻘﺎﺩﻤﺔ.
ﻫﻨﺎﻙ ﺨﺼﺎﺌﺹ ﻟﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺍﻷﺩﺍﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻫﻲ :
، Contextmenu ، CauseValidate ،Background، Backcolor ، Anchor
، Size ، Locked ، ForeColor ، Font ، FlatStyle، Enabled ، Dock ، Curser
Visible ، TextAlign ، Text ، TabStop، TabIndex
ﻭﻫﻨﺎﻙ ﺒﻌﺽ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻲ ﻻﺘﻭﺠﺩ ﻓﻲ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻫﻲ ﻤﺎﺴﻨﺸﺭﺤﻬﺎ ﺍﻵﻥ ﺒﺈﺴﻬﺎﺏ :
-١ﺸﻜل ﺃﻭ ﻨﻤﻁ ﺍﻟﻅﻬﻭﺭ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻠﺘﺤﻜﻡ ﻓﻲ ﺸﻜل ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ .ﻫﻨﺎﻙ
ﺸﻜﻼﻥ ﺭﺌﻴﺴﺎﻥ ﺤﺴﺏ ﻗﻴﻤﺔ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﻋﻨﺩ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻫﻭ ﺍﻟﺸﻜل ﺍﻟﻌﺎﺩﻱ ﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل ).(١-٨ Normal Appearance
ﻴﺄﺨﺫ ﺸﻜل ﺯﺭ ﺍﻷﻤﺭ ﺍﻨﻅﺭ ﺸﻜل ).(١-٨ Button
٨٧
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺍﻹﺨﺘﻴﺎﺭ ﺍﻟﺘﻠﻘﺎﺌﻲ :ﺘﺴﺘﺨﺩﻡ ﻟﺘﻐﻴﻴﺭ ﺤﺎﻟﺔ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺘﻠﻘﺎﺌﻴﺎ ﻋﻨﺩ ﺍﻟﻨﻘﺭ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﻋﻨﺩ
ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
-٣ﺘﻨﺴﻴﻕ ﺍﻹﺨﺘﻴﺎﺭ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺭﺒﻊ ﺍﻟﺫﻱ ﻓﻲ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ .ﺍﻨﻅﺭ
ﺍﻟﺸﻜل) (٢-٨ﻋﻨﺩﻤﺎ ﺍﺨﺘﺭﻨﺎ ﺍﻟﻘﻴﻤﺔ ) TopCenterﺃﻋﻠﻰ ﻤﺘﻭﺴﻁ( .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﻋﻨﺩ
ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺷﻜﻞ ٣-٨ﻻﺣﻆ ﻋﻨﺪﻣﺎ ﺍﺧﺘﺮﻧﺎ ﺍﻟﺘﻨﺴﻴﻖ ﺍﻟﻮﺳﻂ ﺍﻟﻌﻠﻮﻱ ﻛﻴﻒ ﺷﻜﻞ ٢-٨ﻛﻤﺎ ﺗﻼﺣﻆ ﻛﻴﻒ ﺟﺎﺀ ﺍﳌﺮﺑﻊ ﰲ
ﺃﺛﺮ ﺫﻟﻚ ﰲ ﺷﻜﻞ ٢-٨ ﺍﻟﻮﺳﻂ
٨٨
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٤ﺍﻹﺨﺘﻴﺎﺭ :ﻨﺴﺘﻔﻴﺩ ﻤﻥ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻤﻌﺭﻓﺔ ﻤﺎ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻗﺩ ﺍﺨﺘﺎﺭ ) (9ﺃﻭ ﻟﻡ
ﻴﺨﺘﺭ .ﻭﻫﻲ ﻤﺘﻭﻓﺭﺓ ﻋﻨﺩ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﻗﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﻹﺨﺘﻴﺎﺭ. True Checked
ﻟﻡ ﻴﻘﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﻹﺨﺘﻴﺎﺭ. False
-٦ﺍﻟﺤﺎﻻﺕ ﺍﻟﺜﻼﺙ :ﺘﻤﻜﻨﻙ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻤﻥ ﻭﻀﻊ ﺤﺎﻟﺔ ﺜﺎﻟﺜﺔ ﻓﻲ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺘﻭﺠﺩ ﻓﻲ
ﺍﻟﻐﺎﻟﺏ ﻋﻨﺩﻤﺎ ﻻﻴﺴﺘﻁﻴﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﻹﺨﺘﻴﺎﺭ ﻷﻱ ﻅﺭﻑ ﻤﺎ ) ﻤﺜل ﻋﺩﻡ ﺍﻟﻤﻌﺭﻓﺔ ﺃﻭ ﺍﻟﺘﺤﻔﻅ
ﻋﻥ ﺍﻹﺨﺘﻴﺎﺭ ﺃﻭ ﻏﻴﺭﻫﺎ( ﺍﻨﻅﺭ ﺍﻟﺸﻜل ).(٤-٨
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﺜﻼﺙ ﺤﺎﻻﺕ ﻟﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ. True ThreeState
ﺤﺎﻟﺘﺎﻥ ﻓﻘﻁ ﺇﻤﺎ 9ﺃﻭ ﺒﺩﻭﻨﻬﺎ. False
٨٩
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺴﺘﺨﺩﺍﻤﻪ ﺘﺴﺘﺨﺩﻡ ﺃﺩﺍﺓ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ ﻹﻋﻁﺎﺀ ﺍﻟﻔﺭﺼﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ ﻹﺨﺘﻴﺎﺭ ﻭﺍﺤﺩ ﻤﻥ ﻋﺩﺓ
ﺍﺨﺘﻴﺎﺭﺍﺕ .ﻴﻤﻜﻥ ﺘﺠﻤﻴﻊ ﺃﺩﺍﺓ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ ﻓﻲ ﻤﺠﻤﻭﻋﺎﺕ ﻀﻤﻥ ﺍﻁﺎﺭ ﻭﺍﺤﺩ ﻭﻋﻨﺩ
ﺍﺨﺘﻴﺎﺭ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻷﺤﺩﻫﺎ ﻴﻠﻐﻲ ﺍﻟﻨﻅﺎﻡ ﺍﺨﺘﻴﺎﺭ ﺒﻘﻴﺔ ﺃﺯﺭﺍﺭ ﺍﻹﺨﺘﻴﺎﺭ ﻓﻲ ﻨﻔﺱ
ﺍﻟﻤﺠﻤﻭﻋﺔ.
ﺍﻟﺸﻜل) (٥-٨ﻴﻭﻀﺢ ﻟﻙ ﺍﻟﻤﺜﺎل. ﻤﺜﺎل
ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺒﻼ ﻓﺭﻕ ﻭﻫﻲ : ﺨﺼﺎﺌﺹ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ :
،Background، Backcolor ، AutoCheck ، Appearance ،Anchor
، Dock ، Curser ، Contextmenu ، Checked ، CheckAlign ، CauseValidate
، TabIndex ، Size ، Locked ، ForeColor ، Font ، FlatStyle، Enabled
Visible ، TextAlign ، Text ،TabStop
ﻤﻼﺤﻅﺔ :ﺇﻥ ﻫﻨﺎﻙ ﺨﺼﺎﺌﺹ ﻓﻲ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﻻﺘﻭﺠﺩ ﻓﻲ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ ﻤﺜل ThreeState
ﻗﺩ ﻻﻴﻅﻬﺭ ﻟﻙ ﺍﻟﻔﺭﻕ ﻭﺍﻀﺤﺎ ﺒﻴﻥ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﻭ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ ﻭﺍﻟﺘﻔﺭﻴﻕ ﺒﻴﻨﻬﻤﺎ ﻤﻬﻡ ﺠﺩﺍ
ﻷﻨﻪ ﻴﺅﺜﺭ ﻋﻠﻰ ﺍﺴﺘﺨﺩﺍﻤﻬﻤﺎ .ﺍﻟﻔﺭﻕ ﺒﻴﻨﻬﻤﺎ ﻫﻭ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﻨﺩﻤﺎ ﻴﺨﺘﺎﺭ ﺯﺭ ﺃﻤﺭ ﻤﺎ ﻓﺈﻥ ﺍﻟﻨﻅﺎﻡ
ﻴﻠﻐﻲ ﺍﻹﺨﺘﻴﺎﺭ ﻋﻥ ﺠﻤﻴﻊ ﺍﻷﺯﺭﺍﺭ ﻓﻲ ﻨﻔﺱ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻟﻜﻥ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﻴﺴﻤﺢ ﻟﻙ ﺒﺎﻹﺨﺘﻴﺎﺭ
ﺍﻟﻤﺘﻌﺩﺩ ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٥-٨
٩٠
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻲ
ﺍﻟﺘﺩﺭﺏ ﺃﻜﺜﺭ ﻟﻠﺘﻌﺎﻤل ﻤﻊ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ
ﺒﺭﻨﺎﻤﺞ ﺍﻷﻟﻭﺍﻥ
ﺴﻭﻑ ﻨﻘﻭﻡ ﻓﻲ ﺍﻟﺘﺩﺭﻴﺏ ﺍﻟﺘﺎﻟﻲ ﻟﻠﺘﺩﺭﺏ ﺃﻜﺜﺭ ﻋﻠﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻭﺴﻭﻑ ﻴﻜﻭﻥ ﺍﻟﻬﺩﻑ
ﺍﻟﺘﺭﻜﻴﺯ ﻋﻠﻰ ﺍﻟﺘﻌﻭﺩ ﺃﻜﺜﺭ ﻓﻲ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻷﺩﻭﺍﺕ ﻭﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻷﺤﺩﺍﺙ.
ﻨﻤﻭﺫﺝ ﻭﺴﻭﻑ ﻨﻀﻴﻑ ﺇﻟﻴﻪ ﺜﻼﺙ ﺃﺯﺭﺍﺭ ﺍﺨﺘﻴﺎﺭ – -RadioButtonﻭﺜﻼﺙ ﺃﺯﺭﺍﺭ ﺍﻷﺩﻭﺍﺕ
ﺃﻤﺭ ﻭﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭﻤﺭﺒﻊ ﺘﺠﻤﻴﻊ ﻟﺠﻤﻊ ﺍﻷﺯﺭﺍﺭ ﺍﻟﺜﻼﺜﺔ ﻓﻲ ﺇﻁﺎﺭ ﻭﺍﺤﺩ .ﺍﻨﻅﺭ
ﺸﻜل)(٦-٨
ﺴﺘﻜﻭﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻜﺎﻟﺘﺎﻟﻲ .ﺴﻭﻑ ﺘﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺜﻡ ﺘﻨﻘﺭ ﺯﺭ ﻤﺭﺤﺒﺎ ﺜﻡ ﺴﻴﻨﺘﻘل ﺍﻟﻨﺎﺘﺞ
ﻤﺎﻜﺘﺒﺘﻪ ﻤﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺇﻟﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ .ﻋﻨﺩ ﺍﻟﻀﻐﻁ ﻋﻠﻰ ﺃﻱ ﻤﻥ ﺃﺯﺭﺍﺭ ﺍﻟﺭﺍﺩﻴﻭ
ﻴﺘﻐﻴﺭ ﻟﻭﻥ ﺍﻟﻨﺹ ﺍﻟﺫﻱ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻋﻨﺩ ﺍﻟﻀﻐﻁ ﻋﻠﻰ ﺯﺭ ﺤﻭل ﺍﻟﺒﺭﻨﺎﻤﺞ
ﺘﻅﻬﺭ ﻟﻙ ﺭﺴﺎﻟﺔ " ﻫﺫﺍ ﻫﻭ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺍﻟﺜﺎﻨﻲ"
ﻤﻼﺤﻅﺔ ﻤﻬﻤﺔ ﺠﺩﺍ :ﻋﻨﺩ ﺍﻟﺒﺩﺀ ﻓﻲ ﺍﻟﺒﺭﻤﺠﺔ ﻻﺘﺤﺎﻭل ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻹﻓﺘﺭﺍﻀﻴﺔ ﻷﻱ ﻜﺎﺌﻥ
ﻷﻨﻬﺎ ﻻﺘﻌﻤل ﻓﻲ . vb.netﻤﺜﺎل ﻓﻲ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺒﻕ ﻤﻥ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﺇﺫﺍ ﺃﺭﺩﺕ ﺃﻥ ﺘﻅﻬﺭ
ﺭﺴﺎﻟﺔ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻟﻨﻔﺘﺭﺽ ﺃﻥ ﺍﺴﻤﻪ txtNameﺒﺭﻤﺠﻴﺎ ﻴﻤﻜﻨﻙ ﻜﺘﺎﺒﺔ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ
" ﻤﺭﺤﺒﺎ" = txtName.text
ﻜﺫﻟﻙ ﻴﻤﻜﻨﻙ ﻋﺩﻡ ﻜﺘﺎﺒﺔ ﺍﺴﻡ ﺍﻟﺨﺎﺼﻴﺔ ﻷﻨﻬﺎ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻹﻓﺘﺭﺍﻀﻴﺔ ﻓﺘﺴﺘﻁﻴﻊ ﻜﺘﺎﺒﺔ ﺍﻟﻌﺒﺎﺭﺓ ﺒﺼﻭﺭﺓ
ﻤﻜﺎﻓﺌﺔ ﻜﻤﺎ ﻴﻠﻲ
ﻤﺭﺤﺒﺎ " = TxtName
ﻻﺤﻅ ﺒﺩﻭﻥ ﺍﻟﺨﺎﺼﻴﺔ Textﺃﻤﺎ ﻓﻲ vb.netﻓﻼﻴﻤﻜﻥ ﺫﻟﻙ ﺒل ﻻﺒﺩ ﻤﻥ ﻜﺘﺎﺒﺔ ﺍﻟﻌﺒﺎﺭﺓ ﻜﺎﻤﻠﺔ ﻤﻊ
ﺍﻟﺨﺎﺼﻴﺔ .
٩١
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺘﻐﻴﻴﺭ ﺨﺼﺎﺌﺹ ﻏﻴﺭ ﺨﺼﺎﺌﺹ ﺍﻷﺩﻭﺍﺕ ﻟﺘﺼﺒﺢ ﻤﻁﺎﺒﻘﺔ ﻟﻠﺠﺩﻭل ﺍﻟﺘﺎﻟﻲ ﺍﻨﻅﺭ ﺍﻟﺸﻜل
).(٦-٨ ﺒﻌﺽ ﺍﻷﺩﻭﺍﺕ
)ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ(.
ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ ﺍﺴﻡ ﺍﻷﺩﺍﺓ
“ﺍﻟﺒﺭﻨﺎﻤﺞ Text Form1
ﺍﻷﻭل"
Right RightToLeft
rdbBlue Name RadioButton1
ﺃﺯﺭﻕ Text
rdbRed Name RadioButton2
ﺃﺤﻤﺭ Text
rdbGreen Name RadioButton3
ﺃﺨﻀﺭ Text
GrbColors Name GroupBox1
ﺃﻟﻭﺍﻥ Text
LblColor Name Label1
Text
txtColor Name Text1
٩٢
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
Text
cmdMove Name Button1
ﻨﻘل ﺍﻟﻨﺹ Text
cmdExit Name Button2
ﺨﺭﻭﺝ Text
CmeAbout Name Button3
ﺤﻭل ﺍﻟﺒﺭﻨﺎﻤﺞ Text
٩٣
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻨﻭﻉ ﺍﻟﺭﺴﺎﻟﺔ :ﻭﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ﺃﻨﻭﺍﻉ ﻜﺜﻴﺭﺓ ﺘﺨﺘﺎﺭ ﻤﺎﻴﻨﺎﺴﺒﻙ. .cmdAbout
-٦ﺍﻨﻬﺎﺀ ﺍﻟﺒﺭﻨﺎﻤﺞ
-٦ﺍﻨﻘﺭ ﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﺨﺭﻭﺝ ﻭﺍﻜﺘﺏ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ
ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺯﺭ
End
.cmdExit
ﻫﺫﻩ ﺍﻟﻌﺒﺎﺭﺓ ﺴﻭﻑ ﺘﻨﻬﻲ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻜﺎﻤﻼ.
٩٤
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺤﺴﺏ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ
-١ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺃﻫﻼ ﻭﺴﻬﻼ ﺒﻜﻡ.
-٢ﺍﻨﻘﺭ ﻤﺭﻩ ﻭﺍﺤﺩﺓ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻨﻘل ﺍﻟﻨﺹ ﺜﻡ ﻻﺤﻅ ﺍﻨﺘﻘﺎل ﺍﻟﻨﺹ ﺍﻟﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ.
-٣ﺍﻨﻘﺭ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ ﺃﺯﺭﻕ ﻤﺭﺓ ﻭﺍﺤﺩﺓ ﺜﻡ ﻻﺤﻅ ﺘﻐﻴﺭ ﻟﻭﻥ ﺍﻟﻨﺹ ﻓﻲ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ.
-٤ﺃﻨﻘﺭ ﺯﺭ ﺤﻭل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻟﺘﻅﻬﺭ ﻟﻙ ﺍﻟﺭﺴﺎﻟﺔ :ﻫﺫﺍ ﻫﻭ ﺒﺭﻨﺎﻤﺞ ﺍﻷﻟﻭﺍﻥ.
-٥ﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ ﺍﻟﺸﻜل ﻤﻁﺎﺒﻘﺎ ﻟﻠﺸﻜل ).(٧-٨
-٦ﺍﻨﻘﺭ ﺯﺭ ﺨﺭﻭﺝ ﻷﻨﻬﺎﺀ ﺍﻟﺒﺭﻨﺎﻤﺞ.
٩٥
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺴﺘﺨﺩﺍﻤﻪ ﺘﺴﺘﺨﺩﻡ ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﻟﻌﺭﺽ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻌﻨﺎﺼﺭ )ﺒﻴﺎﻨﺎﺕ( ﻟﻠﻤﺴﺘﺨﺩﻡ ﻋﻠﻰ ﺸﻜل
ﻗﺎﺌﻤﺔ ﺒﺤﻴﺙ ﻴﺘﻤﻜﻥ ﻤﻥ ﺍﺨﺘﻴﺎﺭ ﻋﻨﺼﺭ ﺃﻭ ﺃﻜﺜﺭ ﺇﻥ ﻜﺎﻥ ﺫﻟﻙ ﻤﺴﻤﻭﺤﺎ ﺍﻨﻅﺭ ﺍﻟﺸﻜل
)(١-٩
ﺇﺫﺍ ﺃﺭﺩﺕ ﻋﺭﺽ ﻗﺎﺌﻤﺔ ﺃﺴﻤﺎﺀ ﺍﻟﻤﺩﻥ ﺃﻭ ﺍﻹﺩﺍﺭﺍﺕ ﺃﻭ ﻏﻴﺭﻫﺎ ﻤﻥ ﺍﻟﻘﻭﺍﺌﻡ. ﻤﺜﺎل
ﺨﺼﺎﺌﺹ ﺯﺭ ﺍﻹﺨﺘﻴﺎﺭ :ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺒﻼ ﻓﺭﻕ ﻭﻫﻲ :
، Contextmenu ، CauseValidate ، BorderStyle،Backcolor ،Anchor
، Size ، Locked ، Location،ForeColor ، Font ، Enabled ، Dock ، Curser
Visible ، TabStop، TabIndex
ﻭﻫﻨﺎﻙ ﺒﻌﺽ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻲ ﻻﺘﻭﺠﺩ ﻓﻲ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﻫﻲ ﻤﺎﺴﻨﺸﺭﺤﻪ ﺍﻵﻥ ﺒﺎﻟﺘﻔﺼﻴل :
-١ﻋﺭﺽ ﺍﻟﻌﻤﻭﺩ :ﻴﺴﺘﻁﻴﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺘﺤﺩﻴﺩ ﻋﺭﺽ ﺍﻷﻋﻤﺩﺓ ﻓﻲ ﺍﻟﻘﺎﺌﻤﺔ ﻤﻥ ﺨﻼل ﻫﺫﻩ
ﺍﻟﺨﺎﺼﻴﺔ .
ﻤﻼﺤﻅﺔ :ﻻﺒﺩ ﺃﻥ ﺘﻜﻭﻥ ﺨﺎﺼﻴﺔ MultiColumn = Trueﺤﺘﻰ ﺘﺘﻤﻜﻥ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ
ﺍﻟﺨﺎﺼﻴﺔ.
٩٧
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٤ﺸﻜل ﺍﻟﻅﻬﻭﺭ :ﺘﺤﺩﻴﺩ ﺸﻜل ﺍﻟﻘﺎﺌﻤﺔ ﻫل ﺴﺘﺘﺭﻜﻪ ﻟﻠﻨﻅﺎﻡ ﺃﻡ ﺘﺭﻴﺩ ﺃﻥ ﺘﺘﺤﻜﻡ ﺒﻪ .ﻫﺫﻩ
ﺍﻟﺨﺎﺼﻴﺔ ﻫﻲ ﺍﻟﺘﻲ ﺘﺤﺩﺩ ﻫﺫﺍ ﺍﻷﻤﺭ.
٩٨
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
٩٩
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٧ﺘﻌﺩﺩ ﺍﻷﻋﻤﺩﺓ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺘﺤﺩﻴﺩ ﻤﺎ ﺇﺫﺍ ﻜﺎﻨﺕ ﻫﺫﻩ ﺍﻟﻘﺎﺌﻤﺔ ﺴﻭﻑ ﺘﻌﺭﺽ
ﺃﻜﺜﺭ ﻤﻥ ﻋﻤﻭﺩ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﺍﻤﻜﺎﻨﻴﺔ ﻋﺭﺽ ﻋﺩﺓ ﺃﻋﻤﺩﺓ. True MultiColumn
ﻋﻤﻭﺩ ﻭﺍﺤﺩ ﻓﻘﻁ. False
-٨ﺍﻟﻅﻬﻭﺭ ﺍﻟﺩﺍﺌﻡ ﻟﺸﺭﻴﻁ ﺍﻟﺘﻤﺭﻴﺭ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻹﻅﻬﺎﺭ ﺸﺭﻴﻁ ﺍﻟﺘﻤﺭﻴﺭ ﺩﺍﺌﻤﺎ
ﺒﻐﺽ ﺍﻟﻨﻅﺭ ﻋﻥ ﻋﺩﺩ ﺍﻟﻌﻨﺎﺼﺭ ﻓﻲ ﺍﻟﻘﺎﺌﻤﺔ.
ﺍﻟﺸﺭﺡ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
ﺍﻤﻜﺎﻨﻴﺔ ﻋﺭﺽ ﻋﺩﺓ ﺃﻋﻤﺩﺓ. True ScrollAlwaysVisible
ﻋﻤﻭﺩ ﻭﺍﺤﺩ ﻓﻘﻁ. False
-٩ﻁﺭﻴﻘﺔ ﺍﻹﺨﺘﻴﺎﺭ :ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﺘﺤﺩﻴﺩ ﻤﺎ ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻴﺴﺘﻁﻴﻊ ﺇﺨﺘﻴﺎﺭ
ﻋﻨﺼﺭ ﺃﻭ ﺃﻜﺜﺭ ﺃﻭ ﻻﻴﺴﺘﻁﻴﻊ ﺇﺨﺘﻴﺎﺭ ﺃﻱ ﻋﻨﺼﺭ.
١٠٠
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
١٠١
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﻟﻌﺩﺓ ﺃﻏﺭﺽ ﻤﻨﻬﺎ ﺃﻨﻪ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻜﺄﺩﺍﺓ ﻨﺹ ﺃﻭ ﻗﺎﺌﻤﺔ
ﻤﻨﺴﺩﻟﺔ ﺃﻭ ﻗﺎﺌﻤﺔ ﻋﺎﺩﻴﺔ ﻤﺜل ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺴﺎﺒﻘﺔ.
ﺇﺫﺍ ﺃﺭﺩﺕ ﻋﺭﺽ ﻗﺎﺌﻤﺔ ﺃﺴﻤﺎﺀ ﺍﻟﻤﺩﻥ ﺃﻭ ﺍﻹﺩﺍﺭﺍﺕ ﺃﻭ ﻏﻴﺭﻫﺎ ﻤﻥ ﺍﻟﻘﻭﺍﺌﻡ .ﺃﻭ ﺇﻀﺎﻓﺔ ﻤﺜﺎل
ﺇﺩﺍﺭﺍﺕ ﺠﺩﻴﺩﺓ ﻴﻤﻜﻨﻙ ﺫﻟﻙ ﻋﻥ ﻁﺭﻴﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.
ﻤﻼﺤﻅﺔ :ﻓﻲ ﺍﻟﻐﺎﻟﺏ ﺘﺴﺘﺨﺩﻡ ﺍﻟﻘﺎﺌﻤﺔ ﻋﻨﺩﻤﺎ ﻴﻜﻭﻥ ﻋﺩﺩ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﺘﻲ ﺴﺘﻌﺭﺽ ﻗﻠﻴل ﺒﻴﻨﻤﺎ
ﺘﺴﺘﺨﺩﻡ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺇﺫﺍ ﻜﺎﻥ ﻋﺩﺩ ﺍﻟﻌﻨﺎﺼﺭ ﻀﺨﻤﺎ.
ﺨﺼﺎﺌﺹ ﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ :ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﻤﻊ ﺯﻴﺎﺩﺓ
ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻫﻲ :
-١ﺍﻟﻌﺩﺩ ﺍﻷﻗﺼﻰ ﻟﻠﻌﻨﺎﺼﺭ :ﺃﻜﺒﺭ ﻋﺩﺩ ﻤﻤﻜﻥ ﻤﻥ ﺍﻟﻌﻨﺎﺼﺭ ﻴﻤﻜﻥ ﻋﺭﻀﻪ ﻋﻨﺩ ﺍﻨﺴﺩﺍل
ﺍﻟﻘﺎﺌﻤﺔ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل ) (٤-٩ﻤﻊ ﻤﻼﺤﻅﺔ ﺃﻨﻙ ﺘﺴﺘﻁﻴﻊ ﺍﻟﻭﺼﻭل ﻟﺒﺎﻗﻲ ﺍﻟﻌﻨﺎﺼﺭ
ﺒﻭﺍﺴﻁﺔ ﺃﺸﺭﻁﺔ ﺍﻟﺘﻤﺭﻴﺭ.
= Style Style = DropDownﺃﻭ ﻤﻼﺤﻅﺔ :ﻻﺒﺩ ﺃﻥ ﺘﻜﻭﻥ ﺨﺎﺼﻴﺔ
DropDownListﺤﺘﻰ ﺘﺘﻤﻜﻥ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.
١٠٢
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺍﻟﻨﻤﻁ ﺃﻭ ﺍﻟﺸﻜل :ﺘﺴﺘﺨﺩﻡ ﻟﻠﺘﺤﻜﻡ ﺒﺸﻜل ﻭﺃﺩﺍﺀ ﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ.ﺍﻨﻅﺭ ﺸﻜل )(٥-٩
ﻟﻤﻌﺭﻓﺔ ﺍﻟﻔﺭﻕ ﺒﻴﻥ ﺍﻟﻘﻴﻡ ﺍﻟﺜﻼﺙ ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.
١٠٣
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺘﻌﺘﺒﺭ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﺍﻤﺘﺩﺍﺩﺍ ﻷﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ .ﺘﺴﺘﺨﺩﻡ ﺒﺎﻟﻀﺒﻁ ﻜﻤﺎ ﺘﺴﺘﺨﺩﻡ ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﻟﻜﻥ
ﻜل ﻋﻨﺼﺭ ﻤﻥ ﻫﺫﻩ ﺍﻷﺩﺍﺓ ﻴﺒﺩﻭﺍ ﻜﺄﻨﻪ ﻤﺭﺒﻊ ﻨﺹ ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٦-٩
ﺇﺫﺍ ﺃﺭﺩﺕ ﺃﻥ ﺘﻌﺭﺽ ﻗﺎﺌﻤﺔ ﺍﻟﻁﻼﺏ ﻭﺘﺭﻴﺩ ﺃﻥ ﻴﻅﻬﺭ ﺃﻤﺎﻡ ﺍﻟﻁﺎﻟﺏ ﺍﻟﻨﺎﺠﺢ ﻋﻼﻤﺔ 9 ﻤﺜﺎل
ﻭﺃﻤﺎ ﺍﻟﻁﺎﻟﺏ ﻏﻴﺭ ﺍﻟﻨﺎﺠﺢ ﻓﻼ ﻴﻅﻬﺭ ﺒﺠﺎﻨﺒﻪ ﻋﻼﻤﺔ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(٦-٩
ﻤﻼﺤﻅﺔ :ﻴﻭﺠﺩ ﺍﺨﺘﻼﻓﺎﺕ ﻓﻲ ﺒﻌﺽ ﺍﻟﺨﺼﺎﺌﺹ ﺒﻴﻥ ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﻭﺃﺩﺍﺓ ﻗﺎﺌﻤﺔ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ ﺘﺒﻌﺎ
ﻹﻀﺎﻓﺔ ﻤﺭﺒﻊ ﺍﻹﺨﺘﻴﺎﺭ
ﺨﺼﺎﺌﺹ ﻗﺎﺌﻤﺔ ﻤﺭﺒﻊ ﺍﻟﺨﻴﺎﺭ :ﺍﻟﻜﻼﻡ ﻓﻴﻬﺎ ﻨﻔﺱ ﺍﻟﻜﻼﻡ ﻋﻥ ﺨﺼﺎﺌﺹ ﺃﺩﺍﺓ ﺍﻟﻘﺎﺌﻤﺔ ﻤﻊ ﺯﻴﺎﺩﺓ
ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻫﻲ :
ﺃﻫﻡ ﺨﺎﺼﻴﺔ ﻴﻤﻜﻥ ﺫﻜﺭﻫﺎ ﻫﻨﺎ ﻫﻲ ﺨﺎﺼﻴﺔ ﺍﻟﻌﺩﺩ ﺍﻷﻗﺼﻰ ﻟﻠﻌﻨﺎﺼﺭ :ﺃﻜﺒﺭ ﻋﺩﺩ
ﻤﻤﻜﻥ ﻤﻥ ﺍﻟﻌﻨﺎﺼﺭ ﻴﻤﻜﻥ ﻋﺭﻀﻪ ﻋﻨﺩ ﺍﻨﺴﺩﺍل ﺍﻟﻘﺎﺌﻤﺔ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل ) (٧-٩ﻤﻊ
ﻤﻼﺤﻅﺔ ﺃﻨﻙ ﺘﺴﺘﻁﻴﻊ ﺍﻟﻭﺼﻭل ﻟﺒﺎﻗﻲ ﺍﻟﻌﻨﺎﺼﺭ ﺒﻭﺍﺴﻁﺔ ﺃﺸﺭﻁﺔ ﺍﻟﺘﻤﺭﻴﺭ.
ﻤﻼﺤﻅﺔ :ﻻﺒﺩ ﺃﻥ ﺘﻜﻭﻥ ﺨﺎﺼﻴﺔ Style = DropDownﺃﻭ = Style
DropDownListﺤﺘﻰ ﺘﺘﻤﻜﻥ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ.
١٠٤
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺷﻜﻞ ٧-٩ :ﻋﻨﺪﻣﺎ ﺟﻌﻠﻨﺎ ﻗﻴﻤﺔ ﺍﻟﻌﺪﺩ ﺍﻷﻗﺼﻰ ﻣﻦ ﺍﻟﻌﻨﺎﺻﺮ ﺍﳌﻨﺴﺪﻟﺔ = ٢
١٠٥
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻟﺙ
ﺴﻭﻑ ﻨﻘﻭﻡ ﻓﻲ ﺍﻟﺘﺩﺭﻴﺏ ﺍﻟﺘﺎﻟﻲ ﺒﺩﺍﻴﺔ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﻘﻭﺍﺌﻡ ﻭﻫﻲ ﻤﻥ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻬﻤﺔ ﺍﻟﻬﺩﻑ
ﻓﻲ vb.netﻜﺫﻟﻙ ﺴﻭﻑ ﺘﺘﺩﺭﺏ ﺃﻜﺜﺭ ﻋﻠﻰ ﻜﺘﺎﺒﺔ ﻋﺒﺎﺭﺍﺕ ﺒﺭﻤﺠﻴﺔ ﻤﻤﺎ ﻴﻌﻁﻴﻙ
ﺍﻟﻘﺩﺭﺓ ﻋﻠﻰ ﺒﺩﺀ ﺍﻟﺘﻔﻜﻴﺭ ﺒﺭﻤﺠﻴﺎ.
ﻨﻤﻭﺫﺝ ﻭﺴﻭﻑ ﻨﻀﻴﻑ ﺇﻟﻴﻪ ﻤﺭﺒﻊ ﻗﺎﺌﻤﺔ – -ListBoxﻭ ﺃﺭﺒﻊ ﺃﺯﺭﺍﺭ ﺃﻤﺭ ﻭﺃﺩﺍﺓ ﺍﻷﺩﻭﺍﺕ
ﻋﻨﻭﺍﻥ ﻭﺃﺩﺍﺓ ﻨﺹ ﺍﻨﻅﺭ ﺸﻜل )(٨-٩
ﺴﺘﻜﻭﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻜﺎﻟﺘﺎﻟﻲ .ﺴﻭﻑ ﺘﻜﺘﺏ ﺍﺴﻡ ﻓﻲ ﺃﺩﺍﺓ ﺍﻟﻨﺹ ﺜﻡ ﺘﻨﻘﺭ ﺯﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻟﻨﺎﺘﺞ
ﺘﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ – -Enterﺜﻡ ﺴﻴﻨﺘﻘل ﻤﺎﻜﺘﺒﺘﻪ ﻤﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ .
ﻋﻨﺩ ﺍﻟﻀﻐﻁ ﻋﻠﻰ ﺃﻱ ﺍﺴﻡ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺴﻭﻑ ﻴﻅﻬﺭ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻟﻴﻤﻜﻨﻙ ﻤﻥ
ﺘﻌﺩﻴﻠﻪ ﺇﺫﺍ ﺃﺭﺩﺕ ﺜﻡ ﻀﻐﻁ ﺯﺭ ﺘﻌﺩﻴل ﻟﻴﻌﻴﺩﻩ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺒﻌﺩ ﺍﻟﺘﻌﺩﻴل .ﻟﺤﺫﻑ ﺃﻱ ﺍﺴﻡ
ﺍﺨﺘﺭ ﺍﻹﺴﻡ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺜﻡ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺤﺫﻑ ﺴﺘﻅﻬﺭ ﻟﻙ ﺭﺴﺎﻟﺔ ﺘﺄﻜﻴﺩﻴﺔ ﺍﺨﺘﺭ
Yesﻟﻠﺤﺫﻑ ﺃﻭ Noﻹﻟﻐﺎﺀ ﺃﻤﺭ ﺍﻟﺤﺫﻑ .ﻟﻠﺨﺭﻭﺝ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺨﺭﻭﺝ .ﺍﻨﻅﺭ
ﺍﻟﺸﻜﻠﻴﻥ ) (٩-٩ﻭ )(١٠-٩
١٠٦
kal_judaia@hotmail.com ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ
١٠٧
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
١٠٨
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
١٠٩
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻓﻲ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻷﻭﻟﻰ ﻨﻌﺭﻑ ﻤﺘﻐﻴﺭ ﻟﺤﻔﻅ ﺍﻟﺭﺴﺎﻟﺔ ﺍﻟﺘﺤﺫﻴﺭﻴﺔ ﻗﺒل ﺤﺫﻑ
ﺍﻻﺴﻡ.
ﻓﻲ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺤﻔﻅ ﺍﻻﺴﻡ ﺍﻟﺤﺎﻟﻲ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺒﺎﻹﻀﺎﻓﺔ
ﺇﻟﻰ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺤﺫﻴﺭﻴﺔ .ﻤﺜﺎل ﻟﻭ ﺍﺨﺘﺎﺭ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﺴﻡ ﺃﺤﻤﺩ
ﻓﺈﻨﻪ ﺴﻴﻅﻬﺭ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ .ﻓﺈﺫﺍ ﻨﻘﺭ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﻠﻰ ﺯﺭ ﺤﺫﻑ ﻓﺴﺘﻜﻭﻥ
ﺍﻟﻌﺒﺎﺭﻩ ﻫل ﺃﻨﺕ ﻤﺘﺄﻜﺩ ﻤﻥ ﺤﺫﻑ ﺃﺤﻤﺩ .ﻜﻤﺎ ﺘﻌﺭﻑ ﺃﻥ ﻗﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ
Textﻫﻲ ﻗﻴﻤﺔ ﻨﺼﻴﺔ ﺒﻤﻌﻨﻰ ﺃﻨﻪ ﻨﺹ ﻭﻟﻬﺫﺍ ﺍﻟﺴﺒﺏ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻹﺸﺎﺭﺓ &
ﻭﻫﻲ ﻹﻀﺎﻓﺔ ﻨﺹ ﺇﻟﻰ ﻨﺹ .
ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺜﺎﻟﺜﺔ ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺭﺴﺎﻟﺔ ﺘﺄﻜﻴﺩﻴﺔ ﻟﻠﺤﺫﻑ ﻓﺈﺫﺍ ﻀﻐﻁ
ﺯﺭ Yesﻓﺴﻭﻑ ﻴﺘﻡ ﺍﻟﺤﺫﻑ.
ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺤﺴﺏ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ :
-١ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺃﺤﻤﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٢ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺨﺎﻟﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٣ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻤﺴﺎﻋﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٤ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺩﺨﻴل ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
ﺤﺘﻰ ﺍﻵﻥ ﻻﺤﻅ ﺃﻥ ﺍﻻﺴﻤﺎﺀ ﺍﻟﺘﻲ ﻜﺘﺒﺘﻬﺎ ﺍﻀﻴﻔﺕ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻨﻅﺭ ﺍﻟﺸﻜل ).(٩-٩
١١٠
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
١١١
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺩﺭﺱ ﺍﻟﺭﺍﺒﻊ
ﺴﻭﻑ ﻨﻘﻭﻡ ﻓﻲ ﺍﻟﺘﺩﺭﻴﺏ ﺍﻟﺘﺎﻟﻲ ﺒﺎﻟﺘﻌﺎﻤل ﻤﻊ ﺜﻼﺜﺔ ﺃﻨﻭﺍﻉ ﻤﻥ ﺍﻟﻘﻭﺍﺌﻡ ﻭﻫﻲ ﻤﺭﺒﻊ ﺍﻟﻬﺩﻑ
ﺍﻟﻘﺎﺌﻤﺔ ﻭﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ ﻭ ﻗﺎﺌﻤﺔ ﻤﺭﺒﻊ ﺍﻟﺨﻴﺎﺭ .ﻭﻫﻲ ﻤﻥ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻬﻤﺔ ﻓﻲ vb.net
ﺨﺼﻭﺼﺎ ﻟﻤﻥ ﻴﺭﻴﺩ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻨﻤﻭﺫﺝ ﻭﺴﻭﻑ ﻨﻀﻴﻑ ﺇﻟﻴﻪ ﻤﺭﺒﻊ ﻗﺎﺌﻤﺔ – -ListBoxﻭ ﺃﺩﺍﺓ ﻤﺭﻜﺒﺔ ﻭ ﻗﺎﺌﻤﺔ ﻤﺭﺒﻊ ﺍﻷﺩﻭﺍﺕ
ﺸﻜل )-٩ ﺍﻟﺨﻴﺎﺭ ﻭ ﺃﺭﺒﻊ ﺃﺯﺭﺍﺭ ﺃﻤﺭ ﻭﺴﺒﻊ ﺃﺩﺍﻭﺍﺕ ﻋﻨﻭﺍﻥ ﻭﺃﺩﺍﺓ ﻨﺹ .ﺍﻨﻅﺭ
(١١
ﺴﺘﻜﻭﻥ ﺍﻟﻌﻤﻠﻴﺔ ﻜﺎﻟﺘﺎﻟﻲ .ﺴﻭﻑ ﺘﻜﺘﺏ ﺍﺴﻡ ﻓﻲ ﺃﺩﺍﺓ ﺍﻟﻨﺹ ﺜﻡ ﺘﻨﻘﺭ ﺯﺭ ﺇﻀﺎﻓﺔ ﺃﻭ ﺍﻟﻨﺎﺘﺞ
ﺘﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ – -Enterﺜﻡ ﺴﻴﻨﺘﻘل ﻤﺎ ﻜﺘﺒﺘﻪ ﻤﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ
ﺫﺍﺕ ﺍﻟﻌﻼﻤﺔ .ﻟﺤﺫﻑ ﺃﻱ ﺍﺴﻡ ﺍﺨﺘﺭ ﺍﻹﺴﻡ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺜﻡ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺤﺫﻑ
ﺴﺘﻅﻬﺭ ﻟﻙ ﺭﺴﺎﻟﺔ ﺘﺄﻜﻴﺩﻴﺔ ﺍﺨﺘﺭ Yesﻟﻠﺤﺫﻑ ﺃﻭ Noﻹﻟﻐﺎﺀ ﺃﻤﺭ ﺍﻟﺤﺫﻑ .ﻋﻨﺩ
ﺍﻹﻨﺘﻬﺎ ﻤﻥ ﻜﺘﺎﺒﺔ ﺍﻷﺴﻤﺎﺀ ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﺴﻡ ﺍﻟﻁﺎﻟﺏ ﺍﻟﻨﺎﺠﺢ ﻤﺭﺓ ﻭﺍﺤﺩ ﻤﻤﺎ ﻴﺅﺩﻱ ﺇﻟﻰ
ﺘﻅﻠﻴل ﻫﺫﺍ ﺍﻹﺴﻡ ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﻟﻤﺭﺒﻊ ﺍﻟﺫﻱ ﺒﺠﻭﺍﺭ ﺍﻻﺴﻡ ﻟﻜﻲ ﺘﻅﻬﺭ ﻋﻠﻴﻪ ﻋﻼﻤﺔ . 9
ﻀﻊ ﻫﺫﻩ ﺍﻟﻌﻼﻤﺔ ﺍﻤﺎﻡ ﺍﻟﻁﻼﺏ ﺍﻟﻨﺎﺠﺤﻴﻥ .ﻓﻲ ﺍﻟﻨﻬﺎﻴﺔ ﺍﻨﻘﺭ ﺯﺭ ﺘﻭﺯﻴﻊ ﻟﻜﻲ ﻴﻨﻘل
ﺍﻟﻁﻼﺏ ﺍﻟﻨﺎﺠﺤﻴﻥ ﺇﻟﻰ ﻤﺭﺒﻊ ﺍﻟﻘﺎﺌﻤﺔ ﻭﺍﻟﻁﻼﺏ ﻏﻴﺭ ﺍﻟﻨﺎﺠﺤﻴﻥ ﺇﻟﻰ ﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ
ﻭﻴﻅﻬﺭ ﻟﻙ ﻋﻠﻰ ﺃﺩﻭﺍﺕ ﺍﻟﻌﻨﻭﺍﻥ ﻋﺩﺩ ﺍﻟﻁﻼﺏ ﺍﻟﻜﻠﻲ ﻭﻋﺩﺩ ﺍﻟﻨﺎﺠﺤﻴﻥ ﻭﻋﺩﺩ
ﺍﻟﺭﺍﺴﺒﻴﻥ .ﻟﻠﺨﺭﻭﺝ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺨﺭﻭﺝ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(١٢-٩
١١٢
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻏﻴﺭ ﺨﺼﺎﺌﺹ ﺍﻷﺩﻭﺍﺕ ﻟﺘﺼﺒﺢ ﻤﻁﺎﺒﻘﺔ ﻟﻠﺠﺩﻭل ﺍﻟﺘﺎﻟﻲ ﺍﻨﻅﺭ ﺍﻟﺸﻜل )(١١-٩ -٢ﺘﻌﺩﻴل
ﺍﻟﺨﺼﺎﺌﺹ
ﺍﻟﻤﻁﻠﻭﺒﺔ ﺃﺜﻨﺎﺀ
ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ ﺍﺴﻡ ﺍﻷﺩﺍﺓ ﺍﻟﺘﺼﻤﻴﻡ
١١٣
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻀﺎﻓﺔ Text
cmdUpdate Name Button2
ﺤﺫﻑ Text
CmdMove Name Button3
ﺘﻭﺯﻴﻊ Text
CmdExit Name Button4
ﺨﺭﻭﺝ Text
LstSuccess Name ListBox1
cboFail Name ComboBox1
chsAll Name CheckedListBox
Right RightToLeft Form1
cmdAdd AcceptButton
Moccasin BackColor
١١٤
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.IIIﻓﻲ ﺤﺎﻟﺔ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻟﻡ ﻴﺩﺨل ﺍﺴﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻟﻥ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻤﺎﻴﻨﺩﺭﺝ
ﺘﺤﺕ Ifﻭﺴﻴﻨﻔﺫ ﺒﺩﻻ ﻤﻨﻪ ﻤﺎﺒﻌﺩ Elseﻟﺫﻟﻙ ﺴﻭﻑ ﺘﻅﻬﺭ ﺭﺴﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺘﺨﺒﺭﻩ ﺃﻨﻪ
ﻴﺠﺏ ﺃﻥ ﻴﻜﺘﺏ ﺍﺴﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ.
ﺤﺫﻑ -٤
ﻤﻥ ﻋﻨﺼﺭ
.Iﺍﻨﻘﺭ ﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺯﺭ ﺤﺫﻑ ﻭﺍﻜﺘﺏ ﺍﻟﺘﺎﻟﻲ ﺍﻟﻘﺎﺌﻤﺔ
Dim s As String
If chsAll.SelectedIndex <>-1 Then
" & chsAll.SelectedItem.ToStringﻫل ﺃﻨﺕ ﻤﺘﺄﻜﺩ ﻤﻥ ﺤﺫﻑ " = s
" ،ﺘﺤﺫﻴﺭ :ﺤﺫﻑ"If MessageBox.Show(s_ ،
_ )MessageBox.YesNo + MessageBox.IconQuestion
= DialogResult.Yes Then
)chsAll.Items.Remove(chsAll.SelectedIndex
End If
End If
١١٥
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
.IIﻋﺭﻓﻨﺎ ﺃﺭﺒﻌﺔ ﻤﺘﻐﻴﺭﺍﺕ ،ﺃﻭل ﻫﺫﻩ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ Iﻭ ﺍﻟﻬﺩﻑ ﻤﻨﻪ ﺃﻥ ﻴﻜﻭﻥ ﻋﺩﺍﺩ
ﻓﻲ ﺍﻟﺘﻜﺭﺍﺭ intFail .ﻭ intSuccessﻭ intAllﻟﻨﺤﺘﻔﻅ ﺒﻌﺩﺩ ﺍﻟﺭﺍﺴﺒﻴﻥ
ﻭﺍﻟﻨﺎﺠﺤﻴﻥ ﻭﺍﻟﻌﺩﺩ ﺍﻟﻜﻠﻲ ﻟﻠﻁﻼﺏ.
.IIIﻨﺤﺫﻑ ﺠﻤﻴﻊ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻟﻘﺎﺌﻤﺔ ﻭﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ ﻭﺫﻟﻙ ﻓﻴﻤﺎ ﻟﻭ
ﻜﺎﻥ ﻫﻨﺎﻙ ﻋﻨﺎﺼﺭ ﻤﺴﺒﻘﺎ .ﻭﻴﻜﻭﻥ ﺤﺫﻑ ﺠﻤﻴﻊ ﺍﻟﻌﻨﺎﺼﺭ ﻋﻥ ﻁﺭﻴﻕ
ﺍﻟﺨﺎﺼﻴﺔ . clear
.IVﺘﺒﺩﺃ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ﻟﻠﺘﺄﻜﺩ ﻤﻥ ﺤﺎﻟﺔ ﺍﻟﻌﻨﺎﺼﺭ ﻓﻜل ﻋﻨﺼﺭ ﻗﺩ ﻭﻀﻊ ﺍﻤﺎﻡ
ﻤﺭﺒﻌﻪ 9ﻓﻬﻭ ﻨﺎﺠﺢ ﻭﺍﻟﻌﻨﺼﺭ ﺍﻟﺫﻱ ﺒﺨﻼﻑ ﺫﻟﻙ ﺭﺍﺴﺏ .ﻻﺤﻅ ﺃﻥ ﻋﺩﺍﺩ
ﺍﻟﺘﻜﺭﺍﺭ ﻴﻨﺘﻬﻲ ﺇﻟﻰ chsAll.Items.Count – 1ﻴﻌﻨﻲ ﻟﻭ ﻜﺎﻥ ﺍﻟﻌﺩﺩ ﺍﻟﻜﻠﻲ
ﻟﻠﻌﻨﺎﺼﺭ ﺴﺘﺔ ﻓﻨﻬﺎﻴﺔ ﺍﻟﺘﻜﺭﺍﺭ ﺨﻤﺴﺔ ﻟﻜﻥ ﻟﻭ ﻻﺤﻅﺕ ﺒﺩﺍﻴﺘﻪ ﻓﻬﻲ ﻤﻥ ﺼﻔﺭ
ﻤﻌﻨﻰ ﺫﻟﻙ ﺃﻨﻪ ﺴﺘﻜﺭﺭ ﺴﺕ ﻤﺭﺍﺕ.
.Vﺴﻭﻑ ﻴﻤﻜﻨﻨﺎ ﺍﻟﺘﻜﺭﺍﺭ ﻤﻥ ﺍﻟﻤﺭﻭﺭ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻟﻌﻨﺎﺼﺭ ﻋﻨﺼﺭ ﻋﻨﺼﺭ
ﻟﻠﺘﺄﻜﺩ ﻤﻥ ﻗﻴﻤﺘﻬﺎ
If chsAll.GetItemChecked(i) = True Then
ﻻﺤﻅ ﺃﻥ ﺨﺎﺼﻴﺔ ) chsAll.GetItemChecked(iﻫﻲ ﺍﻟﺘﻲ ﺘﺨﺒﺭﻨﺎ ﻫل ﺍﻟﻌﻨﺼﺭ
ﺃﻤﺎﻤﻪ 9ﺃﻭ ﻻ .ﻓﺈﺫﺍ ﻜﺎﻨﺕ ﻗﻴﻤﺔ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ Trueﻓﻬﺫﺍ ﻴﺩل ﺃﻥ ﺃﻤﺎﻤﻬﺎ ﻋﻼﻤﺔ.
١١٦
ﺧﺎﻟﺪ ﺍﳉﺪﻳﻊ kal_judaia@hotmail.com
ﻁﺒﻌﺎ ﺘﻼﺤﻅ ﺃﻨﻨﺎ ﻨﻤﺭ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻟﻌﻨﺎﺼﺭ ﻷﻥ ﻗﻴﻤﺔ Iﺘﺯﻴﺩ ﻜل ﻤﺭﻩ ﺤﺘﻰ ﻨﺼل
ﻟﻠﻌﻨﺼﺭ ﺍﻷﺨﻴﺭ.
.VIﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺍﻀﺎﻓﺔ ﺍﻟﻌﻨﺎﺼﺭ ﺫﺍﺕ ﺍﻟﻌﻼﻤﺔ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﻭﺍﻟﺘﻲ ﻟﻴﺱ ﺃﻤﺎﻤﻬﺎ
ﻋﻼﻤﺔ ﺇﻟﻰ ﺍﻷﺩﺍﺓ ﺍﻟﻤﺭﻜﺒﺔ.
ﻜﻤﺎ ﺘﻼﺤﻅ ﺇﻥ ﻜﺎﻥ ﺃﻤﺎﻡ ﺍﻟﻌﻨﺼﺭ ﻋﻼﻤﺔ ﺃﻀﻔﻨﺎ ﻭﺍﺤﺩ ﺇﻟﻰ ﻗﻴﻤﺔ intSuccessﻭﺇﻥ ﻟﻡ
ﻴﻜﻥ ﺃﻤﺎﻤﻪ ﻋﻼﻤﺔ ﺃﻀﻔﻨﺎ ﻭﺍﺤﺩ ﺇﻟﻰ ﻗﻴﻤﺔ intFailﻭﻓﻲ ﻜﻠﺘﺎ ﺍﻟﺤﺎﻟﺘﻴﻥ ﻨﻀﻴﻑ ﻭﺍﺤﺩ ﺇﻟﻰ
ﻗﻴﻤﺔ intAllﺜﻡ ﻨﻌﺭﻀﻬﺎ ﻋﻠﻰ ﺃﺩﻭﺍﺕ ﺍﻟﻌﻨﻭﺍﻥ.
ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ
ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺤﺴﺏ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ :
-١ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺨﺎﻟﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٢ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻤﺤﻤﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٣ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺃﺤﻤﺩ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٤ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻋﺒﺩﺍﻟﺭﺤﻤﻥ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٥ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻋﺒﺩﺍﷲ ﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ.
-٦ﺃﻜﺘﺏ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻋﻤﺭﺜﻡ ﺍﻨﻘﺭ ﺍﻀﺎﻓﺔ ﺃﻭ ﺍﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ
ﺤﺘﻰ ﺍﻵﻥ ﻻﺤﻅ ﺃﻥ ﺍﻻﺴﻤﺎﺀ ﺍﻟﺘﻲ ﻜﺘﺒﺘﻬﺎ ﺘﻀﺎﻑ ﺇﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺇﻤﺎ ﺒﻀﻐﻁ ﺯﺭ ﺍﻟﺭﺠﻭﻉ ﺃﻭ
ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺍﻀﺎﻓﺔ
-٧ﺍﻨﻘﺭ ﻤﺭﻩ ﻭﺍﺤﺩﻩ ﻋﻠﻰ ﺍﺴﻡ ﻤﺤﻤﺩ ﻭﻻﺤﻅ ﺃﻨﻪ ﺘﻅﻠل.
-٨ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﻟﻤﺭﺒﻊ ﺍﻟﺫﻱ ﻋﻠﻰ ﻴﻤﻴﻥ ﻤﺤﻤﺩ ﻭﻻﺤﻅ ﻅﻬﻭﺭ ﺍﻟﻌﻼﻤﺔ .9
-٩ﻜﺭﺭ ﺍﻟﺨﻁﻭﺘﻴﻥ ﺍﻟﺴﺎﺒﻘﺘﻴﻥ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻌﺒﺩﺍﻟﺭﺤﻤﻥ ﻭﻋﻤﺭ.
-١٠ﻴﺠﺏ ﺃﻥ ﻴﻅﻬﺭ ﻟﻙ ﺸﻜل ). (١٢-٩
-١١ﺍﻨﻘﺭ ﺯﺭ ﺨﺭﻭﺝ ﻷﻨﻬﺎﺀ ﺍﻟﺒﺭﻨﺎﻤﺞ.
ﺷﻜﻞ : ١٢-٩ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻘﺎﺋﻢ ﺍﻟﺜﻼﺙ
١١٧
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻤﻨﻊ ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﺃﻜﺜﺭ ﻤﻥ ﻤﺭﻩ :ﻻﺤﻅﺕ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺃﻨﻪ ﻜﻠﻤﺎ ﻨﻘﺭﺕ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ
ﻋﺭﺽ ﻟﻙ ﻨﻔﺱ ﺍﻟﻨﻤﻭﺫﺝ ،ﻤﺎﺫﺍ ﻟﻭ ﺃﺭﺩﺕ ﺃﻥ ﻴﺘﻡ ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﻤﺭﻩ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ﻤﻬﻤﺎ ﻨﻘﺭ
ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ .ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﻴﻭﻀﺢ ﻟﻙ ﺍﻟﻔﻜﺭﺓ :
Private frm2 As Form2
ﺇﻨﺸﺎﺀ ﺍﻟﻘﻭﺍﺌﻡ
ﻴﻌﺘﺒﺭ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻘﻭﺍﺌﻡ ﻤﻌﻴﺎﺭﺍ ﺍﺴﺎﺴﻴﺎ ﻓﻲ ﻜﺜﻴﺭ ﻤﻥ ﺍﻷﻨﻅﻤﺔ .ﻤﻥ ﺃﻫﻡ ﻓﻭﺍﺌﺩ ﺍﻟﻘﻭﺍﺌﻡ ﻫﻲ ﺘﻨﻅﻴﻡ ﻭ
ﺘﺴﻬﻴل ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻭﻅﺎﺌﻑ ﺍﻟﻨﻅﺎﻡ ﺍﻟﻤﺨﺘﻠﻔﺔ .ﺘﻭﻓﺭ ﻟﻨﺎ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻁﺭﻴﻘﺔ ﺴﻬﻠﺔ ﺠﺩﺍ ﻹﻨﺸﺎﺀ
ﺍﻟﻨﻅﺎﻡ .ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺍﻨﺘﻘﻠﺕ ﺍﻟﻘﻭﺍﺌﻡ ﻟﺘﺼﺒﺢ ﺃﺩﺍﺓ ﻤﺜل ﺍﻷﺩﻭﺍﺕ ﺍﻷﺨﺭﻯ ﺘﺴﺘﻁﻴﻊ ﺇﻀﺎﻓﺘﻬﺎ ﻤﻥ
ﻤﺭﺒﻊ ﺍﻷﺩﻭﺍﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺴﺤﺏ ﻭ ﺍﻻﻓﻼﺕ ﻜﻤﺎ ﺘﺭﻯ ﻤﻥ ﺍﻟﺸﻜل ).(١-١١
ﺷﻜﻞ : ١-١١أداة اﻟﻘﻮاﺋﻢ
ﺘﺘﻜﻭﻥ ﺍﻟﻘﺎﺌﻤﺔ ﻤﻥ ﻋﺩﺓ ﻗﻭﺍﺌﻡ ﻓﺭﻋﻴﺔ ﻜل ﻭﺍﺤﺩ ﻤﻥ ﻫﺫﻩ ﺍﻟﻘﻭﺍﺌﻡ ﺍﻟﻔﺭﻋﻴﺔ ﻴﻤﻜﻥ ﺃﻥ ﻴﻨﻔﺫ ﺃﻤﺭﺍ ﻤﺎ ﻤﺜل
ﺍﺴﺘﺩﻋﺎﺀ ﻨﻤﻭﺫﺝ ﺁﺨﺭ .ﺴﻭﻑ ﻨﻘﻭﻡ ﺒﺘﺼﻤﻴﻡ ﻗﺎﺌﻤﺔ ﻜﻤﺎ ﻴﻅﻬﺭ ﻟﻙ ﻤﻥ ﺍﻟﺸﻜل).(٢-١١
-٢ﺍﻨﻘﺭ ﺍﻟﻤﺭﺒﻊ ﺍﻟﺼﻐﻴﺭ ﺍﻟﺫﻱ ﻅﻬﺭ ﻟﻙ ﻤﺭﺓ ﻭﺍﺤﺩﺓ ﻭﺍﻜﺘﺏ ﻜﻠﻤﺔ ﻤﻠﻑ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ
ﺍﻟﺸﻜل)(٤-١١
ﺷﻜﻞ : ٤-١١ﻃﺮﻳﻘﺔ ﺇﺿﺎﻓﺔ ﻗﺎﺋﻤﺔ ﺭﺋﻴﺴﻴﺔ ﺃﻭ ﻓﺮﻋﻴﺔ
-٣ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﻤﺭﺒﻌﺎﻥ ﺁﺨﺭﺍﻥ ﺃﺤﺩﻫﻤﺎ ﻋﻠﻰ ﺍﻟﻴﻤﻴﻥ ﻭ ﺍﻵﺨﺭ ﺇﻟﻰ ﺃﺴﻔل .ﻴﻤﺜل ﻫﺫﺍ
ﺍﻟﻤﺭﺒﻌﺎﻥ ﻤﻜﺎﻨﺎﻥ ﻟﻜﺘﺎﺒﺔ ﺍﺴﻡ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻷﺨﺭﻯ .ﻗﻡ ﺒﺎﻟﻨﻘﺭ ﻋﻠﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻴﻤﻨﻰ ﻭﺍﻜﺘﺏ ﻤﺴﺎﻋﺩﺓ
ﻜﻤﺎ ﺘﺭﻯ ﻤﻥ ﺍﻟﺸﻜل).(٥-١١
ﺷﻜﻞ : ٥-١١ﻇﻬﻮﺭ ﻗﺎﺋﻤﺔ ﻓﺮﻋﻴﺔ ﻭ ﺃﺧﺮﻯ ﺭﺋﻴﺴﻴﺔ ﻋﻨﺪ ﺇﺿﺎﻓﺔ ﻗﺎﺋﻤﺔ ﺭﺋﻴﺴﻴﺔ
ﻓﻲ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺴﻭﻑ ﻨﻘﻭﻡ ﺒﺒﻨﺎﺀ ﺒﺭﻨﺎﻤﺞ ﻴﻤﺜل ﺴﺎﻋﺔ .ﺴﻭﻑ ﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﺯﺭ ﺃﻤﺭ ﻭ
ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭ ﺃﺩﺍﺓ ﺘﻭﻗﻴﺕ ،ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﺴﻭﻑ ﻴﺘﻡ ﺘﺸﻐﻴل ﺃﺩﺍﺓ ﺍﻟﺘﻭﻗﻴﺕ ﻭ ﺍﻟﺘﻲ
ﺴﺘﻘﻭﻡ ﺒﻌﺭﺽ ﺍﻟﺴﺎﻋﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ .ﺃﻀﻑ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﺘﻅﻬﺭ ﻓﻲ ﺍﻟﺸﻜل )(٦-١١
ﺷﻜﻞ : ٦-١١ﺗﺼﻤﻴﻢ ﺑﺮﻧﺎﻣﺞ ﺍﻟﺴﺎﻋﺔ
ﻻﺤﻅ ﺃﻥ ﻗﻴﻤﺔ ﺨﺎﺼﻴﺔ Intervalﻫﻲ ١٠٠٠ﻤﻠﻲ ﺜﺎﻨﻴﺔ ﻭ ﻴﺴﺎﻭﻱ ﺜﺎﻨﻴﺔ ﻭﺍﺤﺩﺓ ﻭﻫﻭ ﻤﺎ
ﻴﻌﻨﻲ ﺃﻥ ﺍﻟﻜﻭﺩ ﺩﺍﺨل ﺍﻟﺤﺩﺙ Tickﺴﻴﺘﻡ ﺘﻨﻔﻴﺫﻩ ﻜل ﺜﺎﻨﻴﺔ.
اﻟﺸﺮح اﻟﺨﺎﺻﻴﺔ
أﻗﻞ ﻗﻴﻤﺔ ﻳﻤﻜﻦ اﺧﺘﻴﺎرهﺎ ﻣﻦ اﻟﺘﻘﻮﻳﻢ. MinDate
أآﺒﺮ ﻗﻴﻤﺔ ﻳﻤﻜﻦ اﺧﺘﻴﺎرهﺎ ﻣﻦ اﻟﺘﻘﻮﻳﻢ. MaxDate
إذا أردت ﻋﺮض ﻣﺮﺑﻊ اﺧﺘﻴﺎر ﻓﻲ اﻷداة. ShowCheckBox
ﺃﻀﻑ ﺯﺭ ﺃﻤﺭ ﻭ ﺃﺩﺍﺓ ﺍﻟﻭﻗﺕ ﻭ ﺍﻟﺘﺎﺭﻴﺦ .ﺃﻨﻘﺭ ﻤﺯﺩﻭﺠﺎ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﺜﻡ ﺍﻜﺘﺏ
ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ :
)DateTimePicker1.MinDate = New DateTime(1985, 6, 20
DateTimePicker1.MaxDate = DateTime.Today
DateTimePicker1.ShowCheckBox = True
)MessageBox.Show(DateTimePicker1.Value
ﻻﺤﻅ ﺃﻨﻨﺎ ﻋﻴﻨﺎ ﻗﻴﻤﺔ ﺩﻨﻴﺎ ﻭ ﻋﻠﻴﺎ ﻷﺩﺍﺓ ﺍﻟﻭﻗﺕ ﻭ ﺍﻟﺘﺎﺭﻴﺦ ﻓﻠﻭ ﺤﺎﻭﻟﺕ ﺍﺨﺘﻴﺎﺭ ﺃﻱ ﺘﺎﺭﻴﺦ ﻴﺘﺠﺎﻭﺯ
ﻫﺎﺘﻴﻥ ﺍﻟﻘﻴﻤﺘﻴﻥ ﻓﻠﻥ ﺘﺴﻤﺢ ﻟﻙ ﺍﻷﺩﺍﺓ ﺍﻨﻅﺭ ﺸﻜل ).(٨-١١
ﺘﺘﺸﺎﺒﻪ ﺒﻌﺽ ﻫﺫﻩ ﺍﻷﺩﻭﺍﺕ ﻓﻴﻤﺎ ﺒﻴﻨﻬﺎ ﺒﻁﺭﻴﻘﺔ ﺍﻟﺘﻌﺎﻤل ﻤﻌﻬﺎ ﻓﺒﻤﺠﺭﺩ ﺃﻥ ﺘﺘﻌﺎﻤل ﻤﻊ ﻭﺍﺤﺩﺓ ﻤﻥ ﻫﺫﻩ
ﺍﻷﺩﻭﺍﺕ ﺤﺘﻰ ﻴﺼﺒﺢ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺒﺎﻗﻲ ﺍﻷﺩﻭﺍﺕ ﻤﺠﺭﺩ ﻭﻗﺕ .ﺴﻭﻑ ﻨﺘﻌﺭﺽ ﻷﻭل ﺜﻼﺙ ﺃﺩﻭﺍﺕ
ﻭﻨﺘﺭﻙ ﺍﻟﺜﻼﺙ ﺍﻟﺒﺎﻗﻴﺔ ﻟﻙ.
ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﺃﺩﺍﺓ ﺍﻟﺤﻭﺍﺭ ﻟﻔﺘﺢ ﺍﻟﻤﻠﻔﺎﺕ ﻭ ﺃﺩﺍﺓ ﺼﻭﺭﺓ Pictureboxﻜﻤﺎ
ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ :
ﺍﻟﻘﻴﻤﺔ ﺍﻟﺨﺎﺼﻴﺔ ﺍﺴﻡ ﺍﻷﺩﺍﺓ
cmdOpenPicture Name Button1
ﻓﺘﺢ ﺼﻭﺭﺓ Text
pb Name Picturebox
ofd Name OpenFileDialog
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺘﺭﺸﻴﺢ ﻨﻭﻉ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﻓﻲ File Of Typeﻟﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﺒﺎﻟﻁﺭﻴﻘﺔ
ﺍﻟﺘﺎﻟﻴﺔ :ﺍﻻﺴﻡ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺃﻥ ﻴﻅﻬﺭ ﻭﻫﻭ ﻓﻲ ﺤﺎﻟﺘﻨﺎ File Nameﺜﻡ ﻋﻼﻤﺔ | ﺜﻡ * ﺜﻡ .ﺜﻡ ﻨﻭﻉ
ﺍﻟﻤﻠﻑ ﻤﺜل Bmpﺜﻡ ﺘﺒﺩﺃ ﺘﺭﺸﻴﺢ ﺁﺨﺭ ﺒﻨﻔﺱ ﺍﻟﻁﺭﻴﻘﺔ.
ﺷﻜﻞ : ٩-١١ﺍﺧﺘﻴﺎﺭ ﻣﻠﻒ ﻣﻦ ﻧﺎﻓﺬﺓ ﺍﳊﻮﺍﺭ
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭ ﺯﺭ ﺃﻤﺭ ﻭ ﺃﺩﺍﺓ ﺤﻭﺍﺭ ﺍﻟﺨﻁ ﺜﻡ ﺍﻨﻘﺭ ﻤﺯﺩﻭﺠﺎ ﻋﻠﻰ ﻤﺭﺒﻊ
ﺍﻟﻨﺹ ﻭ ﺍﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ :
With FontDialog1
.ShowApply = True
If .ShowDialog = DialogResult.OK Then
Button1.Font = .Font
Label1.Font = .Font
End If
End With
ﻓﻲ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﺘﻔﻌﻴل ﺨﺎﺼﻴﺔ ShowApplyﻤﻤﺎ ﻴﺅﺩﻱ ﺇﻟﻰ ﺇﻅﻬﺎﺭ Applyﻓﻲ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ﺍﻟﺨﻁ.
-٢ﺍﻟﺘﺄﻜﺩ ﺃﻥ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻨﻘﺭ ﺯﺭ .Ok
-٣ﺘﻐﻴﻴﺭ ﺨﻁ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻭ ﺯﺭ ﺍﻷﻤﺭ ﺒﺎﻟﺨﻁ ﺍﻟﺫﻱ ﺍﺨﺘﺎﺭﻩ ﺍﻟﻤﺴﺘﻔﻴﺩ
ﺷﻜﻞ : ١٠-١١ﺍﺧﺘﻴﺎﺭ ﻣﻮﺍﺻﻔﺎﺕ ﺍﳋﻂ
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻨﻘﺭ ﻤﺯﺩﻭﺠﺎ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﻭ ﺍﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﺜﻡ ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺍﻨﻘﺭ ﺯﺭ ﺍﻷﻤﺭ ﻟﺘﺭﻯ
ﺍﻟﺸﻜل):(١١-١١
With ColorDialog1
.SolidColorOnly = True
If .ShowDialog = DialogResult.OK Then
Button1.BackColor = .Color
Label1.ForeColor = .color
End If
End With
120
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
121
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
: MaxLength -٢ﺘﺴﺘﺨﺩﻡ ﻹﻋﻁﺎﺀ ﺤﺩ ﺃﻗﺼﻰ ﻟﻌﺩﺩ ﺍﻟﺤﺭﻭﻑ ﺍﻟﻤﺩﺨﻠﺔ ﺇﻟﻰ ﻤﺭﺒﻊ ﺍﻟﻨﺹ .ﻋﻨﺩ
ﻤﺤﺎﻭﻟﺔ ﺘﺨﻁﻲ ﺍﻟﻌﺩﺩ ﺍﻷﻗﺼﻰ ﻓﺈﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻟﻥ ﻴﺴﻤﺢ ﻟﻙ ﺒﺎﻟﻜﺘﺎﺒﺔ ﻭﺴﻭﻑ ﺘﺴﻤﻊ ﻨﻐﻤﺔ
ﺒﻴﺏ ﺇﻥ ﺤﺎﻭﻟﺕ ﺍﻟﺯﻴﺎﺩﺓ ﻋﻠﻰ ﺍﻟﺤﺩ ﺍﻷﻗﺼﻰ.
: ReadOnly -٣ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻤﻨﻊ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻤﻥ ﺇﺩﺨﺎل ﺃﻱ ﻨﺹ ﺇﻟﻰ ﻤﺭﺒﻊ ﺍﻟﻨﺹ
ﻗﻡ ﺒﺈﻋﻤﺎل ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ .ﻓﻲ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ ﻴﺴﺘﻁﻴﻊ ﺍﻟﻤﺴﺘﻔﻴﺩ ﺭﺅﻴﺔ ﻤﺎ ﻫﻭ ﻤﻜﺘﻭﺏ ﻓﻲ ﻤﺭﺒﻊ
ﺍﻟﻨﺹ ﻟﻜﻥ ﻟﻥ ﻴﺴﺘﻁﻴﻊ ﺘﻐﻴﻴﺭ ﺍﻟﻨﺹ.
: CharcterCasing -٤ﺘﺴﺘﺨﺩﻡ ﻟﻠﺘﺤﻭﻴل ﺍﻵﻟﻲ ﺒﻴﻥ ﺤﺎﻻﺕ ﺍﻟﺤﺭﻭﻑ – ﺼﻐﻴﺭ ﺃﻭ ﻜﺒﻴﺭ – ﻗﺩ
ﻴﻜﻭﻥ ﻤﻥ ﺍﻟﻤﻔﻴﺩ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻲ ﺍﻟﻜﻠﻤﺔ ﺍﻟﺴﺭﻴﺔ ﺇﺫﺍ ﻜﺎﻨﺕ ﻜﻠﻤﺔ ﺍﻟﺴﺭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺤﺭﻭﻑ
ﺼﻐﻴﺭﺓ.
ﻜﻴﻑ ﺘﺴﺘﺨﺩﻡ ﻜﺎﺌﻥ ﻤﺯﻭﺩ ﺍﻷﺨﻁﺎﺀ
ﻴﺴﺘﺨﺩﻡ ﻜﺎﺌﻥ ﻤﺯﻭﺩ ﺍﻷﺨﻁﺎﺀ ErrorProviderﻟﺘﻨﺒﻴﻪ ﺍﻟﻤﺴﺘﻔﻴﺩ ﺇﻟﻰ ﺍﻷﺨﻁﺎﺀ ﻭﻁﺭﻕ ﺇﺼﻼﺤﻬﺎ.
ﻴﺘﻤﻴﺯ ﻋﻥ ﻤﺭﺒﻊ ﺍﻟﺭﺴﺎﻟﺔ ﺒﺄﻨﻪ ﻻ ﻴﻔﺘﺢ ﻨﺎﻓﺫﺓ ﺃﺨﺭﻯ ﻟﻠﻤﺴﺘﻔﻴﺩ ﻜﻤﺎ ﺃﻨﻪ ﻴﻅل ﻤﻭﺠﻭﺩﺍ ﺃﻤﺎﻡ ﻋﻴﻥ
ﺍﻟﻤﺴﺘﻔﻴﺩ ﺤﺘﻰ ﻴﺼﻠﺢ ﺍﻟﺨﻁﺄ ﻭﻫﻭ ﻤﺎﻻ ﻴﺘﻭﻓﺭ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺭﺴﺎﻟﺔ .ﺇﺫﺍ ﺃﻀﻔﺕ ﺃﺩﺍﺓ ﻭﺍﺤﺩﺓ ﻤﻥ ﻤﺯﻭﺩ
ﺍﻷﺨﻁﺎﺀ ﻓﺈﻨﻬﺎ ﺘﻜﻔﻴﻙ ﻟﻜل ﺍﻟﺘﺩﻗﻴﻘﺎﺕ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ .ﺃﻫﻡ ﻁﺭﻴﻘﺔ ﻟﻬﺫﻩ ﺍﻷﺩﺍﺓ ﻫﻲ SetError
ﻭ ﺍﻟﺘﻲ ﺘﺴﺘﺨﺩﻡ ﻟﺒﻴﺎﻥ ﺍﻷﺨﻁﺎﺀ.
122
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﻨﻤﻭﺫﺝ ﻭﺃﻀﻑ ﻓﻴﻪ ﺍﻷﺩﻭﺍﺕ ﺤﺴﺏ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻟﺠﺩﻭل ﻭ
ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل )(٢-١٠
ﻗﻡ ﺒﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﺩﺍﺨل ﺤﺩﺙ ﺍﻟﻨﻘﺭ ﺍﻟﺨﺎﺹ ﺒﺯﺭ ﺍﻷﻤﺭ :
123
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
124
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻴﻤﻜﻥ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭ ﺒﺄﻨﻪ ﻤﺎ ﻴﻤﻜﻥ ﺃﻥ ﻴﺤﻤل ﻗﻴﻤﺎ ﻤﺘﻨﻭﻋﺔ ﺃﺜﻨﺎﺀ ﻋﻤل ﺍﻟﻨﻅﺎﻡ ﻭ ﻤﻥ ﺜﻡ ﻴﺴﻬل ﺘﻌﺭﻴﻑ
ﺍﻟﺜﺎﺒﺕ ﺒﺄﻨﻪ ﻤﺎ ﻴﺤﻤل ﻗﻴﻤﺔ ﻭﺍﺤﺩﺓ ﺘﺴﻨﺩ ﺇﻟﻴﻪ ﻋﻨﺩ ﺘﻌﺭﻴﻔﻪ ﻭﻻ ﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﻫﺫﻩ ﺍﻟﻘﻴﻤﺔ ﺒﻌﺩ ﺫﻟﻙ .ﺘﺨﺘﻠﻑ
ﻁﺭﻴﻘﺔ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻋﻥ ﻁﺭﻴﻘﺔ ﺘﻌﺭﻴﻑ ﺍﻟﺜﻭﺍﺒﺕ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ .ﻜل ﻤﺘﻐﻴﺭ ﻓﻲ ﺒﻴﺌﺔ
ﺍﻟﺩﻭﺕ ﻨﺕ ﻟﻪ ﻤﺠﺎل ،ﺒﻌﺩ ﺘﻌﺩﻱ ﻫﺫﺍ ﺍﻟﻤﺠﺎل ﻴﻔﻘﺩ ﺍﻟﻤﺘﻐﻴﺭ ﻗﻴﻤﺘﻪ ﻟﺫﺍ ﻤﻥ ﺍﻟﻀﺭﻭﺭﻱ ﻤﻌﺭﻓﺔ ﻤﺠﺎل
ﺍﻟﻤﺘﻐﻴﺭ ﺃﻭ ﻤﺎ ﻴﺴﻤﻰ ﺒﻔﺘﺭﺓ ﺤﻴﺎﺓ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ.
ﻴﻤﻜﻨﻙ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﺠﺩﻴﺩ ﻓﻲ ﺒﻴﺌﺔ Visual Basic .NETﺒﺎﺴﺘﺨﺩﺍﻡ ﻋﺒﺎﺭﺓ Dim .
Dim -١ﻭ ﺘﻤﺜل ﻤﺠﺎل ﺍﻟﻤﺘﻐﻴﺭ ﻭﺴﻭﻑ ﻨﺘﻜﻠﻡ ﻋﻥ ﻤﺠﺎﻻﺕ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺒﺎﻟﺘﻔﺼﻴل.
Variable -٢ﺘﻤﺜل ﺍﺴﻡ ﺘﻘﻭﻡ ﺃﻨﺕ ﺒﺈﻋﻁﺎﺌﻪ ﻟﻠﻤﺘﻐﻴﺭ.
As -٣ﻭﻫﻲ ﻜﻠﻤﺔ ﻤﺤﺠﻭﺯﺓ ﻻ ﻴﻤﻜﻨﻙ ﺘﻐﻴﻴﺭﻫﺎ.
DataType -٤ﻭ ﻴﻤﺜل ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ ﺴﻭﺍﺀ ﺤﺭﻭﻑ ﺃﻭ ﺃﺭﻗﺎﻡ ﺃﻭ ﺘﺎﺭﻴﺦ ﺃﻭ ﻏﻴﺭﻩ.
Address، Phone ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ,ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺘﻘﻭﻡ ﺒﺘﻌﺭﻴﻑ ﻤﺘﻐﻴﺭﺍﻥ
44
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﻤﺘﻐﻴﺭ ﺍﺴﻤﻪ Phoneﻤﻥ ﻨﻭﻉ ﺭﻗﻡ ﺼﺤﻴﺢ ﺜﻡ ﻻﺤﻅ ﺃﻨﻨﺎ ﻋﺭﻓﻨﺎ
ﻤﺘﻐﻴﺭ ﻭﻫﻭ Addressﻟﻜﻨﻨﺎ ﻟﻡ ﻨﺫﻜﺭ ﻨﻭﻋﻪ –ﺴﻴﺄﺘﻲ ﻻﺤﻘﺎ ﺃﻨﻭﺍﻉ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ -ﻭﻫﻭ ﻤﺎ ﻴﻌﺘﺒﺭ ﺤﻼ
ﻏﻴﺭ ﻤﺜﺎﻟﻴﺎ ﻓﻲ ﺍﻟﻅﺭﻭﻑ ﺍﻻﻋﺘﻴﺎﺩﻴﺔ ﻟﻌﺩﺓ ﺃﺴﺒﺎﺏ :
-١ﻋﺩﻡ ﺍﻟﻘﺩﺭﺓ ﻋﻠﻰ ﺘﻤﻴﻴﺯ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ.
-٢ﻗﺩ ﺘﺤﺼل ﺃﺨﻁﺎﺀ ﻏﻴﺭ ﻤﻘﺼﻭﺩﺓ ﻤﺜل ﺇﺴﻨﺎﺩ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ ﺇﻟﻰ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ ﺁﺨﺭ ﻭﻫﻭ
ﻤﺎ ﻗﺩ ﻴﺴﺒﺏ ﺨﻠﻼ ﻓﻲ ﺃﺩﺍﺀ ﺍﻟﻨﻅﺎﻡ.
-٣ﺍﺴﺘﺨﺩﺍﻡ ﻏﻴﺭ ﻤﺜﺎﻟﻲ ﻟﻠﺫﺍﻜﺭﺓ ﻤﻤﺎ ﻴﺴﺒﺏ ﺒﻁﺄ ﻓﻲ ﺘﻨﻔﻴﺫ ﺍﻟﻨﻅﺎﻡ.
ﻋﻨﺩ ﻋﺩﻡ ﺘﺤﺩﻴﺩ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ ﻓﺈﻥ ﻨﻭﻉ ﺍﻟﻤﺘﻐﻴﺭ ﻴﻤﺜﹼل ﻨﻭﻉ ﻜﺎﺌﻥ ، Objectﻫﺫﺍ ﺍﻟﻨﻭﻉ
ﻱ ﻨﻭﻉ ﻤﻥ ﺃﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ .ﺴﻭﺍﺀ ﻨﻭﻉ ﺍﻟﺤﺭﻭﻑ )(String
ﻴﻤﻜﻥ ﺃﻥ ﻴﻤﺜﹼل ﺃ
ﺃﻭ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ) (Integerﺃﻭ ﺃﻱ ﺃﻨﻭﺍﻉ ﺃﺨﺭﻯ.
ﻋﻨﺩﻤﺎ ﺘﺴﺘﺨﺩﻡ ﺍﻟﻤﺘﻐﻴﺭ ﻤﻥ ﻏﻴﺭ ﺫﻜﺭ ﻨﻭﻋﻪ ﻓﺈﻥ ﺍﻟﻨﻭﻉ ﺍﻟﻤﻨﺎﺴﺏ ﻴﺘﺤﺩﺩ ﻓﻲ ﻭﻗﺕ ﺘﻨﻔﻴﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ
(run-time).
ﻴﻤﺜل ﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻲ ﺒﻌﺽ ﺃﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻭ ﺍﻟﺤﺠﻡ ﺍﻟﺘﺨﺯﻴﻨﻲ ﻟﻜل ﻨﻭﻉ ﻭ
ﺍﻟﻘﻴﻡ ﺍﻟﻤﺴﻤﻭﺡ ﺒﻬﺎ ﻟﻜل ﻨﻭﻉ.
45
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻻﺤﻅ ﻅﻬﻭﺭ ﺒﻌﺽ ﺍﻷﻨﻭﺍﻉ ﺍﻟﺠﺩﻴﺩﺓ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻤﺜل int16ﻭ int32
ﻟﻤﺤﺔ ﻋﻥ ﺒﻌﺽ ﺃﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺴﻭﻑ ﻨﺭﻯ ﺜﻼﺜﺔ ﻤﻥ ﺃﻨﻭﺍﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻤﺎﺫﺍ ﺤﺩﺙ ﻟﻬﺎ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
ﻜﻤﺎ ﺴﺒﻕ ﻭ ﺭﺃﻴﺕ ﻴﻭﺠﺩ ﻋﺩﺓ ﺃﻨﻭﺍﻉ ﻤﻥ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﻓﻬﻨﺎﻙ Int32ﻭ int16ﻭ int64ﻭ
ﻏﻴﺭﻫﺎ ﻤﻥ ﺍﻷﻨﻭﺍﻉ .ﺍﻟﺘﻌﺭﻴﻔﺎﻥ ﺍﻟﺘﺎﻟﻴﺎﻥ ﻴﻌﺘﺒﺭﺍﻥ ﻤﺘﺴﺎﻭﻴﺎﻥ
Dim Phone As Integer
Dim Phone As Int32
ﻋﻨﺩ ﺘﻌﺭﻴﻔﻙ ﻟﻤﺘﻐﻴﺭ ﻋﻠﻰ ﺃﻨﻪ ﻤﻥ ﻨﻭﻉ Integerﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﻡ ﺘﺭﺠﻤﺘﻪ ﺇﻟﻰ .int32
ﻻﺤﻅ ﺃﻥ ﻋﻤﻠﻴﺎﺕ Int32ﺃﺴﺭﻉ ﺒﻜﺜﻴﺭ ﻤﻥ ﻋﻤﻠﻴﺎﺕ int16ﻭ .Int64ﻭﻫﻭ ﻤﺎ ﻴﻌﻨﻲ ﺃﻥ ﺍﻟﻨﻭﻉ
int32ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻴﻌﺘﺒﺭ ﺃﻜﺜﺭ ﺃﻨﻭﺍﻉ ﺍﻷﻋﺩﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ ﻓﻌﺎﻟﻴﺔ .ﻋﻨﺩ ﺘﺤﻭﻴﻠﻙ ﻟﻨﻅﺎﻡ ﻜﺘﺏ
ﺒﻠﻐﺔ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺩﺱ ﺇﻟﻰ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻗﻡ ﺒﺘﻐﻴﻴﺭ ﻜل ﺃﻨﻭﺍﻉ Longﺇﻟﻰ Int32ﻟﺘﺤﺼل ﻋﻠﻰ
ﻨﻅﺎﻡ ﺃﻜﺜﺭ ﻓﻌﺎﻟﻴﺔ.
ﺍﻟﺴﻼﺴل String
ﺘﻡ ﺍﺴﺘﺒﺩﺍل ﻜل ﺍﻟﺩﻭﺍل ﺍﻟﺘﻲ ﺘﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺴﻼﺴل ﻭ ﺍﻟﺘﻲ ﻜﺎﻨﺕ ﻤﻭﺠﻭﺩﺓ ﺒﺎﻻﺼﺩﺍﺭ ﺍﻟﺴﺎﺩﺱ ﻤﺜل
Left,Right,Midﺒﻭﻅﺎﺌﻑ ﺠﺩﻴﺩﺓ ﺘﻨﺩﺭﺝ ﺘﺤﺕ ﺍﻟﻔﺌﺔ . System.Classﺍﺭﺠﻊ ﺇﻟﻰ ﺍﻟﻔﺼل
ﺍﻟﺨﺎﺹ ﺒﺎﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺴﻼﺴل ﺍﻟﺤﺭﻓﻴﺔ.
46
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﺠﺎل ﺍﻟﻤﺘﻐﻴﺭﺍﺕ
ﺒﻌﺩ ﺘﺤﺩﻴﺩ ﺍﻟﻔﺘﺭﺓ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺃﻥ ﻴﺒﻘﻰ ﻓﻴﻬﺎ ﺍﻟﻤﺘﻐﻴﺭ ﻤﺤﺘﻔﻅﺎ ﺒﻘﻴﻤﺘﻪ ﺘﺄﺘﻲ ﻤﺭﺤﻠﺔ ﺘﺤﺩﻴﺩ ﻤﺠﺎل ﻫﺫﺍ
ﺍﻟﻤﺘﻐﻴﺭ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
-١ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﻌﺎﻤﺔ ﺘﻌﺭﻑ ﺒﻜﻠﻤﺔ Publicﻭ ﺘﻜﻭﻥ ﻋﺎﻤﺔ ﻟﻜل ﺍﻟﻤﺸﺎﺭﻴﻊ ﺩﺍﺨل ﺍﻟﺤل.
47
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﻌﺎﻤﺔ ﺩﺍﺨل ﺍﻟﻤﺸﺭﻭﻉ ﻓﻘﻁ ﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻬﺎ ﻤﻥ ﺨﻼل ﻜﻠﻤﺔ Friendﻭ ﺘﻜﻭﻥ
ﻋﺎﻤﺔ ﻟﻜل ﺍﻟﻨﻤﺎﺫﺝ ﻭ ﺍﻻﺠﺭﺍﺀﺍﺕ ﺩﺍﺨل ﺍﻟﻤﺸﺭﻭﻉ.
-٣ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﻨﻤﻭﺫﺝ ﺃﻭ ﺒﺎﻟﻨﻅﺎﻡ ﺍﻟﺘﻁﺒﻴﻘﻲ ﻭ ﻴﺘﻡ ﺘﻌﺭﻴﻔﻬﺎ ﻤﻥ ﺨﻼل ﻜﻠﻤﺔ . Private
ﻻ ﺤﻅ ﺃﻨﻪ ﻻ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﻜﻠﻤﺔ ﺩﺍﺨل ﺍﺠﺭﺍﺀ ﻤﺎ.
-٤ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﻤﺤﻠﻴﺔ ﻓﻲ ﺍﻻﺠﺭﺍﺀﺍﺕ ﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻬﺎ ﻤﻥ ﺨﻼل ﻜﻠﻤﺔ Dimﻻﺤﻅ ﺃﻥ ﻗﻴﻡ ﻫﺫﻩ
ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺘﻨﺘﻬﻲ ﺒﻨﻬﺎﻴﺔ ﺍﻻﺠﺭﺍﺀ .ﻴﻤﻜﻥ ﺘﻤﺩﻴﺩ ﺤﻴﺎﺓ ﻤﺘﻐﻴﺭ ﺩﺍﺨل ﺍﺠﺭﺍﺀ ﻭ ﺫﻟﻙ ﺒﺘﻌﺭﻴﻔﻪ
ﺒﻜﻠﻤﺔ .Static
ﺃﻀﺎﻓﺕ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻁﺭﻗﺎ ﺠﺩﻴﺩﺓ ﺴﻬﻠﺕ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭ ،ﻟﻨﺄﺨﺫ ﻫﺫﻩ ﺍﻟﻁﺭﻕ ﻋﻠﻰ ﺸﻜل ﺃﻤﺜﻠﺔ.
-١ﻋﺭﻑ ﻭ ﺃﺴﻨﺩ ﺍﻟﻘﻴﻤﺔ ﻓﻲ ﻨﻔﺱ ﺍﻟﺴﻁﺭ :
Dim myVar As Integer = 9
48
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻻﺤﻅ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻜﻴﻑ ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﻴﺭ ﻤﻥ ﻨﻭﻉ Integerﺒﺩﻭﻥ ﺍﻟﺤﺎﺠﺔ ﺇﻟﻰ ﺇﻋﺎﺩﺓ ﻜﻠﻤﺔ
.Dimﺜﻡ ﻻﺤﻅ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻁﺭﻴﻘﺔ ﺃﺨﺭﻯ ﻟﻨﻔﺱ ﺍﻟﺘﻌﺭﻴﻑ .ﺃﻤﺎ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻟﺙ ﻓﻌﺭﻓﻨﺎ
ﻤﺘﻐﻴﺭﺍﺕ ﻤﺘﻌﺩﺩﺓ ﻤﻥ ﺃﻜﺜﺭ ﻤﻥ ﻨﻭﻉ ﻓﻲ ﻨﻔﺱ ﺍﻟﺴﻁﺭ.
ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻓﻲ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺩﺱ ﺒﺘﻌﺭﻴﻑ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ
Variantﻭ ﺁﺨﺭ ﻤﻥ ﻨﻭﻉ Integerﻟﻜﻨﻬﺎ ﻓﻲ ﺍﻟﺩﻭﺕ ﻨﺕ ﺘﻌﺭﻑ ﻜﻼ ﺍﻟﻤﺘﻐﻴﺭﻴﻥ ﻤﻥ ﻨﻭﻉ
.Integer
-٣ﺘﻌﺭﻴﻑ ﻤﺘﻐﻴﺭﺍﺕ ﻟﻠﻘﺭﺍﺀﺓ ﻓﻘﻁ :ﻭ ﻫﻭ ﻤﺎﻟﻡ ﻴﻜﻥ ﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻻﺼﺩﺍﺭ ﺍﻟﺴﺎﺩﺱ ﻭ ﺇﻟﻴﻙ ﻫﺫﺍ
ﺍﻟﻤﺜﺎل :
ReadOnly x As Integer
ﻋﻨﺩ ﺘﻌﺭﻴﻑ ﻤﺘﻐﻴﺭ ﻟﻠﻘﺭﺍﺀﺓ ﻻ ﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻪ ﻤﺤﻠﻴﺎ ﺩﺍﺨل ﺍﺠﺭﺍﺀ ﺒل ﻴﻠﺯﻡ ﺘﻌﺭﻴﻔﻪ ﻋﻠﻰ ﻤﺴﺘﻭﻯ
ﺍﻟﻨﻤﻭﺫﺝ .
ﻀﻭﺍﺒﻁ ﺘﺴﻤﻴﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ
ﺘﻌﺭﻑ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺸﺭﻭﻁ ﻟﺘﺴﻤﻴﺔ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺍﻟﺘﻲ ﻴﺠﺏ ﺍﻟﺘﻘﻴﺩ ﺒﻬﺎ ﻭ ﺇﻻ ﻓﺈﻥ ﺒﻴﺌﺔ
ﺍﻟﺩﻭﺕ ﻨﺕ ﺴﻭﻑ ﻟﻥ ﺘﻘﺒل ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﻤﺨﺎﻟﻑ ﻟﻬﺫﻩ ﺍﻟﻀﻭﺍﺒﻁ ،ﻭﻫﺫﻩ ﺍﻟﻀﻭﺍﺒﻁ ﻫﻲ :
-١ﺃﻥ ﺘﺒﺩﺃ ﺃﺴﻤﺎﺀ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺒﺤﺭﻑ ﺃﺒﺠﺩﻱ.
-٢ﺃﻥ ﻴﻜﻭﻥ ﻁﻭل ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﺒﻴﻥ ﺤﺭﻑ ﻭ ﺍﺤﺩ ﻭ ٢٥٥ﺤﺭﻑ.
-٣ﻻ ﻴﺴﻤﺢ ﺃﻥ ﻴﻜﻭﻥ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﻜﻠﻤﺔ ﻤﺤﺠﻭﺯﺓ ﻤﻥ ﻗﺒل ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
-٤ﺃﻥ ﻴﺘﻜﻭﻥ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ ﻤﻥ ﺤﺭﻭﻑ ﻭﻴﻤﻜﻥ ﺃﻥ ﺘﺩﺨل ﺒﻌﺽ ﺍﻷﺭﻗﺎﻡ ﻓﻲ ﺍﻟﺘﺴﻤﻴﺔ ﻭ ﻜﺫﻟﻙ
ﺍﻟﺸﺭﻁﺔ ﺍﻟﺴﻔﻠﻴﺔ ،ﺃﻤﺎ ﻏﻴﺭ ﺫﻟﻙ ﻤﻥ ﺍﻟﺭﻤﻭﺯ ﻓﻐﻴﺭ ﻤﺴﻤﻭﺡ ﺩﺨﻭﻟﻬﺎ ﻓﻲ ﺍﻻﺴﻡ.
ﺴﺒﺏ ﺍﻟﻤﺨﺎﻟﻔﺔ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ
ﺍﺴﻡ ﻤﺤﺠﻭﺯ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ Class
& ﻋﻼﻤﺔ ﻏﻴﺭ ﻤﺴﻤﻭﺡ ﺒﺎﺴﺘﺨﺩﺍﻤﻬﺎ Phone&Number
ﻏﻴﺭ ﻤﺴﻤﻭﺡ ﺃﻥ ﻴﺒﺩﺃ ﺍﻻﺴﻡ ﺒﺭﻗﻡ 18Width
ﺍﻟﻤﺴﺎﻓﺔ ﻏﻴﺭ ﻤﺴﻤﻭﺡ ﺒﺄﻥ ﺘﺩﺨل ﻓﻲ ﺍﺴﻡ ﺍﻟﻤﺘﻐﻴﺭ First Name
ﺘﻌﻴﻴﻥ ﻗﻴﻡ ﻟﻠﻤﺘﻐﻴﺭﺍﺕ
49
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻤﺜﺎل ﺍﻷﻭل
Dim NumberOfStudent as integer
NumberOfStudent =15
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ ﻋﺩﺩ ﺼﺤﻴﺢ .
-٢ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻋﻴﻨﺎ ﻗﻴﻤﺔ ﻟﻬﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻭﻫﻲ .١٥
ﺍﻟﻤﺜﺎل ﺍﻟﺜﺎﻨﻲ
Dim Name as String
”Name=”Khalid
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ ﺴﻠﺴﻠﺔ ﺤﺭﻓﻴﺔ.
-٢ﻗﻤﻨﺎ ﺒﺘﻌﻴﻴﻥ ﻗﻴﻤﺔ Khalidﻟﻬﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ .ﻻﺤﻅ ﺃﻨﻪ ﻋﻨﺩ ﺘﻌﻴﻴﻥ ﻗﻴﻡ ﺍﻟﺴﻼﺴل ﺍﻟﺤﺭﻓﻴﺔ ﻻﺒﺩ ﻤﻥ
ﻭﻀﻊ ﻗﻴﻤﻬﺎ ﺒﻴﻥ ﻋﻼﻤﺘﻲ ﺘﻨﺼﻴﺹ.
ﺍﻟﻤﺜﺎل ﺍﻟﺜﺎﻟﺙ
Dim Result as Boolean
Result=True
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ ﻤﻥ ﻨﻭﻉ .Boolean
-٢ﻗﻤﻨﺎ ﺒﺈﺴﻨﺎﺩ ﻗﻴﻤﺔ ﺼﺢ ﻟﻬﺫﺍ ﺍﻟﻤﺘﻐﻴﺭ ﻷﻨﻬﺎ ﺃﺤﺩ ﺍﻟﻘﻴﻤﺘﻴﻥ ﺍﻟﻤﺴﻤﻭﺤﺘﻴﻥ ﻟﻪ.
ﺘﻌﻴﻴﻥ ﻗﻴﻤﺔ ﻤﺘﻐﻴﺭ ﻵﺨﺭ ﺃﻭ ﻟﺨﺎﺼﻴﺔ ﺃﺩﺍﺓ
50
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻴﻤﻜﻥ ﺃﻥ ﺘﺴﻨﺩ ﻗﻴﻤﺔ ﻤﺘﻐﻴﺭ ﺇﻟﻰ ﻤﺘﻐﻴﺭ ﺁﺨﺭ ﻜﻤﺎ ﻴﻭﻀﺢ ﺫﻟﻙ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ
Dim a As Integer = 5
Dim b As Integer
b = a
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ aﻤﻥ ﻨﻭﻉ Integerﻭ ﻋﻴﻨﺎ ﻟﻪ ﻗﻴﻤﺔ .٥
-٢ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ bﻤﻥ ﻨﻭﻉ .Integer
-٣ﻗﻤﻨﺎ ﺒﺘﻌﻴﻴﻥ ﻗﻴﻤﺔ ﻟﻠﻤﺘﻐﻴﺭ bﻭﻫﻲ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ aﻭﻫﻲ .٥
ﺃﻥ ﺘﺴﻨﺩ ﻗﻴﻤﺔ ﺨﺎﺼﻴﺔ ﺃﺩﺍﺓ ﻤﺎ ﻟﻤﺘﻐﻴﺭ ﻜﻤﺎ ﻴﻭﻀﺢ ﺫﻟﻙ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ
Dim a As String
a = TextBox1.Text
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭ aﻤﻥ ﻨﻭﻉ .Integer
-٢ﻗﻤﻨﺎ ﺒﺘﻌﻴﻴﻥ ﻗﻴﻤﺔ ﻟﻠﻤﺘﻐﻴﺭ aﻭﻫﻲ ﻤﺎ ﺘﺤﺘﻭﻴﻪ ﺨﺎﺼﻴﺔ Textﻭﻫﻲ ﺃﺤﺩ ﺨﺼﺎﺌﺹ ﺍﻷﺩﺍﺓ
.TextBox1
ﺍﺴﺘﺨﺩﺍﻡ ﺨﻴﺎﺭExplicit
ﻤﺭ ﺒﻙ ﻓﻲ ﺍﻟﺴﺎﺒﻕ ﺃﻨﻪ ﻻﺒﺩ ﻤﻥ ﺘﻌﺭﻴﻑ ﺃﻱ ﻤﺘﻐﻴﺭ ﻗﺒل ﺍﺴﺘﺨﺩﺍﻤﻪ ،ﻟﻜﻥ ﻤﺎﺫﺍ ﺇﺫﺍ ﺭﻏﺒﺕ ﺒﻜﺴﺭ ﻫﺫﻩ
ﺍﻟﻘﺎﻋﺩﺓ ﻟﻅﺭﻑ ﻤﻥ ﺍﻟﻅﺭﻭﻑ .ﺘﻘﻭﻡ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺒﻤﻨﺤﻙ ﺨﻴﺎﺭ Explicitﻭ ﺍﻟﺫﻱ ﻴﺤﺩﺩ ﻤﺎ ﺇﺫﺍ ﻜﺎﻥ
ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻀﺭﻭﺭﻴﺎ ﺃﻭ ﻻ .ﻴﺤﻤل Explicitﻗﻴﻤﺘﻴﻥ ﻫﻤﺎ Onﻭ .Offﺍﻟﻘﻴﻤﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ
ﻫﻲ Onﺒﻤﻌﻨﻰ ﺃﻨﻪ ﻴﺠﺏ ﻋﻠﻴﻙ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ،ﻓﻲ ﺤﺎل ﺭﻏﺒﺕ ﺒﻌﺩﻡ ﺘﻌﺭﻴﻑ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻗﻡ
ﺒﺘﻐﻴﻴﺭﻫﺎ ﺇﻟﻰ Offﻜﻤﺎ ﻴﺘﻀﺢ ﻤﻥ ﺍﻟﺸﻜل) .(١-٣ﻻﺤﻅ ﺃﻥ ﺠﻤﻠﺔ ﺍﻟﺘﻐﻴﻴﺭ ﻻﺒﺩ ﺃﻥ ﺘﻜﻭﻥ ﻓﻲ ﺃﻭل
ﺸﻜل : ١ -٣ﺍﺴﺘﺨﺩﺍﻡ ﻋﺒﺎﺭﺓ Option Explicit ﺴﻁﺭ.
51
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺜﻭﺍﺒﺕ Constants
ﻥ ﻫﺫﻩ ﺍﻟﻘﻴﻤﺔ ﻻ ﻴﻤﻜﻥ
ﻫﺫﺍ ﻨﻭﻉ ﻤﻥ ﻤﺨﺎﺯﻥ ﺍﻟﺫﺍﻜﺭﺓ ،ﺘﻭﻀﻊ ﻓﻴﻪ ﻗﻴﻤﺔ ،ﺘﻤﺎﻤﺎ ﻜﺎﻟﻤﺘﻐﻴﺭﺍﺕ ،ﻭﻟﻜ
ﺘﻐﻴﻴﺭﻫﺎ ﺒﻌﺩ ﺫﻟﻙ ،ﻭﻫﺫﻩ ﻁﺭﻴﻘﺔ ﺘﻌﺭﻴﻔﻬﺎ:
Const MyConst = 3
52
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺨﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻋﻠﻰ ﺴﻼﺴل ﺤﺭﻓﻴﺔ ﻤﻌﺭﻓﺔ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
Dim Name As String
Dim HouseNumber As String
"أﲪﺪ" = Name
"HouseNumber = "12345
ﻓﻲ ﺍﻟﺒﺩﺍﻴﺔ ﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺘﻴﻥ ﺤﺭﻓﻴﺘﻴﻥ ﺍﻷﻭﻟﻰ Nameﻭ ﺍﻟﺜﺎﻨﻴﺔ HouseNumberﺜﻡ ﻋﻴﻨﺎ
ﻗﻴﻤﺔ ﺃﺤﻤﺩ ﺇﻟﻰ ﺍﻟﺴﻠﺴﻠﺔ Nameﻭ ﻗﻴﻤﺔ ١٢٣٤٥ﺇﻟﻰ ﺍﻟﺴﻠﺴﻠﺔ .HouseNumber
ﻋﻨﺩ ﺘﻌﺭﻴﻑ ﺍﻟﺴﻼﺴل ﻻﺒﺩ ﻤﻥ ﻭﻀﻌﻬﺎ ﺒﻴﻥ ﻋﻼﻤﺘﻲ ﺘﻨﺼﻴﺹ ﻜﻤﺎ ﻤﺭ ﻓﻲ ﺍﻟﻤﺜﺎل.
ﺘﻘﺩﻡ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻤﺠﻤﻭﻋﺔ ﻜﺒﻴﺭﺓ ﻤﻥ ﺍﻟﺩﻭﺍل ﺍﻟﺘﻲ ﺘﺴﻬل ﻋﻠﻴﻙ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺴﻼﺴل
ﺍﻟﺤﺭﻓﻴﺔ ﻭ ﺍﻟﻨﺼﻭﺹ .ﺘﺼﻭﺭ ﺃﻥ ﻟﺩﻴﻙ ﻨﺹ ﻭ ﺘﺭﻴﺩ ﺃﻥ ﺘﻘﺘﻁﻊ ﺠﺯﺀ ﻤﻨﻪ ﺃﻭ ﺘﺒﺤﺙ ﻓﻴﻪ ﻋﻥ ﻨﺹ ﻤﺎ،
ﺇﻟﻰ ﻏﻴﺭ ﺫﻟﻙ ﻤﻥ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺘﻲ ﻻ ﺘﻨﺘﻬﻲ ﻓﻬل ﺴﺘﻜﺘﺏ ﺒﺭﻨﺎﻤﺠﺎ ﺨﺎﺼﺎ ﻟﺘﻠﻙ ﺍﻟﻤﻬﺎﻡ ﺃﻡ ﻤﺎﺫﺍ ﺴﺘﻔﻌل.
ﺤﺎﺼل ﺍﻟﻘﻭل ﺃﻥ ﻫﻨﺎﻙ ﻋﺩﺩ ﻜﺒﻴﺭﺍ ﻤﻥ ﺍﻟﺩﻭﺍل ﺴﻭﻑ ﺘﺴﻬل ﻋﻠﻴﻙ ﺍﻟﺒﺭﻤﺠﺔ ﺒﺸﻜل ﻟﻡ ﻴﺴﺒﻕ ﻟﻪ ﻤﺜﻴل.
ﻤﻘﺎﺭﻨﺔ ﺍﻟﺴﻼﺴل
ﺇﺫﺍ ﺃﺭﺩﺕ ﻤﻘﺎﺭﻨﺔ ﺴﻠﺴﻠﺘﻴﻥ ﻟﺘﻜﺘﺸﻑ ﻫل ﻫﻤﺎ ﻤﺘﺴﺎﻭﻴﺘﺎﻥ ﻓﻲ ﺍﻟﻤﺤﺘﻭﻯ ﺃﻡ ﻻ ﺍﺴﺘﺨﺩﻡ ﺍﻟﺩﺍﻟﺔ
. Compareﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل :
"Dim str1 As String = "B
"Dim str2 As String = "A
ﺍﻟﺩﺍﻟﺔ str1ﺃﻜﺒﺭ ﺍﻟﺩﺍﻟﺔ str2ﻷﻥ ﻤﺤﺘﻭﻯ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻷﻭﻟﻰ Bﺒﻴﻨﻤﺎ ﻤﺤﺘﻭﻯ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﺜﺎﻨﻴﺔ Aﻭﻜﻤﺎ
ﺘﻌﺭﻑ ﻓﺈﻥ ﺍﻟﺤﺭﻑ Bﻴﺄﺘﻲ ﺒﻌﺩ ﺍﻟﺤﺭﻑ Aﻟﺫﻟﻙ ﺴﻭﻑ ﺘﻜﻭﻥ ﻨﺘﻴﺠﺔ ﺍﻟﻤﻘﺎﺭﻨﺔ .١ﻓﻲ ﺍﻟﺠﺎﻨﺏ ﺍﻟﻤﻘﺎﺒل
ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ :
"Dim str1 As String = "AA
"Dim str2 As String = "AA
ﺃﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻓﺈﻥ ﺍﻟﺴﻠﺴﻠﺔ str1ﺘﺴﺎﻭﻱ ﺍﻟﺴﻠﺴﻠﺔ . str2
54
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻤﻌﻨﻰ ﺍﻟﻨﺘﻴﺠﺔ
ﺩﻤﺞ ﺴﻠﺴﻠﺘﻴﻥ
ﻤﺎﺫﺍ ﻟﻭ ﻜﺎﻥ ﻫﻨﺎﻙ ﺴﻠﺴﻠﺘﻴﻥ ﻭ ﺃﺭﺩﺕ ﺃﻥ ﺘﺩﻤﺞ ﺍﻟﺴﻠﺴﻠﺘﻴﻥ ﺒﻤﻌﻨﻰ ﺃﻥ ﺘﻨﺘﺞ ﺴﻠﺴﻠﺔ ﺃﺨﺭﻯ ﺘﺤﻭﻱ ﺍﻟﺴﻠﺴﺔ
ﺍﻷﻭﻟﻰ ﻤﺘﺒﻭﻋﺔ ﺒﺎﻟﺴﻠﺴﻠﺔ ﺍﻟﺜﺎﻨﻴﺔ.
ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﻻﺤﻅ ﺃﻨﻨﺎ ﺒﻬﺩﻑ ﺘﻜﻭﻴﻥ ﺍﺴﻡ ﻜﺎﻤل ﻓﺴﻭﻑ ﻨﻘﻭﻡ ﺒﺩﻤﺞ ﺍﻟﺴﻠﺴﻠﺘﻴﻥ FirstNameﻭ
.LastNameﻜل ﻤﺎ ﻨﺤﺘﺎﺠﻪ ﻫﻭ ﺨﻁﻭﺓ ﻭﺍﺤﺩﺓ ﻓﻘﻁ ﻭﻫﻲ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ . Concatﻭﺍﻟﺘﻲ ﺘﻘﻭﻡ
ﺒﺈﺭﺠﺎﻉ ﻨﺘﻴﺠﺔ ﺩﻤﺞ ﺍﻟﺴﻠﺴﻠﺘﻴﻥ.
55
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺒﻌﺩ ﺩﻤﺞ ﺴﻠﺴﻠﺘﻴﻥ ﺘﻅل ﻗﻴﻤﻬﻤﺎ ﺒﺩﻭﻥ ﺃﻱ ﺘﻐﻴﺭ ﻤﺎﻟﻡ ﺘﻘﻡ ﺒﺫﻟﻙ.
ﺘﺫﻜﺭ ﺃﻥ ﺍﻟﻔﻬﺭﺱ ﻓﻲ ﺍﻟﺩﻭﺕ ﻨﺕ ﻴﺒﺩﺃ ﻤﻥ ﺼﻔﺭ ﻟﺫﻟﻙ ﻴﻌﺘﺒﺭ ﺍﻟﺤﺭﻑ ﺍﻟﺜﺎﻨﻲ ﻓﻲ ﺍﻟﺴﻠﺴﻠﺔ
saatﺍﻟﺘﻲ ﺘﺭﺍﻫﺎ ﻜﺒﻴﺭﺓ.
56
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺸﺭﺡ
-١ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﺴﻠﺴﻠﺔ sﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ ﻭﻫﻲ .salamat
-٢ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ Removeﻟﺤﺫﻑ ﺤﺭﻓﻴﻥ ﻤﻥ ﺍﻟﺴﻠﺴﻠﺔ ﺒﺩﺃ ﻤﻥ ﺍﻟﺤﺭﻑ
ﺍﻟﺨﺎﻤﺱ .ﻟﺫﺍ ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒﺄﻥ ﻫﻨﺎﻙ ﻤﻌﺎﻤﻼﻥ ﻟﻠﺩﺍﻟﺔ : Remove
.Iﺍﻟﻤﻌﺎﻤل ﺍﻷﻭل ﻟﻠﺩﺍﻟﺔ Removeﻴﻤﺜل ﻤﻜﺎﻥ ﺒﺩﺃ ﺍﻟﺤﺫﻑ ﻓﻲ ﺍﻟﺴﻠﺴﻠﺔ.
.IIﻭ ﺍﻟﻤﻌﺎﻤل ﺍﻟﺜﺎﻨﻲ ﻫﻭ ﻋﺩﺩ ﺍﻷﺤﺭﻑ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺤﺫﻓﻬﺎ.
-٣ﺒﻌﺩ ﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺔ ﺍﻟﺤﺫﻑ ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ،ﻨﺘﻴﺠﺔ ﺍﻟﺤﺫﻑ ﻫﻲ .salam
ﻋﻨﺩ ﺤﺫﻑ ﺃﺤﺭﻑ ﻤﻥ ﺴﻠﺴﻠﺔ ﻤﺎ ﺃﻭ ﺇﻀﺎﻓﺔ ﺃﺤﺭﻑ ﻟﻬﺎ ﻓﺈﻥ ﻤﺤﺘﻭﺍﻫﺎ ﻴﺘﻐﻴﺭ ﺤﺴﺏ ﻨﺘﺎﺌﺞ ﺍﻟﺤﺫﻑ
ﻭﺍﻹﻀﺎﻓﺔ.
57
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺸﺭﺡ
.Iﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ .salamat
.IIﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻗﻤﻨﺎ ﺒﺎﺴﺘﺭﺠﺎﻉ ﺠﺯﺀ ﻤﻥ ﺍﻟﺴﻠﺴﻠﺔ sﺒﺩﺃ ﻤﻥ ﺍﻟﺤﺭﻑ ﺍﻟﺨﺎﻤﺱ ﺤﺘﻰ ﻨﻬﺎﻴﺔ
ﺍﻟﺴﻠﺴﻠﺔ ﺜﻡ ﻋﺭﻀﻨﺎ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭ ﻫﻲ ﺤﺭﻓﻲ .at
-٢ﺍﻟﺩﺍﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﺘﻘﻭﻡ ﺒﺎﺴﺘﺭﺠﺎﻉ ﺠﺯﺀ ﻤﻥ ﺴﻠﺴﻠﺔ ﺒﺩﺃ ﻤﻥ ﻤﻜﺎﻥ ﻤﺎ ﻭ ﺍﻨﺘﻬﺎﺀ ﺒﻤﻜﺎﻥ ﻤﺎ .ﻓﻲ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ
ﻴﻭﺠﺩ ﻤﻌﺎﻤﻼﻥ ﻟﻬﺫﻩ ﺍﻟﺩﺍﻟﺔ ﺍﻷﻭل ﻴﻤﺜل ﻤﻜﺎﻥ ﺒﺩﺀ ﺍﻻﺴﺘﺭﺠﺎﻉ ﻭ ﺍﻟﺜﺎﻨﻲ ﻴﻤﺜل ﻋﺩﺩ ﺍﻷﺤﺭﻑ ﺍﻟﺘﻲ ﺘﻭﺩ
ﺍﺴﺘﺭﺠﺎﻋﻬﺎ .ﻟﻨﺄﺨﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻟﻜﻲ ﺘﺘﻀﺢ ﺍﻟﻔﻜﺭﺓ.
"Dim s As String = "salamat
)Label1.Text = s.Substring(3, 2
ﺍﻟﺸﺭﺡ :
-١ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ .salamat
-٢ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻗﻤﻨﺎ ﺒﺘﻨﻔﻴﺫ ﺍﻟﺩﺍﻟﺔ substringﻟﻜﻲ ﻨﺴﺘﺭﺠﻊ ﺤﺭﻓﻴﻥ ﺒﺩﺃ ﻤﻥ ﺍﻟﺤﺭﻑ ﺍﻟﺜﺎﻟﺙ
ﻓﻲ ﺍﻟﺴﻠﺴﻠﺔ sﺜﻡ ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭﻫﻲ ﺤﺭﻓﻲ .am
ﺍﻟﺸﺭﺡ :
-١ﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﺤﺭﻓﻴﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ .ppp
-٢ﻗﻤﻨﺎ ﺒﺘﻁﺒﻴﻕ ﺍﻟﺩﺍﻟﺔ Replaceﻋﻠﻰ ﺍﻟﺴﻠﺴﻠﺔ ﻭ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻘﻭﻡ ﺒﺎﻟﺒﺤﺙ ﻋﻥ ﻜل ﺤﺭﻑ p
ﺜﻡ ﺘﻘﻭﻡ ﺒﺎﺴﺘﺒﺩﺍﻟﻪ ﺒﺤﺭﻑ .kﺒﻌﺩ ﺫﻟﻙ ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭ ﺍﻟﺘﻲ ﺴﻭﻑ
ﺘﻜﻭﻥ .kkk
58
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺸﺭﺡ ﺍﻟﺩﺍﻟﺔ
ﺘﻘﻭﻡ ﺒﺘﺤﻭﻴل ﺤﺎﻟﺔ ﺤﺭﻭﻑ ﺴﻠﺴﻠﺔ ﺇﻟﻰ ﺼﻐﻴﺭﺓ )(.ToLower
ﺍﻟﺸﺭﺡ :
-١ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﺴﻠﺴﻠﺘﻴﻥ ﺍﻷﻭﻟﻰ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ ahmedﻭ ﺍﻟﺜﺎﻨﻴﺔ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ OMAR
-٢ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ ToUpperﻟﺘﺤﻭﻴل ﺤﺎﻟﺔ ﺤﺭﻭﻑ ﻜﻠﻤﺔ ahmedﺇﻟﻰ ﺤﺎﻟﺔ ﻜﺒﻴﺭﺓ
ﺇﻟﻰ ﺤﺎﻟﺔ ﺼﻐﻴﺭﺓ. OMAR -٣ﺍﺴﺘﺨﺩﻤﻨﺎ ﺍﻟﺩﺍﻟﺔ ToLowerﻟﺘﺤﻭﻴل ﺤﺎﻟﺔ ﺤﺭﻭﻑ ﻜﻠﻤﺔ
-٤ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﺍﻟﻨﺘﺎﺌﺞ ﻋﻠﻰ ﺃﺩﺍﺘﻲ ﻋﻨﻭﺍﻥ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل)(١-٤
ﺸﻜل : ١ -٤ﺘﺤﻭﻴل ﺤﺎﻟﺔ ﺍﻟﺤﺭﻭﻑ ﻤﻥ
ﺼﻐﻴﺭﺓ ﺇﻟﻰ ﻜﺒﻴﺭﺓ ﻭ ﺍﻟﻌﻜﺱ
59
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺸﺭﺡ
ﻟﻜﻥ ﻻﺤﻅ ﺃﻥ ﺍﻟﻘﻴﻤﺔ ahmed -١ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﺴﻠﺴﻠﺔ strﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﺍﻟﻘﻴﻤﺔ
ﺃﺤﻤﺩ ﺘﺒﺩﺃ ﺒﻤﺴﺎﻓﺔ ﻭ ﺘﻨﺘﻬﻲ ﺒﻤﺴﺎﻓﺔ.
-٢ﻹﺯﺍﻟﺔ ﺍﻟﻤﺴﺎﻓﺔ ﺍﻟﻘﺒﻠﻴﺔ ﻭ ﺍﻟﺒﻌﺩﻴﺔ ﻗﻤﻨﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ Trimﻭ ﻤﻥ ﺜﻡ ﻋﺭﻀﻨﺎ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ
ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻭ ﺍﻟﻨﺘﻴﺠﺔ ﻫﻲ ﻜﻠﻤﺔ ﺃﺤﻤﺩ ﺒﺩﻭﻥ ﻤﺴﺎﻓﺎﺕ ﻗﺒﻠﻴﺔ ﺃﻭ ﺒﻌﺩﻴﺔ.
ﺍﻟﺸﺭﺡ
-١ﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﺍﻟﻘﻴﻤﺔ . MyString
-٢ﻗﻤﻨﺎ ﺒﺎﺴﺘﺩﻋﺎﺀ ﺍﻟﺩﺍﻟﺔ PadLeftﻭ ﺍﻋﻁﺎﺌﻬﺎ ﻤﻌﺎﻤل ١٠ﻴﻤﺜل ﻫﺫﺍ ﺍﻟﻤﻌﺎﻤل ﺍﻟﻁﻭل ﺍﻟﻜﻠﻲ
ﻟﻠﺴﻠﺴﻠﺔ ﺍﻟﻨﺎﺘﺠﺔ .ﻓﺈﺫﺍ ﻜﺎﻨﺕ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻷﺼﻠﻴﺔ MyStringﻟﻬﺎ ﻁﻭل ٨ﻓﺈﻥ ﺍﻟﻁﻭل ﻟﻠﺴﻠﺴﻠﺔ
60
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺴﻴﻜﻭﻥ ١٠ﻭ ﺴﺘﻜﻭﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻜﺎﻟﺘﺎﻟﻲ " "MyStringﻻ ﺤﻅ ﺃﻨﻪ ﺘﻡ ﺍﻀﺎﻓﺔ ﻤﺴﺎﻓﺘﻴﻥ ﺇﻟﻰ
ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ.
ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﻌﺎﻤل ﺃﻗل ﻤﻥ ﻁﻭل ﺍﻟﺴﻠﺴﻠﺔ ﻓﻠﻥ ﻴﺘﻡ ﺇﻀﺎﻓﺔ ﺃﻱ ﺸﻲﺀ .
-٢ﺘﺒﻁﻴﻥ ﻤﻥ ﺍﻟﺠﻬﺔ ﺍﻟﻴﺴﺭﻯ :ﻤﺎ ﻗﻴل ﻓﻲ ﺍﻟﺘﺒﻁﻴﻥ ﻤﻥ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ ﻴﻘﺎل ﻫﻨﺎ ﺇﻻ ﺃﻨﻨﺎ ﻨﺴﺘﺨﺩﻡ
.PadRight ﺩﺍﻟﺔ ﺃﺨﺭﻯ ﻫﻲ
ﺍﻟﺸﺭﺡ
-١ﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﺍﻟﻘﻴﻤﺔ . MyString
-٢ﻗﻤﻨﺎ ﺒﺎﺴﺘﺩﻋﺎﺀ ﺍﻟﺩﺍﻟﺔ PadRightﻭ ﺍﻋﻁﺎﺌﻬﺎ ﻤﻌﺎﻤل ١٠ﻴﻤﺜل ﻫﺫﺍ ﺍﻟﻤﻌﺎﻤل ﺍﻟﻁﻭل ﺍﻟﻜﻠﻲ
ﻟﻠﺴﻠﺴﻠﺔ ﺍﻟﻨﺎﺘﺠﺔ .ﻓﺈﺫﺍ ﻜﺎﻨﺕ ﺍﻟﺴﻠﺴﻠﺔ ﺍﻷﺼﻠﻴﺔ MyStringﻟﻬﺎ ﻁﻭل ٨ﻓﺈﻥ ﺍﻟﻁﻭل ﻟﻠﺴﻠﺴﻠﺔ
ﺴﻴﻜﻭﻥ ١٠ﻭ ﺴﺘﻜﻭﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻜﺎﻟﺘﺎﻟﻲ " " MyStringﻻ ﺤﻅ ﺃﻨﻪ ﺘﻡ ﺇﻀﺎﻓﺔ ﻤﺴﺎﻓﺘﻴﻥ ﺇﻟﻰ ﺍﻟﺠﻬﺔ
ﺍﻟﻴﺴﺭﻯ.
61
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺒﺤﺙ ﻓﻲ ﺍﻟﺴﻼﺴل
ﺇﻥ ﻤﻥ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻷﺴﺎﺴﻴﺔ ﻭ ﺍﻟﻤﺘﻜﺭﺭﺓ ﺩﺍﺌﻤﺎ ﻫﻲ ﺍﻟﺒﺤﺙ ﻓﻲ ﺴﻠﺴﻠﺔ ﻤﺎ .ﺘﺴﺘﻁﻴﻊ ﺍﻟﺒﺤﺙ ﺩﺍﺨل
ﺴﻠﺴﻠﺔ ﻤﻥ ﺨﻼل ﺍﻟﺩﺍﻟﺔ indexOfﻭ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻘﻭﻡ ﺒﺈﺭﺠﺎﻉ ﻤﻭﻗﻊ ﺃﻭل ﻨﺘﻴﺠﺔ ﺒﺤﺙ ﺇﻴﺠﺎﺒﻴﺔ.
ﻴﻭﺠﺩ ﺴﺘﺔ ﻁﺭﻕ ﻟﻠﺒﺤﺙ ﺩﺍﺨل ﺴﻠﺴﻠﺔ ﻜﻠﻬﺎ ﻤﺘﻭﻓﺭﺓ ﻤﻥ ﺨﻼل ﻫﺫﻩ ﺍﻟﺩﺍﻟﺔ ﻭﻫﻲ:
ﺍﻟﺸﺭﺡ ﺍﻟﺩﺍﻟﺔ
ﻟﺩﻴﻨﺎ ﻤﻌﺎﻤل ﻭﺍﺤﺩ ﻭﻫﻭ ﺍﻟﺤﺭﻑ ﺍﻟﺫﻱ ﺘﺭﻴﺩ
_ (IndexOf
_ ByVal value As Char
62
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻁﺭﻴﻘﺔ
-Iﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ salamat
-IIﺒﺤﺜﻨﺎ ﻋﻥ ﺤﺭﻑ aﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ ﺜﻡ ﺃﺭﺠﻌﻨﺎ ﺍﻟﻨﺘﻴﺠﺔ ﺇﻟﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ،ﻭ ﺍﻟﻨﺘﻴﺠﺔ
ﻫﻲ ١ﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﺭﻗﻡ ﻤﻭﻗﻊ ﺤﺭﻑ aﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ.
ﺍﻟﻁﺭﻴﻘﺔ :
-Iﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ .salamat
-IIﺒﺤﺜﻨﺎ ﻋﻥ ﺤﺭﻑ aﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ ﺒﺩﺃ ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺭﺍﺒﻊ ﺜﻡ ﺃﺭﺠﻌﻨﺎ
ﺍﻟﻨﺘﻴﺠﺔ ﺇﻟﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ،ﻭ ﺍﻟﻨﺘﻴﺠﺔ ﻫﻲ ٥ﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﺭﻗﻡ ﻤﻭﻗﻊ ﺤﺭﻑ aﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ ﺒﺩﺃ
ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺭﺍﺒﻊ.
ﺍﻟﻁﺭﻴﻘﺔ :
-Iﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﻭ ﻋﻴﻨﺎ ﻟﻬﺎ ﻗﻴﻤﺔ .salamat
-IIﺒﺤﺜﻨﺎ ﻋﻥ ﺤﺭﻑ mﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ ﺒﺩﺃ ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺜﺎﻟﺙ ﺒﻁﻭل ٢ﻤﻤﺎ
ﻴﻌﻨﻲ ﺃﻥ ﺍﻟﺒﺤﺙ ﺴﻭﻑ ﻴﺘﻭﻗﻑ ﻓﻲ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺨﺎﻤﺱ ،ﺜﻡ ﺃﺭﺠﻌﻨﺎ ﺍﻟﻨﺘﻴﺠﺔ ﺇﻟﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ،ﻭ
ﺍﻟﻨﺘﻴﺠﺔ ﻫﻲ ٤ﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﺭﻗﻡ ﻤﻭﻗﻊ ﺤﺭﻑ mﺩﺍﺨل ﺍﻟﺴﻠﺴﻠﺔ ﺒﺩﺃ ﻤﻥ ﺍﻟﻤﻭﻗﻊ ﺍﻟﺜﺎﻟﺙ.
63
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺒﺤﺙ ﻴﻌﺘﻤﺩ ﻋﻠﻰ ﺤﺎﻟﺔ ﺍﻷﺤﺭﻑ .ﻓﻠﻭ ﺃﺩﺨﻠﺕ ﺤﺭﻑ nﻟﻠﺒﺤﺙ ﻋﻨﻪ ﺩﺍﺨل ﺴﻠﺴﻠﺔ ﻭ ﻜﺎﻥ
ﺍﻟﻤﻭﺠﻭﺩ Nﻓﺈﻥ ﺍﻟﻨﺘﻴﺠﺔ ﺴﻠﺒﻴﺔ.
64
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﳍﺪﻑ :ﻳﻬﺪﻑ ﻫﺬﺍ ﺍﻟﺘﺪﺭﻳﺐ ﺇﱃ ﺗﻌﻠﻴﻤﻚ ﲨﻴﻊ ﺃﻧﻮﺍﻉ ﺍﻟﺘﻌﺎﻣﻞ ﺍﻟﺴﺎﺑﻘﺔ ﻣﻊ ﺍﻟﺴﻼﺳﻞ ﳑﺎ ﻳﻜﻮﻥ ﻟﻪ ﺍﻷﺛﺮ ﺍﻹﳚﺎﰊ ﰲ
ﺗﺴﻬﻴﻞ ﺍﻟﱪﳎﺔ ﰲ ﺑﻴﺌﺔ ﺍﻟﺪﻭﺕ ﻧﺖ.
ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ :ﻤﺭﺒﻊ ﻤﺠﻤﻭﻋﺎﺕ ،ﺴﺘﺔ ﺃﺯﺭﺍﺭ ﺍﺨﺘﻴﺎﺭ ،ﻤﺭﺒﻊ ﻨﺹ ﻭﺍﺤﺩ ،ﺨﻤﺴﺔ ﺃﺩﺍﻭﺍﺕ
ﻋﻨﻭﺍﻥ ،ﺯﺭ ﺃﻤﺭ ﺍﻨﻅﺭ ﺸﻜل )(٢-٤
ﻤﺎﺫﺍ ﺴﻴﺤﺩﺙ :ﺴﻭﻑ ﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﺴﺘﺔ ﺃﺯﺭﺍﺭ ﺃﻤﺭ ﻜل ﻤﻨﻬﺎ ﻴﻤﺜل ﻨﻭﻉ ﻤﻥ ﺃﻨﻭﺍﻉ ﺍﻟﻌﻤﻠﻴﺎﺕ ﻋﻠﻰ
ﺍﻟﺴﻼﺴل ﻜﻤﺎ ﺴﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﺯﺭ ﺃﻤﺭ ﻴﻨﻔﺫ ﺍﻟﻌﻤﻠﻴﺔ ﺒﻨﺎﺀ ﻋﻠﻰ ﺯﺭ ﺍﻷﻤﺭ ﺍﻟﺫﻱ ﺘﻡ ﺍﺨﺘﻴﺎﺭﻩ .ﻜﻤﺎ ﺘﻼﺤﻅ
ﻤﻥ ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﻴﻭﺠﺩ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻤﻜﺘﻭﺏ ﻋﻠﻴﻬﺎ ، salamatﻫﺫﻩ ﺍﻷﺩﺍﺓ ﺴﺘﻜﻭﻥ ﻤﺤﻭﺭ
ﺍﻟﻌﻤﻠﻴﺎﺕ ،ﻜﻤﺎ ﺴﻴﻜﻭﻥ ﻫﻨﺎﻙ ﻤﺭﺒﻊ ﻨﺹ ﺘﺩﺨل ﻓﻴﻪ ﺍﻟﻘﻴﻤﺔ ﺒﻨﺎﺀ ﻋﻠﻰ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻤﺨﺘﺎﺭﺓ ﺜﻡ ﺴﺘﻅﻬﺭ
ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ .ﻟﻨﺄﺨﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻋﻠﻰ ﺇﺤﺩﻯ ﺍﻟﻌﻤﻠﻴﺎﺕ :
-١ﺍﺨﺘﺭ ﻨﻭﻉ ﺍﻟﻌﻤﻠﻴﺔ ﻤﻘﺎﺭﻨﺔ ﺴﻠﺴﻠﺘﻴﻥ ﻤﻥ ﺃﺯﺭﺍﺭ ﺍﻻﺨﺘﻴﺎﺭ.
-٢ﻗﻡ ﺒﺈﺩﺨﺎل ﺍﻟﺴﻠﺴﻠﺔ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺃﻥ ﺘﻘﺎﺭﻨﻬﺎ ﺒﺎﻟﺴﻠﺴﻠﺔ ﺍﻟﻤﻜﺘﻭﺒﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ .salamat
-٣ﺍﻀﻐﻁ ﺯﺭ ﺍﻷﻤﺭ ﻟﺘﻅﻬﺭ ﻟﻙ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﺍﻟﺘﻲ ﻜﺘﺏ ﺒﺠﺎﻨﺒﻬﺎ ﻨﺘﻴﺠﺔ ﺍﻟﻌﻤﻠﻴﺔ.
65
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
ﺍﻟﺨﻁﻭﺍﺕ
ﻗﻡ ﺒﺈﻨﺸﺎﺀ ﻨﻤﻭﺫﺝ ﺜﻡ ﻀﻊ ﻓﻴﻪ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻤﻊ ﻀﺒﻁ ﺨﺼﺎﺌﺹ ﺍﻷﺩﻭﺍﺕ ﻜﻤﺎ ﻫﻭ ﻭﺍﺭﺩ-١
: ﻓﻲ ﺍﻟﺠﺩﻭل
اﻟﻘﻴﻤﺔ اﻟﺨﺎﺻﻴﺔ اﺳﻢ اﻷداة
WorkWithString Name Form
اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺴﻼﺳﻞ اﻟﺤﺮﻓﻴﺔ Text
True RightToLeft
Simplified Arabic Font
rdoAdd Name RadioButton
إﺿﺎﻓﺔ إﻟﻰ ﺳﻠﺴﻠﺔ Text
rdoSub Name RadioButton
اﺳﺘﺮﺟﺎع ﺣﺮوف ﻣﻦ ﺳﻠﺴﻠﺔ Text
rdoCon Name RadioButton
دﻣﺞ ﺳﻠﺴﻠﺘﻴﻦ Text
rdoComp Name RadioButton
ﻣﻘﺎرﻧﺔ ﺳﻠﺴﻠﺘﻴﻦ Text
rdoSmall Name RadioButton
ﺗﺤﻮﻳﻞ ﺣﺎﻟﺔ اﻟﺤﺮوف إﻟﻰ ﺻﻐﻴﺮة Text
rdoCap Name RadioButton
ﺗﺤﻮﻳﻞ ﺣﺎﻟﺔ اﻟﺤﺮوف إﻟﻰ آﺒﻴﺮة Text
rdoSearch Name RadioButton
اﻟﺒﺤﺚ ﻓﻲ ﺳﻠﺴﻠﺔ Text
rdoRemove Name RadioButton
ﺣﺬف ﻣﻦ ﺳﻠﺴﻠﺔ Text
Button1 Name Button
ﺗﻨﻔﻴﺬ اﻟﻌﻤﻠﻴﺔ Text
Label2 Name Label
اﺟﺮاء اﻟﻌﻤﻠﻴﺎت ﻋﻠﻰ اﻟﺴﻠﺴﻠﺔ Text
lblSal Name Label
salamat Text
Label3 Name Label
اﻟﻤﺪﺧﻞ Text
txtInput Name TextBox
Text
Label5 Name Label
ﻧﺘﻴﺠﺔ اﻟﻌﻤﻠﻴﺔ Text
lblRes Name Label
Label4 Text
66
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
If rdoAdd.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = lblSal.Text().Insert(2, txtInput.Text)
End If
End If
If rdoSub.Checked Then
If txtInput.Text.Trim <> "" And IsNumeric(txtInput.Text) Then
lblRes.Text = lblSal.Text.Substring(txtInput.Text)
End If
End If
If rdoCon.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = String.Concat(lblSal.Text, txtInput.Text)
End If
End If
If rdoComp.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = String.Compare(lblSal.Text, txtInput.Text)
End If
End If
If rdoSmall.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = txtInput.Text.ToLower
End If
End If
If rdoCap.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = txtInput.Text.ToUpper
End If
End If
If rdoSearch.Checked Then
If txtInput.Text.Trim <> "" Then
lblRes.Text = lblSal.Text.IndexOf(txtInput.Text)
End If
End If
If rdoRemove.Checked Then
If txtInput.Text.Trim <> "" And IsNumeric(txtInput.Text) Then
lblRes.Text = lblSal.Text.Remove(txtInput.Text, 1)
End If
End If
67
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺘﻌﻠﻴﻤﺎﺕ
-١ﺒﻨﺎﺀ ﻋﻠﻰ ﺯﺭ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﺫﻱ ﺘﻡ ﺍﺨﺘﻴﺎﺭﻩ ﻴﻘﻭﻡ ﻫﺫﺍ ﺍﻟﻜﻭﺩ ﺒﺘﻨﻔﻴﺫ ﺍﻟﻌﻤﻠﻴﺔ.
-٢ﻻﺤﻅ ﺃﻨﻨﺎ ﻫﻨﺎ ﻁﺒﻘﻨﺎ ﺠﻤﻴﻊ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻷﺴﺎﺴﻴﺔ.
-٣ﺘﺴﺘﻁﻴﻊ ﻨﻘل ﺠﻤل ﺍﻟﺸﺭﻁ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺒﺎﻟﺘﺄﻜﺩ ﻤﻥ ﺃﻥ ﻫﻨﺎﻙ ﻤﺩﺨل ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺇﻟﻰ ﺒﺩﺍﻴﺔ
ﺍﻹﺠﺭﺍﺀ ﻟﻜﻲ ﺘﻜﻭﻥ ﺸﺎﻤﻠﺔ ﻟﻠﺠﻤﻴﻊ.
-٤ﻟﺭﺅﻴﺔ ﺍﻟﻨﻅﺎﻡ ﺒﻌﺩ ﺍﻟﺘﺸﻐﻴل ﺍﻨﻅﺭ ﺍﻟﺸﻜل ) (٣-٤ﻭﻻﺤﻅ ﺃﻨﻨﺎ ﺍﺨﺘﺭﻨﺎ ﺯﺭ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﻤﺘﻌﻠﻕ
ﺒﺎﻟﺒﺤﺙ ﻓﻲ ﺴﻠﺴﻠﺔ ﺜﻡ ﺃﺩﺨﻠﻨﺎ ﺤﺭﻑ mﺜﻡ ﻀﻐﻁﻨﺎ ﺯﺭ ﺍﻷﻤﺭ ﻓﻅﻬﺭ ﻟﻨﺎ ﺭﻗﻡ ٤ﻓﻲ ﺃﺩﺍﺓ
ﺍﻟﻌﻨﻭﺍﻥ ﻭﻫﻭ ﻤﺎ ﻴﻤﺜل ﻤﻭﻗﻊ ﺤﺭﻑ .m
68
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﻘﺩﻤﺔ ﻋﻥ ADO.NET
ﻤﺎ ﻫﻲ ADO.NET؟
ﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻬﺎ ﺒﺄﻨﻬﺎ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻔﺌﺎﺕ– -CLASSESﻟﻠﺘﻌﺎﻤل ﻤﻊ ﻤﺼﺎﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻓﺈﺫﺍ
ﺃﺭﺩﺕ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﻤﺎ -ﻭ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺒﻴﺎﻨﺎﺕ ﻤﻭﺠﻭﺩﺓ ﻓﻴﻬﺎ ﺃﻭ ﺇﻀﺎﻓﺔ ﺒﻴﺎﻨﺎﺕ ﺠﺩﻴﺩﺓ
ﻤﺜل ﺃﻭﺭﺍﻜل ﺃﻭ ﺃﻜﺴﻴﺱ ﻤﻥ ﺨﻼل ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻓﺴﻭﻑ ﺘﻘﻭﻡ ﺒﺫﻟﻙ ﻤﻥ ﺨﻼل ﻟﻬﺎ-
.ADO.NETﺘﻡ ﺘﺼﻤﻴﻡ ADO.NETﻓﻲ ﺍﻷﺴﺎﺱ ﻟﻠﻌﻤل ﻤﻊ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻜﻥ ﺘﻌﻤل ﻤﻊ
ﻏﻴﺭﻫﺎ ﻤﻥ ﻤﺼﺎﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻟﺫﺍ ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒﺄﻥ ADO.NETﻴﻤﻜﻥ ﺃﻥ ﺘﺘﻌﺎﻤل ﻤﻊ ﺍﻷﻨﻭﺍﻉ
ﺍﻟﺘﺎﻟﻴﺔ ﻤﻥ ﻤﺨﺎﺯﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ :
-١ﺍﻟﻤﺨﺎﺯﻥ ﻏﻴﺭ ﺍﻟﻤﺘﻨﺎﺴﻘﺔ :ﻭﻫﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﻻ ﻴﻭﺠﺩ ﻟﻬﺎ ﺘﺭﺘﻴﺏ ﻤﺤﺩﺩ ﻤﺜل ﻤﻠﻑ ﻨﺼﻲ.
-٢ﺍﻟﻤﺨﺎﺯﻥ ﺍﻟﻤﺘﻨﺎﺴﻘﺔ ﻏﻴﺭ ﺍﻟﻤﺘﺩﺭﺠﺔ ) : (CSVﻭﻫﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻔﺼﻭﻟﺔ ﺒﻔﺎﺼﻠﺔ ﻤﺜل ﻤﻠﻔﺎﺕ
.ActiveDirectory ،Excel
-٣ﺍﻟﻤﺨﺎﺯﻥ ﺍﻟﻬﺭﻤﻴﺔ :ﻭﻫﻲ ﻤﻠﻔﺎﺕ ﺘﺨﺯﻥ ﻓﻴﻬﺎ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺄﺴﻠﻭﺏ ﻫﺭﻤﻲ ،ﻟﻌل ﻤﻥ ﺃﺒﺭﺯ ﺍﻷﻤﺜﻠﺔ
ﻤﻠﻔﺎﺕ .XML
-٤ﻤﺨﺎﺯﻥ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺘﺭﺍﺒﻁﺔ :ﻤﺜل ﺃﻭﺭﺍﻜل.MySQL ،SQLServer ،
System.Data
126
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺤﺼل ﻫﻨﺎﻙ ﺘﻁﻭﺭ ﻀﺨﻡ ﻤﻥ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺴﺎﺒﻕ ﻓﻲ ADOﺇﻟﻰ ﺍﻹﺼﺩﺍﺭ ﺍﻟﺤﺎﻟﻲ ADO.NET
ﻭﻻ ﻨﺒﺎﻟﻎ ﺇﺫﺍ ﻗﻠﻨﺎ ﺇﻥ ADO.NETﺘﻌﺘﺒﺭ ﺘﻘﻨﻴﺔ ﺠﺩﻴﺩﺓ ﻭ ﻟﻴﺴﺕ ﺇﺼﺩﺍﺭﺍ ﺠﺩﻴﺩﺍ ﻟﺴﺎﻟﻔﺘﻬﺎ .ADO
ﻭﺇﻟﻴﻙ ﺒﻌﺽ ﺍﻟﻔﺭﻭﻕ ﺒﻴﻥ ﺍﻹﺼﺩﺍﺭﻴﻥ.
ADO.NET ADO ﻭﺠﻪ ﺍﻟﻤﻘﺎﺭﻨﺔ
ﺩﻋﻡ ﻗﻭﻱ ﻏﻴﺭ ﻤﻭﺠﻭﺩ ﺩﻋﻡ xml
ﻨﻅﺭﺍ ﻷﻥ DATASET ﻫﻨﺎﻙ ﻋﺎﺌﻕ ﻟﻨﻘل ADOﻤﻥ ﻨﻘل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺨﻼل ﺍﻟﺠﺩﺍﺭ
ﺘﺩﻋﻡ XMLﻓﻼ ﻴﻭﺠﺩ ﺨﻼل ﺍﻟﺠﺩﺍﺭ ﺍﻟﻨﺎﺭﻱ. ﺍﻟﻨﺎﺭﻱ
ﻤﺸﻜﻠﺔ ﻓﻲ ﻨﻘل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ
ﺨﻼل ﺍﻟﺠﺩﺍﺭ ﺍﻟﻨﺎﺭﻱ.
ﺍﻟﺒﻴﺌﺔ ﻏﻴﺭ ﺍﻟﻤﺘﺼﻠﺔ ﺘﺴﺎﻋﺩ ﻴﻭﺠﺩ ﻤﺸﻜﻠﺔ ﻓﻲ ﺍﻟﺘﻭﺴﻊ ﻷﻥ ﺍﻟﺘﻭﺴﻊ
ﻋﻠﻰ ﺍﻻﺸﺘﺭﺍﻙ ﻓﻲ ﺍﻻﺘﺼﺎل ﺍﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﺘﻡ
ﻭﻤﻥ ﺜﻡ ﺇﻤﻜﺎﻨﻴﺔ ﺘﻭﺴﻊ ﻜﺒﻴﺭﺓ. ﺤﻔﻅﻪ ﻟﻤﺩﺓ ﻁﻭﻴﻠﺔ.
DataSetﺘﺤﻭﻱ ﻋﺩﺩ ﻏﻴﺭ Recordsetﺘﺤﻭﻱ ﻋﻠﻰ ﺠﺩﻭل ﺘﻤﺜﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ
ﻤﺤﺩﺩ ﻤﻥ ﺍﻟﺠﺩﺍﻭل ﻓﻲ ﻨﻔﺱ ﻭﺍﺤﺩ ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ.
ﺍﻟﻭﻗﺕ
ﺘﻤﻜﻥ ﻤﻥ ﻋﻤل ﺍﻟﻌﻼﻗﺎﺕ ﺒﻌﺩ ﺘﺘﻁﻠﺏ ﺭﺒﻁ ﺍﻟﺠﺩﺍﻭل ﻗﺒل ﺍﻟﻌﻼﻗﺎﺕ ﺒﻴﻥ ﻋﺩﺓ ﺠﺩﺍﻭل
ﺇﺤﻀﺎﺭﻫﺎ ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﺤﻀﺎﺭﻫﺎ ﻤﻥ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻤﻥ ﺨﻼل .DataRelation
ﻴﺘﻡ ﺍﻟﻤﺭﻭﺭ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﺘﻡ ﺍﻟﻤﺭﻭﺭ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺸﻜل ﺍﻟﻤﺭﻭﺭ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺒﺸﻜل ﻏﻴﺭ ﺘﺴﻠﺴﻠﻲ. ﺘﺴﻠﺴﻠﻲ ﺩﺍﺨل .Recordset
ﻤﻬﻴﺄﺓ ﻤﻥ ﺨﻼل Datasetﻭ ﻻ ﻴﻭﺠﺩ ﺩﻋﻡ ﺠﻴﺩ. ﺍﻟﺒﻴﺌﺔ ﻏﻴﺭ ﺍﻟﻤﺘﺼﻠﺔ
.DataAdaptor
127
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻷﻨﻅﻤﺔ ﺍﻟﺒﺭﻤﺠﻴﺔ ﺍﻟﺘﻲ ﺘﺴﻤﺢ ﺒﺄﻥ ﺘﺨﺯﻥ ﻓﻴﻬﺎ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﺘﺴﻤﺢ
ﺒﺈﺩﺍﺭﺓ ﻫﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻴﺠﺏ ﺃﻥ ﻨﻼﺤﻅ ﺃﻥ Datasetﻻ ﺘﻌﺘﻤﺩ ﻋﻠﻰ ﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻤﻌﻴﻥ ﻤﻤﺎ
ﻴﻭﻓﺭ ﺇﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻤﻊ ﺃﻱ ﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻭﺴﻭﻑ ﻴﺄﺘﻲ ﻓﺼل ﻜﺎﻤل ﺨﺎﺹ ﺒﻤﺠﻤﻭﻋﺔ
ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻭﻫﻲ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻔﺌﺎﺕ ﺘﺩﻋﻡ ﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻤﺤﺩﺩ ﻟﺫﻟﻙ ﻴﺠﺏ ﻜﺘﺎﺒﺔ ﻫﺫﻩ ﺍﻟﻤﺯﻭﺩﺍﺕ ﺨﺼﻴﺼﺎ ﻟﻬﺫﺍ
ﺍﻟﻤﺼﺩﺭ ﻭ ﺒﺎﻟﺘﺎﻟﻲ ﻟﻥ ﺘﻌﻤل ﻫﺫﻩ ﺍﻟﻤﺯﻭﺩﺍﺕ ﻤﻊ ﻤﺼﺩﺭ ﺁﺨﺭ .ﻭ ﺘﻭﻓﺭ ﻫﺫﻩ ﺍﻟﻤﺯﻭﺩﺍﺕ ﺍﻟﻘﺩﺭﺓ ﻋﻠﻰ
ﺍﻹﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺍﺴﺘﻌﺎﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻨﻬﺎ ﻭ ﺘﺤﺩﻴﺜﻬﺎ .ﻴﻭﺠﺩ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﻫﺫﻩ ﺍﻟﻤﺯﻭﺩﺍﺕ ﻤﺜل
.Sql Server .net Data Providerﺍﻨﻅﺭ ﺍﻟﺸﻜل). (١-١٢
DataReader
128
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
OLE DB .NET SQL Client .NET ODBC .NET MySQL Client .NET
Data Provider Data Provider Data Provider Data Provider
SQL Server
ﻤﺨﺯﻥ ﺒﻴﺎﻨﺎﺕ ﻣﺨﺰن ﺑﻴﺎﻧﺎت MySQL 4.0
/ MSDE
ﻤﻼﺤﻅﺔ :ﻓﻲ ﺤﺎﻟﺔ ﺍﺨﺘﻴﺎﺭ ﻤﺯﻭﺩ ﺒﻴﺎﻨﺎﺕ ﺃﺼﻠﻲ ﻓﺈﻥ ﺍﻻﺘﺼﺎل ﺴﻴﻜﻭﻥ ﻤﺒﺎﺸﺭﺍ ﺒﻴﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ
ﺘﻜﺘﺒﻪ ﻭ ﺒﻴﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻴﻨﻤﺎ ﺘﻭﺠﺩ ﻁﺒﻘﺔ ﻋﻨﺩﻤﺎ ﺘﺴﺘﺨﺩﻡ ﺍﻟﻨﻭﻉ ﺍﻟﻌﺎﻡ ،Oledbﺃﻭ . ODBC
ﻋﻨﺩ ﺘﻬﻴﺌﺔ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻋﻠﻰ ﺤﺎﺴﺒﻙ ﻓﺈﻨﻪ ﻴﻭﺠﺩ ﻤﻌﻬﺎ ﻤﺯﻭﺩﺍ ﺒﻴﺎﻨﺎﺕ ﻫﻤﺎ :
-١ﺍﻟﻤﺯﻭﺩ ﺍﻟﻌﺎﻡ .Oledb
-٢ﻤﺯﻭﺩ ﺒﻴﺎﻨﺎﺕ ﺃﺼﻠﻲ ﻴﻌﻤل ﻤﻊ .SQLServer
129
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺇﺫﺍ ﺭﻏﺒﺕ ﺒﺈﻀﺎﻓﺔ ﻤﺯﻭﺩ ﺒﻴﺎﻨﺎﺕ ﺃﻭﺭﺍﻜل ﻗﻡ ﺒﺈﻨﺯﺍﻟﻪ ﺒﺎﻟﻤﺠﺎﻥ ﻤﻥ ﻤﻭﻗﻊ ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﻭﻤﻥ ﺜﻡ ﻗﻡ
ﺒﺘﻬﻴﺌﺘﻪ ﻟﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺇﻀﺎﻓﺘﻪ ﺇﻟﻰ ﺒﺎﻗﻲ ﺍﻟﻤﺯﻭﺩﺍﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ.
ﻤﻼﺤﻅﺔ :ﺴﻭﻑ ﻴﻜﻭﻥ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺨﺎﺹ ﺒﺄﻭﺭﺍﻜل ﻤﺘﻭﻓﺭﺍ ﻓﻲ ﻨﺴﺨﺔ ٢٠٠٣ﻤﻥ ﻓﻴﺠﻭﺍل
ﺴﺘﻭﺩﻴﻭ ﺩﻭﺕ ﻨﺕ .
ﺍﻟﻤﺯﻭﺩ ﺍﻷﻭل ﻫﻭ ﺍﻟﻤﺯﻭﺩ ﺍﻷﺼﻠﻲ ﻟـ SQLServerﺃﻤﺎ ﺍﻟﻤﺯﻭﺩ ﺍﻟﺜﺎﻨﻲ ﻓﻬﻭ ﺍﻟﻤﺯﻭﺩ ﺍﻟﻌﺎﻡ.
ﺘﺘﻜﻭﻥ ﻤﺯﻭﺩﺍﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺃﺭﺒﻌﺔ ﻓﺌﺎﺕ – -Classesﺘﺒﺩﺃ ﺃﻭل ﺜﻼﺜﺔ ﺃﺤﺭﻑ ﻤﻨﻬﺎ ﺒﺎﺴﻡ ﺍﻟﻤﺯﻭﺩ
ﻭﻫﻲ :
-١ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل – : -Connectionﺍﻟﻔﺌﺔ ﺍﻟﻤﺨﺼﺼﺔ ﻟﻼﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﻨﺩﺭﺝ ﺘﺤﺕ
ﻓﻀﺎﺀﺍﺕ ﺍﻷﺴﻤﺎﺀ ﺍﻟﺘﺎﻟﻴﺔ :
System.Data.OleDb.OleDbConnection
System.Data.SqlClient.SqlConnection
-٣ﻜﺎﺌﻥ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ – : -DataReaderﺘﺴﺘﺨﺩﻡ ﻟﻠﻘﺭﺍﺀﺓ ﻓﻘﻁ ﻭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﻤﻜﻥ ﻗﺭﺍﺀﺘﻬﺎ ﺇﻟﻰ
ﺍﻷﻤﺎﻡ ﻭ ﻻ ﻴﻤﻜﻥ ﺍﻟﺭﺠﻭﻉ ﻟﻠﺨﻠﻑ ،ﺘﺴﺘﺨﺩﻡ ﻟﻺﺴﺘﻌﻼﻡ ﻭﺘﻌﺘﺒﺭ ﺫﺍﺕ ﺃﺩﺍﺀ ﻋﺎﻟﻲ ﺠﺩﺍ .ﺘﺤﺕ
ﻓﻀﺎﺀﺍﺕ ﺍﻷﺴﻤﺎﺀ ﺍﻟﺘﺎﻟﻴﺔ :
130
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
-٤
System.Data.OleDb.OleDbDataReader
System.Data.SqlClient.SqlDataReader
131
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻟﻘﺭﺍﺀﺓ ﺃﻭ ﻜﺘﺎﺒﺔ ﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﻤﺎ ﻻﺒﺩ ﻓﻲ ﺍﻟﺒﺩﺍﻴﺔ ﻤﻥ ﺇﻨﺸﺎﺀ ﺍﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ،
ﻭﻫﻭ ﻤﺎ ﻴﺘﻡ ﻤﻥ ﺨﻼل ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل – .-Connectionﻭﻜﻤﺎ ﻤﺭ ﺒﻙ ﺴﺎﻟﻔﺎ ﻓﺈﻨﻪ ﺒﻨﺎﺀ ﻋﻠﻰ ﺍﺨﺘﻴﺎﺭﻙ
ﻟﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺴﻭﻑ ﺘﻘﻭﻡ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل ﺍﻟﺨﺎﺹ ﺒﺫﻟﻙ ﺍﻟﻤﺯﻭﺩ .ﻭﻨﺭﻴﺩ ﻫﻨﺎ ﺃﻥ ﻨﺫﻜﺭﻙ ﺒﺄﻥ
ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل ﻴﻭﺠﺩ ﻓﻲ ﺍﻻﻤﺘﺩﺍﺩ ﺍﻟﺘﺎﻟﻲ
System.Data.OleDb
ﺴﻭﻑ ﻨﻘﻭﻡ ﺒﺎﻟﺘﻌﺎﻤل ﻓﻲ ﺠﻤﻴﻊ ﺍﻷﻤﺜﻠﺔ ﻤﻊ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻌﺎﻡ Oledbﻨﻅﺭﺍ ﻷﻨﻨﺎ ﺴﻭﻑ
ﻨﺴﺘﺨﺩﻡ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺃﻜﺴﺱ ﻭﻫﻭ ﻤﺎﻴﺘﻭﻓﺭ ﻓﻲ ﻤﻌﻅﻡ ﺍﻷﺠﻬﺯﺓ.
ﻟﻼﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﻤﺎ ﻻﺒﺩ ﻤﻥ ﺍﻋﻁﺎﺀ ﻜﺎﺌﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻌﻠﻭﻤﺎﺕ ﻜﺎﻓﻴﺔ ﻋﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ
ﺘﺭﻴﺩ ﺃﻥ ﺘﺘﺼل ﺒﻬﺎ ﻤﺜل ﻤﻜﺎﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ ﻭ ﺍﻟﻜﻠﻤﺔ ﺍﻟﺴﺭﻴﺔ
ﻟﻠﺩﺨﻭل ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻥ ﻭﺠﺩ .ﺍﺴﺘﺨﺩﻡ ﺨﺎﺼﻴﺔ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل –-Connection String
ﻻﻋﻁﺎﺀ ﻫﺫﻩ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ.
133
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺘﻌﺘﺒﺭ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل ﺃﺤﺩ ﺨﺼﺎﺌﺹ ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل ،ﻭﻴﻤﻜﻥ ﺘﻌﺭﻴﻔﻬﺎ ﺒﺄﻨﻬﺎ ﻋﺒﺎﺭﺓ ﻋﻥ ﻋﺩﺩ ﻤﻥ
ﺍﻟﻌﻭﺍﻤل – -Parametersﺍﻟﻀﺭﻭﺭﻴﺔ ﻟﻼﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﺨﺘﻠﻑ ﺒﻌﺽ ﻫﺫﻩ ﺍﻟﻌﻭﺍﻤل ﺒﻨﺎﺀ
ﻋﻠﻰ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻴﺸﻤل ﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻲ ﺃﻫﻡ ﺍﻟﻌﻭﺍﻤل ﻓﻲ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل :
ﺍﻟﺸﺭﺡ ﺍﻟﻌﺎﻤل
ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻫﻲ ﺍﺴﻡ ﻤﺯﻭﺩ oleﻟﻬﺫﺍ ﺍﻻﺘﺼﺎل ،ﻭﺘﺴﺘﺨﺩﻡ ﻓﻘﻁ ﻋﻨﺩﻤﺎ Provider
ﺘﻘﻭﻡ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ .OLE DB
ﺍﺴﻡ ﺨﺎﺩﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ. DataSource
ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ. Intial Catalog
ﻴﺤﺩﺩ ﻓﻴﻤﺎ ﺇﺫﺍ ﻜﺎﻥ ﺍﻻﺘﺼﺎل ﻤﺘﻜﺎﻤل ﺍﻟﺜﻘﺔ ﻤﻊ ﻭﻴﻨﺩﻭﺯ. Integrated Security
ConnectionTimeoutﻭﻴﻤﺜل ﺍﻟﻭﻗﺕ ﺍﻟﺫﻱ ﺘﺘﻡ ﻓﻴﻪ ﻤﺤﺎﻭﻟﺔ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﻥ ﻟﻡ ﻴﺘﻡ
ﺍﻻﺘﺼﺎل ﺨﻼل ﻫﺫﺍ ﺍﻟﻭﻗﺕ – ﺒﺎﻟﺜﺎﻨﻴﺔ – ﺘﻡ ﺍﺭﺠﺎﻉ ﺨﻁﺄ ﻭﺘﻡ ﺍﻓﺸﺎل
ﺍﻻﺘﺼﺎل ﻋﻠﻤﺎ ﺒﺄﻥ ﺍﻟﻭﻗﺕ ﺍﻻﻓﺘﺭﺍﻀﻲ ﻫﻭ ١٥ﺜﺎﻨﻴﺔ.
ﻜﻠﻤﺔ ﺍﻟﻌﺒﻭﺭ ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺍﺴﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ. UserID/Password
ﻭ ﺇﻟﻴﻙ ﻫﺫﺍ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﻴﻌﻁﻲ ﺃﻤﺜﻠﺔ ﻋﻠﻰ ﺃﺴﻤﺎﺀ ﻤﺯﻭﺩﻱ oleﺍﻟﺸﺎﺌﻌﻴﻥ.
Oracle MSDAORA.1
134
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺇﺫﺍ ﻜﺎﻥ ﻤﻭﻗﻊ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﻨﻔﺱ ﺍﻟﻔﻬﺭﺱ – -Directoryﺍﻟﺫﻱ ﺘﻘﻊ ﻓﻴﻪ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺘﻲ
ﺘﺘﺼل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﻨﻙ ﻻﺘﺤﺘﺎﺝ ﺇﻟﻰ ﻜﺘﺎﺒﺔ ﺍﻟﻤﻭﻗﻊ ﻜﺎﻤﻼ ﻭ ﺇﻨﻤﺎ ﻴﻜﻔﻲ ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻗﺩ ﺘﻭﺍﺠﻪ ﺃﺤﻴﺎﻨﺎ ﻤﺸﻜﻠﺔ ﻓﻲ ﻜﺘﺎﺒﺔ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل ﻷﻨﻪ ﻤﻥ ﺍﻟﺼﻌﺏ ﺘﺫﻜﺭ ﻜﻴﻔﻴﺔ ﻜﺘﺎﺒﺘﻬﺎ ﺒﺩﻭﻥ ﺃﺨﻁﺎﺀ
ﻭ ﺒﺩﻭﻥ ﻨﺴﻴﺎﻥ ﺤﺭﻑ ﺃﻭ ﻓﺎﺼﻠﺔ .ﻴﻭﺠﺩ ﻁﺭﻴﻘﺔ ﺴﻬﻠﺔ ﻹﻨﺸﺎﺀ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل .ﻗﻡ ﺒﻤﺎ ﻴﻠﻲ :
-١ﻗﻡ ﺒﺈﻨﺸﺎﺀ ﻤﻠﻑ ﻨﺼﻲ TextFileﻭﺍﻋﻁﻪ ﺍﺴﻡ .MyConnString.txt
-٢ﻏﻴﺭ ﺍﻤﺘﺩﺍﺩﻩ ﻤﻥ txtﺇﻟﻰ ) UDLﺍﺨﺘﺼﺎﺭ .(Universal Data Link
-٣ﺍﻨﻘﺭ ﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺍﻟﻤﻠﻑ ﻟﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل)(١-١٣
-٤ﺍﺨﺘﺭ ﺸﺭﻴﻁ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ Providerﺜﻡ ﺍﺨﺘﺭ ﺍﻟﻤﺯﻭﺩ ﺍﻟﺨﺎﺹ ﺒﺄﻜﺴﺱ ﻭﻫﻭ
Microsoft.Jet.OLEDB.4
-٥ﺍﺨﺘﺭ ﺸﺭﻴﻁ . Connection
-٦ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺃﻥ ﺘﺒﻨﻲ ﻟﻬﺎ ﺴﻠﺴﻠﺔ ﺍﺘﺼﺎل.
135
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
136
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻟﻠﺘﺄﻜﺩ ﻤﻥ ﺤﺎﻟﺔ ﺍﻻﺘﺼﺎل ﻫل ﻫﻭ ﻤﻔﺘﻭﺡ ﺃﻭ ﻤﻐﻠﻕ ﺍﺴﺘﺨﺩﻡ ﺨﺎﺼﻴﺔ Stateﻜﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ
137
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻋﻤﻠﻴﺘﺎ ﻓﺘﺢ ﻭ ﺍﻏﻼﻕ ﺍﻻﺘﺼﺎل ﻅﺎﻫﺭﻴﺎ ﻭ ﺒﺎﻁﻨﻴﺎ ﺘﻌﺘﻤﺩ ﻋﻠﻰ ﻨﻭﻉ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺘﻲ ﺘﺴﺘﺨﺩﻤﻬﺎ ،ﻫل
ﻫﻲ ﺒﻴﺌﺔ ﻤﺘﺼﻠﺔ ﺃﻭ ﻏﻴﺭ ﻤﺘﺼﻠﺔ .ﺍﻟﻔﺘﺢ ﺍﻟﻅﺎﻫﺭﻱ ﺨﺎﺹ ﺒﺎﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻭ ﺍﻟﻔﺘﺢ ﺍﻟﺒﺎﻁﻨﻲ ﺨﺎﺹ
ﺒﺎﻟﺒﻴﺌﺔ ﻏﻴﺭ ﺍﻟﻤﺘﺼﻠﺔ.
138
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
Catch
Finally
End Try
139
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
140
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
.IIIﻤﻤﻴﺯﺍﺘﻬﺎ :
ﻴﻭﺠﺩ ﻤﻴﺯﺘﺎﻥ ﻫﺎﻤﺘﺎﻥ ﺘﺠﻌﻠﻨﺎ ﻨﻔﻜﺭ ﻓﻲ ﺍﺴﺘﺨﺩﺍﻡ ﺃﻭﻋﻴﺔ ﺍﻻﺘﺼﺎل ﻭﻫﻤﺎ :
-١ﺃﺩﺍﺀ ﺃﻋﻠﻰ ﻟﻸﻨﻅﻤﺔ :ﺤﻴﺙ ﺃﻥ ﻓﺘﺢ ﺇﺘﺼﺎل ﺠﺩﻴﺩ ﻟﻜل ﻤﺴﺘﺨﺩﻡ ﻴﺸﻜل ﻋﺒﺄ ﻋﻠﻰ ﺨﺎﺩﻡ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﺃﻨﻪ ﻴﺄﺨﺫ ﻭﻗﺘﺎ ﻹﺘﻤﺎﻡ ﻓﺘﺢ ﺍﻻﺘﺼﺎل.
-٢ﺍﻟﻘﺩﺭﺓ ﻋﻠﻰ ﺍﻟﺘﻭﺴﻊ ﺒﻜﻔﺎﺀﺓ
ﺇﺫﺍ ﻟﻡ ﻴﺘﻡ ﺍﺴﺘﺨﺩﺍﻡ ﺃﻭﻋﻴﺔ ﺍﻻﺘﺼﺎل ﺒﺸﻜل ﺼﺤﻴﺢ ﻗﺩ ﺘﺅﺜﺭ ﻋﻠﻰ ﺍﺩﺍﺀ ﺍﻟﻨﻅﺎﻡ .ﻭﺫﻟﻙ ﺃﻥ ﺍﻟﺘﻭﺴﻊ
ﻓﻲ ﺇﻜﺜﺎﺭ ﺍﻻﺘﺼﺎﻻﺕ ﻓﻲ ﺤﻭﺽ ﺍﻻﺘﺼﺎل ﻴﺴﺘﻬﻠﻙ ﻤﻭﺍﺭﺩ ﺨﺎﺩﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﺘﺘﻀﺢ ﺃﻫﻤﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﺃﻭﻋﻴﺔ ﺍﻻﺘﺼﺎل ﻓﻲ ﺘﻁﺒﻴﻘﺎﺕ ﺍﻻﻨﺘﺭﻨﺕ ﻭ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﺘﻲ ﻴﻌﻤل ﻋﻠﻴﻬﺎ
ﻤﺴﺘﺨﺩﻤﻴﻥ ﻜﺜﺭ .ﻴﺫﻜﺭ ﺃﻥ ﻋﻤﻠﻴﺔ ﺘﺠﻤﻴﻊ ﺍﻻﺘﺼﺎﻻﺕ ﺘﺘﻡ ﻓﻲ ﺨﺎﺩﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ
-١ﻋﻨﺩ ﺇﻏﻼﻕ ﺍﻻﺘﺼﺎل ﺒﻘﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ Closeﻴﺘﻡ ﺘﺭﺤﻴل ﺍﻻﺘﺼﺎل ﺇﻟﻰ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ.
-٢ﻋﻨﺩ ﺇﺘﻼﻑ ﺍﻻﺘﺼﺎل Disposeﻴﺘﻡ ﺇﻟﻐﺎﺀ ﺍﻻﺘﺼﺎل ﻤﻥ ﺍﻟﺫﺍﻜﺭﺓ ﻭﻻ ﻴﺘﻡ ﺇﺭﺠﺎﻋﻪ ﺇﻟﻰ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ.
-٣ﻋﻨﺩ ﺤﺩﻭﺙ ﺃﺤﺩ ﺍﻷﻤﺭﻴﻥ ﺍﻟﺘﺎﻟﻴﻴﻥ ﻴﺘﻡ ﺇﻟﻐﺎﺀ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ:
ﺤﺫﻑ ﺁﺨﺭ ﺍﺘﺼﺎل ﻤﻥ ﻭﻋﺎﺀ . •
ﻋﻨﺩ ﻤﺭﻭﺭ ﻭﻗﺕ ﻤﻌﻴﻥ. •
-٤ﺍﻻﺘﺼﺎل ﺍﻟﺤﺎﻟﻲ ﺍﻟﻤﺸﻐﻭل ﻻ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻪ.
-٥ﺍﻟﻘﻴﻤﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻫﻲ ﺍﺴﺘﺨﺩﺍﻡ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ.
-٦ﻋﻨﺩ ﺘﺭﻙ ﺍﻻﺘﺼﺎل ﻤﻔﺘﻭﺤﺎ ﻻ ﻴﺘﻡ ﺇﻋﺎﺩﺘﻪ ﺇﻟﻰ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ.
-٧ﻻ ﻴﺘﻡ ﺍﺴﺘﺨﺩﺍﻡ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎل ﻓﻲ ﺤﺎﻟﺔ ﺍﺨﺘﻼﻑ ﺍﺴﻡ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻓﻲ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل.
-٨ﺍﻟﻘﻴﻡ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻟﻠﺨﺎﺼﻴﺘﻴﻥ Minﻭ Maxﻫﻤﺎ ٠ﻭ ١٠٠ﻋﻠﻰ ﺍﻟﺘﻭﺍﻟﻲ.
-٩ﺇﺫﺍ ﺘﻡ ﺸﻐل ﻜل ﺍﻻﺘﺼﺎﻻﺕ ﻓﻲ ﺍﻟﻭﻋﺎﺀ ﻤﻊ ﻤﺴﺘﺨﺩﻤﻴﻥ ﻭ ﺠﺎﺀ ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ ﻁﻠﺏ ﺍﺘﺼﺎل ﻤﻥ ﻗﺒل ﻤﺴﺘﺨﺩﻡ
ﻤﺎ ﻓﺈﻨﻪ ﻴﺘﻡ ﺇﺭﺴﺎل ﻁﻠﺏ ﺍﺘﺼﺎل ﻭ ﻴﺘﻡ ﻭﻀﻊ ﻫﺫﺍ ﺍﻟﻁﻠﺏ ﻓﻲ ﺍﻻﻨﺘﻅﺎﺭ ﺤﺘﻰ ﻴﺘﻡ ﺇﻏﻼﻕ ﺍﺘﺼﺎل ﻤﺎ ﻭﻓﻲ ﺤﺎﻟﺔ ﻤﺭﻭﺭ ﺍﻟﻭﻗﺕ
Timeoutﻭﻋﺩﻡ ﺘﻠﺒﻴﺔ ﺍﻟﻁﻠﺏ ﻓﺈﻨﻪ ﻴﺘﻡ ﺍﻟﺭﺠﻭﻉ ﺒﺨﻁﺄ .
141
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻭﻗﺕ ﺒﺎﻟﺜﺎﻨﻴﺔ ﻟﻤﺩﺓ ﺒﻘﺎﺀ ﺍﻻﺘﺼﺎل ﻓﻲ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ ﻗﺒل ﺘﺩﻤﻴﺭﻩ. Connection Lifetime
ﺍﻟﻌﺩﺩ ﺍﻷﻗﺼﻰ ﻤﻥ ﺍﻻﺘﺼﺎﻻﺕ ﻓﻲ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎﻻﺕ. Max Pool Size
ﺍﻟﻌﺩﺩ ﺍﻷﻗل ﻤﻥ ﺍﻻﺘﺼﺎﻻﺕ ﻓﻲ ﻭﻋﺎﺀ ﺍﻻﺘﺼﺎل. Min Pool Size
142
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﺭ ﺒﻨﺎ ﻓﻲ ﺒﺎﺏ ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻭ ﺍﻟﺒﻴﺌﺔ ﺍﻟﻐﻴﺭ ﻤﺘﺼﻠﺔ ،ﺃﻨﻪ ﻓﻲ ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﺘﻭﺠﺩ ﻗﻨﺎﺓ ﺍﺘﺼﺎل
ﻤﻔﺘﻭﺤﺔ ﻤﻊ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺤﺘﻰ ﺘﺘﻡ ﻋﻤﻠﻴﺔ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﻫﺩﻑ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻤﻥ ﺜﻡ ﻴﺘﻡ
ﺍﻏﻼﻕ ﺍﻻﺘﺼﺎل .ﺘﻤﺜل ﻫﺫﻩ ﺍﻟﺒﻴﺌﺔ ﻓﻲ ADO.NETﺒﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻭ ﻜﺎﺌﻥ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻴﻤﻜﻥ
ﺘﺨﻴل ﻋﻤل ﺍﻟﺒﻴﺌﺔ ﺍﻟﻤﺘﺼﻠﺔ ﻤﻥ ﺨﻼل ﺍﻟﺸﻜل). (١-١٤
DataReader
ﻟﻌﻠﻙ ﺘﻼﺤﻅ ﺃﻨﻨﺎ ﻨﺴﺘﺨﺩﻡ ﺜﻼﺙ ﻜﺎﺌﻨﺎﺕ :ﻫﻲ ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل ،ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻭ ﻜﺎﺌﻥ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ.
143
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
.IIIﺨﺼﺎﺌﺼﻪ :
ﺘﻭﺠﺩ ﻋﺩﺓ ﺨﺼﺎﺌﺹ ﻟﻜﺎﺌﻥ ﺍﻷﻤﺭ ﺘﻤﻜﻨﻨﺎ ﻤﻥ ﺍﻟﺘﻌﺎﻤل ﻤﻌﻪ ﻭﻫﻲ :
144
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-١ﻋﺒﺎﺭﺓ ﻟﻐﺔ ﺍﻻﺴﺘﻔﺴﺎﺭ ﺍﻟﺒﻨﺎﺌﻴﺔ ﺍﻟﺘﻲ ﺴﻭﻑ ﺍﻟﺨﺎﺼﻴﺔ ﻋﻠﻰ ﺍﻋﺘﻤﺎﺩﺍ CommandText
ﻴﺘﻡ ﺘﻨﻔﻴﺫﻫﺎ ﺴﻭﺍﺀ ﻻﺴﺘﺭﺠﺎﻉ ﺃﻭ ﺘﺤﺩﻴﺙ ﺍﻟﺴﺎﺒﻘﺔCommandType
ﺴﻭﻑ ﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﻭﺍﺤﺩ ﻤﻥ
ﺒﻴﺎﻨﺎﺕ
ﺜﻼﺙ ﻤﺩﺨﻼﺕ
-٢ﺍﺴﻡ ﺍﻹﺠﺭﺍﺀ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻭ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻩ.
-٣ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﺍﻟﺘﻌﺎﻤل ﻤﻌﻪ
ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺩﺨﻠﺔ ﻓﻲ ﺨﺎﺼﻴﺔ Command Textﺘﻌﺘﻤﺩ ﻋﻠﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻲ ﺘﻡ ﺍﺨﺘﻴﺎﺭﻫﺎ ﻓﻲ
ﺍﻟﺨﺎﺼﻴﺔ .CommandType
.IVﻁﺭﻕ ﻜﺎﺌﻥ ﺍﻷﻤﺭ :
ﺴﻭﻑ ﻨﺘﻁﺭﻕ ﻷﻫﻡ ﺜﻼﺜﺔ ﻁﺭﻕ ﻓﻲ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻭﻫﻲ :
145
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻓﻴﻤﺎ ﻟﻭ ﺃﻋﺎﺩﺕ ﺠﻤﻠﺔ SQLﺃﻜﺜﺭ ﻤﻥ ﻗﻴﻤﺔ ﻓﺴﻭﻑ ﻴﺘﻡ ﺇﻫﻤﺎل ﻜل ﺍﻟﻘﻴﻡ ﻤﺎﻋﺩﺍ ﺍﻟﻘﻴﻤﺔ ﺍﻷﻭﻟﻰ
ﻤﻥ ﺍﻟﺼﻑ ﺍﻷﻭل ﻭ ﺍﻟﻌﺎﻤﻭﺩ ﺍﻷﻭل ﻭﻫﻭ ﻤﺎ ﻴﻅﻬﺭ ﺃﻥ ADO.NETﺃﻗﻭﻯ ﻤﻥ ADOﺍﻟﺘﻲ
ﺘﻌﻴﺩ ﻜل ﺍﻟﻘﻴﻡ.
ﺍﻨﻅﺭ ﺇﻟﻰ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻻﺴﺘﺨﺩﺍﻡ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻻﺴﺘﺭﺠﺎﻉ ﻗﻴﻤﺔ ﻭﺍﺤﺩﺓ ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ :
ﺍﻟﺸﺭﺡ :
-١ﻋﺭﻓﻨﺎ ﺍﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل.
-٢ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻋﺭﻓﻨﺎ ﺠﻤﻠﺔ ﺍﻻﺴﺘﻌﻼﻡ.
-٣ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻟﺙ ﻋﺭﻓﻨﺎ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل.
-٤ﻤﺤﺎﻭﻟﺔ ﻓﺘﺢ ﺍﻻﺘﺼﺎل ﺜﻡ ﺇﻨﺸﺎﺀ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻤﻊ ﺇﻋﻁﺎﺌﻪ ﺠﻤﻠﺔ ﺍﻻﺴﺘﻌﻼﻡ ﻭ ﺍﻻﺘﺼﺎل ﺍﻟﺫﻱ
ﺴﻴﻘﻭﻡ ﺒﺎﺴﺘﺨﺩﺍﻤﻪ.
-٥ﻗﻤﻨﺎ ﺒﺘﻨﻔﻴﺫ ﺍﻟﻁﺭﻴﻘﺔ ExecuteScalarﻟﺘﻨﻔﻴﺫ ﺍﻷﻤﺭ ﻭ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻌﻴﺩ ﻟﻨﺎ ﻨﺘﻴﺠﺔ ﺍﻟﻌﻤﻠﻴﺔ.
-٦ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﺍﻟﻨﺘﻴﺠﺔ ﻋﻠﻰ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ ﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل).(٢-١٤
-٧ﻓﻲ ﺤﺎﻟﺔ ﺤﺼﻭل ﺨﻁﺄ ﺴﻴﺘﻡ ﺇﻅﻬﺎﺭﻩ ﻓﻲ ﺃﺩﺍﺓ ﻋﻨﻭﺍﻥ.
ﺷﻜﻞ : ٢-١٤اﺳﺘﺮﺟﺎع ﻗﻴﻤﺔ واﺣﺪة ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت.
146
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻨﺴﺦ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻤﻊ ﺍﻟﻘﺭﺹ ﺍﻟﻤﺭﻓﻕ ﻭﻀﻌﻬﺎ ﻓﻲ \ c:ﻤﺒﺎﺸﺭﺓ ﻜﻤﺎ ﺘﺭﻯ ﺫﻟﻙ
ﻭﺍﻀﺤﺎ ﻤﻥ ﺴﻠﺴﻠﺔ ﺍﻻﺘﺼﺎل ،ﺜﻡ ﻁﺒﻕ ﺍﻟﻤﺜﺎل ،ﻀﻊ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﺩﺍﺨل ﺤﺩﺙ ﺍﻟﻨﻘﺭ ﻓﻲ ﺯﺭ ﺃﻤﺭ
ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل )(٢-١٤
ﻴﻘﻭﻡ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻘﺭﺍﺀﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﺍﻷﻤﺎﻡ ﻭﻫﻭ ﻜﻤﺎ ﺘﻼﺤﻅ ﻤﻥ ﺍﺴﻤﻪ ﻤﺨﺼﺹ ﻟﻘﺭﺍﺀﺓ
ﺍﻟﺒﻴﺎﻨﺎﺕ.ﻋﻨﺩ ﺘﻨﻔﻴﺫ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﺍﻟﺫﻱ ﻴﺭﺠﻊ ﻋﺩﺓ ﺼﻔﻭﻑ ﻴﻤﻜﻨﻙ ﺍﺴﺘﺨﺩﺍﻡ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻠﻤﺭﻭﺭ
ﻋﻠﻰ ﻫﺫﻩ ﺍﻟﺼﻔﻭﻑ.ﻻﺴﺘﺭﺠﺎﻉ ﻋﺩﺓ ﺼﻔﻭﻑ ﺍﺴﺘﺨﺩﻡ ﺍﻟﻭﻅﻴﻔﺔ .ExecuteReader
ﻋﻨﺩ ﻗﺭﺍﺀﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﻥ ﺍﻻﺘﺼﺎل ﻴﺒﻘﻰ ﻤﻔﺘﻭﺤﺎ ﺤﺘﻰ ﺘﻘﻭﻡ ﺒﺈﻏﻼﻗﻪ ،ﻟﺫﺍ
ﻴﺠﺏ ﻋﻠﻴﻙ ﺇﻏﻼﻕ ﺍﻻﺘﺼﺎل ﺤﺎﻟﻤﺎ ﺘﻘﻭﻡ ﺒﺎﻻﻨﺘﻬﺎﺀ ﻤﻥ ﻗﺭﺍﺀﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﻟﻜﺎﺌﻥ
ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺨﻼل ﻓﻀﺎﺀ ﺍﻻﺴﻡ ﺍﻟﺘﺎﻟﻲ :
System.Data.OleDb.OleDbDataReader
System.Data.SqlClient.SqlDataReader
ﻗﺭﺍﺀﺓ ﺍﻟﺼﻑ ﺍﻟﺘﺎﻟﻲ ،ﺘﺭﺠﻊ Trueﺇﺫﺍ ﻭﺠﺩ ﺍﻟﺼﻑ ﺃﻭ Falseﺇﺫﺍ ﻟﻡ ﻴﻭﺠﺩ Read
ﺘﺴﺘﺨﺩﻡ ﻻﺴﺘﺭﺠﺎﻉ ﻗﻴﻤﺔ ﺍﻟﺼﻑ ﻜﺎﻤﻼ ﻭﻗﺩ ﺘﻜﻭﻥ ﺃﻜﺜﺭ ﻓﻌﺎﻟﻴﺔ ﻤﻥ ﺍﺴﺘﺭﺠﺎﻉ GetValues
ﻗﻴﻤﺔ ﺍﻟﻌﺎﻤﻭﺩ ﻟﻭﺤﺩﻩ
ﻫل ﺘﺤﺘﻭﻱ ﻗﻴﻤﺔ Null isDBnull
147
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
148
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻹﻏﻼﻕ ﺍﻻﺘﺼﺎل ﺒﻌﺩ ﺍﺴﺘﺨﺩﺍﻤﻪ ﺁﻟﻴﺎ ﺍﺴﺘﺨﺩﻡ ﺍﻟﻌﺎﻤل ﺍﻟﺫﻱ ﻴﺅﺩﻱ ﺫﻟﻙ ﻜﻤﺎ ﻓﻲ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ
)rdName = cmd.ExecuteReader(CommandBehavior.CloseConnection
149
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
150
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﻟﻐﺘﻲ ﺍﻟﺘﺤﻜﻡ ﺒﺎﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺘﻌﺭﻴﻑ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻭﻅﻴﻔﺔ ExecuteNonQueryﻭ
ﺍﻟﺘﻲ ﺘﻌﺘﺒﺭ ﺍﺤﺩ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺘﺎﺒﻌﺔ ﻟﻜﺎﺌﻥ ﺍﻷﻤﺭ .ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﻭﻅﻴﻔﺔ ﺒﺈﺭﺠﺎﻉ ﻋﺩﺩ ﺍﻟﺼﻔﻭﻑ ﺍﻟﻤﺘﺄﺜﺭﺓ
ﺒﺎﻟﻌﻤﻠﻴﺔ.
ﺴﻭﻑ ﺘﻜﻭﻥ ﻨﺘﻴﺠﺔ ﻋﻤﻠﻴﺔ ﺇﻨﺸﺎﺀ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺼﻔﺭ ﺇﺫﺍ ﻨﺠﺤﺕ ﺍﻟﻌﻤﻠﻴﺔ ﻭ ﻏﻴﺭ ﺫﻟﻙ ﺇﺫﺍ ﻟﻡ
ﺘﻨﺠﺢ.
ﺠﻤل ﺘﻌﺩﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ DML
ﺠﻤل ﺘﻌﺩﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﺘﺩل ﻋﻠﻴﻬﺎ ﺍﻟﺘﺭﺠﻤﺔ ﺍﻟﺤﺭﻓﻴﺔ ﻭﻫﻲ ﺍﻟﺠﻤل ﺍﻟﺘﻲ ﺘﻤﻜﻨﻙ ﻤﻥ ﺍﻀﺎﻓﺔ ﻭ
ﺘﻌﺩﻴل ﻭ ﺤﺫﻑ ﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺠﺩﺍﻭل ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺠﻤل ﻟﻐﺔ ﺘﻌﺩﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻲ :
ﺍﻟﻬﺩﻑ ﻤﻨﻬﺎ ﺍﻟﺠﻤﻠﺔ
151
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻭﻫﻲ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ ﺘﺴﺘﺨﺩﻡ ﻹﻀﺎﻓﺔ ﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﺠﺩﻭل ﻓﻲ ﻗﺎﻋﺩﺓ INSERT
ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻭﻫﻲ ﺍﻟﺠﻤﻠﺔ ﺍﻟﺘﻲ ﺘﺴﺘﺨﺩﻡ ﻟﺘﺤﺩﻴﺙ ﺒﻴﺎﻨﺎﺕ ﺴﺒﻕ ﺍﺩﺨﺎﻟﻬﺎ UPDATE
ﺤﺫﻑ ﺼﻑ ﺃﻭ ﺃﻜﺜﺭ ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ DELETE
152
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
153
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
154
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
My
My
رﻳﺎل١٠٠ إﺿﺎﻓﺔ Component رﻳﺎل١٠٠ ﺧﺼﻢ
Component
اﻟﻤﺪﻳﻦ
ﺣﺴﺎباﻟﻤﺪﻳﻦ
ﺣﺴﺎب اﻟﺪاﺋﻦ
ﺣﺴﺎباﻟﺪاﺋﻦ
ﺣﺴﺎب
اﻟﻌﻤﻠﻴﺔ اﻟﻮاﺣﺪة
: ﺍﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ، ﻫﺫﻩ ﺍﻟﺨﻁﻭﺍﺕ ﺘﻭﻀﺢ ﻟﻙ ﻜﻴﻔﻴﺔ ﺘﻨﻔﻴﺫ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻭﺍﺤﺩﺓz
ﻭﻫﻲ ﺃﺤﺩ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﻜﺎﺌﻥ BeginTransaction ﻗﻡ ﺒﺎﺴﺘﺩﻋﺎﺀ ﺍﻟﻭﻅﻴﻔﺔ-١
Connection
ﻭﺍﺠﻌل ﻗﻴﻤﺘﻪ ﺘﺴﺎﻭﻱ ﺍﻟﻭﻅﻴﻔﺔ ﺍﻟﺘﻲ ﻋﺭﻓﺘﻬﺎOletransaction ﻋﺭﻑ ﻤﺘﻐﻴﺭﺍ ﻤﻥ ﻨﻭﻉ-٢
١ ﻓﻲ ﺍﻟﺨﻁﻭﺓ ﺭﻗﻡ
ﺇﻟﻰ ﺍﻟﻤﺘﻐﻴﺭ ﺍﻟﺫﻱ ﻋﺭﻓﺘﻪ ﻓﻲTransaction ﺍﺸﺭ ﻓﻲ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻤﻥ ﺨﻼل ﺨﺎﺼﻴﺔ-٣
٢ ﺍﻟﺨﻁﻭﺓ ﺭﻗﻡ
ﺃﻤﺎ ﺇﺫﺍ ﻟﻡ ﺘﻨﺠﺢ ﺍﻟﻌﻤﻠﻴﺔCommit ﺇﺫﺍ ﻨﺠﺤﺕ ﺍﻟﻌﻤﻠﻴﺔ ﻗﻡ ﺒﺎﺴﺘﺩﻋﺎﺀ. ﻨﻔﺫ ﺠﻤﻴﻊ ﺍﻷﻭﺍﻤﺭ-٤
Rollback ﻓﻘﻡ ﺒﺎﺴﺘﺩﻋﺎﺀ
155
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
)(trans.Commit
Catch e1 As OleDb.OleDbException
)(trans.Rollback
Label1.Text = e1.Message
End Try
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺍﻟﻜﻭﺩ ﺍﻟﻤﻭﺠﻭﺩ ﺒﺨﻁ ﻋﺭﻴﺽ ﻫﻭ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﺈﺩﺍﺭﺓ ﺍﻟﻌﻤﻠﻴﺔ ﺍﻟﻭﺍﺤﺩﺓ ،ﻻﺤﻅ
ﺃﻨﻨﺎ ﻨﻘﻭﻡ ﺒﻌﻤﻠﻴﺘﻲ ﺇﻀﺎﻓﺔ ﻋﻠﻰ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﺫﺍ ﻨﺠﺤﺕ ﺍﻷﻭﻟﻰ ﺜﻡ ﻓﺸﻠﺕ ﺍﻟﺜﺎﻨﻴﺔ ﻓﺈﻨﻪ ﺴﻭﻑ ﻴﺘﻡ
ﺍﻟﺘﺭﺍﺠﻊ ﻋﻥ ﻋﻤﻠﻴﺔ ﺍﻹﻀﺎﻓﺔ ﺍﻷﻭﻟﻰ ،ﻭﻫﻭ ﻤﺎ ﻴﻀﻤﻥ ﺒﻘﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺩﻗﻴﻘﺔ.
ﺩﺭﺠﺎﺕ ﺍﻟﻌﺯل
ﻤﺎ ﻫﻲ ﺩﺭﺠﺎﺕ ﺍﻟﻌﺯل
ﻴﻤﻜﻥ ﺘﻌﺭﻴﻑ ﺩﺭﺠﺎﺕ ﺍﻟﻌﺯل ﺒﺄﻨﻬﺎ ﺃﺩﺍﺀ ﺇﻗﻔﺎل ﻋﻤﻠﻴﺔ ﻟﻼﺘﺼﺎل .ﺒﺎﻟﻁﺒﻊ ﻴﺘﻭﺠﺏ ﻋﻠﻴﻙ ﺍﺨﺘﻴﺎﺭ
ﺩﺭﺠﺔ ﺍﻟﻌﺯل ﺍﻟﻤﻨﺎﺴﺒﺔ ﻋﻨﺩ ﺘﻀﺎﺭﺏ ﺃﻜﺜﺭ ﻤﻥ ﻋﻤﻠﻴﺔ ﻋﻠﻰ ﻨﻔﺱ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻤﺜﺎل ﻓﻲ ﺍﻟﺩﻭﺕ ﻨﺕ ﻴﻭﻀﺢ ﻜﻴﻔﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻌﺯل :
HRMTran=HRMCon.BeginTransaction(isolationLevel.Serialzable
156
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
157
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
DataSet Tables
DataTable DataView
)DataRow(s
Relations DataColumn
DataRelation
DataTable
DataTable
159
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻤﻬﻲﺀ ﺍﻟﺒﻴﺎﻨﺎﺕ : Data Adaptorﻴﻘﻭﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺜﻼﺜﺔ ﻜﺎﺌﻨﺎﺕ ﺒﺎﻁﻨﻴﺎ ﻭﻫﻲ ﻗﺎﺭﺉ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻭ ﻜﺎﺌﻥ ﺍﻻﺘﺼﺎل .ﻴﻘﻭﻡ ﺒﻔﺘﺢ ﺍﻻﺘﺼﺎل ﺒﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﻜﺎﺌﻥ
ﺍﻻﺘﺼﺎل ﺜﻡ ﺍﺴﺘﺨﺩﺍﻡ ﻜﺎﺌﻥ ﺍﻷﻤﺭ ﻟﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺔ ﻤﺎ ﺜﻡ ﻗﺎﺭﺉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻘﺭﺍﺀﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺘﻌﺒﺌﺘﻬﺎ ﻓﻲ
ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ
160
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
DataSet
Table1
ﺍﺴﺘﺨﺭﺍﺝ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ
Original ﻁﺭﻴﻕ Adaptor
DataStore
Table2
DataSet DataSet
Table1
ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ Table1
Table2
Table2
161
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻓﻲ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺴﺎﺒﻘﺔ ﻗﻤﻨﺎ ﺒﺈﻀﺎﻓﺔ ﺠﺩﻭل ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﺃﻨﺸﺄﻨﺎﻫﺎ ﺤﺩﻴﺜﺎ ﺜﻡ ﺃﺴﻨﺩﻨﺎ ﻫﺫﺍ
ﺍﻟﺠﺩﻭل ﺇﻟﻰ ﺠﺩﻭل ﺃﻨﺸﺄﻨﺎﻩ ﻭ ﺍﺴﻤﻪ . dtPersonﻋﻨﺩ ﺇﻀﺎﻓﺔ ﺠﺩﻭل ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ ﻭ ﻋﺩﻡ
ﺘﺴﻤﻴﺘﻪ ﻓﺈﻨﻪ ﻴﺄﺨﺫ ﺍﺴﻡ TableXﻭ ﺍﻟﻌﺩﺩ ﺍﻜﺱ ﻫﻭ ﺘﺼﺎﻋﺩﻱ ﺤﺴﺏ ﻋﺩﺩ ﺍﻟﺠﺩﺍﻭل ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ
ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
-٣ﺍﻟﺨﻁﻭﺓ ﺍﻟﺜﺎﻟﺜﺔ ﻫﻲ ﺇﻀﺎﻓﺔ ﻋﺎﻤﻭﺩ ﺇﻟﻰ ﺠﺩﻭل ﺩﺍﺨل ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﺍﻷﻤﺭ ﺍﻟﺘﺎﻟﻲ ﻴﻘﻭﻡ
ﺒﺈﻨﺸﺎﺀ ﻋﺎﻤﻭﺩ ﻭﻤﻥ ﺜﻡ ﺇﻀﺎﻓﺘﻪ ﺇﻟﻰ ﺠﺩﻭل :
))Dim colName As DataColumn = dtPerson.Columns.Add("Name", GetType(System.String
colName.AllowDBNull = False
colName.Unique = True
162
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
colName.AllowDBNull = False
colName.Unique = True
)MessageBox.Show(dtPerson.TableName
))(MessageBox.Show(dsTelDir.Tables.Count.ToString
ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﻁﺒﻘﻨﺎ ﻜل ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﺜﻡ ﺃﻅﻬﺭﻨﺎ ﺭﺴﺎﻟﺘﺎﻥ :
-١ﺍﻟﺭﺴﺎﻟﺔ ﺍﻷﻭﻟﻰ ﻨﻘﻭﻡ ﺒﻌﺭﺽ ﺍﺴﻡ ﺍﻟﺠﺩﻭل.
-٢ﺍﻟﺭﺴﺎﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﻘﻭﻡ ﻓﻴﻬﺎ ﺒﻌﺭﺽ ﻋﺩﺩ ﺍﻟﺠﺩﺍﻭل ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
163
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﺩﺭﺠﺎﺕ .ﻫﺫﺍ ﺍﻟﺤﻘل ﻴﻤﺜل ﺒﻌﺎﻤﻭﺩ ﻴﺄﺨﺫ ﻗﻴﻤﻪ ﻤﻥ ﺍﻟﺤﺴﺎﺒﺎﺕ ﻭ ﻻ ﻴﻜﻭﻥ ﻟﻪ ﻋﺎﻤﻭﺩ ﻤﻤﺎﺜل ﻓﻲ
ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻏﺎﻟﺒﺎ .ﻴﻤﻜﻥ ﺇﻀﺎﻓﺘﻪ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺨﺎﺼﻴﺔ Expressionﻭﻫﻲ ﺃﺤﺩ ﺨﺼﺎﺌﺹ
ﺍﻟﻜﺎﺌﻥ .DataColumn
164
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٢ﻗﻡ ﺒﻨﻘﺭ ﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻴﻤﻥ ﻋﻠﻰ Data Connectionﺜﻡ ﺍﺨﺘﺭ .Add Connection
ﺴﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ﺍﺨﺘﺭ ﺨﺎﻨﺔ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ Providerﺜﻡ ﺍﺨﺘﺭ ﺍﻟﻤﺯﻭﺩ ﺍﻟﺨﺎﺹ ﺒﺄﻜﺴﺱ ﻭﻫﻭ
Microsoft.Jet.OLEDB.4ﺍﺨﺘﺭ ﺨﺎﻨﺔ Connectionﺜﻡ ﺍﺨﺘﺭ
ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ TelDir
165
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﺃﻨﺵﺀ ﻤﻬﻲﺀ ﺍﻟﺒﻴﺎﻨﺎﺕ )ﻭﺍﻟﺫﻱ ﻴﻭﺠﺩ ﻓﻲ ﺨﺎﻨﺔ Dataﻓﻲ ﻤﺭﺒﻊ ﺍﻷﺩﻭﺍﺕ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ
ﺍﻟﺸﻜل( ﻭﺫﻟﻙ ﺒﺈﻀﺎﻓﺘﻪ ﺇﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ.ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺭﺴﺎﻟﺔ ﺘﺭﺤﻴﺏ
ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ.
-٤ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺍﺨﺘﻴﺎﺭ ﺍﻻﺘﺼﺎل ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺍﺴﺘﺨﺩﺍﻤﻪ ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭ ﺍﻻﺘﺼﺎل ﺍﻟﺫﻱ ﺘﻡ
ﺇﻨﺸﺎﺌﻪ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل .ﺜﻡ ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﻟﺘﺎﻟﻲ.
-٤ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺘﻁﻠﺏ ﻤﻨﻙ ﺍﺨﺘﻴﺎﺭ ﻁﺭﻴﻘﺔ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻓﻲ ﺤﺎﻟﺔ
ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺃﻜﺴﺱ ﻻ ﻴﻭﺠﺩ ﺇﻻ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻷﻭل ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل ،ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ،
166
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٥ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺘﺴﺄﻟﻙ ﻋﻥ ﺠﻤﻠﺔ SQLﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺘﻨﻔﻴﺫﻫﺎ .ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ
QueryBuilderﻹﻨﺸﺎﺀ ﺍﻟﺠﻤﻠﺔ ﺒﻁﺭﻴﻘﺔ ﺴﻬﻠﺔ .ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﻗﺎﺌﻤﺔ ﺒﺎﻟﺠﺩﺍﻭل ﺍﻟﻤﻭﺠﻭﺩﺓ
ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭ ﺍﻟﺠﺩﻭل Personﺜﻡ ﺍﻨﻘﺭ ﻤﻭﺍﻓﻕ .ﺴﻭﻑ ﺘﻅﻬﺭ
ﻟﻙ ﺤﻘﻭل ﻫﺫﺍ ﺍﻟﺠﺩﻭل ﻜﻤﺎ ﺘﺭﻯ ﻓﻲ ﺍﻟﺸﻜل ﺍﺨﺘﺭ Name،IDﺜﻡ ﺍﻨﻘﺭ ﻤﻭﺍﻓﻕ.
ﺴﻭﻑ ﺘﺭﺠﻊ ﺇﻟﻰ ﺍﻟﺸﺎﺸﺔ ﺍﻷﻭﻟﻰ ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ.
-٦ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ﻭ ﺍﻟﺫﻱ ﻴﺨﺒﺭﻙ ﺒﺄﻨﻪ ﺘﻡ ﺇﻨﺘﺎﺝ ﺠﻤﻴﻊ ﺃﻨﻭﺍﻉ ﺠﻤل
ﺍﻻﺴﺘﻔﺴﺎﺭ ﺍﻟﺒﻨﺎﺌﻴﺔ ﻟﻠﺠﺩﻭل ﺍﻟﺫﻱ ﺍﺨﺘﺭﺕ ﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﺇﻨﻬﺎﺀ .ﻻﺤﻅ ﺃﻨﻪ ﺘﻡ
ﺇﻨﺸﺎﺀ ﻜﺎﺌﻨﻲ ﺍﺘﺼﺎل ﻭ ﻤﻬﻲﺀ ﺒﻴﺎﻨﺎﺕ.
167
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٧ﻹﻨﺸﺎﺀ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻗﻡ ﺒﺎﻟﻨﻘﺭ ﺒﺎﻟﺯﺭ ﺍﻷﻴﻤﻥ ﻋﻠﻰ ﻤﻬﻲﺀ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل .ﺜﻡ
ﺍﺨﺘﺭ Generate Data Set
-٨ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ﻭ ﺍﻟﺫﻱ ﻴﻁﻠﺏ ﻤﻨﻙ ﺃﻥ ﺘﺯﻭﺩﻩ ﺒﺎﺴﻡ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻗﻡ ﺘﺴﻤﻴﺘﻬﺎ
dsPersonﻜﻤﺎ ﻴﻅﻬﺭ ﻟﻙ ﻤﻥ ﺍﻟﺸﻜل .ﻗﻡ ﺒﺈﺯﺍﻟﺔ ﻋﻼﻤﺔ ﺍﻻﺨﺘﻴﺎﺭ ﻋﻥ Add This
Dataset to The Designerﺍﻨﻘﺭ ﻋﻠﻰ ﺯﺭ ﻤﻭﺍﻓﻕ ﺴﻭﻑ ﺘﻼﺤﻅ ﺃﻨﻪ ﺘﻡ ﺇﻀﺎﻓﺔ
ﻤﻠﻑ dsPerson.xsdﺇﻟﻰ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤﻠﻭل.
-٩ﻟﺘﺤﻤﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺃﻀﻑ ﺯﺭ ﺃﻤﺭ ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﻭ
ﺃﻀﻑ ﺸﺒﻜﺔ ﺒﻴﺎﻨﺎﺕ Datagridﻤﻥ ﻤﺭﺒﻊ ﺍﻷﺩﻭﺍﺕ ﺜﻡ ﺃﻀﻑ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﺩﺍﺨل ﺤﺩﺙ
168
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
169
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺘﻌﺘﺒﺭ ﻫﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﺍﻷﻜﺜﺭ ﺸﻴﻭﻋﺎ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻴﻤﻜﻥ ﻤﻠﺊ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺩﻭﻥ ﺃﻥ ﺘﺤﺘﺎﺝ ﺇﻟﻰ ﺒﻨﺎﺀ ﻫﻴﻜل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻷﻥ ﻫﻴﻜل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺘﻡ ﺘﻜﻭﻴﻨﻪ ﺒﻌﺩ ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ
ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻭ ﺃﻋﻁﻬﺎ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ :
ﻻﺤﻅ ﺃﻨﻨﺎ ﻟﻡ ﻨﻘﻡ ﺒﻔﺘﺢ ﺍﻻﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻷﻥ ﻤﻬﻲﺀ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﻘﻭﻡ ﺒﺫﻟﻙ.
170
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
171
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٤ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ ﺴﻭﻑ ﺘﻘﻭﻡ ﺒﺭﺒﻁ ﺃﻋﻤﺩﺓ ﺍﻟﺠﺩﻭل ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻨﺎ
ﻟﻨﺘﻤﻜﻥ ﻤﻥ ﺇﻋﻁﺎﺌﻬﺎ ﺨﺼﺎﺌﺹ ﻜﻤﺎ ﻨﺭﻴﺩ .ﺍﻨﻘﺭ ﻋﻠﻰ ﺍﻟﻨﻘﺎﻁ ﺍﻟﺜﻼﺜﺔ ﺍﻟﻤﻘﺎﺒﻠﺔ ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻴﻅﻬﺭ
ﻟﻙ ﺍﻟﺸﻜل .ﺍﻀﻐﻁ ﺯﺭ ﺍﻹﻀﺎﻓﺔ Addﻟﻴﺘﻡ ﺇﻀﺎﻓﺔ ، GridColumnStyleﺍﺫﻫﺏ ﺇﻟﻰ
ﺍﻟﺨﺎﺼﻴﺔ MappingNameﻭ ﺍﻜﺘﺏ idﻟﻴﺘﻡ ﺭﺒﻁ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﻟﻌﺎﻤﻭﺩ idﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ
ﺍﻟﺠﺩﻭل Personﺍﺫﻫﺏ ﺇﻟﻰ ﺨﺎﺼﻴﺔ HeaderTextﻭ ﺍﻜﺘﺏ ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ،ﻫﺫﺍ ﻫﻭ ﻤﺎ
ﺴﻴﻅﻬﺭ ﻋﻨﻭﺍﻨﺎ ﻟﻌﺎﻤﻭﺩ ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﻓﻲ ﺸﺒﻜﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﺃﻀﻑ ﻜﺎﺌﻨﺎ ﺁﺨﺭ ﻭ ﺍﺫﻫﺏ ﺇﻟﻰ
MappingNameﻭ ﺍﻜﺘﺏ .nameﺍﺫﻫﺏ ﺇﻟﻰ ﺨﺎﺼﻴﺔ HeaderTextﻭ ﺍﻜﺘﺏ ﺍﺴﻡ ﺍﻟﻤﻭﻅﻑ.
ﺍﻀﻐﻁ Okﺜﻡ Okﺜﻡ ﺸﻐل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻟﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل
172
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
173
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٤ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ ﻫﻲ ﺍﻷﻫﻡ ﺤﻴﺙ ﻗﻤﻨﺎ ﺒﺭﺒﻁ ﺍﻟﺠﺩﻭﻟﻴﻥ ﺒﺒﻌﻀﻬﻤﺎ ﺍﻟﺒﻌﺽ ﻤﻥ ﺨﻼل ﺍﻟﻌﺎﻤﻭﺩ
ﺍﻷﻭل ﻓﻲ ﺠﺩﻭل ﺍﻟﻤﻭﻅﻔﻴﻥ ﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﻭ ﺍﻟﻌﺎﻤﻭﺩ ﺍﻟﺜﺎﻨﻲ ﻓﻲ ﺠﺩﻭل
Phoneﻭ ﺍﻟﺫﻱ ﻴﻤﺜل ﻜﺫﻟﻙ ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ.
-٥ﻗﻤﻨﺎ ﺒﻌﺭﺽ ﻨﺘﻴﺠﺔ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﺎﻤﻠﺔ ﻋﻠﻰ ﺸﺒﻜﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻨﻘﻭﻡ ﺒﺎﻟﺒﺤﺙ ﻋﻥ ﺍﻟﺼﻑ ﺍﻟﺫﻱ ﻴﺤﻭﻱ ﺍﺴﻡ ﺍﻟﻤﻭﻅﻑ ﻋﺒﺩﺍﷲ ﺜﻡ ﻋﺭﺽ
ﺭﻗﻡ ﺃﻭل ﻤﻭﻅﻑ ﻓﻲ ﻨﺘﻴﺠﺔ ﺍﻟﺒﺤﺙ:
= Dim SearchRow() As DataRow
)"'ﻋﺒﺪاﷲ'=Myds.Tables("Person").Select("name
))MessageBox.Show(SearchRow(0).Item(0
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻨﻘﻭﻡ ﺒﺎﻟﺒﺤﺙ ﻋﻥ ﺍﻟﺼﻑ ﺍﻟﺫﻱ ﻴﺤﻭﻱ ﺍﺴﻡ ﺍﻟﻤﻭﻅﻑ ﻋﺒﺩﺍﷲ ﺜﻡ ﺘﺭﺘﻴﺏ
ﻨﺘﻴﺠﺔ ﺍﻟﺒﺤﺙ ﺤﺴﺏ ﺍﻟﺭﻗﻡ ﻤﻥ ﺍﻷﻋﻠﻰ ﺇﻟﻰ ﺍﻷﺩﻨﻰ :
= Dim SearchRow() As DataRow
)"'", "id DESCﻋﺒﺪاﷲ'=Myds.Tables("Person").Select("name
))MessageBox.Show(SearchRow(0).Item(0
ﻻﺤﻅ ﺃﻨﻨﺎ ﺃﻀﻔﻨﺎ ﻋﺎﻤﻼ ﺜﺎﻨﻴﺎ ﻟﺩﺍﻟﺔ ﺍﻟﺒﺤﺙ ﻭﻫﻭ ﻤﺎ ﻨﺭﻴﺩ ﺃﻥ ﻨﺭﺘﺏ ﺍﻟﻨﺘﻴﺠﺔ ﺒﻨﺎﺀ ﻋﻠﻴﻪ ﻭﻫﻭ ﺭﻗﻡ
ﺍﻟﻤﻭﻅﻑ ﺜﻡ ﺃﺘﺒﻌﻨﺎﻩ ﺒﺨﻴﺎﺭ ﺍﻟﺘﺭﺘﻴﺏ DESCﻭﻫﻭ ﻤﺎ ﻴﺭﺘﺏ ﺍﻟﻨﺘﻴﺠﺔ ﻤﻥ ﺍﻷﻋﻠﻰ ﺇﻟﻰ ﺍﻷﺩﻨﻰ
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺴﺘﻌﺭﻀﺎﺕ
ﺘﺘﻌﺩﺩ ﺍﺴﺘﺨﺩﺍﻤﺎﺕ ﺍﻟﻤﺴﺘﻌﺭﻀﺎﺕ ﻟﻜﻥ ﺃﺤﺩ ﺍﺴﺘﺨﺩﺍﻤﺎﺘﻬﺎ ﺍﻟﺸﺎﺌﻌﺔ ﻫﻲ ﺘﺭﺸﻴﺢ ﻋﺭﺽ ﺍﻟﺼﻔﻭﻑ ﻟﺫﻟﻙ
ﺘﻌﺘﺒﺭ ﺍﻟﻤﺴﺘﻌﺭﻀﺎﺕ ﺃﺤﺩ ﻁﺭﻕ ﺍﻟﺒﺤﺙ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ.
174
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﺴﻨﻘﻭﻡ ﺒﺈﻨﺸﺎﺀ ﻤﺴﺘﻌﺭﺽ ﻭﻤﻥ ﺜﻡ ﺍﻟﺒﺤﺙ ﻓﻴﻪ ﻭﺘﺭﺘﻴﺏ ﺍﻟﺼﻔﻭﻑ ﺍﻟﻨﺎﺘﺠﺔ
ﻤﻥ ﻋﻤﻠﻴﺔ ﺍﻟﺒﺤﺙ :
))"Dim DV As New DataView(Myds.Tables("Person
"'ﻋﺒﺪاﷲ'=DV.RowFilter = "name
"DV.Sort = "ename
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻗﻤﻨﺎ ﺒﺈﻨﺸﺎﺀ ﻤﺴﺘﻌﺭﺽ ﻟﻠﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺘﺤﺘﻭﻱ ﺍﺴﻡ ﻋﺒﺩﺍﷲ ﺜﻡ ﺭﺘﺒﻨﺎ ﺍﻟﺼﻔﻭﻑ ﻓﻲ
ﺍﻟﻤﺴﺘﻌﺭﺽ ﺒﻨﺎﺀ ﻋﻠﻰ ﺍﻻﺴﻡ ﺍﻷﺨﻴﺭ.
175
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
ﺒﺤﺙ Text
Label1 Name Label1
Text
btnNewData Name RadioButton1
ﺍﻟﺒﺤﺙ ﺒﻨﺴﺨﺔ ﻤﺤﺩﺜﺔ Text
rdoDSSearch Name RadioButton1
ﺍﻟﺒﺤﺙ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ Text
DataGrid1 Name dataGrid
ﺍﻟﺒﺤﺙ ﻋﻥ ﺍﻟﻤﻭﻅﻔﻴﻥ Text Form1
Yes RightToLeft
176
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﻋﺭﻓﻨﺎ ﺍﻟﻤﺭﺸﺢ ،ﻻﺤﻅ ﻭﺠﻭﺩ ﺍﻟﻨﺠﻤﺔ ﻭﻫﻭ ﻤﺎ ﻴﻌﻨﻲ ﺃﻨﻨﺎ ﻨﺭﻴﺩ ﺍﻟﺒﺤﺙ ﻋﻥ ﺃﻭل ﺠﺯﺀ ﻴﺩﺨﻠﻪ
ﺍﻟﻤﺴﺘﺨﺩﻡ ﺜﻡ ﻨﺤﻀﺭ ﻜل ﻤﺎ ﻴﻁﺎﺒﻕ ﻫﺫﺍ ﺍﻟﺠﺯﺀ ﺒﻐﺽ ﺍﻟﻨﻅﺭ ﻋﻥ ﺒﺎﻗﻲ ﺍﻻﺴﻡ
-٤ﻗﻤﻨﺎ ﺒﺎﻟﺘﺭﺘﻴﺏ ﺤﺴﺏ ﺍﻻﺴﻡ ﺍﻷﺨﻴﺭ
-٥ﻓﺭﻏﻨﺎ ﺸﺒﻜﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺃﻱ ﺒﻴﺎﻨﺎﺕ
-٦ﺃﻋﺩﻨﺎ ﻋﺭﺽ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﺸﺒﻜﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﺍﻨﻅﺭ ﺍﻟﺸﻜل ﺍﻟﻨﻬﺎﺌﻲ ﺒﻌﺩ ﺍﻟﺘﻨﻔﻴﺫ
177
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻤﺜﺎل :ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﺴﻨﻘﻭﻡ ﺒﻌﺭﺽ ﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻭﻅﻑ ﻤﻥ ﺨﻼل ﺭﺒﻁ ﺃﺩﺍﺓ ﻤﺭﺒﻊ ﺍﻟﻨﺹ
ﺒﺎﺴﻡ ﺍﻟﻤﻭﻅﻑ ﻭ ﺍﻟﺘﻨﻘل ﺇﻟﻰ ﺍﻟﻤﻭﻅﻔﻴﻥ .ﺍﻨﻅﺭ ﺍﻟﺸﻜل ﻭ ﻗﻡ ﺒﺘﺼﻤﻴﻤﻪ ﺤﺴﺏ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ :
176
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
ﻗﻡ ﺒﺘﻁﺒﻴﻕ ﺨﺎﺼﻴﺔ ﺘﺠﺯﻱﺀ ﺍﻟﺠﻤل ﺤﺘﻰ ﻴﺘﺴﻨﻰ ﻋﺭﺽ ﺍﻷﺴﻁﺭ ﺍﻟﻁﻭﻴﻠﺔ ﻓﻲ ﺃﺴﻁﺭ: ﻤﻼﺤﻅﺔ
ﻤﻘﻁﻌﺔ ﻭﻤﻘﺭﻭﺀﺓ ﻜﻤﺎ ﻴﻠﻲ
Edit Î Advance Î Word Wrap
177
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
178
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﻡ ﺒﺘﺼﻤﻴﻡ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ ﺤﺴﺏ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻤﻭﻀﺤﺔ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻤﻊ ﺇﻀﺎﻓﺔ
ﺸﺒﻜﺔ ﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﻴﻅﻬﺭ ﻟﻙ :
ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﺍﻟﻜﻭﺩ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﻫﻭ ﻨﻔﺱ ﺍﻟﻜﻭﺩ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻤﻊ ﺯﻴﺎﺩﺓ ﻻ ﺘﺫﻜﺭ ،ﺴﻭﻑ ﻨﻌﺭﺽ
ﺍﻟﻜﻭﺩ ﺍﻵﻥ ﻭﺴﻭﻑ ﻨﺠﻌل ﺍﻟﺯﻴﺎﺩﺓ ﺒﺨﻁ ﻋﺭﻴﺽ ﺤﺘﻰ ﺘﻼﺤﻀﻬﺎ.
179
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
Myds.Relations.Add("PersonPhone",Myds.Tables("Person").Columns(0), & _
Myds.Tables("Phone").Columns(2), True)
Catch e1 As OleDb.OleDbException
Label1.Text = e1.Message
End Try
Myds.WriteXml("da.xml")
txtEmpName.DataBindings.Add("Text", Myds, "Person.name")
DataGrid1.DataSource = Myds
DataGrid1.DataMember = "Person.PersonPhone"
bmb = Me.BindingContext(Myds, "Person")
bmb.Position = bmb.Count
bmb.Position = 0
180
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
181
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
182
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻗﺒل ﺇﻀﺎﻓﺔ ﺃﻱ ﻗﻴﻤﺔ ﺇﻟﻰ ﺍﻟﺠﺩﻭل ﻴﺘﻭﺠﺏ ﻋﻠﻴﻙ ﺍﻟﺘﺄﻜﺩ ﻤﻥ ﻋﺩﻡ ﻤﺨﺎﻟﻔﺘﻬﺎ ﻟﻘﻭﺍﻋﺩ ﺍﻟﻌﻤل ،ﻓﻌﻠﻰ ﺴﺒﻴل
ﺍﻟﻤﺜﺎل ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻤﺩﺨل ﻻ ﻴﻘﺒل ﺍﻟﻘﻴﻡ ﺍﻟﺴﺎﻟﺒﺔ ﺘﺄﻜﺩ ﻤﻥ ﺃﻥ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺩﺨﻠﺔ ﻤﻭﺠﺒﺔ.
ﺃﻤﺜﻠﺔ ﻤﺘﻨﻭﻋﺔ ﻹﻀﺎﻓﺔ ﺼﻔﻭﻑ :
ﻻﺤﻅ ﺃﻨﻨﺎ ﻟﻡ ﻨﻌﻴﻥ ﻗﻴﻤﺔ ﻟﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﻟﻜﻭﻨﻪ ﺭﻗﻤﺎ ﺘﺴﻠﺴﻠﻴﺎ ﻴﺘﻡ ﺇﻨﺸﺎﺌﻪ ﺒﻭﺍﺴﻁﺔ ﻗﻭﺍﻋﺩ
ﺍﻟﺒﻴﺎﻨﺎﺕ.
ﻴﻜﻔﻴﻙ ﻫﺫﻩ ﺍﻟﺼﻴﻐﺔ ﻭ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻌﻤل ﺒﻨﻔﺱ ﺍﻟﻁﺭﻴﻘﺔ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ:
)}"","Abduallahﻋﺒﺩﺍﻟﻠـﻪ" Myds.Tables("Person").Rows.Add(New Object() {Nothing,
ﻗﻤﻨﺎ ﺒﻭﻀﻊ ﻗﻴﻤﺔ Nothingﻟﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﺤﺘﻰ ﻴﺘﻡ ﺘﻌﻴﻴﻨﻪ ﻤﻥ ﻗﺒل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
183
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺇﻟﻴﻙ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﺍﻟﺫﻱ ﺴﻨﻘﻭﻡ ﻓﻴﻪ ﺒﺘﻌﺩﻴل ﺍﺴﻡ ﺍﻟﺸﺨﺹ ﺍﻟﻌﺭﺒﻲ ﻭ ﺍﺴﻤﻪ ﺍﻹﻨﺠﻠﻴﺯﻱ ﻟﻠﺼﻑ
ﺍﻷﺨﻴﺭ:
)Dim dtPerson As DataTable = Myds.Tables(0
)Dim dr As DataRow = dtPerson.Rows(dtPerson.Rows.Count - 1
"ﻋﺒﺪاﻟﻠـﻪ" = )"dr("name
"dr("ename") = "Abduallah
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﺴﻨﻘﻭﻡ ﺒﺘﻌﺩﻴل ﺍﻻﺴﻡ ﺍﻹﻨﺠﻠﻴﺯﻱ ﻟﻜل ﺍﻷﺸﺨﺎﺹ ﻟﻜﻲ ﺘﺼﺒﺢ ﻗﻴﻤﻪ ﻓﺎﺭﻏﺔ
)Dim dtPerson As DataTable = Myds.Tables(0
Dim dr As DataRow
For Each dr In dtPerson.Rows
"" = )"dr("ename
Next
-٢ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻴﻘﺔ Removeﻭ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﺈﻟﻐﺎﺀ ﻫﺫﺍ ﺍﻟﺼﻑ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻜﻤﺎ
ﻴﻭﻀﺢ ﺫﻟﻙ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ :
)Dim dr As DataRow = Myds.Tables(0).Rows(1
)Myds.Tables(0).Rows.Remove(dr
ﺘﻡ ﺤﺫﻑ ﺍﻟﺼﻑ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻜﻥ ﻟﻡ ﻴﺘﻡ ﺤﺫﻓﻪ ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ.
184
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻭﺼﻑ ﺍﻟﺤﺎﻟﺔ
ﺘﻤﺕ ﺇﻀﺎﻓﺔ ﻫﺫﺍ ﺍﻟﺼﻑ ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ. Added
ﺘ ّﻡ ﺤﺫﻑ ﻫﺫﺍ ﺍﻟﺼﻑ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ. Deleted
ﺘ ّﻡ ﺇﻨﺸﺎﺀ ﻫﺫﺍ ﺍﻟﺼﻑ ﻭﻟﻜﻨﹼﻪ ﻟﻡ ﻴﺤﻔﻅ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﺍﻵﻥ. Detached
ﺘ ّﻡ ﺘﻌﺩﻴل ﻫﺫﺍ ﺍﻟﺼﻑ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ. Modified
Unchangedﻟﻡ ﻴﺘ ّﻡ ﺘﻐﻴﻴﺭ ﻤﺤﺘﻭﻴﺎﺕ ﺍﻟﺼﻑ.
ﻤﻥ ﺍﻟﻤﻘﺩﻤﺔ ﺍﻟﺴﺎﺒﻘﺔ ﻨﺴﺘﻁﻴﻊ ﺍﺴﺘﻨﺘﺎﺝ ﺃﻨﻨﺎ ﻨﺴﺘﻁﻴﻊ ﺍﺴﺘﺨﻼﺹ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﻗﺎﻡ ﺍﻟﻤﺴﺘﻔﻴﺩ ﺒﺘﺤﺩﻴﺜﻬﺎ ﻓﻲ
ل ﺼﻔﻭﻑ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺇﻟﻰ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻴﻤﻜﻨﻙ ﺃﻥ ﺘﹸﺭﺴل ﻓﻘﻁ
ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﺒﺩﻻ ﻤﻥ ﺇﺭﺴﺎل ﻜ ّ
ﺍﻟﺼﻔﻭﻑ ﺍﻟﻤﻌﺩّﻟﺔ ﻭﺍﻟﻤﻀﺎﻓﺔ ﻭﺍﻟﻤﺤﺫﻭﻓﺔ ﺇﻟﻰ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻫﻭ ﻤﺎ ﻴﻭﻓﺭ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﻤﻭﺍﺭﺩ ﻟﺨﺎﺩﻡ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﻟﺸﺒﻜﺔ ﺍﻻﺘﺼﺎل.
185
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻴﻭﻀﺢ ﺇﺭﺴﺎل ﻜل ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ :
)(Dim Myds As New DataSet
)(Dim con As New OleDb.OleDbConnection
"Dim sql As String = "select id,name,ename from person
_ & ";con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0
""Data Source=C:\TelDir.mdb;Persist Security Info=False
Try
)Dim daPerson As New OleDb.OleDbDataAdapter(sql, con
)"daPerson.Fill(Myds, "Person
Myds.Tables("Person").Rows.Add(New Object() {Nothing,
)}"", "Abdulallahﻋﺒﺪاﷲ"
)Dim ComBuilder As New OleDb.OleDbCommandBuilder(daPerson
daPerson.InsertCommand = ComBuilder.GetInsertCommand
)"daPerson.Update(Myds, "Person
Catch e1 As OleDb.OleDbException
)MessageBox.Show(e1.Message
End Try
186
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺃﻀﻔﻨﺎ ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺼﻔﺎ ﻭﺍﺤﺩ ﻟﺫﻟﻙ ﻗﻤﻨﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻭﻅﻴﻔﺔ ﺍﻹﻀﺎﻓﺔ
ﻋﻨﺩ ﺤﺫﻑ ﺃﻭ ﺘﺤﺩﻴﺙ ﺼﻔﻭﻑ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﺴﺘﺨﺩﻡ ﻭﻅﺎﺌﻑ ﺍﻟﺤﺫﻑ،ﺍﻟﺨﺎﺼﺔ ﺒﺒﺎﻨﻲ ﺍﻷﻤﺭ
ﻭﺍﻟﺘﺤﺩﻴﺙ ﻜﻤﺎ ﻴﻠﻲ
daPerson.DeleteCommand = ComBuilder.GetDeleteCommand
daPerson.UpdateCommand = ComBuilder.GetUpdateCommand
ﺘﻌﺘﺒﺭ ﻫﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﺃﻓﻀل ﻤﻥ ﺍﻟﻁﺭﻴﻘﺔ: ﺇﺭﺴﺎل ﺍﻟﺴﺠﻼﺕ ﺍﻟﻤﺤﺩﺜﺔ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ-٢
.ﺍﻷﻭﻟﻰ ﺤﻴﺙ ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﺒﺎﺭﺴﺎل ﺍﻟﺴﺠﻼﺕ ﺍﻟﺘﻲ ﺘﻡ ﺘﺤﺩﻴﺜﻬﺎ ﻓﻘﻁ
ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻴﻭﻀﺢ ﺇﺭﺴﺎل ﺍﻟﺼﻔﻭﻑ ﺍﻟﻤﺘﺄﺜﺭﺓ ﺒﺎﻟﺘﺤﺩﻴﺜﺎﺕ ﻓﻲ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ
: ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
Dim Myds As New DataSet()
Dim con As New OleDb.OleDbConnection()
Dim sql As String = "select id,name,ename from person"
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\TelDir.mdb;Persist Security
Info=False"
Try
Dim daPerson As New OleDb.OleDbDataAdapter(sql, con)
daPerson.Fill(Myds, "Person")
Myds.Tables("Person").Rows.Add(New Object() {Nothing,
""ﺣﺎرث, "Harith"})
If Myds.HasChanges Then
Dim AffectedDS As DataSet = Myds.GetChanges
Dim ComBuilder As New
OleDb.OleDbCommandBuilder(daPerson)
daPerson.InsertCommand = ComBuilder.GetInsertCommand
daPerson.Update(AffectedDS, "Person")
End If
Catch e1 As OleDb.OleDbException
MessageBox.Show(e1.Message)
End Try
: ﺍﻟﻔﺎﺭﻕ ﺒﻴﻥ ﺍﻟﻁﺭﻴﻘﺔ ﺍﻷﻭﻟﻰ ﻭﻫﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ
ﻟﻨﺭﻯ ﻫل ﺘﻡ ﺘﺤﺩﻴﺙ ﺃﻱ ﺼﻑ ﻤﻥ ﺼﻔﻭﻑHaschanges ﻗﻤﻨﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻴﻘﺔ-١
.ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺃﻡ ﻻ
ﺒﻌﺩ ﺫﻟﻙ ﻗﻤﻨﺎ ﺒﺘﻌﺭﻴﻑ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ ﻟﻜﻲ ﺘﺤﻭﻱ ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺘﻡ ﺘﺤﺩﻴﺜﻬﺎ ﻓﻘﻁ ﻭﻫﻭ-٢
ﺍﺴﺘﻁﻌﻨﺎ ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺘﻡ ﺘﺤﺩﻴﺜﻬﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻴﻘﺔ.ﺼﻑ ﻭﺍﺤﺩ ﻓﻘﻁ
. ﻭﺍﻟﺘﻲ ﺴﺘﻘﻭﻡ ﺒﺎﺴﺘﺭﺠﺎﻉ ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺘﻡ ﺘﺤﺩﻴﺜﻬﺎ ﻓﻘﻁGetchanges
. ﻗﻤﻨﺎ ﺒﺈﺭﺴﺎل ﺍﻟﺼﻔﻭﻑ ﺍﻟﻤﺤﺩﺜﺔ ﻓﻘﻁ ﻟﻴﺘﻡ ﺘﺤﺩﻴﺙ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ-٣
187
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
End If
ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﻤﻨﺎ ﺒﻤﺎ ﻴﻠﻲ :
-١ﺇﻋﻤﺎل ﺨﺎﺼﻴﺔ ContinueUpdateOnErrorﻭ ﺍﻟﺘﻲ ﺴﻭﻑ ﺘﻤﻜﻥ ﻤﻥ ﺍﻻﻨﺘﻘﺎل ﺇﻟﻰ
ﺍﻟﺼﻑ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﺤﺎﻟﺔ ﺤﺩﻭﺙ ﺘﻌﺎﺭﺽ ﻓﻲ ﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ.
-٢ﻗﻤﻨﺎ ﺒﺘﺤﺩﻴﺙ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
-٣ﻭﻀﻌﻨﺎ ﺍﻟﺸﺭﻁ ﺍﻟﺫﻱ ﺴﻭﻑ ﻴﺒﻴﻥ ﻟﻨﺎ ﻫل ﺤﺩﺙ ﺘﻌﺎﺭﺽ ﺃﻡ ﻻ ،ﺇﺫﺍ ﺘﺤﻘﻕ ﻫﺫﺍ ﺍﻟﺸﺭﻁ ﻓﻘﺩ
ﺤﺩﺙ ﺘﻌﺎﺭﺽ ﻭﻫﻭ ﻤﺎ ﻴﺘﻁﻠﺏ ﻤﻨﺎ ﺤل ﻫﺫﺍ ﺍﻟﺘﻌﺎﺭﺽ.
188
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
189
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
End Try
Private Sub cmdGetData_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdGetData.Click
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\TelDir.mdb;Persist Security
Info=False"
daPerson.Fill(Myds, "Person")
dtPerson = Myds.Tables(0)
dr = dtPerson.Rows(dtPerson.Rows.Count - 1)
dr("name") = ""ﻋﺒﺪاﻟﻠـﻪ
dr("ename") = "Abduallah"
End Sub
: ﺴﻭﻑ ﻨﺸﺭﺡ ﺍﻵﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ ﺒﺨﻁ ﻋﺭﻴﺽ ﻷﻥ ﺒﺎﻗﻲ ﺍﻟﻜﻭﺩ ﺴﺒﻕ ﺸﺭﺤﻪ
ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭﺍ ﻤﻥ ﻨﻭﻉ ﺼﻑ ﻟﻜﻲ ﻨﺴﺘﺨﺩﻤﻪ ﻓﻲ ﺃﺨﺫ ﻗﻴﻤﺔ ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺤﺩﺙ ﻓﻴﻬﺎ ﺘﻌﺎﺭﺽ-١
ﻋﺭﻓﻨﺎ ﻤﺘﻐﻴﺭﺍ ﻤﻥ ﻨﻭﻉ ﺭﻗﻡ ﺼﺤﻴﺢ ﺜﻡ ﺍﺴﺘﺭﺠﻌﻨﺎ ﻋﺩﺩ ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺤﺩﺙ ﻟﻬﺎ ﺘﻌﺎﺭﺽ-٢
.ﻓﻲ ﺍﻟﺘﺤﺩﻴﺙ
ﻋﻤﻠﻨﺎ ﺘﻜﺭﺍﺭ ﻻﺴﺘﺨﺭﺍﺝ ﻜل ﺍﻟﺼﻔﻭﻑ ﺍﻟﺘﻲ ﺤﺩﺙ ﻟﻬﺎ ﺘﻌﺎﺭﺽ ﻭﻤﻥ ﺜﻡ ﺴﻭﻑ ﻴﺘﻡ ﻋﺭﺽ-٣
.ﻫﺫﺍ ﺍﻟﺘﻌﺎﺭﺽ ﻟﻠﻤﺴﺘﻔﻴﺩ ﻓﻲ ﺭﺴﺎﻟﺔ
190
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ADO.NETﻭ XML
ﻤﻘﺩﻤﺔ ﻋﻥ XML
ﻴﻤﻜﻥ ﺘﻌﺭﻴﻑ XMLﺒﺄﻨﻪ ﻤﻌﻴﺎﺭ ﻟﻭﺼﻑ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺭﻗﻤﻴﺔ .ﻴﺘﻡ ﺘﻤﺜﻴل ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺩﺍﺨل ﻤﻠﻔﺎﺕ
XMLﺒﺸﻜل ﻫﺭﻤﻲ ﻤﻤﺎ ﻴﺴﻬل ﻋﻤﻠﻴﺔ ﻗﺭﺍﺀﺘﻬﺎ ﻭ ﺍﻟﺒﺤﺙ ﻓﻴﻬﺎ .ﺘﺠﺩﺭ ﺍﻹﺸﺎﺭﺓ ﺇﻟﻰ ﺃﻥ ﻫﻨﺎﻙ ﻓﺎﺭﻗﺎ
ﻜﺒﻴﺭﺍ ﺒﻴﻥ ﻤﻠﻔﺎﺕ HTMLﻭﻤﻠﻔﺎﺕ .XMLﺘﺴﺘﺨﺩﻡ ﻤﻠﻔﺎﺕ HTMLﻟﺘﻭﻀﻴﺢ ﻜﻴﻔﻴﺔ ﻋﺭﺽ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﺍﻟﻤﺘﺼﻔﺢ ﻟﻜﻨﻬﺎ ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ ﻻ ﺘﻤﺘﻠﻙ ﺃﻱ ﻤﻌﻠﻭﻤﺔ ﻋﻥ ﺍﻟﻤﺤﺘﻭﻯ ﺍﻟﺫﻱ ﻴﺘﻡ ﻋﺭﻀﻪ.
ﻋﻠﻰ ﺍﻟﻨﻘﻴﺽ ﻤﻥ ﺫﻟﻙ ﺘﺴﺘﺨﺩﻡ ﻤﻠﻔﺎﺕ XMLﻟﻌﺭﺽ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﺃﻨﻬﺎ ﺘﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻌﺭﻭﻀﺔ .ﺘﻡ ﺘﺼﻤﻴﻡ XMLﻟﻨﻘل ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺨﻼل ﺍﻻﻨﺘﺭﻨﺕ ﺒﺎﻹﻀﺎﻓﺔ ﺇﻟﻰ ﺍﻟﻬﻴﻜل
ﺍﻟﺨﺎﺹ ﺒﻬﺎ XSDﻭﺍﻟﺫﻱ ﻴﺒﻴﻥ ﻤﺤﺘﻭﺍﻫﺎ ﻟﻤﺘﻠﻘﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻜﻤﺎ ﺃﻥ ﻫﻨﺎﻙ ﻓﺎﺭﻗﺎ ﺁﺨﺭ ﻭﻫﻭ ﺃﻥ XML
ﺘﻤﻜﻥ ﺍﻟﻤﺴﺘﻔﻴﺩ ﻤﻥ ﺒﻨﺎﺀ ﺍﻟﻬﻴﻜل ﺍﻟﺫﻱ ﻴﺭﻴﺩ ﻓﺈﻥ HTMLﺘﺤﻭﻱ ﻋﺩﺩﺍ ﻤﺤﺩﻭﺩﺍ ﻤﻥ ﺍﻟﻌﻼﻤﺎﺕ ﺍﻟﻤﻬﻴﺌﺔ
ﻟﻺﺴﺘﺨﺩﺍﻡ .ﺘﻌﺘﺒﺭ XMLﺘﻘﻨﻴﺔ ﻤﺩﻋﻭﻤﺔ ﺒﺸﻜل ﻜﺒﻴﺭ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ،ﻴﻭﺠﺩ ﻓﺌﺎﺕ ﺨﺎﺼﺔ ﺒــ
XMLﻤﺭﺘﺒﻁﺔ ﺒـ .ADO.NETﻤﻥ ﺃﻫﻡ ﻤﺎ ﻴﻤﻴﺯ XMLﺃﻨﻬﺎ ﻤﻠﻔﺎﺕ ﻨﺼﻴﺔ ﻭ ﻫﻭ ﻤﺎ ﻴﺠﻌل ﻨﻘل
ﻫﺫﻩ ﺍﻟﻤﻠﻔﺎﺕ ﺒﻴﻥ ﺃﻨﻅﻤﺔ ﺍﻟﺘﺸﻐﻴل ﻭ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺃﻤﺭﺍ ﻴﺴﻴﺭﺍ.
192
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
193
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
194
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
195
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
196
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
197
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﺇﻨﺸﺎﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ
ﺘﻌﻠﻤﻨﺎ ﻓﻴﻤﺎ ﺴﺒﻕ ﻤﻥ ﻓﺼﻭل ﻜﻴﻔﻴﺔ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﻜﻥ ﺒﻘﻲ ﺸﻲﺀ ﻭﺍﺤﺩ ﻭﻤﻬﻡ ﻭﻫﻭ ﻜﻴﻔﻴﺔ
ﻋﺭﺽ ﻭ ﻁﺒﺎﻋﺔ ﺍﻟﺘﻘﺎﺭﻴﺭ .ﻟﻌﺭﺽ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺘﻭﺠﺩ ﻫﻨﺎﻙ ﻁﺭﻴﻘﺘﺎﻥ ﺃﺴﺎﺴﻴﺘﺎﻥ ﻭﻫﻤﺎ :
-١ﺇﻨﺸﺎﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺨﺎﺭﺝ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﺜﻡ ﺍﺴﺘﺩﻋﺎﺌﻬﺎ ﻭ ﺇﺭﺴﺎل ﺍﻟﻌﻭﺍﻤل ﺍﻟﻤﻨﺎﺴﺒﺔ ﻹﺨﺭﺍﺝ
ﺍﻟﺘﻘﺭﻴﺭ :ﻓﻌﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻟﻭ ﻜﻨﺕ ﻤﺤﺘﺭﻓﺎ ﻓﻲ ﺒﻨﺎﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻓﻲ
ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺃﻜﺴﺱ ﻓﺈﻥ ﺒﺎﺴﺘﻁﺎﻋﺘﻙ ﺒﻨﺎﺀ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﻭﻤﻥ ﺜﻡ ﺍﺴﺘﺩﻋﺎﺀ ﻫﺫﺍ ﺍﻟﺘﻘﺭﻴﺭ
ﻤﻥ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
-٢ﺍﻨﺸﺎﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻤﻥ ﺨﻼل ﻜﺎﺌﻨﺎﺕ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻭ ﺍﻟﺘﻲ ﺘﻭﺠﺩ ﻤﻊ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ.
ﺴﻭﻑ ﻴﻜﻭﻥ ﻤﺤﻭﺭ ﺤﺩﻴﺜﻨﺎ ﻋﻥ ﺍﻟﻁﺭﻴﻘﺔ ﺍﻟﺜﺎﻨﻴﺔ.
ﺘﻘﺩﻡ ﺘﻘﺎﺭﻴﺭ ﻜﺭﻴﺴﺘﺎل ﻗﻭﺓ ﻤﻤﺘﺎﺯﺓ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺩﻭﺕ ﻨﺕ ﻟﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ .ﻴﻭﺠﺩ ﻤﺼﻤﻡ ﻜﺭﻴﺴﺘﺎل
ﻟﻠﺘﻘﺎﺭﻴﺭ ﻭ ﺍﻟﺫﻱ ﻴﻤﻜﻨﻙ ﻤﻥ ﺍﻨﺸﺎﺀ ﺘﻘﺭﻴﺭ ﺠﺩﻴﺩ ﺃﻭ ﺘﺤﺩﻴﺙ ﺘﻘﺭﻴﺭ ﺴﺒﻕ ﺍﻨﺸﺎﺅﻩ .ﺒﻌﺩ ﺇﻨﺸﺎﺌﻙ ﻟﻠﺘﻘﺭﻴﺭ
ﺘﺴﺘﻁﻴﻊ ﺍﺴﺘﺨﺩﺍﻤﻪ ﻓﻲ ﺘﻁﺒﻴﻘﻙ ﺴﻭﺍﺀ ﻜﺎﻥ ﻫﺫﺍ ﺍﻟﺘﻁﺒﻴﻕ ﺘﻁﺒﻴﻕ ﻤﻜﺘﺒﻲ ﺃﻭ ﺘﻁﺒﻴﻕ ﻴﻌﻤل ﻋﻠﻰ ﺍﻻﻨﺘﺭﻨﺕ.
199
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﻨﻭﻉ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺒﻨﺎﺌﻪ ﺍﺨﺘﺭ ﻨﻔﺱ ﺍﻻﺨﺘﻴﺎﺭﺍﺕ
ﺍﻟﺘﻲ ﺘﺭﺍﻫﺎ ﻓﻲ ﺍﻟﺸﻜل ﺜﻡ ﺍﻨﻘﺭ Ok
-٤ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﺍﻟﺸﻜل ﻭ ﺍﻟﺫﻱ ﻴﻁﻠﺏ ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺃﻥ ﺘﻨﺸﺄ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻨﻬﺎ.
ﺍﺨﺘﺭ
OLE DB ADOﻜﻤﺎ ﻴﻅﻬﺭ
200
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٤ﻟﻜﻲ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺘﺤﺩﻴﺩ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل ،ﺍﺨﺘﺭ ﻤﺯﻭﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺍﻟﺨﺎﻟﺹ ﺒﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺃﻜﺴﺱ ﺍﺨﺘﺭﻩ ﺜﻡ ﺍﻨﻘﺭ Nextﻭﺤﺩﺩ ﻤﻭﻗﻊ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭ ﺍﺨﺘﺭ
.Ok
-٥ﺴﻭﻑ ﺘﻅﻬﺭ ﻜل ﺍﻟﺠﺩﺍﻭل ،ﺍﺨﺘﺭ ﺠﺩﻭل ﺍﻷﺸﺨﺎﺹ ﺜﻡ ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ ﺴﻭﻑ ﻴﻨﺘﻘل ﺠﺩﻭل
ﺍﻷﺸﺨﺎﺹ ﺇﻟﻰ ﺍﻟﺠﻬﺔ ﺍﻟﻴﻤﻨﻰ.
201
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٦ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺤﻘﻭل ﺍﻟﺠﺩﻭل ،ﻫﻨﺎ ﺘﻘﻭﻡ ﺒﺎﺨﺘﻴﺎﺭ ﺍﻟﺤﻘﻭل ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺃﻥ ﺘﻅﻬﺭ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ،
ﺍﺨﺘﺭ ﻜل ﺍﻟﺤﻘﻭل ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل
-٧ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ ﻟﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺘﺠﻤﻴﻊ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ :ﺘﻌﺘﺒﺭ ﻫﺫﻩ ﺍﻟﺨﻁﻭﺓ ﺍﺨﺘﻴﺎﺭﻴﺔ
,ﻭﻴﻤﻜﻨﻙ ﻤﻥ ﺨﻼﻟﻬﺎ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻱ ﺘﺭﻴﺩ ﺍﺠﺭﺍﺀ ﺍﻟﺘﺠﻤﻴﻊ ﺒﻪ .ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ.
202
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٨ﺴﻭﻑ ﺘﻅﻬﺭ ﻟﻙ ﺸﺎﺸﺔ ﺍﻟﺘﺭﺸﻴﺢ :ﺘﻌﺘﺒﺭ ﻫﺫﻩ ﺍﻟﺸﺎﺸﺔ ﺍﺨﺘﻴﺎﺭﻴﺔ ﻭ ﺘﺴﺘﻁﻴﻊ ﻤﻥ ﺨﻼﻟﻬﺎ ﺘﺭﺸﻴﺢ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﺴﺘﺨﺭﺝ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻥ ﺨﻼل ﻭﻀﻊ ﺸﺭﻁ ﻤﺎ ﻋﻠﻰ ﺃﻱ ﻤﻥ ﺍﻟﺤﻘﻭل ،ﻓﻲ
ﺘﻘﺭﻴﺭﻨﺎ ﻫﺫﺍ ﺴﻨﻘﻭﻡ ﺒﻌﺭﺽ ﻜﺎﻓﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﺫﻟﻙ ﺍﻨﻘﺭ ﺍﻟﺘﺎﻟﻲ
-٩ﺸﺎﺸﺔ ﺘﻨﺴﻴﻕ ﺍﻟﺘﻘﺭﻴﺭ :ﺘﻤﻜﻨﻙ ﻫﺫﻩ ﺍﻟﺸﺎﺸﺔ ﻤﻥ ﺘﺤﺩﻴﺩ ﺘﻨﺴﻴﻕ ﺍﻟﺘﻘﺭﻴﺭ ،ﻴﻭﺠﺩ ﻋﺩﺓ ﺃﻨﻭﺍﻉ
ﺘﺴﺘﻁﻴﻊ ﺍﺴﺘﻌﺭﺍﻀﻬﺎ ﻭﻤﻥ ﺜﻡ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﺫﻱ ﺘﺭﺍﻩ ﻤﻨﺎﺴﺒﺎ ،ﺴﻭﻑ ﻨﺨﺘﺎﺭ ﺍﻟﺘﻨﺴﻴﻕ
ﺍﻟﻘﻴﺎﺴﻲ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل :
203
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻫﺫﺍ ﻫﻭ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﺫﻱ ﺃﺸﺄﺘﻪ ﻤﻥ ﺨﻼل ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﻌﺸﺭ ﺍﻟﻤﺎﻀﻴﺔ .ﻫﺫﺍ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻜﻤﺎ -١١
ﺘﻼﺤﻅ ﻴﺘﻜﻭﻥ ﻤﻥ ﻋﺩﺓ ﺃﺠﺯﺍﺀ – ﻭ ﺍﻟﻜﻼﻡ ﻴﻨﻁﺒﻕ ﻋﻠﻰ ﺃﻱ ﺘﻘﺭﻴﺭ : -
• ﺭﺃﺱ ﺍﻟﺘﻘﺭﻴﺭ : ReportHeaderﺴﻴﻅﻬﺭ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻓﻲ ﺃﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭ ﻴﺤﻭﻱ
ﻤﻌﻠﻭﻤﺎﺕ ﻻ ﺘﺘﻜﺭﺭ ﺃﺜﻨﺎﺀ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ .ﻋﺎﺩﺓ ﻤﺎ ﻴﻜﻭﻥ ﺭﺃﺱ ﺍﻟﺘﻘﺭﻴﺭ ﻤﺎ ﻴﺴﻤﻰ
ﺒﺎﻟﻜﻠﻴﺸﻪ ﻭ ﻓﻴﻪ ﻴﻜﻭﻥ ﺸﻌﺎﺭ ﺍﻟﻤﻨﺸﺄﺓ ﻭ ﺍﺴﻤﻬﺎ .
• ﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ : Page Headerﻜﺫﻟﻙ ﻴﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻻ ﺘﺘﻜﺭﺭ ﻋﻠﻰ ﻤﺴﺘﻭﻯ
ﺍﻟﺼﻔﺤﺔ ،ﻓﻲ ﺍﻟﻐﺎﻟﺏ ﻴﺤﻭﻱ ﺍﺴﻤﺎﺀ ﺍﻟﺤﻘﻭل ﺍﻟﻤﻌﺭﻭﻀﺔ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ.
• ﺍﻟﺘﻔﺎﺼﻴل :ﻴﺤﻭﻱ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ ﻨﺭﻴﺩ ﻋﺭﻀﻬﺎ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ
• ﺘﺫﻴﻴل ﺍﻟﺘﻘﺭﻴﺭ :ﻴﻅﻬﺭ ﻓﻲ ﺁﺨﺭ ﺼﻔﺤﺔ ﻤﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻴﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻤﺜل ﺍﻟﻤﺠﺎﻤﻴﻊ ﻭ
ﻤﻠﺨﺼﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ
• ﺘﺫﻴﻴل ﺍﻟﺼﻔﺤﺔ :ﻴﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﺘﻅﻬﺭ ﻓﻲ ﺁﺨﺭ ﻜل ﺼﻔﺤﺔ ،ﻋﺎﺩﺓ ﻤﺎ ﺘﻜﻭﻥ ﻫﺫﻩ
ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻤﺜل ﺭﻗﻡ ﺍﻟﺼﻔﺤﺔ ﻭﻋﺩﺩ ﺍﻟﺼﻔﺤﺎﺕ ﻭ ﺍﻟﺘﺎﺭﻳﺦ.
-١٢اﻟﺨﻄﻮة اﻷﺧﻴﺮة هﻲ ﻋﺮض اﻟﺘﻘﺮﻳﺮ .ﻟﻌﺮض اﻟﺘﻘﺮﻳﺮ ﻗﻢ ﺑﺎﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ :
-١ﻨﻅﺭﺍ ﻷﻨﻨﺎ ﺴﻭﻑ ﻨﻌﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻥ ﺨﻼل ﻨﻤﻭﺫﺝ ﻟﺫﺍ ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﻨﻤﻭﺫﺝ ﺇﻟﻰ
ﺍﻟﻤﺸﺭﻭﻉ
-٢ﺃﻀﻑ ﺍﻷﺩﺍﺓ CrystalReportViewer
204
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
205
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
ﻟﻨﺄﺨﺫ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻲ ﻋﻠﻰ ﻜﻴﻔﻴﺔ ﺒﻨﺎﺀ ﺘﻘﺭﻴﺭ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ :
206
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٣ﺴﻭﻑ ﻴﻅﻬﺭ ﻟﻙ ﻋﺩﺓ ﺨﻴﺎﺭﺍﺕ ﻓﻲ ﺍﻟﺠﻬﺔ ﺍﻟﻴﺴﺭ ،ﻫﺫﻩ ﺍﻟﺨﻴﺎﺭﺍﺕ ﺘﻤﺜل ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻲ
ﺘﺭﻴﺩ ﺃﻥ ﺘﻌﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻨﻬﺎ ،ﺍﺨﺘﺭ Create New Connectionﺜﻡ Access/Excel
ﺜﻡ ﺃﻀﻑ ﺍﺘﺼﺎﻻ ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻌﺩ ﺫﻟﻙ ﺴﺘﻅﻬﺭ ﻜل ﺍﻟﺠﺩﺍﻭل ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﺨﺘﺭ
ﺠﺩﻭل ﺍﻷﺸﺨﺎﺹ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل .ﺜﻡ ﺍﻨﻘﺭ Finish
207
ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ kal_judaia@hotmail.com
-٥ﻗﻡ ﺒﺈﻀﺎﻓﺔ ﺍﻟﺤﻘﻠﻴﻥ ﺍﻟﺫﻱ ﺴﻴﻅﻬﺭ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻫﻤﺎ IDﻭ .Nameﺴﻭﻑ ﺘﻅﻴﻔﻬﻤﺎ ﻤﺭﺓ
ﻭﺍﺤﺩ ﺍﻟﺘﻔﺎﺼﻴل ﻭﻤﻥ ﺜﻡ ﺴﺘﺘﻡ ﺇﻀﺎﻓﺘﻬﻤﺎ ﺁﻟﻴﺎ ﻓﻲ ﺍﻟﺭﺃﺱ ﻜﻤﺎ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﺸﻜل.
ﻏﻴﺭ ﻜﻠﻤﺔ Nameﻭ IDﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺭﺃﺱ ﺍﻟﺘﻘﺭﻴﺭ ﻟﺘﻜﻭﻥ ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﻭ ﺍﺴﻡ ﺍﻟﻤﻭﻅﻑ
208
kal_judaia@hotmail.com ﺧﺎﻟﺪ اﻟﺠﺪﻳﻊ
209