Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
ВнизОшибка с типом и масивом, что не пойму Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c