Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.09.2011, 17:31
x2088 x2088 вне форума
Прохожий
 
Регистрация: 05.09.2011
Сообщения: 6
Репутация: 10
По умолчанию Нестандартное окно: как это реализовать?

ОКНО БЕЗ ЗАГОЛОВКА

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  BorderStyle := bsSizeable; //alNone; - растягиваемое / нерастягиваемое окно;
  SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and
   not WS_CAPTION or WS_BORDER);
  Height := Height - GetSystemMetrics(SM_CYCAPTION);
  Refresh;
end;

ТАСКАЕМ ОКНО ЗА LABEL

Код:
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
const sc_dragmove = $f012;
begin
  releasecapture;
  Form1.Perform(wm_syscommand, sc_dragmove, 0);
end;

РАЗВОРАЧИВАЕМ И ВОССТАНАВЛИВАЕМ ОКНО БЕЗ ЗАГОЛОВКА

Код:
  public
    { Public declarations }
    WinPrp: array [1..4] of Integer;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  If Form1.Align <> alClient
     Then begin
          WinPrp[1] := Form1.Left;
          WinPrp[2] := Form1.Top;
          WinPrp[3] := Form1.Width;
          WinPrp[4] := Form1.Height;
          Form1.Align := alClient;
          end
     Else begin
          Form1.Align := alNone;
          Form1.Left   := WinPrp[1];
          Form1.Top    := WinPrp[2];
          Form1.Width  := WinPrp[3];
          Form1.Height := WinPrp[4];
          end;
end;

СВЕРНУТЬ В ТАСКБАР ОКНО БЕЗ КНОПКИ

Код:
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_SHOW);       // показываем форму окна;
  Application.MainForm.Show;                     // забираем фокус в окно;
  ShowWindow(Application.Handle, WM_SETFOCUS);   // забираем фокус на таскбар;
  ShowWindow(Application.Handle, BM_SETSTATE);   // кликаем;
  ShowWindow(Application.Handle, WM_KILLFOCUS);  // отдаём фокус системе;
end;

СНОСИМ КНОПКУ В ТАСКБАРЕ ПО НЕЧЁТНЫМ КЛИКАМ И СВАРАЧИВАЕМ В ТРЕЙ ПО ЧЁТНЫМ

Код:
Application.MainFormOnTaskbar := False; //в проекты :: посмотреть исходник;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
  If Tag <> 1
     Then begin
          ShowWindow(Application.Handle, SW_HIDE);
          Tag := 1;
          end
     Else begin
          TrayIcon1.Visible := True;
          Application.MainForm.Hide;
          Tag := 0;
          end;
end;

ВЫНИМАЕМ ОКНО ИЗ ТРЕЯ ПО ДАБЛКЛИКУ И ПОКАЗЫВАЕМ ЕГО КНОПКУ В ТАСКБАРЕ

Код:
Application.MainFormOnTaskbar := False; //в проекты :: посмотреть исходник;

procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
  TrayIcon1.Visible := False; //True;
  Application.MainForm.Show;
  ShowWindow(Application.Handle, SW_SHOW); //кнопка в таскбаре;
end;

ОКНО ПОВЕРХ ВСЕХ ОКНОН С НИЗКИМ ПРИОРИТЕТОМ

Код:
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
  If FormStyle <> fsStayOnTop
     Then begin
          FormStyle := fsStayOnTop;
          end
     Else begin
          FormStyle := fsNormal;
          end;
end;

Последний раз редактировалось x2088, 06.09.2011 в 18:37.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025