|
Вопрос # 6 064/ вопрос решён / |
|
Доброго времени суток, уважаемые эксперты!
Подскажите пожалуйста как правильно инициализировать массив компонентов TGroupBox?
я написал вот так, но увы это не работает...
gb:array[0..1]of TGroupBox = (grpDescription, grp1);
 |
Вопрос задал: 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™ (статус: Доктор наук), 10 апреля 2012, 19:57 [#1]:
Чо компайлер говорит-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 10 апреля 2012, 19:59 [#2]:
А, ну да. Такие массивы можно ж только константами инициализировать. А переменными типа так:
gb[0]:= grpDescription;
gb[1]:= grp1;
Только зачем это надо?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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™ (статус: Доктор наук), 10 апреля 2012, 21:06 [#4]:
Цитата (min@y™):
Такие массивы можно ж только константами инициализировать.
Цитата (disillusion):
Constant expression expected
Ну вот!
К тому же ещё
Цитата (disillusion):
Undeclared identifier: 'grpDescription'
Какая цель всего этого? Скажи, что тебе нужно-то.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
10 апреля 2012, 21:41: Статус вопроса изменён на решённый (изменил автор вопроса — disillusion)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|