![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
по поводу control ов [D6, Win2k]
Palladin © (2003-01-02 13:19:00)Такая ситуация
в dll у меня создается TEdit
MyEdit:=TEdit.Create(nil);
MyEdit.ParentWindow:=p_Owner.Handle;
p_Owner в главной программе (TScrollBox)
dll динамическая
Все нормально отрабатывает. Только маленькая трабла.
при таком способе создания созданый Edit не попадает
в список Conrtols у владельца.
а мне хотелось бы что бы все добавленые туда контролы выстраивались сверху вниз. То есть нужен простейший доступ хотя бы к полю top у всех подконтролов для ScrollBox"а.
Как мне его получить?
Или как правильно прицепить контрол чтобы он появлялся в списке Conrtols?
asmith (2003-01-02 15:19:00) [1]Это не поможет. Все равно в нужные моменты код VCL спросит парента вызовом GetParentForm (см. Forms.pas), там стоит "if Control is TCustomForm". Но TCustomForm в апликации и TCustomForm библиотеке будут совершенно разными типами, так что контрол, созданный в бибилиотеке не будет принадлежать форме из головной программы.
Song (2003-01-02 14:34:00) [2]MyEdit.Parent:=p_Owner;
asmith (2003-01-02 14:29:00) [3]Выход один - собрать апликацию и библиотеку с пакетами времени выполнения. Иначе - куча проблем, в том числе и замеченная тобой. Другие - невозможность обходить все контролы по Tab и Shift-TabЮ неправильная обработка фокуса и пр. Об этом недавно было много дискуссий в этом форуме.
Palladin (2003-01-02 13:49:00) [4]если я создаю как
MyEdit:=TEdit.CreateParented(p_Owner.Handle);
выдается сообщение об ошибке. exception в общем.
а
MyEdit:=TEdit.Create(p_Owner)
не имеет смысла так как я MyEdit всеравно в ручную удаляю
чувствую здесь пахнет winapi...
Song (2003-01-02 13:37:00) [5]А Parent задать забыл?