Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Диалог-компонент с кнопками Да, Нет, Отмена

Delphi , Программа и Интерфейс , Диалоги и Фреймы

Диалог-компонент с кнопками Да, Нет, Отмена

Автор: Святослав
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Диалог с кнопками Yes, No, Cancel (компонент).
Работает примерно так же как TDialog (для удобства).

TYesOrNoDialog.ShowNoButton - показывать ли кнопку No.
TYesOrNoDialog.ShowCancelButton - показывать ли кнопку Cancel.
TYesOrNoDialog.Caption - заголовок диалгоа.
TYesOrNoDialog.Text - текст диалога.
function TYesOrNoDialog.Execute:Integer - показывает
диалог и возвращает значение MessageBox'a

Зависимости: Windows, Messages, SysUtils, Classes, Dialogs, Forms;
Автор:       Святослав, lisin@asicdesign.ru, ICQ:138752432, Saint Petersburg
Copyright:   (C) NetBreaker666[AWD]<SP666>@Svjatoslav_Lisin - т.е. я сам
Дата:        11 августа 2002 г.
***************************************************** }

unit YesOrNoDialog;

interface

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

type
  TYesOrNoDialog = class(TComponent)
  private
    { Private declarations }
    _OnEx: TNotifyEvent;
    __SNO: Boolean;
    __SC: Boolean;
    _Y, _N, _C: Boolean;
    _Caption, _Text: string;
    procedure SetNo(S: Boolean);
    procedure SetCancel(S: Boolean);
  protected
    { Protected declarations }

  public
    { Public declarations }
    property Yes: Boolean read _Y;
    property No: Boolean read _N;
    property Cancel: Boolean read _C;

  published
    { Published declarations }
    property ShowNoButton: Boolean read __SNO write SetNo;
    property ShowCancelButton: Boolean read __SC write SetCancel;
    property Caption: string read _Caption write _Caption;
    property Text: string read _Text write _Text;
    property OnExecute: TNotifyEvent read _OnEx write _OnEx;
    function Execute: Integer;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('NetBreakers', [TYesOrNoDialog]);
end;
//Voen secret.
// 2301900

function TYesOrNoDialog.Execute: Integer;
var
  Hn: THandle;
begin
  Hn := Application.Handle;
  if __SNO and __SC then
  begin
    Result := MessageBox(Hn, PChar(text), PChar(Caption), MB_YESNOCANCEL);
    _Y := (Result = 6) or (Result = 1);
    _N := Result = 7;
    _C := REsult = 2;
    Exit;
  end;
  if __SNO then
  begin
    Result := MessageBox(Hn, PChar(text), PChar(Caption), MB_YESNO);
    _Y := (Result = 6) or (Result = 1);
    _N := Result = 7;
    _C := REsult = 2;
    Exit;
  end;
  if __SC then
  begin
    Result := MessageBox(Hn, PChar(text), PChar(Caption), MB_OKCANCEL);
    _Y := (Result = 6) or (Result = 1);
    _N := Result = 7;
    _C := REsult = 2;
    Exit;
  end;
  Result := MessageBox(Hn, PChar(text), PChar(Caption), MB_OK);
  _Y := (Result = 6) or (Result = 1);
  _N := Result = 7;
  _C := Result = 2;

end;

procedure TYesOrNoDialog.SetNo(S: Boolean);
begin
  __SNO := S;
end;

procedure TYesOrNoDialog.SetCancel(S: Boolean);
begin
  __SC := S;
end;

end.

Этот компонент Delphi для создания диалога с кнопками Да, Нет и Отмена. Компонент позволяет настроить заголовок, текст и видимость каждой кнопки через свойства.

Вот разбивка кода:

  • Класс TYesOrNoDialog наследуется от TComponent.
  • У него есть несколько приватных переменных для хранения состояния диалога (например _OnEx, __SNO, __SC и т.д.).
  • Есть общественные свойства для доступа к этим переменным.
  • Метод Execute отображает диалог и возвращает целочисленное значение, основанное на выборе пользователя (Да, Нет или Отмена). Он также обновляет состояние кнопок диалога.
  • Есть два приватных процедуры (SetNo и SetCancel), которые обновляют видимость кнопок Нет и Отмена соответственно.
  • Процедура Register используется для регистрации компонента в Delphi.

Метод Execute использует функцию MessageBox из Windows API для отображения диалога. Он принимает четыре параметра:

+ Handle: Обратный handle окна, ассоциированного с сообщением.
+ Text: Текст, который должен быть отображен в сообщении.
+ Caption: Заголовок для сообщения.
+ Buttons: Сочетание флагов, которое указывает, какие кнопки должны быть отображены (MB_YesNo, MB_OKCancel и т.д.).

Метод затем обновляет состояние кнопок диалога на основе выбора пользователя. Если __SNO и __SC оба истинны, он отображает сообщение с кнопками Да, Нет и Отмена. Если только один из них истинен, он отображает сообщение с кнопками Да-Нет или OK-Отмена.

В целом, этот компонент предоставляет удобный способ создания диалога с кнопками Да, Нет и Отмена в приложениях Delphi.

Диалог-компонент с кнопками Да, Нет и Отмена для удобного использования в приложениях.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Диалоги и Фреймы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-02 20:33:36/0.0035440921783447/0