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

Вниз

Окно во весь экран   Найти похожие ветки 

 
tort_S:)   (2006-02-22 21:11) [0]

Привет! Как можно сделать окно во воесь экран, чтобы и "ПУСК" закрыть?
Перепробовал все свойства формы - ничего не получается.....:(


 
Джо ©   (2006-02-22 21:20) [1]

> Перепробовал все свойства формы

А про Height забыл, наверное? Ну, и FormStyle := fsStayOnTop.


 
antonn ©   (2006-02-22 21:26) [2]

убрать границу у окна (bsNone) и maximized;


 
mozgan   (2006-02-22 21:31) [3]

СПАСИБО!
Догадалась голова моя!


 
Игорь Шевченко ©   (2006-02-22 22:00) [4]

{
  Модуль: 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.

Использование:

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;



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

Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
15-1139988050
DelphiN!
2006-02-15 10:20
2006.03.12
Требуется программист на Delphi. г.Алматы. р.Казахстан


15-1139869651
Piter
2006-02-14 01:27
2006.03.12
HDTV фильмы...


1-1139373604
Disciple2005
2006-02-08 07:40
2006.03.12
Delphi & Word


15-1140370249
Stas_on
2006-02-19 20:30
2006.03.12
Светодиоды и COM-порт


2-1140962453
Jet
2006-02-26 17:00
2006.03.12
Определение пути до папки через OpenDialog





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский