الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يمكن التحكم في اختيارات Combobox

بدأه أمناينلواد في 23 أكتوبر 2008 · 7 رد · 1,776 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اذا كان عندي combobox وفيه اختيارات عديدة هل بامكاني اذا اخترت خيار معين فيه تخرج لي نتيجة مبرمجة

جربت كود على النحو التلي لفلترة وان الاختيار الأخير يلغي الفلترة

procedure TForm1.ComboBox5Select(Sender: TObject);
var a : string;
begin
query2.Filtered:=False;
query2.Filter:='ane ='+''''+combobox5.Text+'''';
query2.Filtered:=True;

a :=  'ÌãíÚ ÇáÓäæÇÊ';
if
combobox5.Items = a then
query2.Filtered:=False;
end;

جزاكم الله خيرا

#2
أمناينلواد كتب:
السلام عليكم

اذا كان عندي combobox وفيه اختيارات عديدة هل بامكاني اذا اخترت خيار معين فيه تخرج لي نتيجة مبرمجة

جربت كود على النحو التلي لفلترة وان الاختيار الأخير يلغي الفلترة

أخي العزيز

أمناينلودا لقد قمت بالاجابة علي سؤالك من خلال سؤالك ..فانت تقول انه اذا اخترت خيار معين تخرج نتيجة معينة اذا الحل لن يخرج عن استحدام جملة

IF..else

من خلال فهمي للسؤال تبين انك تريد تنفيذ تعليمة معينة عند اختيار جملة من الكومبوبوكس

أقترح عليك أستخدام الامر

OnbuttonClick

بعد الاختيار

عموما ...جرب هذا

procedure TForm1.Button1Click(Sender: TObject);
 begin
 if combobox1.Text = 'close' then
 begin
 form1.close;
 end
 else
 if combobox1.Text = 'True' then
 begin
 form1.Caption := 'أهلا وسهلا'
 end
 else
  if combobox1.Text = 'false' then
 form1.Color := clgreen
 end;

استبدل جملك الشرطية الخاصة بك وجرب ...أن لم يرق لك هذا أخبرني ساحاول معك في الحل

وشكرا

تم تعديل هذه المشاركة بواسطة neo1115 في 23 أكتوبر 2008 في 04:26

إجعل أدني طموحك أن تمسك النجوم ...حتي تصل الي ما تريد

#3

أخ أمناينلواد حسب ما فهمت فأنت تريد عمل فلترة على جدول معين حسب حقل معين

على فرض جدول الزبائن أسمائهم موجدودة في combobox و تريد عند تغيير الإسم من الـ combobox ظهور معلومات هذا الزبون

إن كان هذا ما تريد إستخم الكود و أخبرني بالنتيجة :wink:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
adotable1.Filtered := false;
adotable1.Filter := 'name = '''+combobox1.Text+'''';
adotable1.Filtered := true;
end;

و إن كان الـ combobox يحتوي على أنواع العملاء مثلا ( زبون , مورد , موظف, ...) و تريد عند تغيير قيمة الـ combobox يعمل بحث في الجدول عن النوع المحدد في الـ combobox فيمكنك إستخدام نفس الطريقة أو بطريقة أخرى

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex = 0 then
begin
adotable1.Filtered := false;
adotable1.Filter := 'class = ''زبون''';
adotable1.Filtered := true;
end;
if combobox1.ItemIndex = 1 then
begin
adotable1.Filtered := false;
adotable1.Filter := 'class = ''مورد''';
adotable1.Filtered := true;
end;
if combobox1.ItemIndex = 2 then
begin
adotable1.Filtered := false;
adotable1.Filter := 'class = ''موظف''';
adotable1.Filtered := true;
end;
end;

أرجو الإستفادة

تم تعديل هذه المشاركة بواسطة rober في 23 أكتوبر 2008 في 04:36

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#4

أخ روبير حلك صحيح ولكن نحن ان المعلومات في قواعد البيانات متغيرة حسب المستخدم وعلي فرض ان المستخدم اضاف للكومبوبكس خيار رابع وخامس فعتدها لن تتم تنفيذ التعليمة عن اختيار الخيار الرابع او الخامس لانها غير موجودة داخل الكود علما بأن تنفيذ شرط الاختيار هو واحد فقط وهو الفلترة

فاقترح هنا استخدام هذه الجمل علي الترتيب

 procedure Tdm1.tableFilterRecord(DataSet: TDataSet; var Accept: Boolean);
 begin
 accept := table.FieldByName('ln').AsString =  combobox1.Text;
 end;

ومن ثم الكود التالي

 procedure TForm5.combobox1Select(Sender: TObject);
 begin
 table.Filtered := true;
 end;

لكن ما أتمناه من الاخ أمنايلودا ان يحدد بالضبط ماذا يريد ؟ هل يريد تنفيذ شرط واحد عند اختيار اي ايتمز من الكومبوبوس ؟ ام انه يريد جعل كل ايتمز له تنفيذ اجراء معين ومختلف

وشكرا

تم تعديل هذه المشاركة بواسطة neo1115 في 23 أكتوبر 2008 في 14:28

إجعل أدني طموحك أن تمسك النجوم ...حتي تصل الي ما تريد

#5

أخي الكريم الملف المرفق يقوم بما تريده إن شاء الله

أرجو الإستفادة

combobox.rar

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#6

بارك الله فيكم اخواني

في الحقيقة ليس لدي ما أقول الا أن أدعوكم الله بالتوفيق للنجاح وهذا خير الكلام

في الحقيقة لم انتبه الى الكود الذي قدمته أنه يوجد تشويش في العبارة

والتي فيها جميع السنوات

أنا جعلت الفلترة بالكومبوبوس للسنوات مثلا عند ضغطك لسنة 2004 يخرج الزبناء و2005 يخرج الزبناء

وعند اختيار جميع السنوات تلغى الفلترة ويخرج الزبناء كلهم

جزاكم الله خيرا وردودكم استفدت منها كثيرا

#7

نعتبر المشكلة قد حللت ؟؟؟؟

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#8

نعم بالتأكيد

وبارك الله فيكم

مواضيع مشابهة