git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.TMSSoftware@10 ccf39c52-e665-a648-be6a-52d81bcb5567
301 lines
10 KiB
ObjectPascal
301 lines
10 KiB
ObjectPascal
{***************************************************************************}
|
|
{ TTaskDialogEx component }
|
|
{ for Delphi & C++Builder }
|
|
{ }
|
|
{ written by TMS Software }
|
|
{ copyright © 2007 - 2008 }
|
|
{ Email : info@tmssoftware.com }
|
|
{ Web : http://www.tmssoftware.com }
|
|
{ }
|
|
{ The source code is given as is. The author is not responsible }
|
|
{ for any possible damage done due to the use of this code. }
|
|
{ The component can be freely used in any application. The complete }
|
|
{ source code remains property of the author and may not be distributed, }
|
|
{ published, given or sold in any form as such. No parts of the source }
|
|
{ code can be included in any other component or application without }
|
|
{ written authorization of the author. }
|
|
{***************************************************************************}
|
|
|
|
unit TaskDialogEx;
|
|
|
|
{$I TMSDEFS.INC}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, Windows, Messages, Forms, Dialogs, SysUtils, StdCtrls, Graphics, Consts, Math,
|
|
ExtCtrls, Controls, TaskDialog, AdvGlowButton, AdvOfficeButtons;
|
|
|
|
type
|
|
TButtonCreatedEvent = procedure(Sender: TObject; Button: TAdvGlowButton) of object;
|
|
|
|
TAdvTaskDialogEx = class(TAdvTaskDialog)
|
|
private
|
|
FOnButtonCreated: TButtonCreatedEvent;
|
|
FAppearance: TGlowButtonAppearance;
|
|
protected
|
|
function CreateRadioButton(AOwner: TComponent): TWinControl; override;
|
|
procedure SetRadioButtonState(Btn: TWinControl; Checked: boolean); override;
|
|
procedure SetRadioButtonCaption(Btn: TWinControl; Value: string); override;
|
|
function CreateButton(AOwner: TComponent): TWinControl; override;
|
|
procedure InitRadioButton(AOwner: TForm; Btn: TWinControl; btnIndex: Integer; OnClickEvent : TNotifyEvent); override;
|
|
procedure SetButtonCaption(aButton: TWinControl; Value: TCaption); override;
|
|
procedure SetButtonCancel(aButton: TWinControl; Value: Boolean); override;
|
|
procedure SetButtonDefault(aButton: TWinControl; Value: Boolean); override;
|
|
procedure SetButtonModalResult(aButton: TWinControl; Value: Integer); override;
|
|
function GetButtonModalResult(aButton: TWinControl): Integer; override;
|
|
public
|
|
property Appearance: TGlowButtonAppearance read FAppearance write FAppearance;
|
|
property OnButtonCreated:TButtonCreatedEvent read FOnButtonCreated write FOnButtonCreated;
|
|
end;
|
|
|
|
TAdvInputTaskDialogEx = class(TAdvInputTaskDialog)
|
|
private
|
|
FOnButtonCreated: TButtonCreatedEvent;
|
|
FAppearance: TGlowButtonAppearance;
|
|
protected
|
|
function CreateRadioButton(AOwner: TComponent): TWinControl; override;
|
|
procedure SetRadioButtonState(Btn: TWinControl; Checked: boolean); override;
|
|
procedure SetRadioButtonCaption(Btn: TWinControl; Value: string); override;
|
|
function CreateButton(AOwner: TComponent): TWinControl; override;
|
|
procedure InitRadioButton(AOwner: TForm; Btn: TWinControl; btnIndex: Integer; OnClickEvent : TNotifyEvent); override;
|
|
procedure SetButtonCaption(aButton: TWinControl; Value: TCaption); override;
|
|
procedure SetButtonCancel(aButton: TWinControl; Value: Boolean); override;
|
|
procedure SetButtonDefault(aButton: TWinControl; Value: Boolean); override;
|
|
procedure SetButtonModalResult(aButton: TWinControl; Value: Integer); override;
|
|
function GetButtonModalResult(aButton: TWinControl): Integer; override;
|
|
public
|
|
property Appearance: TGlowButtonAppearance read FAppearance write FAppearance;
|
|
property OnButtonCreated:TButtonCreatedEvent read FOnButtonCreated write FOnButtonCreated;
|
|
end;
|
|
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterComponents('TMS',[TAdvTaskDialogEx]);
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
{ TAdvTaskDialogEx }
|
|
|
|
function TAdvTaskDialogEx.CreateButton(AOwner: TComponent): TWinControl;
|
|
begin
|
|
Result := TAdvGlowButton.Create(AOwner);
|
|
if Assigned(FAppearance) then
|
|
(Result as TAdvGlowButton).Appearance := FAppearance;
|
|
(Result as TAdvGlowButton).TabStop := true;
|
|
if Assigned(FOnButtonCreated) then
|
|
FOnButtonCreated(Self,(Result as TAdvGlowButton));
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
function TAdvTaskDialogEx.CreateRadioButton(AOwner: TComponent): TWinControl;
|
|
begin
|
|
Result := TAdvOfficeRadioButton.Create(AOwner);
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
function TAdvTaskDialogEx.GetButtonModalResult(
|
|
aButton: TWinControl): Integer;
|
|
begin
|
|
Result := mrNone;
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
Result := TAdvGlowButton(aButton).ModalResult;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetButtonCancel(aButton: TWinControl;
|
|
Value: Boolean);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Cancel := Value;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetButtonCaption(aButton: TWinControl;
|
|
Value: TCaption);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Caption := Value;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetButtonDefault(aButton: TWinControl;
|
|
Value: Boolean);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Default := Value;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetButtonModalResult(aButton: TWinControl;
|
|
Value: Integer);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).ModalResult := Value;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetRadioButtonCaption(Btn: TWinControl;
|
|
Value: string);
|
|
begin
|
|
TAdvOfficeRadioButton(Btn).Caption := Value;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.SetRadioButtonState(Btn: TWinControl;
|
|
Checked: boolean);
|
|
begin
|
|
TAdvOfficeRadioButton(Btn).Checked := Checked;
|
|
end;
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
procedure TAdvTaskDialogEx.InitRadioButton(AOwner: TForm; Btn: TWinControl; btnIndex: Integer; OnClickEvent : TNotifyEvent);
|
|
begin
|
|
with TRadioButton(Btn) do
|
|
begin
|
|
Name := 'Radio' + inttostr(btnIndex);
|
|
Parent := AOwner;
|
|
Font.Name := AOwner.Canvas.Font.Name;
|
|
Font.Size := 8;
|
|
BiDiMode := AOwner.BiDiMode;
|
|
OnClick := OnClickEvent;
|
|
|
|
{
|
|
BoundsRect := TextRect;
|
|
Left := FHorzParaMargin + FHorzMargin; //ALeft + FHorzMargin;
|
|
Top := Y;
|
|
Width := Self.Width - Left - 4;
|
|
GetTextSize(Canvas, Caption, k, l);
|
|
w := Max(w, Left + k + FHorzMargin + 20);
|
|
}
|
|
end;
|
|
end;
|
|
|
|
{ TAdvInputTaskDialogEx }
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
function TAdvInputTaskDialogEx.CreateButton(AOwner: TComponent): TWinControl;
|
|
begin
|
|
Result := TAdvGlowButton.Create(AOwner);
|
|
if Assigned(FAppearance) then
|
|
(Result as TAdvGlowButton).Appearance := FAppearance;
|
|
(Result as TAdvGlowButton).TabStop := true;
|
|
if Assigned(FOnButtonCreated) then
|
|
FOnButtonCreated(Self,(Result as TAdvGlowButton));
|
|
end;
|
|
|
|
function TAdvInputTaskDialogEx.CreateRadioButton(
|
|
AOwner: TComponent): TWinControl;
|
|
begin
|
|
Result := TAdvOfficeRadioButton.Create(AOwner);
|
|
end;
|
|
|
|
function TAdvInputTaskDialogEx.GetButtonModalResult(
|
|
aButton: TWinControl): Integer;
|
|
begin
|
|
Result := mrNone;
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
Result := TAdvGlowButton(aButton).ModalResult;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetButtonCancel(aButton: TWinControl;
|
|
Value: Boolean);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Cancel := Value;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetButtonCaption(aButton: TWinControl;
|
|
Value: TCaption);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Caption := Value;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetButtonDefault(aButton: TWinControl;
|
|
Value: Boolean);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).Default := Value;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetButtonModalResult(aButton: TWinControl;
|
|
Value: Integer);
|
|
begin
|
|
if not Assigned(aButton) or not (aButton is TAdvGlowButton) then
|
|
Exit;
|
|
|
|
TAdvGlowButton(aButton).ModalResult := Value;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetRadioButtonCaption(Btn: TWinControl;
|
|
Value: string);
|
|
begin
|
|
TAdvOfficeRadioButton(Btn).Caption := Value;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.SetRadioButtonState(Btn: TWinControl;
|
|
Checked: boolean);
|
|
begin
|
|
TAdvOfficeRadioButton(Btn).Checked := Checked;
|
|
end;
|
|
|
|
procedure TAdvInputTaskDialogEx.InitRadioButton(AOwner: TForm; Btn: TWinControl; btnIndex: Integer; OnClickEvent : TNotifyEvent);
|
|
begin
|
|
with TRadioButton(Btn) do
|
|
begin
|
|
Name := 'Radio' + inttostr(btnIndex);
|
|
Parent := AOwner;
|
|
Font.Name := AOwner.Canvas.Font.Name;
|
|
Font.Size := 8;
|
|
BiDiMode := AOwner.BiDiMode;
|
|
OnClick := OnClickEvent;
|
|
{
|
|
BoundsRect := TextRect;
|
|
Left := FHorzParaMargin + FHorzMargin; //ALeft + FHorzMargin;
|
|
Top := Y;
|
|
Width := Self.Width - Left - 4;
|
|
GetTextSize(Canvas, Caption, k, l);
|
|
w := Max(w, Left + k + FHorzMargin + 20);
|
|
}
|
|
end;
|
|
end;
|
|
|
|
end.
|