Статьи Королевства Дельфи

       

Набор функций для создания диалоговых окон в стиле диалогов помощника MSOffice 2000.


Раздел Сокровищница рь Шевченко,
дата публикации 26 апреля 2002г.

Заменяет стандартные диалоги из Dialogs.pas, создаваемые по функции CreateMessageDialog (ShowMessage, MessageDlg). Все диалоги можно перемещать мышью за область формы. Чего не стал добиваться, это поведения кнопок, аналогичного кнопкам в диалогах помощника: при наведении на них мышью, они меняют свой вид.
Каждое диалоговое окно можно ассоциировать с Control'ом (хвостик диалога будет указывать на Control), если параметр Control не указан или равен nil, то хвостик в диалогах появляться не будет, и диалог будет размещен по центру главной формы приложения.
Имеется ряд глобальных переменных, действующих на внешний вид всех диалогов:
  • MessageColor - цвет фона диалогов,
  • RoundRectCurve - Размер эллипса для скругления углов формы
  • TriangleWidth - Ширина треугольного хвостика
  • TriangleHeight - Высота треугольного хвостика
  • TriangleIndent - Смещение треугольного хвостика относительно края диалога
Состав:
  • unit HSFlatButton - компонент плоской кнопки для отображения в диалогах.
  • unit HSDialogs - собственно, функции для создания диалогов.
function CreateHSMessageDialog (const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; { Control, на который указывает хвостик } AEditorControl : TControl = nil; { Позиция хвостика относительно левого края Control } AXCursorOffset : Integer = 20; { Позиция хвостика относительно верхнего (или нижнего) края Control } AYCursorOffset : Integer = 2): TCustomForm; { Замена функции MessageDlg } function HSMessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2): Integer; { Замена функции ShowMessage } procedure HSShowMessage(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessageFmt } procedure HSShowMessageFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessage cо стандартной пиктограммой "Ошибка" } procedure HSShowError(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessageFmt cо стандартной пиктограммой "Ошибка" } procedure HSShowErrorFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessage cо стандартной пиктограммой "Предупреждение" } procedure HSShowWarning(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessageFmt cо стандартной пиктограммой "Предупреждение" } procedure HSShowWarningFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessage cо стандартной пиктограммой "Информация" } procedure HSShowInfo(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Замена функции ShowMessageFmt cо стандартной пиктограммой "Информация" } procedure HSShowInfoFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2); { Диалог подтверждения с кнопками "Да"/"Нет" и стандартной пиктограммой "Подтверждение" } function HSConfirmMessage(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2) : Boolean; { Диалог подтверждения с кнопками "Да"/"Нет" и стандартной пиктограммой "Подтверждение", с параметрами для функции Format } function HSConfirmMessageFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2) : Boolean; { Диалог подтверждения с кнопками "Да"/"Нет"/"Отмена" и стандартной пиктограммой "Подтверждение" } function HSAskYesNoCancel(const Msg: string; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2) : Integer; { Диалог подтверждения с кнопками "Да"/"Нет"/"Отмена" и стандартной пиктограммой "Подтверждение", с параметрами для функции Format } function HSAskYesNoCancelFmt(const Msg: string; Params : array of const; AEditorControl : TControl = nil; AXCursorOffset : Integer = 20; AYCursorOffset : Integer = 2) : Integer;

В (11.8K) содержатся unit's для диалогов и тестовый пример.

Любая критика, предложения и пожелания принимаются :-)

С уважением,




Содержание раздела