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

في حاجة لدعمكم اخواني سؤال بسيط بالنسبة لكم وجديد بالنسبة لي (ملأ Dbcombobox)

بدأه aderfiad في 30 يوليو 2008 · 8 رد · 1,092 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

Combobox لم يسبق لي تعاملت مع

Combobix ب DBEdit اريد تغيير

DBComboboxكيف استعمل

ووضع اختيارات بداخلها

عوض ان يكتب المستعمل (مستوى أول . مستوى تاني .......) يجدها مكتوبة فقط عليه اختيار اي مستوى وسيسجل في الجدول

DBEdit ممكن الكود لعمل هدا و هل طريقة الربط مع قاعدة البيانات هي نفسها مع

#2

السلام عليكم

لم أفهم جيدا هل تريد ملئ محتويات

Dbcombobox

برمجيا .. بالكود ... أم تريد الطريقة اليدوية لملئه

على العموم إليك الطريقتين وإختر ماتريد

الطريقة اليدوية

وهي تصلح في حالة الإختيارات الثابتة ... مثل حقل النوع (الجنس) "ذكر /أنثى".

وإذا كنت ستعبر عن قيمة الإختيارات برقم مكافئ في قاعدة البيانات (مستحسن) فإتبع الآتي:

1- إجعل قيمة خاصية EnableValues := True.

2- ضع قائمة إختياراتك التي تريد الإختيار منها في خاصية Items ... على أن يكون كل إختيار على سطر.

3- ضع القيمة الرقمية المكافئة لقائمة الإختيارات في الخاصية Values. .. على أن يكون كل رقم على سطر أيضا.

الطريقة البرمجية

وهي تصلح في حالة الإختيارات المتغيرة ... مثل قائمة الفروع لمنشأة ... تختلف من منشأة لأخرى ويمكن إضافة المزيد من الفروع للمنشأة الواحدة.

وفي هذه الحالة ستكون إختياراتك في جدول قاعدة البيانات يتم إدخالها من نافذة أخرى، وبالتالي ستحتاج لجملة SQl لتجهيز البيانات المراد وضعها كإختيارات.

الإجراء التالي يقوم بالأمر

procedure FillComboBox(CB:TJvDBComboBox; StrSQL : string); 
 begin
   with TAdoQuery.Create(nil) do
	  begin
		Connection:=FData_Conn.DATA;
		sql.Text:=StrSQL;
		OPEN;
		First;
		CB.EnableValues:=True;
		CB.Clear;
		while not Eof do
			 begin
				  CB.Values.Add(Fields[0].Text);
				  CB.Items.Add(Fields[1].Text);
				  Next;
			 end;//while
		end;//with
 end;

الإجراء السابق تقوم بإرسال إسم

Dbcombobox

المراد ملؤة وترسل له جملة

SQL

تحتوي على حقلين هما رمز الإختيار وإسم الإختيار على الترتيب

وتحياتي

تم تعديل إسم المكون في المود لتجنب الخطأ الذي أشار إلية الإخوان مشكورين :blush:

تم تعديل هذه المشاركة بواسطة TopSec في 30 يوليو 2008 في 08:43

#3

السلام عليكم...

عفواً... ما هي الـ DBComboBox التي يتحدث عنها الأخ TopSec لأني لم أجد الخاصية EnableValues و لا الخاصية Values مع الـ DBComboBox في دلفي 7 و لا في دلفي 2007 ؟؟

الرجاء التوضيح للاستفادة. و شكراً.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4
najy_zl كتب:
السلام عليكم...

عفواً... ما هي الـ DBComboBox التي يتحدث عنها الأخ TopSec لأني لم أجد الخاصية EnableValues و لا الخاصية Values مع الـ DBComboBox في دلفي 7 و لا في دلفي 2007 ؟؟

الرجاء التوضيح للاستفادة. و شكراً.

DBComboBox في الطرف DBControl (في النسخة الفرنسية ContrôleDB)

نفس السؤال بالنسبة للـ EnableValues و Values ؟

بالنسبة للـ Fields[0].Text أرى من الأفضل Fields[0].AsString أم ما رأيك ؟

:)

تم تعديل هذه المشاركة بواسطة merouane في 30 يوليو 2008 في 08:14

#5

عفوا إخواني فأنا في المعتاد أستخدم TjvDBComboBox وهو به هتان الخاصيتان

وقد إفترضت أن TDBComboBox به نفس الخصائص ... لأنو الدلفي ليس مثبت على جهازي في العمل.

أنصحك بإستخدام المكون الأول من ضمن مجموعة مكونات JV فهو أفضل.

اقتباس
بالنسبة للـ Fields[0].Text أرى من الأفضل Fields[0].AsString أم ما رأيك ؟

أوافقك هي أفضل لتجنب أي أخطاء في حالة أن الحقل خالي مثلا ... ولكني أمنع أن يكون الحقل للإسم خالي من نوافذ الإدخال... ولكن لامانع زيادة في الحذر

وأشكرك على تنبيهي للخطأ

تم تعديل هذه المشاركة بواسطة TopSec في 30 يوليو 2008 في 08:39

#6

السلام عليكم...

بالطبع يا أخ merouane أعرف الـ DBComboBox !! إنما كان سؤالي أن الأخ TopSec ربما كان يستعمل مكونات إضافية غير الموجودة أصلاً في دلفي.

على أية حال بالنسبة إلى إجابة السؤال:

1. إذا كان المطلوب فقط عرض قيم يختار منها المستخدم ليتم تخزين القيمة المختارة كما هي فإنه بالإمكان استخدام الـ DBComboBox لتوفير القيم و التي يتم ملؤها عن طريق الخاصية Items. و القيمة التي يتم اختيارها يتم تخزينها كما هي في الحقل المرتبط بالـ DBComboBox عن طريق الخاصية DataField.

2. إذا كان المطلوب عرض مجموعة من القيم بينما يتم تخزين قيم أخرى مقابلة لها (مثلاً عرض أسماء الزبائن بينما يتم تخزين رقم الزبون المحدد و ليس اسمه)، ففي هذه الحالة نحتاج إلى استخدام DBLookupComboBox الذي يحتاج إلى ضبط 3 خصائص من ناحية توفير القائمة:

أ. الخاصية ListSource: نحدد فيها اسم الـ DataSource المرتبطة بالجدول (Table) أو الاستعلام (Query) الذي سيوفر قائمة الخيارات (مثلاً بيانات الزبون).

ب. الخاصية ListField: نحدد فيها اسم الحقل الذي أن نعرض منه مجموعة القيم في الـ DBLookupComboBox (مثلاً حقل اسم الزبون CustName).

ج. الخاصية KeyField: نحدد فيها اسم الحقل الذي سنأخذ منه القيمة (مثلاً رقم الزبون CustID) التي سيتم تخزينها فعلاً في الحقل المحدد بالخاصية DataField من خلال الـ DataSource المحددة بالخاصية DataSource.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#7

@ TopSec

أليس من الأفضل التعامل للإجابة أو للكتابة بالمكونات الأساسية ؟

لأنها موجودة عند الجميع و بوضعك الحل بمكونات أخرى قد تضظر المستعمل ان يقوم بتحميل ما يقارب 20 Mb

:)

تم تعديل هذه المشاركة بواسطة merouane في 30 يوليو 2008 في 08:50

#8
اقتباس
@ TopSec

أليس من الأفضل التعامل للإجابة أو للكتابة بالمكونات الأساسية ؟

لأنها موجودة عند الجميع و بوضعك الحل بمكونات أخرى قد تضظر المستعمل ان يقوم بتحميل ما يقارب 20 Mb

أتفق معك ولكني كما قلت خطأي أني إفترضت أن نفس الخصائص موجودة في المكون الأساسي دون أن أستطيع أن أتأكد من ذلك كما سبق أن قلت...

لقد جاوبت على قدر ما أسعفتني الذاكرة فلا تشنقوني :haha: :haha: :haha: :cry:

#9

شكرا لكم اخواني على ردودكم التي استفدت منها كتيرا

الف شكر (:

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…