Як перевірити, чи створена форма

Як перевірити, чи створена форма

Господа програмісти! Підкажіть.
Є MDI додаток. При натисканні на кнопку створюється форма з DBGrid. Викликається метод Show. Як зробити, щоб при повторному натисканні форма не створювалася ще раз, а просто показувалася. Тобто як перевірити, чи створена MDIChild форма.

if MDIChild1 <> nil then.

або заздрості прапор

за яким небудь ознакою форми Caption наприклад.
Form1.MDIChildCount
Form1.MDIChildren

З MDI будь уважним: прога точно не знає що з чілдом (є він чи ні) поетому найкраще робити так:
при "натисненні на кнопку":
if FrmTTN = nil then FrmTTN: = TFrmTTN.Create (self);
FrmTTN.WindowState: = wsMaximized;
FrmTTN.Show;

procedure TFrmMDIChild.FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action: = CaFree;
end;

procedure TFrmTTN.FormDestroy (Sender: TObject);
begin
FrmMDIChild: = nil;
end;

Я довго шукав свого часу рішення цього питання і ось до чого прийшов

function ExistsForm (S: String): Boolean;
var i: integer;
begin
result: = False;
for i: = 0 to screen.FormCount-1 do
if uppercase (screen.Forms [i] .name) = uppercase (s) then result: = True;
end;

параметр - ім'я форми. Може і не шедевр, але працює безвідмовно.

Все це працює (і рішення Sergey13, і Fool). Тільки от якщо форму мінімізувати, то вона знову креатив. Хоча варто в OnClose Action: = caFree? Виходить дві створені форми.

Вибачте панове. Все запрацювало. Велике дякую.

Схожі статті