Вниз
Скачать: CL | DM;

по поводу control ов   Найти похожие ветки 

← →
Palladin ©   (2003-01-02 13:19) [0]

Такая ситуация
в dll у меня создается TEdit

MyEdit:=TEdit.Create(nil);
MyEdit.ParentWindow:=p_Owner.Handle;

p_Owner в главной программе (TScrollBox)
dll динамическая
Все нормально отрабатывает. Только маленькая трабла.
при таком способе создания созданый Edit не попадает
в список Conrtols у владельца.
а мне хотелось бы что бы все добавленые туда контролы выстраивались сверху вниз. То есть нужен простейший доступ хотя бы к полю top у всех подконтролов для ScrollBox"а.

Как мне его получить?
Или как правильно прицепить контрол чтобы он появлялся в списке Conrtols?


← →
Song ©   (2003-01-02 13:37) [1]

А Parent задать забыл?


← →
Palladin ©   (2003-01-02 13:49) [2]

если я создаю как

MyEdit:=TEdit.CreateParented(p_Owner.Handle);

выдается сообщение об ошибке. exception в общем.
а
MyEdit:=TEdit.Create(p_Owner)

не имеет смысла так как я MyEdit всеравно в ручную удаляю

чувствую здесь пахнет winapi...


← →
asmith   (2003-01-02 14:29) [3]

Выход один - собрать апликацию и библиотеку с пакетами времени выполнения. Иначе - куча проблем, в том числе и замеченная тобой. Другие - невозможность обходить все контролы по Tab и Shift-TabЮ неправильная обработка фокуса и пр. Об этом недавно было много дискуссий в этом форуме.


← →
Song ©   (2003-01-02 14:34) [4]

MyEdit.Parent:=p_Owner;


← →
asmith   (2003-01-02 15:19) [5]

Это не поможет. Все равно в нужные моменты код VCL спросит парента вызовом GetParentForm (см. Forms.pas), там стоит "if Control is TCustomForm". Но TCustomForm в апликации и TCustomForm библиотеке будут совершенно разными типами, так что контрол, созданный в бибилиотеке не будет принадлежать форме из головной программы.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
3-36919
Вованчик
2002-12-17 15:49
2003.01.13
Ошибочка


1-37203
Спрашивающий
2002-12-30 10:11
2003.01.13
Мастера подскажите как програмно применить к листу Excel


7-37418
SSA
2002-10-31 12:46
2003.01.13
Работа с COM портом


6-37264
OlegL
2002-11-09 11:44
2003.01.13
Как заморозить прогу до приёма ответа?


14-37335
__Avenger__
2002-12-22 06:41
2003.01.13
Статья




   Наверх