Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > поиск DBGrid-ComboBox-edit


Автор: alf138 19.3.2010, 16:08
Тема получилась от сюда http://forum.vingrad.ru/topic-264007.html, проблема малость меняется 
есть такая строчка 
Код

procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.DBGrid1.DataSource.DataSet.Locate('fam',Edit5.Text,[loPartialKey]);
end;

т.е по нажатию кнопки в столбике "FAM" ищется значение введенное в Edit5, хотелось бы поставить ComboBox и с помощью него менять значение 'fam', а 'imya' 'otch' и другие чтобы сделать возможным менять столбики для поиска, вопрос состоит что писать в комбобоксе для его корректной работы.
пытался писать 
Код

procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.DBGrid1.DataSource.DataSet.Locate(ComboBox2.Text,Edit5.Text,[loPartialKey]);
end;

в комбобоксе 
Код

procedure TForm1.ComboBox2Change(Sender: TObject);
var LRow,LCol,R,C:integer;
begin
case ComboBox1.ItemIndex of
    0: C:='fam;
    1: C:='otch';
    2: C:='imya';
end;

пишет ошибку 
Код

[Error] Unit1.pas(307): Incompatible types: 'Boolean' and 'String'

Автор: Akella 21.3.2010, 11:41
Цитата(alf138 @  19.3.2010,  16:08 Найти цитируемый пост)
procedure TForm1.ComboBox2Change(Sender: TObject);
var LRow,LCol,R,C:integer;
begin
case ComboBox1.ItemIndex of
    0: C:='fam;
    1: C:='otch';
    2: C:='imya';
end;

у тебя C - числовое значение, а ты что присваиваешь?? smile

Добавлено @ 11:43
Цитата(alf138 @  19.3.2010,  16:08 Найти цитируемый пост)
пишет ошибку 


Цитата
Incompatible types: 'Boolean' and 'String'

а что, нынче программисты уже переводчиками и встроенной в IDE справкой уже не пользуются?? Не модно?

Или ты не читатель, а писатель? smile

Добавлено через 2 минуты и 48 секунд
Тебе же дебагер явно пишет ГДЕ и КАКАЯ ошибка ;)

Автор: alf138 21.3.2010, 17:01
Цитата(Akella @  21.3.2010,  11:41 Найти цитируемый пост)
у что, нынче программисты уже переводчиками и встроенной в IDE справкой уже не пользуются?? Не модно?Или ты не читатель, а писатель?

Пользуемся, всем пользуемся. Мы и пишем и читаем, и даже иногда пьем ... тьфу поем)))
Код

procedure TForm1.ComboBox1Change(Sender: TObject);
var
i:byte;
begin
for i:=0 to Combobox1.Items.Count-1 do
if Combobox1.Text=Combobox1.Items[i] then
Combobox1.ItemIndex:=i;
case Combobox1.ItemIndex of
0:FName:='fam';
1:FName:='otch';
2:FName:='imya'
end
end;


procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.DBGrid1.DataSource.DataSet.Locate(FName,Edit5.Text,[loPartialKey]);
end;

Спасибо Mad_Dog помог все растолковал. Тема решена, всем спасибо.

Автор: dumser2 1.8.2011, 16:13
Так лутше будет.
А как сделать чтобы еще выделялась строка???
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
Form1.DBGrid1.DataSource.DataSet.Locate(FName,Edit1.Text,[loPartialKey]);
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)