Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изменение FormStyle при создании формы [D7]


sD ©   (2008-09-02 11:02:00) 

Здравствуйте! В моем приложение несколько форм, формы создаются при вызове. В некоторых случаях стиль форму необходим fsMDIChild, в других  форма должна быть модальной (а значит FormStyle= fsNormal). Изменять стиль формы во время создание не получается. Как быть?


Юрий Зотов   (2008-09-02 13:54:00) [1]


type
 TFormKind = (fkUsual, fkModal, fkChild);

function CreateAndShowAboutForm(Owner: TComponent; FormKind: TFormKind): TAbout;
begin
 Result := TAbout.Create(Owner);
 try
   case FormKind of
     fkUsual:
       Result.Show;
     fkModal:
       Result.ShowModal;
     else
       Result.FormStyle := fsMDIChild
   end
 except
   Result.Free;
   raise
 end
end;


clickmaker   (2008-09-02 12:29:00) [2]

> как это где, переменная About сама должна понять... логично
> же...

а в Д2009 не встроили подобную фичу?


{RASkov}   (2008-09-02 12:28:00) [3]

> [2] sD ©   (02.09.08 12:17)

Знаешь анекдот про фанарь и алкаша, который ищет чего-то там где светлее. Так вот и ты:
Создал в никуда форму

> TAbout.Create(self);

А затем пытаешься работать с подходящей, но не инициализированной переменной About....
:о)


Palladin   (2008-09-02 12:25:00) [4]

как это где, переменная About сама должна понять... логично же... ^)


clickmaker   (2008-09-02 12:21:00) [5]

> TAbout.Create(self);

а где присвоение About?


sD   (2008-09-02 12:17:00) [6]

(при установке FormStyle:=fsMDIChild; автоматом устанавливается VertScrollBar-Visibale=true Visibale=true)

до создания:
FormStyle= fsNormal
VertScrollBar-Visibale=false
Visibale=false

1Вариант(ошибок нет,форма не показывается)

TAbout.Create(self);
About.FormStyle:=fsMDIChild;


2Вариант (ошибка, не может прочитать по некоторому  адресу)

TAbout.Create(self);
About.VertScrollBar.Visible:=true;
About.FormStyle:=fsMDIChild;
About.Visible:=true;


Юрий Зотов   (2008-09-02 11:12:00) [7]

В design-time проставьте fsNormal и создавайте форму невидимой, а после ее создания ставьте fsMDChild (если надо).


Наверх

Титульная страница Поиск, карта сайта Написать письмо