Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Диалог-компонент с кнопками Да, Нет, Отмена

Автор: Святослав
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 World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay