![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дин массивы
RzCoDer © (2005-10-15 13:44:00)Такая вот проблема, есть код:
if length(gui.Windows) >= 0 then begin
for f := 0 to length(gui.Windows) do begin
if length(gui.Windows[f].buttons) >= 0 then begin
for i := 0 to length(gui.Windows[f].Buttons) do begin
Где GUI пакет рекорд:
TRGUI = packed record
Windows : array of TRWindow;
Visible : boolean;
end;
TRWindow соответсвенно тоже. Ошибка AV возникает при попытке обращения к gui.Windows[f], хотя всё вроде задано, в чём может быть проблема?
P.S. TRWindow также имеет дин массивы, но они тож заданы.
RzCoDer (2005-10-15 14:05:00) [1]TUser, хе, единица была, забыл её тут впечатать,
Ну в принципе разобрался, на самом деле намудил с заданием размера массивов :( а парился ведь 3 час...
TUser (2005-10-15 13:49:00) [2]
> if length(gui.Windows) >= 0 then begin
> for f := 0 to length(gui.Windows) do begin
> if length(gui.Windows[f].buttons) >= 0 then begin
> for i := 0 to length(gui.Windows[f].Buttons) do begin
Замени на
for f := 0 to length(gui.Windows) -1 do begin
for i := 0 to length(gui.Windows[f].Buttons) - 1 do begin
Дело в том, что массив длины length(A) включает в себя элементы с индексами low(A) = 0, 1, ..., high(A) = length(A)-1.