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

Вниз

Ошибка с типом и масивом, что не пойму   Найти похожие ветки 

 
STK ©   (2006-04-09 13:18) [0]

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

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

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 эти два массива-константы или создаваемые в процессе работы массивы. Но вот есть уже проблема. Как решить не знаю.

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

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


 
Std ©   (2006-04-09 13:28) [1]

насколько я понял ты не задаеш размер массива 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];

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


 
Ega23 ©   (2006-04-09 13:29) [2]

А где SetLength?


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


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

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


 
TUser ©   (2006-04-10 16:45) [4]


> 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 21:38) [5]


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

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

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

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



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

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

Наверх




Память: 0.48 MB
Время: 0.039 c
15-1143924568
MVP
2006-04-02 00:49
2006.04.23
Переход от декартовых координат к координатам экрана


15-1143796937
Интересующийся
2006-03-31 13:22
2006.04.23
Мастер и Маргарита


2-1144323969
Скиф
2006-04-06 15:46
2006.04.23
Как осуществить перезагрузку Windows


15-1144046356
ORMADA
2006-04-03 10:39
2006.04.23
Delphi7+sp1


4-1138723860
Beduir
2006-01-31 19:11
2006.04.23
Как отловить событие изменения элемента в ListView