Главная страница
    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.015 c
1-1142646504
Кашперук Иван
2006-03-18 04:48
2006.04.23
Открыть файл Word


2-1144392986
Bryak
2006-04-07 10:56
2006.04.23
progressBar!


3-1141126943
gamar
2006-02-28 14:42
2006.04.23
Добавление поля в runtime


15-1143781960
Ega23
2006-03-31 09:12
2006.04.23
С Днём рождения! 31 марта


2-1144735415
Rolf
2006-04-11 10:03
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский