Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

Как спрятать 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.072 c
14-1103161380
avk02
2004-12-16 04:43
2005.01.02
Для FAQ (Питеру?). Пример, как написать прокси:.


14-1101898920
olookin
2004-12-01 14:02
2005.01.02
Прогнозы на 6-й тур Лиги Чемпионов


1-1103447159
sten
2004-12-19 12:05
2005.01.02
как убрать контекстное меню combobox a


1-1103454459
Logun
2004-12-19 14:07
2005.01.02
Воспроизведение Аудио CD


1-1102622615
serko
2004-12-09 23:03
2005.01.02
Черчение