You are on page 1of 6

‫ﺩﺭﻭﺱ ﰲ ﺍﻟﱪﳎﺔ ﺑﻠﻐﺔ ﺩﻟﻔﻲ‬

‫ﺍﻟﺪﺭﺱ )‪(9‬‬

‫إﻋﺪاد‪:‬‬

‫‪O. M. Fares‬‬

‫‪Tripoli-Libya‬‬

‫‪August 2009‬‬
‫‪O. M. Fares‬‬ ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‪ /‬اﻟﺪرس )‪(9‬‬

‫‪9‬‬
‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‬

‫اﻟﺴﻼم ﻋﻠﯿﻜﻢ ورﺣﻤﺔ اﷲ وﺑﺮﻛﺎﺗﮫ‬


‫أھﻼ ﺑﻜﻢ ﻣﺮة أﺧﺮى ﻓﻲ درس ﺟﺪﯾﺪ ﻣﻦ )دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ(‪ ،‬ﻓﻲ ھﺬا اﻟﺪرس إن ﺷﺎء اﷲ ﺳﻮف ﻧﻜﻤﻞ‬
‫ﻣﺎ ﺑﺪأﺗﺎه ﻓﻲ اﻟﺪرس )‪.(8‬‬

‫ﺗﺎﺑﻊ‪ :‬ﻟﻮﺣﺔ اﻟﻜﺎﺋﻨﺎت )‪(Component palette‬‬


‫ﻓﻲ اﻟﺪرس )‪ (8‬ﺗﻌﺮﻓﻨﺎ ﻋﻠﻰ ﺑﻌﺾ اﻟﻜﺎﺋﻨﺎت ﻓﻲ ﺷﺮﯾﻂ أدوات )‪ ،(Standard‬ﻓﻲ ھﺬا اﻟﺪرس إن ﺷﺎء اﷲ ﺳﻮف‬
‫ﻧﺘﻌﺮف ﻋﻠﻰ ﻣﻜﻮﻧﺎت أﺧﺮى ﻓﻲ ﺷﺮﯾﻂ أدوات )‪.(Standard‬‬

‫ﻛﺎﺋﻦ ﯾﺴﺘﺨﺪم ﻹﻇﮭﺎر ﻗﺎﺋﻤﺔ ﻣﻦ اﻟﺨﯿﺎرات ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم اﺧﺘﯿﺎرھﺎ أو إﺿﺎﻓﺔ ﺑﻨﺪ‬
‫‪ListBox‬‬
‫إﻟﯿﮭﺎ أو ﺣﺬف ﺑﻨﺪ ﻣﻨﮭﺎ‪.‬‬

‫ﯾﺤﺘﻮي اﻟﻜﺎﺋﻦ )‪ (ListBox‬ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ أھﻤﮭﺎ‪:‬‬


‫· اﻟﺨﺎﺻﯿﺔ ‪ BorderStyle‬ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Columns‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد ﻋﺪد اﻷﻋﻤﺪة اﻟﻈﺎھﺮة ﻓﻲ اﻟﻜﺎﺋﻦ )‪.(ListBox‬‬
‫ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل )‪ (3‬اﻧﻈﺮ اﻟﺼﻮرة رﻗﻢ ) ‪.(1‬‬

‫اﻟﺼﻮرة رﻗﻢ ) ‪(1‬‬

‫اﻟﺨﺎﺻﯿﺔ ‪ ExtendedSelect‬ﻣﻦ ﻧﻮع )‪ (Boolean‬وﺗﻌﻤﻞ ﻣﻊ اﻟﺨﺎﺻﯿﺔ )‪ .(MultiSelect‬إذا ﻛﺎﻧﺖ‬ ‫·‬


‫اﻟﺨﺎﺻﯿﺔ )‪ (ExtendedSelect‬ﻗﯿﻤﺘﮭﺎ )‪ (True‬واﻟﺨﺎﺻﯿﺔ )‪ (MultiSelect‬ﻗﯿﻤﺘﮭﺎ )‪ (True‬ﯾﻤﻜﻦ‬
‫ﻟﻠﻤﺴﺘﺨﺪم اﺧﺘﯿﺎر ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﻨﻮد ﻓﻲ )‪ (ListBox‬ﺑﺎﺳﺘﺨﺪام زر ) ‪ (Shift‬أو )‪ ،(Ctrl‬أﻣﺎ إذا ﻛﺎﻧﺖ‬
‫اﻟﺨﺎﺻﯿﺔ )‪ (ExtendedSelect‬ﻗﯿﻤﺘﮭﺎ )‪ (False‬واﻟﺨﺎﺻﯿﺔ )‪ (MultiSelect‬ﻗﯿﻤﺘﮭﺎ )‪ (True‬ﻓﺈﻧﮫ‬
‫ﯾﻤﻜﻦ اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﺑﺪون اﻟﻀﻐﻂ ﻋﻠﻰ زر )‪ (Shift‬أو )‪ .(Ctrl‬أﻣﺎ إذا ﻛﺎﻧﺖ اﻟﺨﺎﺻﯿﺔ‬
‫)‪ (MultiSelect‬ﻗﯿﻤﺘﮭﺎ )‪ (False‬ﻓﺈن اﻟﺨﺎﺻﯿﺔ )‪ (ExtendedSelect‬ﻟﯿﺲ ﻟﮭﺎ أي ﺗﺄﺛﯿﺮ‪ .‬واﻟﺠﺪول‬
‫اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ ﺧﯿﺎرات اﻟﺨﺎﺻﯿﺘﯿﻦ ﺑﺸﻜﻞ أوﺿﺢ‪.‬‬

‫‪2‬‬
O. M. Fares (9) ‫ اﻟﺪرس‬/‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‬

‫اﻟﻨﺘﯿﺠﺔ‬ ExtendedSelect MultiSelect


،(Ctrl) ‫( أو‬Shift) ‫ﯾﻤﻜﻦ اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﺑﺎﺳﺘﺨﺪام زر‬ True True
،(Ctrl) ‫( أو‬Shift) ‫ﯾﻤﻜﻦ اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﺑﺪون اﺳﺘﺨﺪام زر‬ False True
‫ﻟﯿﺲ ﻟﮭﺎ أي ﺗﺄﺛﯿﺮ‬ False

‫( وھﻲ ﻏﯿﺮ ﻣﻮﺟﻮدة ﻓﻲ ﻧﺎﻓﺬة‬Integer) ‫ وھﻲ ﺧﺎﺻﯿﺔ ﻟﻠﻘﺮاءة ﻓﻘﻂ ﻣﻦ ﻧﻮع‬ItemIndex ‫اﻟﺨﺎﺻﯿﺔ‬ ·
‫ ﺟﺮب اﻟﻜﻮد اﻟﺘﺎﻟﻲ ﻓﻲ‬.‫اﻟﺨﺼﺎﺋﺺ وﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻟﺘﺤﺪﯾﺪ رﻗﻢ اﻟﺒﻨﺪ اﻟﺬي ﯾﺘﻢ اﺧﺘﯿﺎره ﺑﻮاﺳﻄﺔ اﻟﻔﺄرة‬
.‫( ﻓﻲ ﺷﺮﯾﻂ اﻟﻌﻨﻮان‬Index) ‫ ﻋﻨﺪ اﺧﺘﯿﺎر أي ﺑﻨﺪ ﯾﻈﮭﺮ‬.(ListBox1 ) ‫( ﻟﻠﻜﺎﺋﻦ‬OnClick) ‫اﻟﺤﺪث‬

Procedure TForm1.ListBox1Click(Sender: TObject);


begin
Caption:=IntToStr(ListBox1.ItemIndex);
end;

‫( وﺗﺴﺘﺨﺪم ھﺬه اﻟﺨﺎﺻﯿﺔ ﻹﺿﺎﻓﺔ أو ﺣﺬف أو ﺗﻌﺪﯾﻞ ﺑﻨﺪ ﻓﻲ‬TString) ‫ وھﻲ ﻣﻦ ﻧﻮع‬Items ‫اﻟﺨﺎﺻﯿﺔ‬ ·
‫ وﺗﺤﺘﻮي ﻋﻠﻰ ﻧﻔﺲ‬.(Memo) ‫( ﻓﻲ اﻟﻜﺎﺋﻦ‬Lines) ‫ وھﻲ ﺗﺸﺒﮫ اﻟﺨﺎﺻﯿﺔ‬.(ListBox) ‫اﻟﻜﺎﺋﻦ‬
‫ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﯾﺒﯿﻦ ﺑﺎﺧﺘﺼﺎر‬.1 (Memo) ‫( ﻓﻲ اﻟﻜﺎﺋﻦ‬Lines) ‫اﻹﺟﺮاءات واﻟﻮﻇﺎﺋﻒ ﻓﻲ اﻟﺨﺎﺻﯿﺔ‬
.‫ﺑﻌﺾ اﻹﺟﺮاءات واﻟﻮﻇﺎﺋﻒ ﻣﻊ اﻷﻣﺜﻠﺔ‬

‫ﻣﺜﺎل‬ ‫اﻹﺟﺮاء أو اﻟﻮﻇﯿﻔﺔ‬

procedure TForm1.Button1Click(Sender: TObject);


begin
ListBox1.Items.Add(Edit1.Text); Add
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
ListBox1.Items.Delete(1); Delete
end;

procedure TForm2.Button1Click(Sender: TObject);


begin
ListBox1.Items.Clear; Clear
end;

procedure TForm1.Button3Click(Sender: TObject);


begin
ListBox1.Items.Exchange(0,1); Exchange
end;

procedure TForm1.ListBox1Click(Sender: TObject);


begin
Caption:=IntToStr( ListBox1.Items.IndexOf('Line')); IndexOf
end;

Procedure TForm1.Button4Click(Sender: Tobject);


begin
ListBox1.Items.Insert(2,Edit1.Text); Insert
end;

.‫( ﻣﻦ دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‬8) ‫ راﺟﻊ اﻟﺪرس‬1

3
‫‪O. M. Fares‬‬ ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‪ /‬اﻟﺪرس )‪(9‬‬

‫;)‪Procedure TForm1.Button5Click(Sender: TObject‬‬


‫‪Var‬‬
‫;‪path: String‬‬
‫‪begin‬‬ ‫‪LoadFromFile‬‬
‫;'‪path:='C:\New Text Document.txt‬‬
‫;)‪ListBox1.Items.LoadFromFile(path‬‬
‫;‪end‬‬

‫;)‪Procedure TForm1.Button6Click(Sender: TObject‬‬


‫‪var‬‬
‫;‪path: String‬‬
‫‪begin‬‬ ‫‪SaveToFile‬‬
‫;'‪path:='C:\New Text Document.txt‬‬
‫;)‪ListBox1.Items. SaveToFile(path‬‬
‫;‪End‬‬

‫;)‪procedure TForm1.Button7Click(Sender: TObject‬‬


‫‪begin‬‬
‫;)‪ListBox1.Items.Move(2,4‬‬ ‫‪Move‬‬
‫;‪end‬‬

‫اﻟﺨﺎﺻﯿﺔ ‪ MultiSelect‬وھﻲ ﺧﺎﺻﯿﺔ ﻣﻦ ﻧﻮع )‪ (Boolean‬وﺗﺤﺪد إﻣﻜﺎﻧﯿﺔ اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﻓﻲ‬ ‫·‬
‫ﻧﻔﺲ اﻟﻮﻗﺖ‪ .‬ﻓﻲ ﺣﺎﻟﺔ )‪ (True‬ﯾﻤﻜﻦ اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ‪ .‬ﻓﻲ ﺣﺎﻟﺔ )‪ (False‬ﻻ ﯾﻤﻜﻦ‬
‫‪2‬‬
‫اﺧﺘﯿﺎر أﻛﺜﺮ ﻣﻦ ﺑﻨﺪ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ‪.‬‬
‫اﻟﺨﺎﺻﯿﺔ ‪ SelCount‬وھﻲ ﺧﺎﺻﯿﺔ ﻣﻦ ﻧﻮع ) ‪ (Integer‬وﺗﺤﺪد ﻋﺪد اﻟﺒﻨﻮد اﻟﺘﻲ ﺗﻢ اﺧﺘﯿﺎرھﺎ ﻓﻲ ﺣﺎﻟﺔ‬ ‫·‬
‫ﻛﺎﻧﺖ اﻟﺨﺎﺻﯿﺔ )‪ (MultiSelect‬ﻗﯿﻤﺘﮭﺎ )‪.(True‬‬
‫اﻟﺨﺎﺻﯿﺔ ‪ Selected‬وھﻲ ﺧﺎﺻﯿﺔ ﻣﻦ ﻧﻮع )‪ (Boolean‬وﺗﺤﺪد ﻣﺎ إذا ﻛﺎن ﺑﻨﺪ ﻣﻌﯿﻦ ﻗﺪ ﺗﻢ اﺧﺘﯿﺎره أم‬ ‫·‬
‫ﻻ‪ .‬اﻟﻜﻮد اﻟﺘﺎﻟﻲ ﻣﻜﺘﻮب ﻓﻲ اﻟﺤﺪث )‪ (OnClick‬وﯾﻈﮭﺮ رﺳﺎﻟﺔ )‪ (item 1 selected‬ﻓﻲ ﺣﺎﻟﺔ ﺗﻢ‬
‫اﺧﺘﯿﺎر اﻟﺒﻨﺪ رﻗﻢ ) ‪.(1‬‬

‫;)‪procedure TForm1.ListBox1Click(Sender: TObject‬‬


‫‪begin‬‬
‫‪if ListBox1.Selected[1] then‬‬
‫;)'‪ShowMessage('item 1 selected‬‬
‫;‪end‬‬

‫اﻟﺨﺎﺻﯿﺔ ‪ Sorted‬ﻓﻲ ﺣﺎﻟﺔ أردت ﺗﺮﺗﯿﺐ ﺑﻨﻮد )‪ (ListBox‬ھﺠﺎﺋﯿﺎ اﺟﻌﻞ ھﺬه اﻟﺨﺎﺻﯿﺔ ﺗﺴﺎوي‬ ‫·‬
‫)‪.(True‬‬

‫ﻛﺎﺋﻦ ﯾﺴﺘﺨﺪم ﻹﻇﮭﺎر ﻗﺎﺋﻤﺔ ﻣﻦ اﻟﺨﯿﺎرات ﻣﺮﺗﺒﻄﺔ ﻣﻊ ﻣﺮﺑﻊ ﻧﺺ )‪(Edit Box‬‬


‫ﺑﺤﯿﺚ ﯾﻤﻜﻦ اﺧﺘﯿﺎر أي ﺑﻨﺪ ﻣﻦ اﻟﻘﺎﺋﻤﺔ وﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﯾﻤﻜﻦ اﺳﺘﺨﺪام ﻣﺮﺑﻊ اﻟﻨﺺ‬ ‫‪ComboBox‬‬
‫ﻹدﺧﺎل ﻧﺺ‪.‬‬

‫ﯾﺤﺘﻮي اﻟﻜﺎﺋﻦ )‪ (ComboBox‬ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ أھﻤﮭﺎ‪:‬‬


‫· اﻟﺨﺎﺻﯿﺔ ‪ CharCase‬ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ DropDownCount‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد ﻋﺪد اﻟﺒﻨﻮد اﻟﻈﺎھﺮة ﻋﻨﺪ إﻇﮭﺎر‬
‫اﻟﻘﺎﺋﻤﺔ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ ItemIndex‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬ﺗﺤﺪد رﻗﻢ اﻟﺒﻨﺪ اﻟﻈﺎھﺮ ﻓﻲ ﻣﺮﺑﻊ اﻟﻨﺺ )‪.(ListBox‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Items‬وھﻲ ﺧﺎﺻﯿﺔ ﻣﻦ ﻧﻮع )‪ (TString‬ﺗﺴﺘﺨﺪم ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﺑﻨﻮد ﻗﺎﺋﻤﺔ )‪.(ComboBox‬‬
‫وﺗﺸﺒﮫ اﻟﺨﺎﺻﯿﺔ )‪ (Lines‬ﻓﻲ اﻟـ)‪ (Memo‬واﻟﺨﺎﺻﯿﺔ )‪ (Items‬ﻓﻲ اﻟـ)‪ ،(ListBox‬وﯾﻤﻜﻦ اﺳﺘﺨﺪام‬
‫ﻧﻔﺲ اﻹﺟﺮاءات واﻟﻮﻇﺎﺋﻒ اﻟﺘﻲ ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ ‪.3‬‬

‫‪ 2‬راﺟﻊ اﻟﺨﺎﺻﯿﺔ )‪ (ExtendedSelect‬ص )‪.(2‬‬


‫‪ 3‬راﺟﻊ اﻟﺨﺎﺻﯿﺔ )‪ (Items‬ص )‪.(3‬‬

‫‪4‬‬
‫‪O. M. Fares‬‬ ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‪ /‬اﻟﺪرس )‪(9‬‬

‫· اﻟﺨﺎﺻﯿﺔ ‪ MaxLength‬ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ‪.‬‬


‫· اﻟﺨﺎﺻﯿﺔ ‪ Sorted‬ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ‪.‬‬
‫وﯾﻤﻜﻦ ﺗﺤﻤﯿﻞ اﻟﻘﺎﺋﻤﺔ ﻓﻲ اﻟﻜﺎﺋﻦ )‪ (ListBox‬اﻟﻰ اﻟﻜﺎﺋﻦ )‪ (ComboBox‬ﺑﻮاﺳﻄﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‪:‬‬

‫;)‪procedure TForm1. Button2Click(Sender: TObject‬‬


‫‪begin‬‬
‫;‪ComboBox1.Items:=ListBox1.Items‬‬
‫;‪end‬‬

‫ﺗﺴﺘﺨﺪم ﻛﺸﺮﯾﻂ إزاﺣﺔ ﻟﻜﺎﺋﻦ )‪ (List‬أو )‪ .(Form‬ﯾﻤﻜﻦ أﯾﻀﺎ ھﺬا اﻟﻜﺎﺋﻦ ﻟﻠﺘﺤﺮك‬
‫‪ScrollBar‬‬
‫ﺑﯿﻦ ﻣﺪى ﻣﻦ اﻟﻘﯿﻢ‪.‬‬

‫ھﻨﺎك اﻟﻌﺪﯾﺪ ﻣﻦ اﻟﻜﺎﺋﻨﺎت اﻟﺘﻲ ﻟﯿﺲ ﻟﺪﯾﮭﺎ ﺷﺮﯾﻂ إزاﺣﺔ ﻟﺪﯾﮭﺎ ﺧﺎﺻﯿﺔ إﺿﺎﻓﺔ )‪ (ScrollBar‬ﺑﺤﯿﺚ ﯾﻤﻜﻦ اﺳﺘﺨﺪام‬
‫)‪ (ScrollBar‬ﻟﻠﺘﺤﻜﻢ ﻓﻲ ﻋﺮض اﻟﻜﺎﺋﻦ‪ .‬ﯾﺤﺘﻮي اﻟﻜﺎﺋﻦ )‪ (ScrollBar‬ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺨﺼﺎﺋﺺ أھﻤﮭﺎ‪:‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Kind‬ﺗﺤﺪد ﻧﻮع ﺷﺮﯾﻂ اﻹزاﺣﺔ )أﻓﻘﻲ أو رأﺳﻲ( وﺗﺄﺧﺬ إﺣﺪى اﻟﻘﯿﻤﺘﯿﻦ‪:‬‬
‫‪ sbHorizontal o‬ﺷﺮﯾﻂ إزاﺣﺔ أﻓﻘﻲ‪.‬‬
‫ﺷﺮﯾﻂ إزاﺣﺔ رأﺳﻲ‪.‬‬ ‫‪sbVertical o‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ LargeChange‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد ﻣﻘﺪار اﻟﺘﻐﯿﯿﺮ ﻓﻲ ﻣﻮﻗﻊ ﺷﺮﯾﻂ اﻹزاﺣﺔ ﻓﻲ‬
‫ﻛﻼ اﻻﺗﺠﺎھﯿﻦ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﯿﮫ ﺑﻤﺆﺷﺮ اﻟﻔﺄرة‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ SmallChange‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد ﻣﻘﺪار اﻟﺘﻐﯿﯿﺮ ﻓﻲ ﻣﻮﻗﻊ ﺷﺮﯾﻂ اﻹزاﺣﺔ ﻓﻲ‬
‫ﻛﻼ اﻻﺗﺠﺎھﯿﻦ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰر اﻟﺴﮭﻢ )► ‪.(◄ /‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Max‬وھﻲ ﻣﻦ ﻧﻮع ) ‪ (Integer‬وﺗﺤﺪد اﻟﺤﺪ اﻷﻗﺼﻰ ﻟﺸﺮﯾﻂ اﻹزاﺣﺔ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Min‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد اﻟﺤﺪ اﻷدﻧﻰ ﻟﺸﺮﯾﻂ اﻹزاﺣﺔ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Position‬وھﻲ ﻣﻦ ﻧﻮع ) ‪ (Integer‬وﺗﺤﺪد اﻟﻤﻮﻗﻊ اﻟﺤﺎﻟﻲ ﻟﺸﺮﯾﻂ اﻹزاﺣﺔ‪.‬‬

‫ھﻮ ﻋﺒﺎرة ﻋﻦ ﻛﺎﺋﻦ ﯾﻤﺜﻞ ﻧﺎﻓﺬة ﻋﻠﻰ اﻟﻔﻮرم‪ ،‬وﺗﺴﺘﺨﺪم ﻟﺘﺠﻤﯿﻊ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎت‬
‫اﻟﻤﺮﺗﺒﻄﺔ ﻣﻌﺎ‪ ،‬وﺗﻌﺘﺒﺮ ﻛﺎﺋﻨﺎت )‪ (RadioButton‬ﻣﻦ أﻛﺜﺮ اﻟﻜﺎﺋﻨﺎت اﻟﻤﺮﺗﺒﻄﺔ‬ ‫‪GroupBox‬‬
‫ﺑﺒﻌﻀﮭﺎ اﺳﺘﺨﺪاﻣﺎ‪.‬‬

‫ﻋﻨﺪ وﺿﻊ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎت ﻋﻠﻰ )‪ (GroupBox‬ﻓﺈن اﻟﻜﺎﺋﻦ )‪ (GroupBox‬ﯾﺼﺒﺢ ﺑﻤﺜﺎﺑﺔ )‪ (Parent‬ﻟﮭﺬه‬
‫اﻟﻜﺎﺋﻨﺎت‪.‬‬

‫وھﻮ ﺷﺒﯿﮫ ﺑﺎﻟﻜﺎﺋﻦ )‪ (GroupBox‬وﯾﺴﺘﺨﺪم ﻹﻧﺸﺎء ﻧﺎﻓﺬة ﻋﻠﻰ اﻟﻔﻮرم ﺗﺤﺘﻮي ﻋﻠﻰ‬
‫‪RadioGroup‬‬
‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﻛﺎﺋﻨﺎت )‪ (RadioButtons‬وﺗﺠﻌﻠﮭﺎ ﺗﻌﻤﻞ ﻣﻌﺎ‪.‬‬

‫وﻣﻦ أھﻢ ﺧﺼﺎﺋﺺ ھﺬا اﻟﻜﺎﺋﻦ‪:‬‬


‫· اﻟﺨﺎﺻﯿﺔ ‪ Columns‬وھﻲ ﻣﻦ اﻟﻨﻮع )‪ (Integer‬وﺗﺤﺪد ﻋﺪد اﻷﻋﻤﺪة ﻓﻲ )‪ ،(RadioGroup‬وﺗﺄﺧﺬ ﻗﯿﻢ‬
‫ﻣﻦ ‪ 1‬إﻟﻰ ‪.16‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ ItemIndex‬وھﻲ ﻣﻦ ﻧﻮع )‪ (Integer‬وﺗﺤﺪد أي ﻛﺎﺋﻦ )‪ (RadioButton‬ﻓﻲ وﺿﻊ اﺧﺘﯿﺎر‬
‫ﺣﺎﻟﯿﺎ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Items‬وھﻲ ﻣﻦ ﻧﻮع )‪ (TString‬وھﻲ ﻗﺎﺋﻤﺔ ﺑﺎﻟﺒﻨﻮد اﻟﻤﻮﺟﻮدة )‪ (RadioButtons‬ﻓﻲ‬
‫اﻟﻜﺎﺋﻦ )‪ .(RadioGroup‬وﺗﺸﺒﮫ اﻟﺨﺎﺻﯿﺔ )‪ (Lines‬ﻓﻲ اﻟـ)‪ (Memo‬واﻟﺨﺎﺻﯿﺔ )‪ (Items‬ﻓﻲ‬
‫اﻟـ)‪ ،(ListBox‬وﯾﻤﻜﻦ اﺳﺘﺨﺪام ﻧﻔﺲ اﻹﺟﺮاءات واﻟﻮﻇﺎﺋﻒ اﻟﺘﻲ ﺗﻢ ﺷﺮﺣﮭﺎ ﺳﺎﺑﻘﺎ‪.‬‬

‫ﻋﺒﺎرة ﻋﻦ ﻟﻮﺣﺔ ﺗﻮﺿﻊ ﻋﻠﻰ اﻟﻔﻮرم وﯾﻤﻜﻦ أن ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻜﺎﺋﻨﺎت‬
‫‪Panel‬‬
‫اﻷﺧﺮى‪.‬‬

‫‪5‬‬
‫‪O. M. Fares‬‬ ‫دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‪ /‬اﻟﺪرس )‪(9‬‬

‫ھﺬا اﻟﻜﺎﺋﻦ ﯾﺴﺎﻋﺪ ﻓﻲ ﺗﺤﺴﯿﻦ ﺷﻜﻞ واﺟﮭﺔ اﻟﺘﻄﺒﯿﻖ وﺗﻨﻈﯿﻢ اﻟﻜﺎﺋﻨﺎت ﻋﻠﻰ اﻟﻔﻮرم وﯾﻌﻄﻰ ﻣﻈﮭﺮ ذو ﺣﻮاف ﺛﻼﺛﯿﺔ‬
‫اﻷﺑﻌﺎد ﺣﻮل اﻟﻜﺎﺋﻨﺎت‪.‬‬
‫ﻣﻦ ﺧﺼﺎﺋﺺ ھﺬا اﻟﻜﺎﺋﻦ‪:‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ Alignment‬ھﺬه اﻟﺨﺎﺻﯿﺔ ﺗﺤﺪد وﺿﻌﯿﺔ اﻟﻌﻨﻮان داﺧﻞ اﻟﻜﺎﺋﻦ )‪ (Panel‬وﯾﻤﻜﻦ أن ﺗﻜﻮن‬
‫إﺣﺪى اﻻﺣﺘﻤﺎﻻت اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫‪ taLeftJustify o‬ﻣﺤﺎذاة إﻟﻰ اﻟﯿﺴﺎر‪.‬‬
‫ﻣﺤﺎذاة إﻟﻰ اﻟﻮﺳﻂ‪.‬‬ ‫‪taCenter o‬‬
‫‪ taRightJustify o‬ﻣﺤﺎذاة إﻟﻰ اﻟﯿﻤﯿﻦ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ BevelInner‬ﺗﺤﺪد ﻧﻮع اﻟﺤﺎﻓﺔ اﻟﺪاﺧﻠﯿﺔ ﻟﻠـ)‪.(Panel‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ BevelOuter‬ﺗﺤﺪد ﻧﻮع اﻟﺤﺎﻓﺔ اﻟﺨﺎرﺟﯿﺔ ﻟﻠـ)‪.(Panel‬‬
‫وﻛﻼ اﻟﺨﺎﺻﯿﺘﯿﻦ اﻟﺴﺎﺑﻘﺘﯿﻦ ﯾﻤﻜﻦ أن ﺗﻜﻮن إﺣﺪى ھﺬه اﻻﺣﺘﻤﺎﻻت‪:‬‬
‫‪ bvNone o‬ﺑﺪون ﺣﺎﻓﺔ‪.‬‬
‫‪ bvLowered o‬اﻟﺤﺎﻓﺔ ﺗﻈﮭﺮ إﻟﻰ اﻷﺳﻔﻞ‪.‬‬
‫‪ bvRaised o‬اﻟﺤﺎﻓﺔ ﺑﺎرزة ﻟﻸﻋﻠﻰ‪.‬‬
‫‪ bvSpace o‬ﺗﻈﮭﺮ اﻟﺤﺎﻓﺔ ﻋﻠﻰ ھﯿﺌﺔ ﻓﺮاغ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ BevelWidth‬ﺗﺤﺪد ﻋﺮض اﻟﺤﺎﻓﺔ اﻟﺪاﺧﻠﯿﺔ واﻟﺨﺎرﺟﯿﺔ ﺑﺎﻟﺒﻜﺴﻞ‪.‬‬
‫· اﻟﺨﺎﺻﯿﺔ ‪ BorderStyle‬ﺗﺤﺪد ﻧﻤﻂ اﻟﺨﻂ اﻟﻤﺤﯿﻂ ﺑﺎﻟﻜﺎﺋﻦ )‪ (Panel‬إﻣﺎ‪:‬‬
‫‪ bsNone o‬ﻻ ﯾﻮﺟﺪ ﺣﺪ ﻇﺎھﺮ‪.‬‬
‫‪ bsSingle o‬ﯾﻮﺟﺪ ﺣﺪ ﻋﻠﻰ ھﯿﺌﺔ ﺧﻂ ﻣﺤﯿﻂ ﺑﺎﻟﻜﺎﺋﻦ‪.‬‬
‫اﻟﺨﺎﺻﯿﺔ ‪ BorderWidth‬وھﻲ ﻣﻦ ﻧﻮع ) ‪ (Integer‬وﺗﺤﺪد اﻟﻤﺴﺎﻓﺔ ﺑﯿﻦ اﻟﺤﺎﻓﺔ اﻟﺪاﺧﻠﯿﺔ واﻟﺤﺎﻓﺔ اﻟﺨﺎرﺟﯿﺔ‬
‫ﺑﺎﻟﺒﻜﺴﻞ‪.‬‬

‫إﻟﻰ ھﻨﺎ ﯾﻨﺘﮭﻲ اﻟﺪرس اﻟﺘﺎﺳﻊ ﻣﻦ دروس ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺑﻠﻐﺔ دﻟﻔﻲ‪ ،‬ارﺟﻮا ﻣﻦ اﷲ اﻟﻌﻠﻲ اﻟﻘﺪﯾﺮ أن ﯾﻜﻮن ھﺬا اﻟﺪرس‬
‫واﺿﺤﺎ ﻟﻠﺠﻤﯿﻊ‪ ،‬وإذا ﻛﺎن ﻟﺪﯾﻜﻢ أي اﺳﺘﻔﺴﺎرات أو اﻗﺘﺮاﺣﺎت ﻓﺎرﺟﻮا أن ﻻ ﺗﺘﺮددوا ﻓﻲ ﻃﺮﺣﮭﺎ‪.‬‬
‫ﻧﻠﺘﻘﻲ ﻓﻲ دروس أﺧﺮى إن ﺷﺎء اﷲ‪ .‬ﺷﻜﺮا‪!...‬‬

‫‪6‬‬

You might also like