PDA

View Full Version : کار با ComboBox



babak869
سه شنبه 24 آبان 1384, 18:03 عصر
با سلام و خسته نباید
من یه ComboBox دارم که 4 تا آیتم داره.میخوام زمانی که کاربر کلید o رو بزنه اون باز بشه.البته کد این قسمت رو بلدم اینه


if key=#111 then ComboBox1.DroppedDown:=true;

حالا میخوام اگه کاربر فرضا کلید 1 رو بزنه آیتم اول انتخاب بشه و یا اگه کلید 3 رو بزنه آیتم سوم انتخاب بشه.از دوستان ممنون میشم اگه منو راهنمایی کنند.
با تشکر

newdesign
سه شنبه 24 آبان 1384, 18:10 عصر
itemindex و selected نداره ؟ فکر کنم با اینها مشکل حل بشه

mzjahromi
سه شنبه 24 آبان 1384, 18:26 عصر
ComboBox1.ItemIndex:=i

babak869
سه شنبه 24 آبان 1384, 18:54 عصر
با سلام
ممنونم اما متغیر i رو بر چه اساسی تعریف کنم؟ میشه بیشتر توضیح بدید
متشکرم

m-khorsandi
چهارشنبه 25 آبان 1384, 08:29 صبح
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key in [48..57] then //0..9
ComboBox1.ItemIndex := StrToInt(Char(key));
end;

babak869
چهارشنبه 25 آبان 1384, 23:14 عصر
سلام محمد عزیز
دستت درد نکنه .متشکرم.

babak869
جمعه 27 آبان 1384, 09:11 صبح
ببخشید من هنوز مشکلم کامل حل نشده
شاید هم من بد توضیح دادم. من میخوام با زدن کلید 1 آیتم اول کمبو باکس انتخاب بشه و کمبوباکس بسته بشه و اگه کاربر دگمه 2 رو بزنه آیتم دوم کمبوباکس انتخاب بشه و کمبوباکس بسته بشه و .....
اگه ممکنه منو بیشتر راهنمایی کنید
ممنونم

اَرژنگ
جمعه 27 آبان 1384, 10:35 صبح
(ComboBox1.Style=csDropDownList;)

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var
i : integer;
begin
try
i := StrToInt( Key );
if i = 0 then
ComboBox1.DroppedDown:=true
else begin
ComboBox1.ItemIndex := i+1;
if ComboBox1.DroppedDown then
ComboBox1.DroppedDown := false;
end;
except
ShowMessage('لطفاً یک عدد مابین ۰ تا ۹ را فشار دهید ');
end;
end;

babak869
جمعه 27 آبان 1384, 17:40 عصر
ارژنگ عزیز سلام
دستت درد نکنه از کدی که اینجا گزاشتی ممنونم من مشکلم حل شد.موفق باشید

babak869
شنبه 28 آبان 1384, 12:46 عصر
از محبت همه دوستان ممنونم
آیا امکان داره کدی رو که برای DbLookupComboBox رو هم بشه استفاده کرد اینجا بزارند؟
متشکرم

mzjahromi
شنبه 28 آبان 1384, 13:14 عصر
DBLookupCombobox برای اینکه بره سر خط مورد نظر باید listsource رو ببری اونجا.
و برای اینکه مقدار رو تو خودش بنویسه باید Keyvalue رو ست کنی

babak869
شنبه 28 آبان 1384, 18:21 عصر
جناب ذوالقدر عزیز سلام
میشه کمی بیشتر توضیح بدید
متشکرم

mzjahromi
شنبه 28 آبان 1384, 19:20 عصر
ببین DBLookupCombobox یه ListSource داره و اون هم یه دیتا ست داره حالا اگه دیتاست رو هر رکوردی باشه همون عنصر نمایش داده می شه اگر هم بخوای یه مقدار خاص رو نشون داده بشه باید بدونی اون مقدار توچه رکوردیه و اون رکورد کلیدش چیه اونوقت بنویسی


DBLookupComboBox1.KeyValue:=Key;

babak869
یک شنبه 29 آبان 1384, 21:44 عصر
سلام
من این کد رو نوشتم اما جواب نداد در حقیقت من میخوام با زدن کلید 1 هم نوشته آیتم 1 در DbLookUpComboBox نمایش داده بشه و هم آیتم اول انتخاب بشه .برای شماره های بعدی هم همینطور.لطفا کمک کنید
ممنونم

mzjahromi
دوشنبه 30 آبان 1384, 14:11 عصر
اون روشی که من نوشتم باید شما کلید اولین ردیف جدولت رو بدونی در غیر اینصورت ساده ترین راه اینه


DBLookupComboBox1.ListSource.DataSet.First;
DBLookupComboBox1.ListSource.DataSet.MoveBy(i-1);
DBLookupComboBox1.KeyValue:=
DBLookupComboBoX1.ListSource.DataSet.FieldByName(' Key Field Name').AsString;

babak869
دوشنبه 30 آبان 1384, 22:20 عصر
آقا دستت درد نکنه عالی بود و مشکل منو حل کرد.
بسیار متشکرم

mzjahromi
سه شنبه 01 آذر 1384, 08:45 صبح
خواهش می کنم