** icewind |
Отправлено: 04.08.2004, 21:25 |
|
Не зарегистрирован
|
На форме 30 Label'ов. В обработчике события OnCreate формы создается массив из указателей на эти Label'ы. Вопрос: как получить доступ к этому массиву из других функций этого же файла? |
|
olegenty |
Отправлено: 05.08.2004, 06:52 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
объявить массив, как член класса-формы, и не париться.
|
|
Guest |
Отправлено: 05.08.2004, 09:45 |
|
Не зарегистрирован
|
ОК, но как это сделать? В .h — файл записать не получается(возможность использования с компонентов появляется только после создания формы) |
|
Guest |
Отправлено: 05.08.2004, 10:33 |
|
Не зарегистрирован
|
А почему вдруг h файл стал недоступен?
Вынесите массив из обработчика OnCreate в секцию private класса формы. |
|
olegenty |
Отправлено: 05.08.2004, 11:17 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
это даже не мат. часть, это азы.
ты разницу между объявлением и реализацией, а так же компиляцией и выполнением представляешь?
объяви массив, как член класса, заполни его в ОnCreate, и пользуйся откуда угодно и сколько угодно.
|
|
Guest |
Отправлено: 06.08.2004, 10:08 |
|
Не зарегистрирован
|
объясняю, что требуется...
При объявлении массива можно его заполнять, например так:
int t[2][5]={
{1,2,3,4,5},
{1,5,7,9,0},
};
для меня это очень удобно, т.к. в программе 4 массива [5][6].
однако инициализировать массив таким способом у меня не получается.
Если массив объявить глобальным, то в событии OnCreate приходится инициализировать так:
t[0][0]=1;
t[0][1]=2;...
что работает, но при наличии 4 массивов довольно громоздко и не красиво.
Вот я и спрашиваю, как в событии OnCreate объявить массив чтобы к нему млжно было обратиться из других функций? |
|
Shura |
Отправлено: 06.08.2004, 10:26 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 45
|
можно попробовать static, но в твоем случае это будет просто извращение. Делай так как ты написал. Хоть это и не красиво, но работает |
|
Guest |
Отправлено: 06.08.2004, 11:42 |
|
Не зарегистрирован
|
Можно извратиться так (стиль C)
В классе формы int* arr_poi; arr_poi_1size
В OnCreate
int t[2][5]={
{1,2,3,4,5},
{1,5,7,9,0},
};
arr_poi_1size = 5;
arr_poi = &t;
и доступайтесь через *(arr_poi+1st*arr_poi_1size+2st)
Но вам лучше пресмотреть весь алгоритм и сделать что то другое. |
|