(*
This File is Part of the AHM Triton Tools
for Borland Delphi and C++ Builder.
Copyright (c) 1995 - 1998 AHM
Alexander H. Mehlhorn
For more Information contact AHM at
E-Mail : support@ahm.co.za
ICQ : 176724
or URL http://www.ahm.co.za
AHM is copyright by Alexander H. Mehlhorn
All Parts of this Collection were developed,
designed and implemented by AHM
Under no Circumstances may you distribute this file
in this or any other format. This File is supplied
as Evaluation of Source only.
*)
unit AHMDialogs;
interface
{$I AHM.INC}
{$DEFINE AHMREGISTERED}
uses Windows, Classes,Forms,Graphics,Buttons;
type
TAHMAboutDlgsStr = String[30];
TAHMExecDlgStr = String[30];
TAHMBeeptype = (bNone,bDefault,bAsterix,bExclamation,bQuestion,bCriticalStop);
TAHMDialogComponent = class(TComponent)
private
FBeepType : TAHMBeeptype;
FAHMAboutStr : TAHMAboutDlgsStr;
FAHMExecDlgStr : TAHMExecDlgStr;
protected
public
Function Execute : Boolean; virtual;
published
property About : TAHMAboutDlgsStr read FAHMAboutStr write FAHMAboutStr stored False;
property DesignExecute : TAHMExecDlgStr read FAHMExecDlgStr write FAHMExecDlgStr stored False;
Property Sound : TAHMBeeptype read FBeepType write FBeepType default bNone;
end;
TAHMAdvDialogComponent = class(TAHMDialogComponent)
private
FFormCaption : String;
FWidth, FHeight : Integer;
FFormLeft, FFormTop : Integer;
FPosition : TPosition;
FBorderStyle : TFormBorderStyle;
FHelpContext : THelpContext;
FHelpFile : String;
protected
public
procedure SetFormProperties(AForm : TForm);
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property FormCaption : String read FFormCaption write FFormCaption;
property FormWidth : Integer read FWidth write FWidth default 500;
property FormHeight : Integer read FHeight write FHeight default 350;
property Position : TPosition read FPosition write FPosition default poDesigned;
property FormTop : Integer read FFormTop write FFormTop default 0;
property FormLeft : Integer read FFormLeft write FFormLeft default 0;
property HelpContext : THelpContext read FHelpContext write FHelpContext default 0;
property Helpfile : String read FHelpFile write FHelpFile;
property BorderStyle : TFormBorderStyle read FBorderStyle write FBorderStyle default bsDialog;
end;
TAHMButtonDetails = class(TPersistent)
private
fvisible : boolean;
fconf : boolean;
fenabled : boolean;
fcmess : string;
fcaption : String;
fgly : TBitmap;
fhint : String;
fshint: Boolean;
fattach : TObject;
Procedure Invalidate;
Procedure Setglyph(value : TBitmap);
Procedure SetEnabled(value : Boolean);
Procedure SetVisible(value : Boolean);
Procedure SetCaption(value : String);
Procedure SetHint(value : String);
Procedure SetSHint(value : Boolean);
Protected
public
constructor Create(Attached : TObject);
published
Property Glyph : TBitmap read fgly write Setglyph stored true;
Property Visible:Boolean read fvisible write SetVisible default true;
Property Enabled : Boolean read fenabled write SetEnabled default true;
Property ConfirmOnPress : Boolean read fconf write fconf default True;
Property ConfirmMessage : String read fcmess write fcmess;
Property Caption : String read fcaption write SetCaption;
Property Hint : String read fhint write SetHint;
Property ShowHint : Boolean read fshint write SetSHint default true;
end;
procedure BuildDialogDetails;
implementation
uses SysUtils, Shellapi, Dialogs;
procedure ValidateRegister;
begin
{$IFDEF AHMUNREGISTERED}
if Date>EncodeDate(1999,03,03) then BuildDialogDetails;
{$ELSE}
if Date=EncodeDate(1980,07,07) then BuildDialogDetails;
{$ENDIF}
end;
constructor TAHMButtonDetails.Create(Attached : TObject);
begin
fattach:=Attached;
inherited Create;
fgly := TBitmap.create;
fvisible :=true;
fenabled:=true;
fconf := false;
end;
Procedure TAHMButtonDetails.Invalidate;
begin
if (fattach is TBitBtn) then (fattach as TBitBtn).Invalidate;
if (fattach is TSpeedButton) then (fattach as TSpeedButton).Invalidate;
end;
Procedure TAHMButtonDetails.SetGlyph(value : Tbitmap);
begin
fgly.assign(value);
fgly.dormant;
if (fattach is TBitBtn) then (fattach as TBitbtn).Glyph.assign(value);
if (fattach is TSpeedButton) then
begin
(fattach as TSpeedButton).Glyph.assign(value);
if value<>nil then
(fattach as TSpeedButton).NumGlyphs:=value.width div value.height;
end;
invalidate;
end;
Procedure TAHMButtonDetails.SetCaption(value : String);
begin
fCaption:=value;
if (fattach is TBitBtn) then (fattach as TBitbtn).Caption:=value;
if (fattach is TSpeedButton) then (fattach as TSpeedButton).Caption:=value;
invalidate;
end;
Procedure TAHMButtonDetails.SetEnabled(value : Boolean);
begin
fEnabled:=value;
if (fattach is TBitBtn) then (fattach as TBitbtn).Enabled:=value;
if (fattach is TSpeedButton) then (fattach as TSpeedButton).Enabled:=value;
invalidate;
end;
Procedure TAHMButtonDetails.SetSHint(value : Boolean);
begin
fSHint:=value;
if (fattach is TBitBtn) then (fattach as TBitbtn).ShowHint:=value;
invalidate;
end;
Procedure TAHMButtonDetails.SetHint(value : String);
begin
fHint:=value;
if (fattach is TBitBtn) then (fattach as TBitbtn).Hint:=value;
if (fattach is TSpeedButton) then (fattach as TSpeedButton).Hint:=value;
invalidate;
end;
Procedure TAHMButtonDetails.SetVisible(value : Boolean);
begin
fVisible:=value;
if (fattach is TBitBtn) then (fattach as TBitbtn).Visible:=value;
if (fattach is TSpeedButton) then (fattach as TSpeedButton).Visible:=value;
invalidate;
end;
Function TAHMDialogComponent.Execute : Boolean;
begin
result:=false;
case FBeepType of
bDefault : MessageBeep(MB_OK);
bAsterix : MessageBeep(MB_ICONAsterisk);
bExclamation : MessageBeep(MB_ICONEXCLAMATION);
bQuestion : MessageBeep(MB_ICONQUESTION);
bCriticalStop : MessageBeep(MB_ICONHAND);
end;
end;
constructor TAHMAdvDialogComponent.Create(AOwner : TComponent);
begin
FWidth := 500;
FHeight := 350;
FPosition := poDesigned;
FFormTop := 0;
FFormLeft := 0;
FHelpContext := 0;
FBorderStyle := bsDialog;
inherited Create(AOwner);
end;
destructor TAHMAdvDialogComponent.Destroy;
begin
inherited Destroy;
end;
procedure TAHMAdvDialogComponent.SetFormProperties(AForm : TForm);
begin
AForm.Caption:=FFormCaption;
AForm.Width:=FWidth;
AForm.Height:=FHeight;
AForm.Position:=FPosition;
AForm.Top:=FFormTop;
AForm.Left:=FFormLeft;
AForm.HelpContext:=FHelpContext;
{$IFDEF AHMINPRISE3}
AForm.HelpFile:=FHelpFile;
{$ENDIF}
AForm.BorderStyle:=FBorderStyle;
end;
procedure BuildDialogDetails;
begin
{$IFDEF AHMUNREGISTERED}
showmessage('Hi there,'+#13+
'The AHM Dialog Components have been designed for building easy interfaces'+#13+
'to your Application and since it makes your life easier and is not'+#13+
'completely for free I am asking you kindly to register for it.'+#13#13+
'- See the following Website or the Helpfile for more Information -'+#13#13+
'Thank you, Alexander Mehlhorn (AHM)'+#13#13+
'- Watch out for updates ! -');
ShellExecute(0,'open',PChar('http://www.ahm.co.za'),nil,nil,SW_NORMAL);
{$ELSE}
showmessage('Dear Registered User,'+#13+
'Thank you for registering the AHM Dialog Components Triton 98.'+#13+
'As development will proceed on this Set of Components I will'+#13+
'be updating frequently. Please ensure that you keep up to date'+#13+
'with any Development done by me. Watch http://www.ahm.co.za'+#13+
'for new releases on Triton 98 for which you are a registered User.'+#13#13+
'Thank you, Alexander Mehlhorn (AHM)'+#13+
'For any information, problems or updates send mail to support@ahm.co.za');
{$ENDIF}
end;
initialization
ValidateRegister;
end.