استخدم 3 كمبو بوكس
الاول به مصر - السودان - الجزائر - الخ
الثاني به القاهرة - الخرطوم -طرابلس
الثالث به اسماء احياء القاهرة والخرطوم
لما اختار علي مصر يظهر لي في الثاني القاهرة و مدن مصر
ولما اختار علي القاهرة تظهر لي احياء القاهرة فقط
هذه كل المشكله
هل يوجد طريقة غير معقدة لعمل ذلك
الطريقة المعتادة
اني اعمل
كود :
if combobox1.itemindex=0 then
Combobox2.items.Clear;
Combobox2.items.Add('القاهرة
ولكن هذا مرهق وذلك لان اعمل هذا في كل الاختيارات بالكامل
احاول استخدمه لتحقيق نفس الهدف
كود :
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if combobox1.itemindex=0 then
begin
if combobox2.itemindex=1 then
begin
combobox3.ItemIndex:=1
end;
end;
end;
الغريب انه يعطيني رساله خطأ في سطر فارغ تماما
و رساله الخطأ تقول
declaration expected but end of file found
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:begin // البلد1
ComboBox2.Items.Clear ;
ComboBox2.Items.AddStrings(state1);
end;
1: begin // البلد2
ComboBox2.Items.Clear ;
ComboBox2.Items.AddStrings(state2);
end;
end;
تغيير الأحياء حسب الولاية في الكمبو 2
كود :
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
case ComboBox2.ItemIndex of
0:begin // الولاية1
ComboBox3.Items.Clear ;
ComboBox3.Items.AddStrings(city1);
end;
1: begin // الولاية 2
ComboBox3.Items.Clear ;
ComboBox3.Items.AddStrings(city2);
end;
end;
var Form1: TForm1; Country: array[0..2] of string = ('الجزائر', 'مصر', 'السودان'); City: array[0..2, 1..2] of string = (('عنابة', 'وهران') ,('القاهرة', 'الاسكندرية'),('الخرطوم', 'الأبيض'));
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i:= Low(Country) to High(Country) do ComboBox1.Items.Add(Country[i]); end;
procedure TForm1.ComboBox1Change(Sender: TObject); var i: Integer; begin ComboBox2.Clear; for i:= Low(City[ComboBox1.ItemIndex]) to High(City[ComboBox1.ItemIndex]) do ComboBox2.Items.Add(City[ComboBox1.ItemIndex, i]); end;
شكرا جزيلا اخي lam.abdeljalil
بارك الله فيك ولكن هذا الكود جربته يعمل جيدا علي المستوي الثاني
أما علي مستوي التفرع الثالث لا يؤدي المطلوب وذلك للأتي
اذا قلت
الكومبو الاول
country1
country2
الكومبو الثاني
city1-country1
city2-country1
city1-country2
city2-ountry2
الكومبو الثالث
state1-city1-country1
state2-city1-country1
state1-city2-country1
state2-city2-country1
state1-city1-country2
state2-city1-country2
state1-city2-country2
state2-city2-country2
هذا الكومبو الثالث لا يعمل جيدا بالتصنيف الهرمي
وذلك لان الشرط الموجود بالكومبو 2
يتعلق ب itemindex 0,1 فقط وهذا يجعله يعطيني نفس state
فهل من حل لهذا
ولو انني اخطأت الفهم - ان لم يكن فيها حرج
لو تعمل المثال و تبعت لي الملف .pas علي المنتدي او الايميل
اكون شاكرا لك . وجزاك الله خيرا
سؤال آخر لو اردنا تحسين نتيجه البرنامج
عندما نختار الدوله في كومبو 1
تظهر المحافظات في كومبو 2 و عند اختيار محافظه من كومبو 2
بالتالي تظهر الاحياء في كومبو 3
ولكن اذا رجعنا الي كومبو 1 بعد اختيار احد ا لمحافظات والاحياء يظل الاختيار كما هو
يعني نريد ان نعمل refresh للبرنامج
لانه من يعمل عليه قد يخطأ بسبب ذلك
هل هذا ممكن
سؤال آخر لماذا يتم وضع
end;
ثلاث مرات متتاليات رغم ان begin مرة واحده