Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.46 MB
Время: 0.022 c
3-1141048241
Supklo
2006-02-27 16:50
2006.04.23
Как подключиться к Transbase


1-1142768719
Jean Claude
2006-03-19 14:45
2006.04.23
Сборка линкером от M$


15-1143407363
SkyRanger
2006-03-27 01:09
2006.04.23
Математика для программиста


4-1138996456
Баяр
2006-02-03 22:54
2006.04.23
TMediaPlayer проигрываю MPG выдергиваю кадр чёрный


2-1144298865
Indulf
2006-04-06 08:47
2006.04.23
Как задать массив из БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский