Разместить форму на панели?
Модератор: Модераторы
Разместить форму на панели?
Приветствую уважаемых форумчан. У приложения - 2 формы, необходимо вторую форму разместить на компоненте TPanel первой. Каким образом я могу это сделать?
Пробовал указать в OnCreate второй формы - Form1.panel, пробовал создавать форму 2 из формы 1 указывая в качестве владельца необходимый компонент - все без толку. Вылетает сегфолт и все.
Пробовал указать в OnCreate второй формы - Form1.panel, пробовал создавать форму 2 из формы 1 указывая в качестве владельца необходимый компонент - все без толку. Вылетает сегфолт и все.
Попробовал у себя в проекте:
Даже двигается за капшн
Код: Выделить всё
var F: TfAbout;
begin
F:=TfAbout.Create(Panel8);
F.Parent:=Panel8;
F.Visible:=true;
end;
Даже двигается за капшн
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
можно TFrame использовать
Спасибо за ответы, выкрутился так:
Код: Выделить всё
procedure TDsgnForm.FormShow(Sender: TObject);
begin
self.Parent:=CompForm.Panel1;
end;
stikriz может я чет не понимаю, но у меня на данный момент, данный код вообще не приносит результата (формочки нет вообще). Хотя стандартное решение...
Когда мне нужно было вывести какую то форму в другую я перепробывал разное и пришел к выводу фреймам легче (в лазаре). А единственное что нормально работает когда на вторую форму добавляю панель и потом Form2.Panel2.Parent:=Panel1; и в Pane1.ChildSizing настроил. Только все эт кривовато выглядит...
Вин7,хп, лазарь 1.1 фпс 2.6
Когда мне нужно было вывести какую то форму в другую я перепробывал разное и пришел к выводу фреймам легче (в лазаре). А единственное что нормально работает когда на вторую форму добавляю панель и потом Form2.Panel2.Parent:=Panel1; и в Pane1.ChildSizing настроил. Только все эт кривовато выглядит...
Вин7,хп, лазарь 1.1 фпс 2.6
amateur писал(а):stikriz может я чет не понимаю
Visible:=true;
У меня этот код работает.
Ну у меня ещё заработал вот такой вариант:
глобальная переменная:
затем в OnCreate основной формы:
И все замечательно.
PS: Win 7, lazarus 9.30.4, fpc 2.6.0
глобальная переменная:
Код: Выделить всё
var
f: TDsgnForm;
затем в OnCreate основной формы:
Код: Выделить всё
f:=TDsgnForm.Create(self);
f.Parent:=CompForm.Panel1;
f.Show;
И все замечательно.
PS: Win 7, lazarus 9.30.4, fpc 2.6.0
Постивьте, на всякий случай Left:=0; Top:=0;Видимо, она далеко от видимой части панели. Ну, это мне мой локатор дальнего действия подсказывает.
Спасибо, так стало значительно лучше-)
Вот:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
а вместо MDI такое использовать можно? ^_^
В принципе, да. Окошко не выходит за рамки панели. Надо будет только распахивать и сворачивать правильно.
Brainenjii писал(а):а вместо MDI такое использовать можно? ^_^
ХМ. Теоретически можно (сейчас попробовал. по крайней мере винда). Только нужно кое какие действия самому реализовать.
з.ы. Как я сам раньше не додумался ...
