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

Вниз

Полноэкранный режим в Delphi?   Найти похожие ветки 

 
***ghost***   (2004-03-26 16:38) [0]

Люди подскажите, как сделать так, чтобы форма была на весь экран, т.е. полноэкранный режим?


 
cosinus ©   (2004-03-26 16:48) [1]

Например Form1.align:=alClient :)


 
TUser ©   (2004-03-26 16:48) [2]

Для этого нужно использовать следующие свойства класса TForm:
TForm.Width
TForm.Height
TForm.FormStyle
TForm.FAQ


 
TUser ©   (2004-03-26 16:55) [3]

[1] - будет виден панель управления. Для создания скринсейверов пользуются [2]. Ну + конечно Top, Left:=0;

2 ***ghost***
Вау. Ветку из потрепацы перенесли ...


 
Anatoly Podgoretsky ©   (2004-03-26 19:33) [4]

bsNone + wsMaximized


 
TButton ©   (2004-03-26 19:36) [5]

+FormStyle:=fsStayOnTop


 
***ghost***   (2004-03-29 18:32) [6]


> TButton


> Anatoly Podgoretsky


> cosinus

Нет, нет, нет! пуск всё равно видно...


 
TButton ©   (2004-03-29 19:44) [7]

у меня не видно. приведите код.


 
***ghost***   (2004-03-30 22:17) [8]

form1.align:=alclient;
form1.windowstate:=wsMaximized;
Form1.formstyle:=fsStayOnTop;

Свойства формы, которые я поставил, а пуск всё равно видно...


 
dmk ©   (2004-03-30 22:23) [9]

//Убираем панель задач
ShowWindow(FindWindow("Shell_TrayWnd", nil), SW_HIDE);


 
Piter ©   (2004-03-30 23:19) [10]

Читаем про DirectX и переводим приложение в полноэкранный режим... только так

P.S. Подумал, подумал... надо смайлик поставить :)


 
Игорь Шевченко ©   (2004-03-31 00:19) [11]

{
  Модуль: FullScreenUnit

  Описание: Поддержка разворота клиентской части окна во весь экран.
            Источник: статья Пола Дилация в MSDN Magazine № 6(12) 2002 г.

  Особенности использования: Окно, клиентская часть которого должна быть
                             развернута во весь экран, должно обрабатывать
                             сообщение WM_GETMINMAXINFO и устанавливать
                             свой максимальный размер больше, чем размер
                             экрана.

  Авторы: Пол Дилация (С++, MFC), Игорь Шевченко (Delphi)

  Дата создания: 09.01.2003

  История изменений:
}
unit FullScreenUnit;

interface
uses
 Windows, Controls;

type
 TFullScreenHandler = class
 private
   FRestoreRect : TRect;
   function GetInFullScreenMode : Boolean;
   function GetMaxSize : SIZE;
 public
   { Развернуть клиентскую область окна во весь экран }
   procedure Maximize (AWinControl : TWinControl);
   { Восстановить клиентскую область окна }
   procedure Restore (AWinControl : TWinControl);
   { Развернута ли клиентская область окна во весь экран }
   property InFullScreenMode : Boolean read GetInFullScreenMode;
   { Максимально возможный размер окна, такой, чтобы клиентская область
     уместилась во весь экран. }
   property MaxSize : SIZE read GetMaxSize;
 end;

var
 FullScreenHandler : TFullScreenHandler;

implementation
uses
 Forms; { Для Screen }

function TFullScreenHandler.GetInFullScreenMode : Boolean;
begin
 Result := not IsRectEmpty(FRestoreRect);
end;

function TFullScreenHandler.GetMaxSize : SIZE;
var
 ARect : TRect;
begin
{
 При большом желании обращение к свойствам переменной Screen можно заменить
 на вызовы функции GetSystemMetrics(SM_CXSCREEN) и
 GetSystemMetrics(SM_CYSCREEN).
}
 SetRect(ARect, 0, 0, Screen.Width, Screen.Height);
 InflateRect(ARect, 10, 50); //Любые числа, лишь бы превышали размер
                             //неклиентской области окон
 Result.cx := ARect.Right - ARect.Left;
 Result.cy := ARect.Bottom - ARect.Top;
end;

procedure TFullScreenHandler.Maximize (AWinControl : TWinControl);
var
 RcClient, RcNewWindow : TRect;
begin
 RcClient := AWinControl.ClientRect;
{ Перевод координат клиентской области окна в экранные }
 MapWindowPoints(AWinControl.Handle, HWND_DESKTOP, RcClient, 2);
{ Сохраним размеры окна для восстановления }
 GetWindowRect(AWinControl.Handle, FRestoreRect);
{
 При большом желании обращение к свойствам переменной Screen можно заменить
 на вызовы функции GetSystemMetrics(SM_CXSCREEN) и
 GetSystemMetrics(SM_CYSCREEN).
}
 SetRect(RcNewWindow, 0, 0, Screen.Width, Screen.Height);
 with RcNewWindow do begin
   Inc(Left, FRestoreRect.Left - RcClient.Left);
   Inc(Top, FRestoreRect.Top - RcClient.Top);
   Inc(Right, FRestoreRect.Right - RcClient.Right);
   Inc(Bottom, FRestoreRect.Bottom - RcClient.Bottom);
   SetWindowPos (AWinControl.Handle, 0, Left, Top, Right - Left, Bottom - Top,
                 SWP_NOZORDER);
 end;
end;

procedure TFullScreenHandler.Restore (AWinControl : TWinControl);
begin
 with FRestoreRect do
   SetWindowPos (AWinControl.Handle, 0, Left, Top, Right - Left, Bottom - Top,
                 SWP_NOZORDER);
 SetRectEmpty(FRestoreRect);
end;

initialization
 FullScreenHandler := TFullScreenHandler.Create();
finalization
 FullScreenHandler.Free();
end.

unit main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Menus, ExtCtrls;

type
 TfMain = class(TForm)
   MainMenu: TMainMenu;
   View1: TMenuItem;
   miFullScreen: TMenuItem;
   Image: TImage;
   miHelp: TMenuItem;
   About: TMenuItem;
   procedure miFullScreenClick(Sender: TObject);
   procedure ImageDblClick(Sender: TObject);
   procedure AboutClick(Sender: TObject);
 private
   procedure WMGetMinMaxInfo(var Message : TWMGetMinMaxInfo);
                                                    message WM_GETMINMAXINFO;
 end;

var
 fMain: TfMain;

implementation
uses
 FullScreenUnit, About;

{$R *.dfm}

procedure TfMain.miFullScreenClick(Sender: TObject);
begin
 if NOT FullScreenHandler.InFullScreenMode then
   FullScreenHandler.Maximize(Self)
 else
   FullScreenHandler.Restore(Self);
 miFullScreen.Checked := FullScreenHandler.InFullScreenMode;
end;

procedure TfMain.WMGetMinMaxInfo(var Message : TWMGetMinMaxInfo);
var
 Sz : SIZE;
begin
 Sz := FullScreenHandler.MaxSize;
 with Message.MinMaxInfo^ do begin
   ptMaxSize := TPoint(Sz);
   ptMaxTrackSize := TPoint(Sz);
 end;
end;

procedure TfMain.ImageDblClick(Sender: TObject);
begin
 miFullScreenClick(miFullScreen);
end;

procedure TfMain.AboutClick(Sender: TObject);
begin
 with TfAbout.Create(Application) do
   try
     ShowModal();
   finally
     Free();
   end;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
1-1080340606
MAXH0
2004-03-27 01:36
2004.04.18
Как сделать форму, чтоб она была поверх всех окон?


1-1080665105
ботинок
2004-03-30 20:45
2004.04.18
как в tabcontrole определить по какому из tabs-ов кликнули мышью?


9-1061582462
Sden
2003-08-23 00:01
2004.04.18
Проблема в DelphiX c TDirectDrawSurface


1-1080718517
}|{yk
2004-03-31 11:35
2004.04.18
Скопировать диапазон значений в Excel


1-1080411078
ikivio
2004-03-27 21:11
2004.04.18
Загрязнение памяти GetMem and FreeMem