Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизКак спрятать MDIChild Найти похожие ветки
← →
Alien_D (2004-12-17 10:56) [0]Народ, подскажите, как спрятать MDIChild...
Чтоб его небыло видно на главной форме...
Возможно вообще такое???
← →
Alien_D (2004-12-17 10:58) [1]судя повсему нет... (((
маздай...
← →
Суслик © (2004-12-17 11:01) [2]Я не пробовал именно это делать, но пробовал делать обратное - создавать mdi форму невидимой, потом показывать на экране.
Попробуй FormStyle сделать fsnormal, затем hide. Когда нужно показать, то делай обратное действие: formstyle = fsmdichild.
← →
Суслик © (2004-12-17 11:01) [3]Не уверен, что получится, но "папитка не питка" (с)
← →
akhmadey (2004-12-17 11:03) [4]Да, возможно. чтобы при загрузке дочерняя форма не появлялась на главной, нужно в опциях проекта убрать эту форму из списка автоматически создаваемых. Project-Options вкладка Forms убираем из списка AuoCreate Forms в список Avalible Forms, а в событии OnClose, если не ошибаюсь, дочерней формы пишем:
Action:=caFree;
← →
ЮЮ © (2004-12-17 11:11) [5]>Да, возможно. чтобы при загрузке дочерняя форма не появлялась на главной, нужно в опциях проекта убрать эту форму из списка автоматически создаваемых.
Она там в принципе не может оказаться (при правильном подходе, т.к. не должно существовать глобальной переменной для экземпляра формы, как в случае с обычной формой)
Ну и вопрос к автору: а зачем такая форма нужна (невидимая пользоватолю) ?
← →
Суслик © (2004-12-17 11:12) [6]
> Ну и вопрос к автору: а зачем такая форма нужна (невидимая
> пользоватолю) ?
я не автор, но вопрос полагаю вызван тем, чтобы можно было прятать mdi формы, а потом показывать, а потом опять пратять.
---------
Автору.
Я проверил, что говорил - вроде работает.
← →
Alien_D (2004-12-17 11:36) [7]
> akhmadey (17.12.04 11:03) [4]
> Да, возможно. чтобы при загрузке дочерняя форма не появлялась
> на главной, нужно в опциях проекта убрать эту форму из списка
> автоматически создаваемых. Project-Options вкладка Forms
> убираем из списка AuoCreate Forms в список Avalible Forms,
> а в событии OnClose, если не ошибаюсь, дочерней формы пишем:
> Action:=caFree;
тада она просто прибьется, а мне нужно, чтоб просто спяталась, на время...
суть - не создавать ее заново
← →
Alien_D (2004-12-17 14:18) [8]
> Суслик © (17.12.04 11:01) [3]
> Не уверен, что получится, но "папитка не питка" (с)
Получилось... все... пасиба, друк...
← →
TUser © (2004-12-17 14:44) [9]visible:=false
← →
Суслик © (2004-12-17 14:46) [10]
> [9] TUser © (17.12.04 14:44)
дла mdi?
а ты попробуй...
← →
TUser © (2004-12-17 14:51) [11]Ну пусть она не будет mdi
WindowState:=wsMinimized;
formstyle:=fsNormal;
hide
← →
Jann © (2004-12-17 14:58) [12]>Alien_D (17.12.04 14:18) [8]
> Суслик © (17.12.04 11:01) [3]
> Не уверен, что получится, но "папитка не питка" (с)
>Получилось... все... пасиба, друк...
а как получилось?
я пишу в обработчике onclick
Form2.formstyle := fsmdichild;
Form2.Visible := true;
а форма 2 не открывается
← →
Суслик © (2004-12-17 15:08) [13]
> [12] Jann © (17.12.04 14:58)
должна показываться
я проверял...
Что-то у тебя не так.
← →
Jann © (2004-12-17 15:40) [14]изначально в форме 2 formstyle равен fsNormal, свойство visible равно false. в основной форме 1, есть кнопка у которой в обработчике click записано
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
Form2.formstyle := fsmdichild;
Form2.Visible := true;
end;
в итоге форма 2 не появляется, а только одна ругань
"Cannot create form. MDI forms are currently active."
← →
TUser © (2004-12-17 17:48) [15]
> Jann © (17.12.04 15:40) [14]
Вот эти две строчки переставь.
> Form2.formstyle := fsmdichild;
> Form2.Visible := true;
← →
Суслик © (2004-12-17 17:49) [16]
> Вот эти две строчки переставь.
не в этом дело, если установить fmmdichild, то окно покажется автоматически
← →
asvt (2004-12-17 19:12) [17]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)//MDI- форма
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
// Если не создана то создается
if not Assigned(Form2) then Form2:= TForm2.Create(Application);
Form2.FormStyle:=fsMDIChild;
Show;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption:= "Show";
end;
end.
___________________________________________________________
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm2 = class(TForm)// child forma
Button1: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:= caFree;
Form2:= nil;// не забудь занилить
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
FormStyle:=fsNormal;
Hide;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
Button1.Caption:="Hide";
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c