![]() |
|
|
|
|
#1
|
||||
|
||||
|
Доброго времени суток.
Работаю с MDI формами. подскажите пожалуйста как сделать так чтобы если дочернее окно уже создано то при нажатии на кнопку открывающее это окно оно не дублировалось а становилось активным, если не создано, то создалось. Заранее спасибо! |
|
#2
|
|||
|
|||
|
Вот функция, которое ищет форму с заголовком, можно и по другим признакам искать.
Код:
function TDM.FindForm(const aCaption: Integer): TForm;
var
i:integer;
begin
with Application.MainForm do
for i:=0 to MDIChildCount-1 do
if MDIChildren[i].Caption = aCaption then
begin
Result:=MDIChildren[i];
exit;
end;
Result:=nil;
end;Код:
...
var
C:TForm
...
C:=DM.FindForm("Пользователи");
if C <> nil then C.BringToFront
else Application.CreateForm(TUsersForm, UsersForm);
...Последний раз редактировалось Asinkrit, 29.04.2010 в 14:46. |
|
#3
|
||||
|
||||
|
Очень много ошибок((
Большинство так и не исправил.. |
|
#4
|
||||
|
||||
|
на сколько я пол BringToFront это активация формы, у меня выкидывает с ошибкой
|
|
#5
|
|||
|
|||
|
Это рабочий код, из проекта выдернул, что у тебя за ошибки?
|
|
#6
|
||||
|
||||
|
да я в принципе уже через свою функцию блокирую двойное открытие формы, осталось разобраться как сделать ее активной при повторном обращении, буду благодарен если подскажете
![]() |