Главная страницаОбратная связьКарта сайта

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

Автор: Святослав
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.

Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Диалог-компонент с кнопками Да, Нет, Отмена", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2023 Дискета.info