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

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

Кнопки в заголовке окна. [D6]


DikobraZ ©   (2002-03-27 22:18:00) 

Как убрать кнопку развернуть и как кнопке свернуть присвоить функцию спрятать??


Юрий Зотов   (2002-03-28 12:31:00) [1]

> вместо SC_MINIMIZE можно написать просто число 61472

Но лучше этого не делать.


Kettle of delphi   (2002-03-28 02:02:00) [2]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand;
begin
if Msg.CmdType = SC_MINIMIZE then Form1.Visible := false;
inherited;
end;


end.


Вот. Вместо SC_MINIMIZE может быть SC_MAXIMIZE, SC_CLOSE или что-нибудь еще. Вот, смотри (я это взял из модуля windows.pas):

{ System Menu Command Values }
{$EXTERNALSYM SC_SIZE}
SC_SIZE = 61440;
{$EXTERNALSYM SC_MOVE}
SC_MOVE = 61456;
{$EXTERNALSYM SC_MINIMIZE}
SC_MINIMIZE = 61472;
{$EXTERNALSYM SC_MAXIMIZE}
SC_MAXIMIZE = 61488;
{$EXTERNALSYM SC_NEXTWINDOW}
SC_NEXTWINDOW = 61504;
{$EXTERNALSYM SC_PREVWINDOW}
SC_PREVWINDOW = 61520;
{$EXTERNALSYM SC_CLOSE}
SC_CLOSE = 61536;
{$EXTERNALSYM SC_VSCROLL}
SC_VSCROLL = 61552;
{$EXTERNALSYM SC_HSCROLL}
SC_HSCROLL = 61568;
{$EXTERNALSYM SC_MOUSEMENU}
SC_MOUSEMENU = 61584;
{$EXTERNALSYM SC_KEYMENU}
SC_KEYMENU = 61696;
{$EXTERNALSYM SC_ARRANGE}
SC_ARRANGE = 61712;
{$EXTERNALSYM SC_RESTORE}
SC_RESTORE = 61728;
{$EXTERNALSYM SC_TASKLIST}
SC_TASKLIST = 61744;
{$EXTERNALSYM SC_SCREENSAVE}
SC_SCREENSAVE = 61760;
{$EXTERNALSYM SC_HOTKEY}
SC_HOTKEY = 61776;
{$EXTERNALSYM SC_DEFAULT}
SC_DEFAULT = 61792;
{$EXTERNALSYM SC_MONITORPOWER}
SC_MONITORPOWER = 61808;
{$EXTERNALSYM SC_CONTEXTHELP}
SC_CONTEXTHELP = 61824;
{$EXTERNALSYM SC_SEPARATOR}
SC_SEPARATOR = 61455;

{ Obsolete names (Устаревшие имена) }
{$EXTERNALSYM SC_ICON}
SC_ICON = SC_MINIMIZE;
{$EXTERNALSYM SC_ZOOM}
SC_ZOOM = SC_MAXIMIZE;

Т.е., например, вместо SC_MINIMIZE можно написать просто число 61472.


DikobraZ   (2002-03-27 23:45:00) [3]

Я почитал справку и понял, что я совсем ничего не понял... :)
Не могли бы вы написать конкретный пример использования этого WM_SYSCOMMAND?


Anatoly Podgoretsky   (2002-03-27 23:21:00) [4]

Живет у тебя на диске, в том каталоге куда ты его поставил.
В виндоус есть неплохая поисковая система, искать файл win32.hlp там и остальное Software Development Kit


DikobraZ   (2002-03-27 23:14:00) [5]

А что такое SDK и где оно живет???


Юрий Зотов   (2002-03-27 22:51:00) [6]

> Как убрать кнопку развернуть
См. BorderIcons.

> как кнопке свернуть присвоить функцию спрятать
Обрабатывать WM_SYSCOMMAND. См. в SDK.


Наверх

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