Читаем Виртуальная библиотека Delphi полностью

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

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

procedure TForm1.HideTitlebar; 

var 

  Save: Longint; 

begin 

  if BorderStyle=bsNone then Exit; 

  Save := GetWindowLong(Handle, GWL_STYLE); 

  if (Save and WS_CAPTION) = WS_CAPTION then 

  begin 

    case BorderStyle of 

      bsSingle, bsSizeable: 

        SetWindowLong(Handle, GWL_STYLE, Save and (not WS_CAPTION) or WS_BORDER); 

     bsDialog: 

        SetWindowLong(Handle, GWL_STYLE, Save and (not WS_CAPTION) or DS_MODALFRAME or WS_DLGFRAME); 

    end

    Height := Height-GetSystemMetrics(SM_CYCAPTION); 

    Refresh; 

  end

end

procedure TForm1.ShowTitlebar; 

var 

  Save: Longint; 

begin 

  if BorderStyle = bsNone then Exit; 

  Save := GetWindowLong(Handle, GWL_STYLE); 

  if (Save and WS_CAPTION) <> WS_CAPTION then 

  begin 

    case BorderStyle of 

      bsSingle, bsSizeable: 

        SetWindowLong(Handle, GWL_STYLE, Save or WS_CAPTION or WS_BORDER); 

      bsDialog: 

        SetWindowLong(Handle, GWL_STYLE, Save or WS_CAPTION or DS_MODALFRAME or WS_DLGFRAME); 

    end

    Height := Height + GetSystemMetrics(SM_CYCAPTION); 

   Refresh; 

  end

end

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

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

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 

    procedure WMMenuSelect(var M: TWMMenuSelect); message WM_MENUSELECT; 

  end

implementation 

{$R *.RES} 

procedure TForm1.WMMenuSelect(var M: TWMMenuSelect); 

begin 

  inherited

{ Этот Beep сигнализирует вообще об открытии меню } 

  MessageBeep(MB_ICONASTERISK); 

{ А зтот Beep - только о выборе в меню нового Item } 

  if M.Menu = MainMenu1.Handle then MessageBeep(MB_ICONASTERISK); 

end

end.

<p>Разное</p>

1. Передача переменной в отчет ReportSmith.

Следующий код показывает, как передать переменную в отчет.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных