![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Grid index out of range [D6, WinXP]
d-coder © (2002-09-24 03:08:00)Такая мессага появляется непонятно почему. Текст процедуры вроде как правильный, но при попытке нажатия на кнопку theme_but компилятор ругается.
Этот код берет значение из ComboBox"a theme(заполнен из текстового файла) и при нажатии кнопки должен прошерстить StringGrid booklist(тоже заполнен из текстового файла) и при совпадении текста из theme и из одного из столбцов booklist должен выписать всю найденную в booklist строку в строку filtlist.
Короче говоря, это фильтр. И все кажется вполне правильным, но у Delphi свой взгляд на вещи.
ПОЖАЛУЙСТА помогите, мастера. Уверен, что вы легко найдете ошибку (тем более описание ОЧЕНЬ подробное).
Заранее спасибо тем, кто откликнется.
Вот код:
procedure Tmain.theme_butClick(Sender: TObject);
begin
row:=1; r:=1; filtlist.Row:=1;
if themest.Text<>"" then
begin
while row<=3824 do
begin
if booklist.Cells[2, row]=themest.Text then
begin
for c:=0 to 4 do
begin
filtlist.Cells[c, r]:=histlist.Cells[c, row];
end;
r:=r+1;
filtlist.Row:=filtlist.Row+1;
end;
row:=row+1;
end;
end;
end;
Zz_ (2002-09-24 09:47:00) [1]А первое Row случайно не равно 0 ?
Соответственно последнее (Count-1)
d-coder (2002-09-24 09:39:00) [2]Это не столь важно: я точно знаю, что там ровно 3824 строки и больше не будет по-любому.
Кстати, по этому же поводу: когда заполнял booklist из цикла с условием while not Eof(F) do... получил кучу пустых строк (приблизительно в 4 раза больше, чем заполненных) - т.е. все, что нужно было внесено, а в догонку туева хуча пустых строк. В чем прикол не знаю, но пофиксил я это именно константой=реальному кол-ву строк
Вот непонятно (2002-09-24 03:54:00) [3]почему используется некая константа "3824" вместо RowCount. Поскольку, согласно вопросу, "StringGrid booklist(тоже заполнен из текстового файла)"?