Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Полноэкранный режим в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.036 c
3-1079528649
incm
2004-03-17 16:04
2004.04.18
Как отследить изменение данных другой прогой


14-1079980602
Adder
2004-03-22 21:36
2004.04.18
Мдя... комментарий кулпрограммера для тестера...


3-1079952025
Maxuz
2004-03-22 13:40
2004.04.18
Grid и загрузка картинок из файла


1-1080648330
Я Ламер
2004-03-30 16:05
2004.04.18
OleVariant


6-1076925108
Anatoliy
2004-02-16 12:51
2004.04.18
netbeui





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский