Виртуальная библиотека Delphi

Здесь есть возможность читать онлайн «Виртуальная библиотека Delphi» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Виртуальная библиотека Delphi: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Виртуальная библиотека Delphi»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Виртуальная библиотека Delphi — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Виртуальная библиотека Delphi», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

22. Каким образом создать форму, которую можно таскать за поле?

картинка 91

Как сделать форму (окно), которое перетаскивается не за заголовок ( Сaption ), а за все поле ?

картинка 92

Нужно обрабатывать сообщение WM_NCHITTEST :

type

TForm1 = class(TForm)

...

private

procedureWMNCHitTest( varM: TWMNCHitTest); messageWM_NCHITTEST;

end;

procedureTForm1.WMNCHitTest( varM: TWMNCHitTest);

begin

inherited; { вызов унаследованного обработчика }

ifM.Result = htClient then { Мышь сидит на окне? }

M.Result := htCaption; { Если да - то пусть Windows думает, что }

{ мышь на caption bar }

end;

Примечание:окно можно сделать вообще без Сaption .

23. Как программно спрятать или показать заголовок у формы?

картинка 93

Как программно спрятать или показать заголовок ( Caption ) у формы?

картинка 94

Вы можете попробовать следующее:

procedureTForm1.HideTitlebar;

var

Save: Longint;

begin

ifBorderStyle=bsNone thenExit;

Save := GetWindowLong(Handle, GWL_STYLE);

if(Save andWS_CAPTION) = WS_CAPTION then

begin

caseBorderStyle of

bsSingle, bsSizeable:

SetWindowLong(Handle, GWL_STYLE, Save and( notWS_CAPTION) orWS_BORDER);

bsDialog:

SetWindowLong(Handle, GWL_STYLE, Save and( notWS_CAPTION) orDS_MODALFRAME orWS_DLGFRAME);

end;

Height := Height-GetSystemMetrics(SM_CYCAPTION);

Refresh;

end;

end;

procedureTForm1.ShowTitlebar;

var

Save: Longint;

begin

ifBorderStyle = bsNone thenExit;

Save := GetWindowLong(Handle, GWL_STYLE);

if(Save andWS_CAPTION) <> WS_CAPTION then

begin

caseBorderStyle of

bsSingle, bsSizeable:

SetWindowLong(Handle, GWL_STYLE, Save orWS_CAPTION orWS_BORDER);

bsDialog:

SetWindowLong(Handle, GWL_STYLE, Save orWS_CAPTION orDS_MODALFRAME orWS_DLGFRAME);

end;

Height := Height + GetSystemMetrics(SM_CYCAPTION);

Refresh;

end;

end;

24. Как сделать приложение модальным?

картинка 95

Мне нужно сделать приложение модальным, для того чтобы обезопасить систему и в то же время позволить работать с программой.

картинка 96

Ok, пара предложений на эту тему:

1. Создайте форму, занимающую весь экран (maximized) без системных кнопок (Maximize, Minimize, System)

2. В обработчике FormDeactivate для формы вызовите метод SetFocus — это предотвратит Ctrl+Esc:

Form1.SetFocus;

3. В обработчике события FormActivate , нужно присвоить метод Deactivate для приложения:

Application.OnDeactivate := FormDeactivate;

4. Создайте всплывающее меню TPopupMenu с единственным пунктом. В свойствах данного компонента нужно установить Visible=False . Создайте процедуру для этого пункта меню, и в теле поставьте две фигурные скобки {} (для того, чтобы Delphi не удалил эту процедуру)

5. Присвойте созданное Popup-меню форме (св-во PopupMenu )

6. Задайте горячую клавишу (shortcut) для Popup-меню в методе FormActivate как показано ниже:

NullItem1.ShortCut := ShortCut(VK_Tab, [ssAlt]);

( NullItem1 нужно заменить на название созданного вами объекта — пункта меню)

Шаги 4-6 предотвращают переход на приложение по Alt-Tab.

25. Как изменить шрифт у Application.Title (заголовка приложения)?

Никак. Это ограничение Windows — вы не можете изменить шрифт ни у одного заголовка ни у приложения, ни у окна. Для окна можно предложить следующее — создать свое окно без заголовка ( Caption ) и рамки, которое будет само выводить нужную надпись нужным шрифтом и одновременно будет способно изменять свои размеры.

26. Каким образом (желательно не специфичным для Delphi) узнать, открыто меню или нет?

Вот так:

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

Item01: TMenuItem;

Item11: TMenuItem;

Item21: TMenuItem;

private

{ Private declarations }

public

procedureWMMenuSelect( varM: TWMMenuSelect); messageWM_MENUSELECT;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Виртуальная библиотека Delphi»

Представляем Вашему вниманию похожие книги на «Виртуальная библиотека Delphi» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Виртуальная библиотека Delphi»

Обсуждение, отзывы о книге «Виртуальная библиотека Delphi» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x