Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Исключения   Найти похожие ветки 

 
Loco   (2002-07-07 17:40) [0]

Народ, если не сложно, подскажите.
При компиляции программы - ошибок нет, зато когда по клику прога начинает обрабатывать процедуру - выдаётся мессадж следующего содержания: "Project XXX.exe raised exception class EListError with message"List index out of bounds (-1)".
Process stopped. Use Step or Run to continue."

Строка, которая порождает этот самый месссадж:
Table1.Locate(strField, Edit1.Text, [loCaseInsensitive, loPartialKey]);
Пробовал вместо Locate использовать Lookup - вообще никаких сообщений, но тем не менее ничего не работает.
Подскажите как исправить, plizzz.
Заранее очень благодарен.


Loco: loco@userline.ru


 
MBo ©   (2002-07-07 17:47) [1]

что в strField?


 
Loco   (2002-07-08 13:29) [2]

В strField имя поля таблицы, в котором и осуществляется Locate.


 
Skier ©   (2002-07-08 14:25) [3]

>Loco
Напиши конкретно :
- что именно у тебя в strField
- что именно у тебя в Edit1.Text
(на момент возникновения Exception)

А ещё лучше покажи кусочек кода.


 
Loco   (2002-07-08 14:38) [4]

Пожалуйста, смотрите.
procedure TForm1.Edit1Change(Sender: TObject);
var
strField: String;
begin
if not CheckBox1.Checked
then
begin
Edit1.Enabled:=False;
RadioGroup2.Enabled:=False;
RadioButton3.Enabled:=False;
RadioButton4.Enabled:=False;
Exit;
end
else
Edit1.Enabled:=True;
RadioGroup2.Enabled:=True;
RadioButton3.Enabled:=True;
RadioButton4.Enabled:=True;
//Выбор критерия поиска
case RadioGroup1.ItemIndex of
0: strField:="Familia";
1: strField:="Passport";
end;
//Выполняем поиск
Table1.Locate(strField, Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Edit1Change(Sender);
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit1Change(Sender);
end;


 
Eugene Lachinov ©   (2002-07-08 14:42) [5]

Проверь, что на момент Locate Table1 открыт


 
Johnmen ©   (2002-07-08 14:47) [6]

Повтор встречных вопросов :
- что именно у тебя в strField
- что именно у тебя в Edit1.Text

На указанной строке указанная ошибка генериться в принципе не может...


 
Skier ©   (2002-07-08 14:47) [7]

> Loco
А если так :
Table1.Locate(strField,
VarArrayOf([Edit1.Text]), [loCaseInsensitive,
loPartialKey])
???

Но прежде сделай то что советует Eugene Lachinov


 
Loco   (2002-07-08 14:51) [8]

>Eugene Lachinov
Дык ведь открыт.


 
Loco   (2002-07-08 14:54) [9]

>Skier
а нифига не выходит - нету разницы, та же ошибка!!


 
Loco   (2002-07-08 14:57) [10]

Ребята, а может использовать подобный механизм фильтрации.
То есть, чтобы не указатель перемещался, а записи фильтровались по Edit1Change.
Это возможно?????


 
Eugene Lachinov ©   (2002-07-08 14:58) [11]

А OnDataChange случайно не определен ?


 
Skier ©   (2002-07-08 14:59) [12]

>Loco
Мне кажется, что ошибка где-то в другом
месте.
Если приспичило, то шли мне весь код и таблицы,
что-нибудь придумаем...


 
oomneeq ©   (2002-07-08 15:11) [13]

У тебя Table1 не в гриде ли отображается?
ТОгда, возможно, это грид ругается.
Ну или что там у тебя из Data aware компонентов на эту таблицу повешено.
Установить, так ли это, можно отвязав Table1 от грида или
Table1.DisableControls



 
NailS ©   (2002-07-08 15:24) [14]

А слабо стек посмотреть на момент ошибки?
Много интересного увидеть можно, чем просто так гадать.


 
Loco   (2002-07-09 10:58) [15]

>oomneeq
Точно в гриде.
А DisableControls не помогает - пробовал


 
Loco   (2002-07-09 11:10) [16]

Всем sorry за моё вчерашнее внезапное пропадание.
Такая хреновина была!!
Сижу себе в офисе, на улице гроза, молнии там гром вся фигня.
У меня 4 окна открыто: почта там, форум, плюс Delphi с НЕСОХРАНЁННЫМ кодом (фигня там какая-то строк 30-40).
Тут БА-БАХ - темно как у негра в ... (офис просто в подвале) и UPS начинает пищать (жалобно так).
Ну и соответственно комп не работает.
Короче вырубили у нас питание и у меня был короткий рабочий день :))).


 
Skier ©   (2002-07-09 15:35) [17]

>Loco

Дааааааа......уж !


procedure TForm1.Edit1Change(Sender: TObject);
var
strField: String;
begin
//Если режим поиска выключен - выйти
if not CheckBox1.Checked
then
begin
Edit1.Enabled:=False;
RadioGroup2.Enabled:=False;
RadioButton3.Enabled:=False;
RadioButton4.Enabled:=False;
Exit;
end
else
Edit1.Enabled:=True;
RadioGroup2.Enabled:=True;
RadioButton3.Enabled:=True;
RadioButton4.Enabled:=True;
//Выбор критерия поиска

//У Вас, батенька :
// 1) в таблице Table1 нет ни поля Fam, ни поля Passport
// 2) кроме того, если RadioGroup1.ItemIndex = - 1
// (когда в RadioGroup2 ничего не выбрано) то strField
// равняется пустой строке !

case RadioGroup1.ItemIndex of
0: strField:="Fam";
1: strField:="Passport";
end;
//Выполняем поиск
Table1.Locate(strField, Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;


 
Loco   (2002-07-09 16:19) [18]

>Skier
По поводу полей это правильно просто когда тебе код отправлял
как раз всю структуру таблиц переделывал, не успел исправить.
А по поводу RadioGroup2 как исправить, подскажи, если не сложно.


 
Loco   (2002-07-09 16:30) [19]

>Skier
ШПА-А-АСИБО!!!!!
Уже исправил.


 
Skier ©   (2002-07-09 16:33) [20]

>Loco
1) Проще всего в дизайне сразу поставить
RadioButton3.Checked := True или RadioButton4.Checked := True
2) Можно (если ничего не выбрано в RadioGroup2) выводить
сообщение. Примерно так :


case RadioGroup1.ItemIndex of
0 : strField := "Fam";
1 : strField := "Passport";
else begin
ShowMessage("Не выбран критерий поиска !");
Exit;
end; //else
end; //case


 
Loco   (2002-07-09 17:07) [21]

>Skier
вообще-то я уже исправил, но с сообщением это ты хорошо придумал,
сейчас переделаю!
Ещё раз ШПА-А-АСИБО!!!!!
Должен буду.



Страницы: 1 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
3-70592
alexA
2002-06-27 16:44
2002.07.22
сумма по кэшироемогу набору данных


1-70824
Самборский Евгений
2002-07-10 19:33
2002.07.22
Не прямоугольная форма


3-70669
cyberwarlock
2002-07-02 12:03
2002.07.22
Небольшая проблемка с TDataBase


14-70884
cpp
2002-06-25 09:36
2002.07.22
Нужен компонент для работы с графикой (или алгоритмы)


1-70694
Александр
2002-07-10 17:52
2002.07.22
Помогите разобраться