Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Инициализация массива. [D7, XP]


Страницы:   1 2 3 4

Б ©   (2010-05-01 23:23:00) 

Здрасти!

Имеется массив, нужно его при инициализцаии заполнить специфическими константами, не хочется прописывать
типа:


 Arr[1]:= 1;         // Для наглядности взяты числа.
 Arr[2]:= 2;
 Arr[3]:= 3;
 ...........


Вопрос в том, что массив получается глобальным, а надо его запихнуть в XProc, но там проинициализировать в ручную массив нельзя.


Var
 Arr: array [0..2] of LongWord = (1, 2, 3);  // На самом деле, массив гораздо
                                             // больше.
Procedure XProc;
begin
 Arr[1]:= 72;
End;


Б   (2010-05-07 17:52:00) [1]


> Anatoly Podgoretsky ©   (07.05.10 16:32) [60]
> > Б  (07.05.2010 16:11:59)  [59]
>
> БЛЮ


Ты о чем?


Leonid Troyanovsky   (2010-05-07 16:49:00) [2]


> Б   (07.05.10 16:11) [59]

> Не понял.

С творчеством К. Пруткова знаком?

> Anatoly Podgoretsky ©   (07.05.10 16:32) [60]

> БЛЮ

Ммм...да, наверное :)

--
Regards, LVT.


Anatoly Podgoretsky   (2010-05-07 16:32:00) [3]

> Б  (07.05.2010 16:11:59)  [59]

БЛЮ


Б   (2010-05-07 16:11:00) [4]


> Leonid Troyanovsky ©   (07.05.10 15:44) [58]


>
> Уподоблю оную конституции.


Не понял.


Leonid Troyanovsky   (2010-05-07 15:44:00) [5]


> Б   (07.05.10 14:50) [57]

> {$J+-}
> Оч. удобная штука, кстати. ;)

Уподоблю оную конституции.

--
Regards, LVT.


Б   (2010-05-07 14:50:00) [6]


> Sha ©   (07.05.10 14:38) [56]


Ну и что?
Массив используется однократно.
При этом не разносит код глоб. объявлениями - сгруппировывает.

P.S.
{$J+-}
Оч. удобная штука, кстати. ;)
Можно иногда сохранять прежние данные без лишних переменных.


Sha   (2010-05-07 14:38:00) [7]

В слове constи локальном расположении.
Это костыль для старых версий Delphi.


Б   (2010-05-07 14:29:00) [8]


> Sha ©   (07.05.10 13:59) [53]


В D7 есть  и ладно.

> и говорит правду, никого не обманывая.

В чём обман?


Омлет   (2010-05-07 14:19:00) [9]

Открываем glut.pas для OpenGL и видим, что там чайник прописан в виде массива координат:

 TeaData :
   Array[0..126, 0..2] of GLfloat =
   ( (   0.2,       0,     2.7),
     (   0.2,  -0.112,     2.7),
     ( 0.112,    -0.2,     2.7),
     (     0,    -0.2,     2.7),
     (1.3375,       0, 2.53125),
     (1.3375,  -0.749, 2.53125),
     ( 0.749, -1.3375, 2.53125),
     .....
     .....


Sha   (2010-05-07 13:59:00) [10]

> Б   (07.05.10 13:32) [51]
> Почему?

Потому, что не использует умирающие конструкции
и говорит правду, никого не обманывая.


Б   (2010-05-07 13:43:00) [11]


> Б   (07.05.10 13:28) [50]

> Да и ещё писать загрузчик.

И таскать лишний хлам.


Б   (2010-05-07 13:32:00) [12]


> Sha ©   (07.05.10 13:26) [49]
> > Б   (07.05.10 13:17) [46]
> > Какой способ удобнее?
>
> удобнее


Почему?


Б   (2010-05-07 13:28:00) [13]


> oldman ©   (05.05.10 12:53) [43]
> Ну лень ему потратить день на долбежку по клавушке...


> Lyonux ©   (05.05.10 13:00) [45]
> какой, простите, чудной автор) Надо ему секретаршу заводить, для
> объявления "стапиццот" переменных вручную)

А причём тут сложность в заполнении массива?
Я такого не говорил.

> brother ©   (05.05.10 12:54) [44]
> а придется, если только исходные данные уже не в файле ;)

А в файл, по-твоему мнению, не нужно заполнять перед этим? ;)
Да и ещё писать загрузчик.


Sha   (2010-05-07 13:26:00) [14]

> Б   (07.05.10 13:17) [46]
> Какой способ удобнее?

удобнее

var
  Arr: array [1..?] of LongWord =

и не надо лохматить бабушку


Б   (2010-05-07 13:23:00) [15]


> Amoeba_   (04.05.10 23:49) [38]
> код его заполнения в отдельный модуль


См. выше.
Мозолит? ;D


> Lyonux ©   (05.05.10 12:49) [42]
> И сделать на OnCreate процедурку:


Нафига?
Если можно в коде прописать.


Б   (2010-05-07 13:18:00) [16]

> Procedure XProc_2;

Не const, а var.


Б   (2010-05-07 13:17:00) [17]


> Германн ©   (05.05.10 02:01) [39]
>
> > Не правда ли лучше это сделать 1-2 строками, вылезающими
>
> > за поле видимости редактора кода, конечно?
>
> a[1]:=17;a[2]:=30;a[3]:=45; ...


Какой способ удобнее? ;D


Procedure XProc_1;
{$J+}
Const
 Arr: array [1..?] of LongWord = (X_CONST1, X_CONST2, X_CONST3, X_CONT4, X_CONT5,
 X_CONST6, X_CONST7, X_CONST8, X_CONT9, X_CONT10, ... // и т.д.
 )
{$J-}
begin
 Arr[32]:= 72;
End;

Procedure XProc_2;
Const
 Arr: array [1..?] of LongWord;
begin
 Arr[1]:= X_CONST1; Arr[2]:= X_CONST2; Arr[3]:= X_CONST3; Arr[4]:= X_CONT4; Arr[5] := X_CONT5;
 Arr[6]:= X_CONST6; Arr[7]:= X_CONST7; Arr[8]:= X_CONST8; Arr[9]:= X_CONT9; Arr[10]:= X_CONT10; //... и т.д.

 Arr[32]:= 72;
End;


> Можно и в одну строчку вместить раз тебя не пугает вылезание за "поле видимости редактора".

А с чего это должно пугать? ;)


Lyonux   (2010-05-05 13:00:00) [18]

какой, простите, чудной автор) Надо ему секретаршу заводить, для объявления "стапиццот" переменных вручную)


brother   (2010-05-05 12:54:00) [19]

> Ну лень ему потратить день на долбежку по клавушке...

а придется, если только исходные данные уже не в файле ;)


oldman   (2010-05-05 12:53:00) [20]


> Lyonux ©   (05.05.10 12:49) [42]


Чем формирование файла отличается от инициализации внутри кода, чего не хочет автор?
Ну лень ему потратить день на долбежку по клавушке...


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо