View Full Version : سوال: مشکل در combobox
ahmad_v_66
پنج شنبه 06 اردیبهشت 1397, 11:24 صبح
با سلام و احترام
خاصیت ابتدایی combobox اینه که اول کلمات رو سرچ می کنه
اما اگه بخواهیم از وسط چیزی رو جستجو کنیم باید چه کاری انجام بدیم ؟
مثلا در combobox چند تا ایتم داریم مثل مرتضی بهادری اصل - احمد خلیلی مراد -مهندس رضا جلیلی و ....
اگه بخواهیم دنبال کلمات وسط جستجو کنیم باید چه کاری انجام بدهیم ؟؟؟
با تشکر
ahmad_v_66
پنج شنبه 06 اردیبهشت 1397, 18:06 عصر
دوستان یکی نیست جواب منو بده
ممنون میشم کمکم کنید
واقعا گیرم
persia_hrn
شنبه 08 اردیبهشت 1397, 13:14 عصر
سلام ، شما اگر فقط بخواید جستجو کنید که یه متنی توی لیست ComboBox هست یا نه میتونید با دستور POS این کار رو انجام بدین .
یه توضیحی بدید که وقتی یک کلمه ای رو جستجو میکنید ( از هر قسمت از متن توی لیست ComboBox ) بعد میخواین چه اتفاقی بیافته تا بشه بیشتر راهنمایی کرد !
ahmad_v_66
یک شنبه 09 اردیبهشت 1397, 21:36 عصر
دستور pos ؟؟؟؟
این چه زوری کار میکنه ؟؟؟؟؟
و منظورم اینه که مثلا اگه چند تا item جند کلمه ای باشه و دنبال کلمه وسطی و یا آخری باشیم بتونه
پیدا کنه .
حالت یش فرض combocox اینه که از کلمه اولب شروع ب جیتجو می کنه ؟؟؟؟
مثلا اگه در item ها اینطوری باشه
محمد امین وحیدی
کمال الدین کریمی
محمد رضا خالدی و ...
و ما دنبال کلمه کریمی و یا وحیدی و یا رضا باشیم در combobox جستجو نمیشه و همیشه کلمه اول رو جستجو میکنه
ممنون
persia_hrn
دوشنبه 10 اردیبهشت 1397, 07:37 صبح
سلام ، کد زیر رو ببین :
procedure TForm1.ComboBox1Change(Sender: TObject);
var
Loop: Cardinal;
begin
ListBox1.Clear;
For Loop:=0 to ComboBox1.Items.Count-1 do
if Pos(ComboBox1.Text,ComboBox1.Items.Strings[Loop])<>0 then
ListBox1.Items.Append(ComboBox1.Items.Strings[Loop]);
end;
یه ComboBox و یه ListBox توی فرم بذار و توی رویداد OnChange کومبوباکست کد بالا رو بنویس
ahmad_v_66
چهارشنبه 12 اردیبهشت 1397, 01:57 صبح
ممنون دوست عزیز و گرامی
کد شما کار رو راه میندازه اما من جایی برای listbox ندارم
من می خوام تو خود combobox این اتفاق بیفته . من به جای listbox از edit هم استفاده کردم و کد شما جواب داد اما برای خود combobx جواب نمیده
با این حال بازم از شما ممنون و سپاس گذارم
persia_hrn
یک شنبه 16 اردیبهشت 1397, 12:27 عصر
سلام دوست عزیز , ببخشید دیر جواب دادم
var
Form1: TForm1;
FCheck: Boolean;
TempList: TStringList;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
FCheck:=True;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var
Loop: Cardinal;
TempText: String;
begin
if FCheck=True then
begin
TempList := TStringList.Create;
For Loop:=0 to ComboBox1.Items.Count-1 do
TempList.Append(ComboBox1.Items.Strings[Loop]);
end;
ComboBox1.Items.Clear;
ComboBox1.DroppedDown:=False;
For Loop:=0 to TempList.Count-1 do
if Pos(ComboBox1.Text,TempList.Strings[Loop])<>0 then
ComboBox1.Items.Append(TempList.Strings[Loop]);
FCheck:=False;
TempText:=ComboBox1.Text;
if TempText<>'' then
begin
ComboBox1.DroppedDown:=True;
ComboBox1.Text:=TempText;
ComboBox1.SelStart:=Length(ComboBox1.Text);
end;
end;
خدمت شما
فقط یه ComboBox بذار روی فرم
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.