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

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

Как получить список контролов [D7, Win2k]


Страницы:   1 2

PavelP ©   (2005-05-23 15:52:00) 

Я пмшу компонент потомок TPanel.Каким образом мне получить список контролов, которые лежат на моём компоненте, как толь-ко они будут загружены из DFM файла.


PavelP   (2005-05-23 17:10:00) [1]

Всем спасибо! Действительно ControlCount.


PavelP   (2005-05-23 17:08:00) [2]

Я компилю MYPanel.dpk . Mypanel.bpl пересобирается. По крайней мере дата у файла изменяется.


Reindeer Moss Eater   (2005-05-23 17:08:00) [3]

ComponentCount - это мой копи-пасте.
Конечно же Controls и СontrolCount.


Юрий Зотов   (2005-05-23 17:04:00) [4]

Э-э-э... уважаемые участники, а при чем же тут ComponentCount?

Все компоненты, положенные в design-time имеют владельцем форму , даже если их и клали на панели или еще куда. Поэтому ComponentCount для панели будет равен нулю (в данном случае он равен 2 лишь потому, что два компонента создаются кодом конструктора и имеют владельцем панель - cм. [3]).

Правильные ответы - [2] и [8].


Reindeer Moss Eater   (2005-05-23 17:03:00) [5]

Если в палитре, значит она в каком-то dpk.
И соответствующий ему bpl не обязательно пересобирается при изменении кода панели.
То есть пишется один код, а реально выполняется другой.


PavelP   (2005-05-23 17:00:00) [6]

Вообще-то панель уже в палитре. А это критично?


Reindeer Moss Eater   (2005-05-23 16:54:00) [7]

Ну и еще один вопрос.
Сам экземпляр панели создается тоже вызовом конструктора в раентайме?


Reindeer Moss Eater   (2005-05-23 16:51:00) [8]

Так не бывает.

Правдоподобное объяснение - издержки тестирования недописанного компонента, который уже зарегистрирован в палитре.


PavelP   (2005-05-23 16:48:00) [9]

Билдел. Не вызываю. При помощи отладчика вижу, что создаётся столько кнопок, сколько надо. А процедуре Loaded ComponentCount
:= 2 :(


Reindeer Moss Eater   (2005-05-23 16:46:00) [10]

[14] [11]


PavelP   (2005-05-23 16:45:00) [11]

2


Reindeer Moss Eater   (2005-05-23 16:45:00) [12]

Да. Кстати.
Ты не сам ли вызываешь loaded?
Если сам - то ты не прав очень.


Reindeer Moss Eater   (2005-05-23 16:43:00) [13]

procedure TMyPanel.Loaded;
begin
inherited Loaded;
FCount := ComponentCount;
ShowMessage(IntToStr(ComponentCount));
end;


PavelP   (2005-05-23 16:40:00) [14]

TMyPanel = class(Tpanel)
private
 FScroolBar: TScrollBar;
  FStatusBar: TStatusBar;
 FCount: Integer;
protected
 procedure Loaded; override;
....


Reindeer Moss Eater   (2005-05-23 16:39:00) [15]

Либо просто собрать все заново c build all


Reindeer Moss Eater   (2005-05-23 16:37:00) [16]

Он у тебя перекрывает наследуемый метод loaded.


PavelP   (2005-05-23 16:35:00) [17]

procedure TMyPanel.Loaded;
begin
 inherited Loaded;
 FCount := ComponentCount;
end;
Положил на панель 4 кнопки. FCount := 2 :(


Reindeer Moss Eater   (2005-05-23 16:30:00) [18]

В методе Loaded


PavelP   (2005-05-23 16:29:00) [19]

Когда ?


Reindeer Moss Eater   (2005-05-23 16:27:00) [20]

Спроси лучше КОГДАполучить список.
Потому что как получитьсписок тебе уже ответили.


Страницы:   1 2

Наверх

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