Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.006 c
3-70637
Nonam
2002-07-01 15:50
2002.07.22
---|Ветка была без названия|---


3-70626
SS1
2002-06-28 08:46
2002.07.22
DbiDoRestructure


3-70666
DKalinin
2002-07-02 14:26
2002.07.22
Как узнать сколько параметров имеет процедура на сервере?


1-70757
Алгоритмик
2002-07-09 15:41
2002.07.22
Компоненты FlatStyle (-FlatListBox-)


1-70819
Дундук
2002-07-09 07:42
2002.07.22
Работа с датой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский