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

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

Форма не разворачивается на весь экран. [D6, 95/98]


Drowsy ©   (2011-06-10 13:06:00) 

При создании формы стиль fsNormal.
В обработчике onFormShow выполняется
WindowState := wsMaximized;
Форма разворачивается, но почему-то не во весь экран.


Drowsy   (2011-06-10 15:32:00) [1]

Павел, спасибо за помощь!


И. Павел   (2011-06-10 15:09:00) [2]

> В onCreate каждого потомка дублировать считывание и установку
> размеров?

Создайте два конструктора - один для непосредственного создания формы, а другой - для вызова из inherited. Во втором конструкторе не считывайте настройки.


И. Павел   (2011-06-10 15:06:00) [3]

> [9] Drowsy ©   (10.06.11 14:53)

Вот пример полноэкранной формы со спрятанной панелью задач (только не забудьте восстановить все при завершении работы программы).

procedure TForm1.FormCreate(Sender: TObject);
var
 HTaskbar: HWND;
 OldVal: LongInt;
begin
 try
   // Find handle of TASKBAR
   HTaskBar := FindWindow('Shell_TrayWnd', nil);
   // Turn SYSTEM KEYS off, Only Win 95/98/ME
   SystemParametersInfo(97, Word(True), @OldVal, 0);
   // Disable the taskbar
   EnableWindow(HTaskBar, False);
   // Hide the taskbar
   ShowWindow(HTaskbar, SW_HIDE);
 finally
   with Form1 do
   begin
     BorderStyle := bsNone;
     FormStyle   := fsStayOnTop;
     Left        := 0;
     Top         := 0;
     Height      := Screen.Height;
     Width       := Screen.Width;
   end;
 end
end;


Drowsy   (2011-06-10 14:53:00) [4]

TfmComBase = class(TForm)
...
TfmDescendant = class(TfmComBase)

Если делать в TfmComBase.onCreate, то надо в TfmDescendant.onCreate инициализировать название секции, а потом вызывать inherited.
А это ведь неправильно?!

В onCreate каждого потомка дублировать считывание и установку размеров?


clickmaker   (2011-06-10 14:33:00) [5]

> А где бы Вы сделали?

в OnCreate


Drowsy   (2011-06-10 14:32:00) [6]


> FormStyle := fsStayOnTop


Это ничего не меняет.


> а почему именно в onFormShow?
>


А где бы Вы сделали?

Эта форма - предок для других, размеры которых надо сохранять в соответствующих секциях ини-файла.
Название секции задаю в onCreate потомков, а считывание и установку размеров в предке.


И. Павел   (2011-06-10 13:36:00) [7]

> Форма разворачивается, но почему-то не во весь экран.

FormStyle := fsStayOnTop


И. Павел   (2011-06-10 13:34:00) [8]

Хотя нет, тут что-то другое: у меня и в OnShow форма максимизируется...


И. Павел   (2011-06-10 13:33:00) [9]

> [0] Drowsy ©   (10.06.11 13:06)

Разворачивайте форму в OnActivate


clickmaker   (2011-06-10 13:33:00) [10]

> нужно стиль формы считывать и устанавливать из TIniFile.

а почему именно в onFormShow?


Drowsy   (2011-06-10 13:31:00) [11]

если "сразу", то форма во весь экран.
мне нужно стиль формы считывать и устанавливать из TIniFile.


ixen   (2011-06-10 13:16:00) [12]

а если свойство формы сразу установить wsMaximized ?


Наверх

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