Главная страница
    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.45 MB
Время: 0.011 c
2-1143981521
новичок111
2006-04-02 16:38
2006.04.23
Как сделать пакет данных???


15-1144042656
Ega23
2006-04-03 09:37
2006.04.23
С Днём рождения! 3 апреля


15-1143712340
Kolan
2006-03-30 13:52
2006.04.23
Добавление свойств в интерфейс при создании COM объекта.


3-1141296315
set45465
2006-03-02 13:45
2006.04.23
Отображение столбцов


1-1142347928
Ilg
2006-03-14 17:52
2006.04.23
Выключение вкладок PageControl





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский