Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Внизне создавать дочернюю форму Найти похожие ветки
← →
_Gras_ (2006-09-04 18:08) [0]Привет всем!!! Такой вопрос: фот создал MDI-форму, создал дочернюю, убрал из списка автосоздания. При нажатии на кнопку выполняется код Form:=TForm.Create(self);
И каждый раз создается новое дочернее окно, а как сделать так, чтобы при нажатии на кнопку дочернее окно создавалось только 1 раз и если доченряя форма создана, то при последубщем нажатии на кнопку ничего не создавалось?
← →
Ega23 © (2006-09-04 18:12) [1]if Form<>nil then ......
Только на удаление не забыть
Form.Free;
Form:=nil;
← →
Рустем © (2006-09-04 18:13) [2]Добавь в свое приложение следующую функцию:
function TMDIForm.OpenForm(FormClass: TFormClass): Boolean;
begin
Result:=True;
Screen.Cursor := crHourGlass;
try
FindShowForm(FormClass, "");
finally
Screen.Cursor := crDefault;
end;
end;
и дочернюю форму открывай так:
OpenForm(TChildForm);
← →
Loginov Dmitry © (2006-09-04 18:44) [3]
procedure TForm1.Button6Click(Sender: TObject);
begin
if Form2 = nil then
Form2 := TForm2.Create(Application);
end;
← →
Рустем © (2006-09-04 20:34) [4]Прошу прощения, в [2] функция должна выглядеть так:
function TMDIForm.OpenForm(FormClass: TFormClass): Boolean;
var
MyForm: TForm;
i: Integer;
begin
Result:=True;
MyForm := nil;
Screen.Cursor := crHourGlass;
try
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i] is FormClass then
begin
MyForm := Screen.Forms[i];
Break;
end;
end;
if MyForm = nil then Application.CreateForm(FormClass, MyForm);
with MyForm do
begin
if WindowState = wsMinimized then WindowState := wsNormal;
Show;
end;
finally
Screen.Cursor := crDefault;
end;
end;
Данный метод имеет свой плюс при использовании нескольких дочерних форм.
P.S. Повзаимствовано из библиотеки RxLib...
← →
Loginov Dmitry © (2006-09-04 21:33) [5]> if Screen.Forms[i] is FormClass then
Не нравится мне эта строка. Лучше ужif Screen.Forms[i].ClassType = FormClass.ClassType then
имхо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c