http://forum.delphimaster.net/cgi-bin/forum.pl?id=1581452413&n=10

Вспомогательные окна


Dimaxx ©   (11.02.20 23:20

Здраве буде, бояре!

Вопрос таков. Как в КОЛе сделать вспомогательные окна по типу дельфевого Object Inspector? В VCL никаких проблем, делаю тоже самое в КОЛ - окно создается (родитель главная форма), указываю координаты, все норм. При выводе основной формы вторичное окно выводится. Скрывается/выводится по show/hide, либо по Visible. И тут начинаются проблемы. Либо вторичное окно ведет себя как модальная форма - не дает ничего делать на главной форме, не дает закрыть главную форму, пока не закроешь вспомогательное окно. Либо все работает, пока мышой не активируешь вспомогательно окно - после этого ведет себе как уже сказано.


RusSun ©   (13.02.20 11:49[1]

Предположение конечно. Что если создавать данное окно не родитель главная форма.
А родитель аплет. Аплет тоже нужно создать. Возможно я не понял до конца вопроса=)
И делать hide, not close. И по необходимости снова показывать.
Хотя это всего лишь предположение. )


Dimaxx ©   (13.02.20 13:01[2]

Апплет, если нет на форме, создается по умолчанию. Потому как в inc-файле главной формы

Result.Form := NewForm( AParent, 'MainForm' );
Applet :=  Result.Form;


пробовал и аплет создавать, и nil вместо родителя. Пока не переключишься на вспомогательную форму, все норм работает - show/hide отрабатывает без проблем. После переключения на вспомогательную обратно на главную не переключиться. Посмотрел стили и доп. стили окна в VCL и КОЛ - различаются. Пробовал выставить стили/допстили у окна как в VCL. Не помогает. Видимо проблема где-то в КОЛ. С модальными окнами нет никаких проблем. А мне надо доп. окна, в которых будет инфа и которые можно показать/скрыть.


Dimaxx ©   (13.02.20 14:00[3]

Сейчас попробовал руками все создать, без МСК - все работает нормально, и с апплетом и с главной формой в качестве родителя. Что там МСК делает с формами - хз.


митя   (12.03.20 22:42[4]

В MCK -

на главную форму кинуть KOLApplet(mirror)

 begin
   NewFrm(Frm,Applet);
   Frm.form.Show;
  end;


http://forum.delphimaster.net/cgi-bin/forum.pl?id=1581452413&n=10