Вот функция, которое ищет форму с заголовком, можно и по другим признакам искать.
Код:
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);
...