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

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

Ошибка с типом и масивом, что не пойму [D7, XP]


STK ©   (2006-04-09 13:18:00) 

Всем доброго времени суток. Вот моя проблема:

Создал в основном модуле программы тип:

type
 info = array of string; // Вот этот Тип
 TForma = class(TForm)
// и константы
Const
 Settings : array[1..2] of string = ('NumberFileBase','key');
 Programma : array[1..4] of string = ('Level1', 'Level2',
                                       'Level3', 'Level4');

И тип и константы видны в других модулях.

И вот в одном из модулей программы мненеобходимо сделать следующее:

procedure a;
var
 i: byte;
 s: info;
 d: info;
begin
 for i:= 1 to 4 do begin
   s[i] := (унит в котором описана константа).Programma[i];

И вот здесь выдаёт ошибку типа: "EAccesViolation at adress 00404074 in module qwert.exe" ну и типа стоп contiued. Т.Е. он не присваивает s[i] строку из константы. Что не так? Я понимаю всё не так.
Можно поменять тип info, но он очень нужно. Нужно чтоб вызвав другую процедуру передать в виде параметра s.

Процедура описана так:
procedure qwqwe(FilePath: string; Section: String; Ident: info);
Вот для параметра Ident и будет s. В эту процедуру будут передоваться в виде параметра Ident эти два массива-константы или создаваемые в процессе работы массивы. Но вот есть уже проблема. Как решить не знаю.

Если что не понятно, могу дополнительно описать.

Рылся в литературе нечего не нашёл.
Заранее всем спасибо.


STK   (2006-04-10 21:38:00) [1]


> TUser ©   (10.04.06 16:45) [4]

Да спасибо - это понятно что с нулевого, Практически всё с нуля начинается. Вроде нечего для нас, а что-то для машин.

И всем спасибо. Особенно
> Std ©   (09.04.06 13:28) [1]
за подсказку. Всё генеальное просто.
Ещё раз всем спасибо.

Но у меня появился немного другой вопрос: связан с TreeView. он в форуме.


TUser   (2006-04-10 16:45:00) [2]


> SetLength(s,4);
> for i:= 1 to 4 do begin
>   s[i] := (унит в котором описана константа).Programma[i];
>

SetLength(s,4);
for i:= 1 to 4 do begin
 s[i -1] := (унит в котором описана константа).Programma[i];


STK   (2006-04-10 15:54:00) [3]


> Std ©   (09.04.06 13:28) [1]
> насколько я понял ты не задаеш размер массива s

Да, не задаю. Но щас попробую. Результат опишу.


Ega23   (2006-04-09 13:29:00) [4]

А где SetLength?


Std   (2006-04-09 13:28:00) [5]

насколько я понял ты не задаеш размер массива s
procedure a;
var
i: byte;
s: info;
d: info;
begin
SetLength(s,4);
for i:= 1 to 4 do begin
  s[i] := (унит в котором описана константа).Programma[i];

типа так нада. но могу и ошибатся :) сам не очень дружу с массивами


Наверх

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