Lazarus

Other Languages => Arabic => Topic started by: Al-Eid on September 11, 2021, 09:21:08 am

Title: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Al-Eid on September 11, 2021, 09:21:08 am

السلام علكيم
وجدت في إحدى الدورات طريقة لملأ comboxBox بهذه الطريقة
Code: Pascal  [Select][+][-]
  1. for i := 0 to ZQuery1.RecordCount-1 do
  2. Begin
  3. Combobox1.AddItem(ZQuery1.FieldByName('FieldName'),TObject(ZQuery1.FieldByName('FieldKey')));
  4. ZQuery1.Next;
  5.  end;
  6.  
  7.  

وعند تغيير قيمة combobx يمكن أن نتعرف على قيمة الحقل الأساسي
بالطريقة التالية
Code: Pascal  [Select][+][-]
  1. Integer(Combobox1.Items.Objects[Combobox1.ItemIndex]);
  2.  
  3.  

السؤال
هذه الطريقة صلحت معي مع الحقول الرقمية ولكن عندما يكون الحقل
الرئيسي حرفي varchar فإنها لا تصلح مع العلم أن الكود الذي أستخدمته كما يلي

Code: Pascal  [Select][+][-]
  1. Edit1.text :=string(Combobox1.Items.Objects[Combobox1.ItemIndex]);
  2.  

عند الترجمة كل شيئ تمام ولكن عند التنفيذ يحدث حطأ
ممكن حل لهذه المشكلة وشكرا

Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: nouzi on September 12, 2021, 08:25:37 pm
اهلا العيد كيف الحال
بخصوص طلبك هناك مكونات مخصصة لهذا الغرض اطلاع على
DBComboBox
DBLookupComboBox
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Al-Eid on September 13, 2021, 08:11:56 am
اهلا العيد كيف الحال
بخصوص طلبك هناك مكونات مخصصة لهذا الغرض اطلاع على
DBComboBox
DBLookupComboBox

الحمد لله وأتمنى أن تكون بألف خير
بالنسبة DBLookupComboBox تعمل على إدراج قيمة حقل من جدول لجدول اخر ولكن أنا أريد أن أستعملها في البحث
مثلا عند قائمة للأقسام عند إختيار إسم القسم يقوم بالبحث عن التلاميذ الذين يدرسون في القسم وذلك عن طريق الحقل المفتاحي للقسم
وهذا لا أعتقد أن يمكن أن تفعله الأداة DBLookupComboBox
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: nouzi on September 14, 2021, 01:40:44 am
الامثل
DBComboBox
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Al-Eid on September 18, 2021, 11:34:09 am
السلام عليكم

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

مثلا عندي جدول لمجموعة من التلاميذ بحيث كل مجموعة  تنتمي إلى قسم ما مرتبيطن بهذا القسم عن طريق حقل ID_class
أريد أن أضع combobox بها أسماء الأقسام وعند إختيار قسم يظهر لي تلاميذ القسم في DBGrid

الكود الذي وجدته يصلح مع حقل ID من integer  ولكن لم يصلح مع حقل varchar

وإذا كان يمكن عن طريق DBCombobox فكيف ذلك
وشكرا مسبقا
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Zaher on September 18, 2021, 10:22:52 pm
انت تقوم بتعبئة الكومبو بعنوان الحقل وليس قيمة الحقل
استغرب ان يترجم معك
يجب ان تمرر قيمة الحقل لا الحقل نفسه عند النص
ZQuery1.FieldByName('FieldName').AsString

Code: Pascal  [Select][+][-]
  1. Combobox1.AddItem(ZQuery1.FieldByName('FieldName'),TObject(ZQuery1.FieldByName('FieldKey')));


الحل هكذا
Code: Pascal  [Select][+][-]
  1. Combobox1.AddItem(ZQuery1.FieldByName('FieldName').AsString, TObject(ZQuery1.FieldByName('FieldKey').AsInetger));

اما بالنسبة للنص لا يمكن وضع النص في محل TObject كما فعلنا مع الرقم

يفضل أن تلجا لحل آخر
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Zaher on September 18, 2021, 10:30:04 pm
أو اذا تركت الكود نفسه  هنا انت خزنت بهذا السطر اسم و الحقل الخاص بالمفتاح و ليس قيمة المفتاح
Code: Pascal  [Select][+][-]
  1. Combobox1.AddItem(ZQuery1.FieldByName('FieldName').AsString,TObject(ZQuery1.FieldByName('FieldKey')));
يمكنك استعمال ال TField المخزن
Code: Pascal  [Select][+][-]
  1. TField(Combobox1.Items.Objects[Combobox1.ItemIndex]).AsInteger;
وهنا كنص اذا كان من نوع النص
Code: Pascal  [Select][+][-]
  1. TField(Combobox1.Items.Objects[Combobox1.ItemIndex]).AsString;
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Al-Eid on September 19, 2021, 10:09:03 am
أخي Zaher
لقد نسيت أن أكتب .AsInteger و .AsString يبدو أنه عليا أن أركز أكثر في كتابة مشاركاتي   :D

أما بالنسبة لـ TField فهي تخرج لي رسال خطأ سواء مع الأنواع Integer و String هذه هي الرسالة :
Project Project1 raised exception class EXternal SIGSEGV'
In file 'Unit1.pas at line 61

أنا حاليا أستخدم إثنين من combobox أحدها تحمل الإسم والثانية تأخد قيم حقل المفتاح وأجعل الثانية مخفية
شكرا لكم جميعا
Title: Re: سؤال حول إستخدام Combobox1.AddItem و Combobox1.Items.Objects
Post by: Zaher on September 19, 2021, 11:17:53 am
توقعت هذا الشيء، لكن علي التنويه لانه هنالك من سيقرأ في المستقبل
Quote
أنا حاليا أستخدم إثنين من combobox أحدها تحمل الإسم والثانية تأخد قيم حقل المفتاح وأجعل الثانية مخفية
يفضل استعمال مصفوفة داخلية بدل من عنصر
TinyPortal © 2005-2018