Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 064

/ вопрос решён /

Доброго времени суток, уважаемые эксперты!
Подскажите пожалуйста как правильно инициализировать массив компонентов TGroupBox?
я написал вот так, но увы это не работает...

 gb:array[0..1]of TGroupBox = (grpDescription, grp1);

disillusion Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: disillusion (статус: Посетитель)
Вопрос отправлен: 10 апреля 2012, 17:20
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: DNK

Здравствуйте, disillusion!
Инициализировать массивы указанным способом можно только через константы или константные выражения. А для объектов в паскале константа увы только одна -- nil.
Потому инициализировать конкретными значениями можно только в коде, например в обработчике событий OnCreate.

procedure TForm1.FormCreate(Sender: TObject);
begin
  gp[0] := grpDescription;
  gp[1] := grp1
end;
или так
procedure SetGp(Arg: array of TCheckBox);
var i: integer;
begin
  for i := 0 to Length(Arg) - 1 do
    gp[i] := Arg[i];
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetGp([CheckBox1, CheckBox2]);
end;

Ответ отправил: DNK (статус: Студент)
Время отправки: 10 апреля 2012, 21:19
Оценка за ответ: 5

Комментарий к оценке: Спасибо Вам за совет!
Все работает! ^^

Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 10 апреля 2012, 21:06; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 10 апреля 2012, 19:57 [#1]:

Чо компайлер говорит-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 10 апреля 2012, 19:59 [#2]:

А, ну да. Такие массивы можно ж только константами инициализировать. А переменными типа так:
gb[0]:= grpDescription;
gb[1]:= grp1;
Только зачем это надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
disillusion

disillusion (статус: Посетитель), 10 апреля 2012, 20:50 [#3]:

не хочет воспринимать следующий код:
const
  gb:array[0..1]of TGroupBox = (grpDescription, grp1);
пишет:
Build
  [Error] Unit1.pas(53): Undeclared identifier: 'grpDescription'
  [Error] Unit1.pas(53): Constant expression expected
min@y™

min@y™ (статус: Доктор наук), 10 апреля 2012, 21:06 [#4]:

Цитата (min@y™):

Такие массивы можно ж только константами инициализировать.

Цитата (disillusion):

Constant expression expected

Ну вот!
К тому же ещё

Цитата (disillusion):

Undeclared identifier: 'grpDescription'

Какая цель всего этого? Скажи, что тебе нужно-то.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

10 апреля 2012, 21:41: Статус вопроса изменён на решённый (изменил автор вопроса — disillusion)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:51
Выполнено за 0.03 сек.