Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск


Клара ©   (2006-12-12 13:07:00) 

Процедура поиска через ComboBox1 и Edit.

procedure TForm11.Edit2Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: Form11.ADOtable1.Locate('ID_promoutera',edit2.Text,[loCaseInsensitive,loPartialK ey]);
1: Form11.ADOtable1.Locate('data_akcii',edit2.Text,[loCaseInsensitive,loPartialKey] );
2: Form11.ADOtable1.Locate('kod_TT',edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
end;
Как корректно очисть Edit, после выбора другого поля.
Поля разного типа.


Клара   (2006-12-12 15:28:00) [1]


> Elen

В любом случае спасибо.


Elen   (2006-12-12 15:24:00) [2]


> Так, что вопросы еще будут.

Не вопрос, только меня не будет полмесяца, так что другие ответят. Удачи.;)


Клара   (2006-12-12 15:19:00) [3]


> Elen

Ура работает!!! Ты супер.
Мне завтра сдавать курсовой.
Так, что вопросы еще будут.


Elen   (2006-12-12 15:09:00) [4]


> Например?

Вроде этого :
case ComboBox1.ItemIndex of
0:begin if T ryStrToInt(edit2.Text, r) then Form11.ADOtable1.Locate('ID_promoutera',r,[loCaseInsensitive,loPartialKey]);end;
...
end;

Где r - Var параметр типа Integer


Клара   (2006-12-12 15:02:00) [5]


> Elen

Например?


Elen   (2006-12-12 14:59:00) [6]


> Клара

Возможно. Там нужна проверка на числовость но не везде.


Клара   (2006-12-12 14:55:00) [7]

Тогда друга ошибка: "is not а valid integer value"


Клара   (2006-12-12 14:49:00) [8]


> Elen

Да, при переходе из текстовых на числовые.


Elen   (2006-12-12 14:48:00) [9]


> Клара

Тогда, Подозревая какое поля числовые так :

procedure TForm11.Edit2Change(Sender: TObject);
begin
if Edit2.Text<>'' then begin
case ComboBox1.ItemIndex of
0: Form11.ADOtable1.Locate('ID_promoutera', strtoint(edit2.Text),[loCaseInsensitive,loPartialKey]);
1: Form11.ADOtable1.Locate('data_akcii',edit2.Text,[loCaseInsensitive,loPartialKey]   );
2: Form11.ADOtable1.Locate('kod_TT', strtoint(edit2.Text),[loCaseInsensitive,loPartialKey]);
end;
Edit2.Text:=''; //или эту строку в процедуру TForm11.ComboBox1Change
end;


Клара   (2006-12-12 14:45:00) [10]

А если точнее, то "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или втупают в конфликт с друг другом"


Клара   (2006-12-12 14:39:00) [11]


> Savek

Я так и сделала, но когда я переключаю поиск между текстовыми полями - все нормально, а когда после текстового идет числовое, то ошибка: " не совместимость типов".


Savek   (2006-12-12 13:26:00) [12]


procedure TForm11.Edit2Change(Sender: TObject);
begin
if Edit2.Text<>'' then begin
case ComboBox1.ItemIndex of
0: Form11.ADOtable1.Locate('ID_promoutera',edit2.Text,[loCaseInsensitive,loPartialK  ey]);
1: Form11.ADOtable1.Locate('data_akcii',edit2.Text,[loCaseInsensitive,loPartialKey]  );
2: Form11.ADOtable1.Locate('kod_TT',edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
Edit2.Text:=''; //или эту строку в процедуру TForm11.ComboBox1Change
end;


Jeer   (2006-12-12 13:13:00) [13]

Отлавливать смену ItemIndex, если я правильно стелепатировал.


Наверх

Титульная страница Поиск, карта сайта Написать письмо