ورود

View Full Version : سوال: ميشه يه combo box رو از database پر كرد؟



combo_ci
سه شنبه 28 خرداد 1387, 14:04 عصر
ميشه آيتم هاي يه combobox رو از database پر كرد؟ يعني ميشه هم text رو set كرد و هم يه value به اوون آيتم نسبت داد؟
اگه ميشه چطور ميشه به selectedValue يه آيتم كه انتخاب شده دسترسي داشت؟

اصغر (پآچ)
سه شنبه 28 خرداد 1387, 14:17 عصر
سلام دوست من
با دستورات زیر میتونی یه آیتم به ComboBox اضافه کنی و با دستور بعدش می تونی با توجه به آیتم انتخاب شده دستورات خاصی رو اجرا کنه


ComboBox1.Items.Add('مقدار متن آیتم');




Case ComboBox1.ItemIndex of
0: دستورات
.
.
.
else
دستورات
end;


موفق و موید باشی

combo_ci
سه شنبه 28 خرداد 1387, 14:37 عصر
مثلا اگه يه جدول تو database داشته باشم كه يه اسم و كد داشته باشه چطور ميشه همه اسم ها رو اضافه كرد به combobox بطوري كه وقتي اسم اتنخاب شد به كد اوون اسم هم دسترسي داشت
ممنون

delphiprog3000
سه شنبه 28 خرداد 1387, 17:51 عصر
سلام.
دوست عزیز یه نگاه به این تاپیک هم بنداز میتونه به تو کمک کنه.


http://barnamenevis.org/forum/showthread.php?t=106823
موفق باشید........

Hsimple11
سه شنبه 28 خرداد 1387, 19:05 عصر
چطور ميشه همه اسم ها رو اضافه كرد به combobox بطوري كه وقتي اسم اتنخاب شد به كد اوون اسم هم دسترسي داشت
ممنون

با سلام

برای اضافه کردن محتویات یک فیلد از db خود به combobox میتوانید در رویداد oncreate فرم خود بنویسید :


procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
Table1.First;
For i:=1 to Table1.RecordCount do
Begin
ComboBox1.Items.Add(Table1.fieldbyname('field1').A sString);
ComboBox2.Items.Add(Table1.fieldbyname('field2').A sString);

Table1.Next;

End;

end;

و اگر میخواهید مقداری عددی به هر item شما نسبت داده شود میتوانید از خصوصیت Tag آیتم ها استفاده کنید اما اگر منظورتان مقدار همسان رکورد مورد نظر ولی در فیلد دیگری است میتوانید با هربار انتخاب آیتمی از Combobox بانک خود را جستجو کنید و پس از یافتن رکورد مورد نظر مقدار موجود در فیلد دیگری را بدست بیاورید اما بنظر من این کار وقت بیشتری نیاز دارد و بهت است در ابتدا هر دو فیلد را وارد دو combobox مثلا کنید و در هنگام تغییر combobox اول مقدار همسنگ آن را در combobox2 پیدا کنید. میتوانید visibility کمبوباکس دوم را false قرار دهید :


procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.Text:=ComboBox2.Items.Strings[ComboBox1.itemindex];

end;

SYNDROME
سه شنبه 28 خرداد 1387, 21:25 عصر
اگر هم بخواهید مقادیر را جداگانه ذخیره کنید می توانید از 2 تا ComboBox استفاده کنید و در یکی ID و در یکی نام را ذخیره کنید و به وسیله


ComboBox1.Items[ComboBox2.ItemIndex].Text

به مقدار دیگری دسترسی پیدا کنید.
موفق باشید

combo_ci
چهارشنبه 29 خرداد 1387, 08:36 صبح
با تشكر از همه دوستان
اينم راه حلش
http://stevepeacocke.blogspot.com/2007/06/storing-database-fields-to-tcombobox.html