Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

InsertComponent   Найти похожие ветки 

 
operator   (2003-11-02 19:13) [0]

Доброго времени суток. Вопрос не сложный. Я думаю, что в приведенном коде все нормально. Однако сомнение есть - уничтожит ли форма контролы в деструкторе? Прошу высказать своё булевское мнение.

with TForm.Create( Self ) do
try
InsertComponent( TListBox.Create( nil ) );
with TListBox( Components[0] ) do
begin
Parent := TWinControl( Owner ); //здесь не ругается, все нормально дб
OnDblClick := DialogListBoxDblClick; //там TForm(TWinControl(Sender).Owner).ModalResult := True
//позиционирование несущественно
end;
InsertComponent( TButton.Create( nil ) );
with TButton( Components[1] ) do
begin
ModalResult := mrOk;
Parent := TWinControl( Owner );
end;
if ShowModal = mrOk then //...
finally
Free;
end;


 
Ihor Osov'yak ©   (2003-11-03 01:43) [1]

Булевское мнение - да.

ЗЫ. Но вот использование конструкций вида
with TButton( Components[1] ) do
имхо не есть очень хорошо - можно получить проблемы при изменении сходного кода.. Я бы ввел вспомагательную переменную..


 
Palladin ©   (2003-11-03 02:04) [2]

собственно по опасному пути идете, товарищь...
проще действительно создать временную переменную TComponent и пользоватся ей во избежании дальнейших проблем...

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


 
Германн ©   (2003-11-03 02:44) [3]

А как хорошо все начиналось - "Вызываем в Москву" - {with TForm.Create( Self ) do}, и как плохо окончилось - "художественная самодеятельность"
{InsertComponent( TListBox.Create( nil ) );
with TListBox( Components[0] ) do}


 
Igorek ©   (2003-11-03 10:21) [4]

Вместо

> InsertComponent( TButton.Create( nil ) );

лучше писать TButton.Create(Form1)



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.069 c
1-41420
Jack
2003-10-29 15:45
2003.11.13
Перекомпиляция system.pas


3-41003
Алексей Петухов
2003-10-16 07:22
2003.11.13
Directory is busy


1-41606
Bonni
2003-10-26 21:44
2003.11.13
дочерные окна


1-41603
Miha
2003-10-26 19:34
2003.11.13
Резидентная программа


8-41746
shark
2003-07-12 16:30
2003.11.13
Видео из *.bmp