Marco Cantù 1998, Mastering Delphi 4
Project: XWEBWIZ.DPR
Project Structure
XWEBWIZ.DPR
library XWebWiz;
uses
ComServ,
XWebWiz_TLB in 'XWebWiz_TLB.pas',
XWizF in 'XWizF.pas' {XWizForm: TActiveForm} {XWizForm: CoClass},
WizForm in 'WizForm.pas' {WizardForm};
{$E ocx}
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.
XWEBWIZ_TLB.PAS
unit XWebWiz_TLB;
// ************************************************************************ //
// WARNING //
// ------- //
// The types declared in this file were generated from data read from a //
// Type Library. If this type library is explicitly or indirectly (via //
// another type library referring to this type library) re-imported, or the //
// 'Refresh' command of the Type Library Editor activated while editing the //
// Type Library, the contents of this file will be regenerated and all //
// manual modifications will be lost. //
// ************************************************************************ //
// PASTLWTR : $Revision: 1.11.1.63 $
// File generated on 6/26/98 11:25:31 PM from Type Library described below.
// ************************************************************************ //
// Type Lib: C:\md4code\Part5\23\XWebWiz\XWebWiz.tlb
// IID\LCID: {DB9C324D-0D2A-11D2-B9F1-004845400FAA}\0
// Helpfile:
// HelpString: XWebWiz Library
// Version: 1.0
// ************************************************************************ //
interface
uses Windows, ActiveX, Classes, Graphics, OleCtrls, StdVCL;
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used: //
// Type Libraries : LIBID_xxxx //
// CoClasses : CLASS_xxxx //
// DISPInterfaces : DIID_xxxx //
// Non-DISP interfaces: IID_xxxx //
// *********************************************************************//
const
LIBID_XWebWiz: TGUID = '{DB9C324D-0D2A-11D2-B9F1-004845400FAA}';
IID_IXWizForm: TGUID = '{DB9C324E-0D2A-11D2-B9F1-004845400FAA}';
DIID_IXWizFormEvents: TGUID = '{DB9C3250-0D2A-11D2-B9F1-004845400FAA}';
CLASS_XWizForm: TGUID = '{DB9C3252-0D2A-11D2-B9F1-004845400FAA}';
// *********************************************************************//
// Declaration of Enumerations defined in Type Library //
// *********************************************************************//
// TxActiveFormBorderStyle constants
type
TxActiveFormBorderStyle = TOleEnum;
const
afbNone = $00000000;
afbSingle = $00000001;
afbSunken = $00000002;
afbRaised = $00000003;
// TxPrintScale constants
type
TxPrintScale = TOleEnum;
const
poNone = $00000000;
poProportional = $00000001;
poPrintToFit = $00000002;
// TxMouseButton constants
type
TxMouseButton = TOleEnum;
const
mbLeft = $00000000;
mbRight = $00000001;
mbMiddle = $00000002;
// TxBiDiMode constants
type
TxBiDiMode = TOleEnum;
const
bdLeftToRight = $00000000;
bdRightToLeft = $00000001;
bdRightToLeftNoAlign = $00000002;
bdRightToLeftReadingOnly = $00000003;
type
// *********************************************************************//
// Forward declaration of interfaces defined in Type Library //
// *********************************************************************//
IXWizForm = interface;
IXWizFormDisp = dispinterface;
IXWizFormEvents = dispinterface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library //
// (NOTE: Here we map each CoClass to its Default Interface) //
// *********************************************************************//
XWizForm = IXWizForm;
// *********************************************************************//
// Interface: IXWizForm
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {DB9C324E-0D2A-11D2-B9F1-004845400FAA}
// *********************************************************************//
IXWizForm = interface(IDispatch)
['{DB9C324E-0D2A-11D2-B9F1-004845400FAA}']
function Get_Visible: WordBool; safecall;
procedure Set_Visible(Value: WordBool); safecall;
function Get_AutoScroll: WordBool; safecall;
procedure Set_AutoScroll(Value: WordBool); safecall;
function Get_AutoSize: WordBool; safecall;
procedure Set_AutoSize(Value: WordBool); safecall;
function Get_AxBorderStyle: TxActiveFormBorderStyle; safecall;
procedure Set_AxBorderStyle(Value: TxActiveFormBorderStyle); safecall;
function Get_Caption: WideString; safecall;
procedure Set_Caption(const Value: WideString); safecall;
function Get_Color: OLE_COLOR; safecall;
procedure Set_Color(Value: OLE_COLOR); safecall;
function Get_Font: IFontDisp; safecall;
procedure _Set_Font(const Value: IFontDisp); safecall;
procedure Set_Font(const Value: IFontDisp); safecall;
function Get_KeyPreview: WordBool; safecall;
procedure Set_KeyPreview(Value: WordBool); safecall;
function Get_PixelsPerInch: Integer; safecall;
procedure Set_PixelsPerInch(Value: Integer); safecall;
function Get_PrintScale: TxPrintScale; safecall;
procedure Set_PrintScale(Value: TxPrintScale); safecall;
function Get_Scaled: WordBool; safecall;
procedure Set_Scaled(Value: WordBool); safecall;
function Get_Active: WordBool; safecall;
function Get_DropTarget: WordBool; safecall;
procedure Set_DropTarget(Value: WordBool); safecall;
function Get_HelpFile: WideString; safecall;
procedure Set_HelpFile(const Value: WideString); safecall;
function Get_DoubleBuffered: WordBool; safecall;
procedure Set_DoubleBuffered(Value: WordBool); safecall;
function Get_Enabled: WordBool; safecall;
procedure Set_Enabled(Value: WordBool); safecall;
function Get_BiDiMode: TxBiDiMode; safecall;
procedure Set_BiDiMode(Value: TxBiDiMode); safecall;
function Get_Cursor: Smallint; safecall;
procedure Set_Cursor(Value: Smallint); safecall;
property Visible: WordBool read Get_Visible write Set_Visible;
property AutoScroll: WordBool read Get_AutoScroll write Set_AutoScroll;
property AutoSize: WordBool read Get_AutoSize write Set_AutoSize;
property AxBorderStyle: TxActiveFormBorderStyle read Get_AxBorderStyle write Set_AxBorderStyle;
property Caption: WideString read Get_Caption write Set_Caption;
property Color: OLE_COLOR read Get_Color write Set_Color;
property Font: IFontDisp read Get_Font write _Set_Font;
property KeyPreview: WordBool read Get_KeyPreview write Set_KeyPreview;
property PixelsPerInch: Integer read Get_PixelsPerInch write Set_PixelsPerInch;
property PrintScale: TxPrintScale read Get_PrintScale write Set_PrintScale;
property Scaled: WordBool read Get_Scaled write Set_Scaled;
property Active: WordBool read Get_Active;
property DropTarget: WordBool read Get_DropTarget write Set_DropTarget;
property HelpFile: WideString read Get_HelpFile write Set_HelpFile;
property DoubleBuffered: WordBool read Get_DoubleBuffered write Set_DoubleBuffered;
property Enabled: WordBool read Get_Enabled write Set_Enabled;
property BiDiMode: TxBiDiMode read Get_BiDiMode write Set_BiDiMode;
property Cursor: Smallint read Get_Cursor write Set_Cursor;
end;
// *********************************************************************//
// DispIntf: IXWizFormDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {DB9C324E-0D2A-11D2-B9F1-004845400FAA}
// *********************************************************************//
IXWizFormDisp = dispinterface
['{DB9C324E-0D2A-11D2-B9F1-004845400FAA}']
property Visible: WordBool dispid 1;
property AutoScroll: WordBool dispid 2;
property AutoSize: WordBool dispid 3;
property AxBorderStyle: TxActiveFormBorderStyle dispid 4;
property Caption: WideString dispid -518;
property Color: OLE_COLOR dispid -501;
property Font: IFontDisp dispid -512;
property KeyPreview: WordBool dispid 5;
property PixelsPerInch: Integer dispid 6;
property PrintScale: TxPrintScale dispid 7;
property Scaled: WordBool dispid 8;
property Active: WordBool readonly dispid 9;
property DropTarget: WordBool dispid 10;
property HelpFile: WideString dispid 11;
property DoubleBuffered: WordBool dispid 12;
property Enabled: WordBool dispid -514;
property BiDiMode: TxBiDiMode dispid 13;
property Cursor: Smallint dispid 14;
end;
// *********************************************************************//
// DispIntf: IXWizFormEvents
// Flags: (0)
// GUID: {DB9C3250-0D2A-11D2-B9F1-004845400FAA}
// *********************************************************************//
IXWizFormEvents = dispinterface
['{DB9C3250-0D2A-11D2-B9F1-004845400FAA}']
procedure OnActivate; dispid 1;
procedure OnClick; dispid 2;
procedure OnCreate; dispid 3;
procedure OnDblClick; dispid 4;
procedure OnDestroy; dispid 5;
procedure OnDeactivate; dispid 6;
procedure OnKeyPress(var Key: Smallint); dispid 10;
procedure OnPaint; dispid 15;
end;
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TXWizForm
// Help String : XWizForm Control
// Default Interface: IXWizForm
// Def. Intf. DISP? : No
// Event Interface: IXWizFormEvents
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TXWizFormOnKeyPress = procedure(Sender: TObject; var Key: Smallint) of object;
TXWizForm = class(TOleControl)
private
FOnActivate: TNotifyEvent;
FOnClick: TNotifyEvent;
FOnCreate: TNotifyEvent;
FOnDblClick: TNotifyEvent;
FOnDestroy: TNotifyEvent;
FOnDeactivate: TNotifyEvent;
FOnKeyPress: TXWizFormOnKeyPress;
FOnPaint: TNotifyEvent;
FIntf: IXWizForm;
function GetControlInterface: IXWizForm;
protected
procedure CreateControl;
procedure InitControlData; override;
public
property ControlInterface: IXWizForm read GetControlInterface;
property Visible: WordBool index 1 read GetWordBoolProp write SetWordBoolProp;
property Active: WordBool index 9 read GetWordBoolProp;
property DropTarget: WordBool index 10 read GetWordBoolProp write SetWordBoolProp;
property HelpFile: WideString index 11 read GetWideStringProp write SetWideStringProp;
property DoubleBuffered: WordBool index 12 read GetWordBoolProp write SetWordBoolProp;
property Enabled: WordBool index -514 read GetWordBoolProp write SetWordBoolProp;
property BiDiMode: TOleEnum index 13 read GetTOleEnumProp write SetTOleEnumProp;
published
property AutoScroll: WordBool index 2 read GetWordBoolProp write SetWordBoolProp stored False;
property AutoSize: WordBool index 3 read GetWordBoolProp write SetWordBoolProp stored False;
property AxBorderStyle: TOleEnum index 4 read GetTOleEnumProp write SetTOleEnumProp stored False;
property Caption: WideString index -518 read GetWideStringProp write SetWideStringProp stored False;
property Color: TColor index -501 read GetTColorProp write SetTColorProp stored False;
property Font: TFont index -512 read GetTFontProp write SetTFontProp stored False;
property KeyPreview: WordBool index 5 read GetWordBoolProp write SetWordBoolProp stored False;
property PixelsPerInch: Integer index 6 read GetIntegerProp write SetIntegerProp stored False;
property PrintScale: TOleEnum index 7 read GetTOleEnumProp write SetTOleEnumProp stored False;
property Scaled: WordBool index 8 read GetWordBoolProp write SetWordBoolProp stored False;
property Cursor: Smallint index 14 read GetSmallintProp write SetSmallintProp stored False;
property OnActivate: TNotifyEvent read FOnActivate write FOnActivate;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
property OnCreate: TNotifyEvent read FOnCreate write FOnCreate;
property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;
property OnDestroy: TNotifyEvent read FOnDestroy write FOnDestroy;
property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;
property OnKeyPress: TXWizFormOnKeyPress read FOnKeyPress write FOnKeyPress;
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
end;
procedure Register;
implementation
uses ComObj;
procedure TXWizForm.InitControlData;
const
CEventDispIDs: array [0..7] of DWORD = (
$00000001, $00000002, $00000003, $00000004, $00000005, $00000006,
$0000000A, $0000000F);
CTFontIDs: array [0..0] of DWORD = (
$FFFFFE00);
CControlData: TControlData = (
ClassID: '{DB9C3252-0D2A-11D2-B9F1-004845400FAA}';
EventIID: '{DB9C3250-0D2A-11D2-B9F1-004845400FAA}';
EventCount: 8;
EventDispIDs: @CEventDispIDs;
LicenseKey: nil;
Flags: $0000001D;
Version: 300;
FontCount: 1;
FontIDs: @CTFontIDs);
begin
ControlData := @CControlData;
end;
procedure TXWizForm.CreateControl;
procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as IXWizForm;
end;
begin
if FIntf = nil then DoCreate;
end;
function TXWizForm.GetControlInterface: IXWizForm;
begin
CreateControl;
Result := FIntf;
end;
procedure Register;
begin
RegisterComponents('ActiveX',[TXWizForm]);
end;
end.
XWIZF.PAS
unit XWizF;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, XWebWiz_TLB;
type
TXWizForm = class(TActiveForm, IXWizForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FEvents: IXWizFormEvents;
procedure ActivateEvent(Sender: TObject);
procedure ClickEvent(Sender: TObject);
procedure CreateEvent(Sender: TObject);
procedure DblClickEvent(Sender: TObject);
procedure DeactivateEvent(Sender: TObject);
procedure DestroyEvent(Sender: TObject);
procedure KeyPressEvent(Sender: TObject; var Key: Char);
procedure PaintEvent(Sender: TObject);
protected
{ Protected declarations }
procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
procedure EventSinkChanged(const EventSink: IUnknown); override;
function Get_Active: WordBool; safecall;
function Get_AutoScroll: WordBool; safecall;
function Get_AutoSize: WordBool; safecall;
function Get_AxBorderStyle: TxActiveFormBorderStyle; safecall;
function Get_BiDiMode: TxBiDiMode; safecall;
function Get_Caption: WideString; safecall;
function Get_Color: OLE_COLOR; safecall;
function Get_Cursor: Smallint; safecall;
function Get_DoubleBuffered: WordBool; safecall;
function Get_DropTarget: WordBool; safecall;
function Get_Enabled: WordBool; safecall;
function Get_Font: IFontDisp; safecall;
function Get_HelpFile: WideString; safecall;
function Get_KeyPreview: WordBool; safecall;
function Get_PixelsPerInch: Integer; safecall;
function Get_PrintScale: TxPrintScale; safecall;
function Get_Scaled: WordBool; safecall;
function Get_Visible: WordBool; safecall;
procedure _Set_Font(const Value: IFontDisp); safecall;
procedure Set_AutoScroll(Value: WordBool); safecall;
procedure Set_AutoSize(Value: WordBool); safecall;
procedure Set_AxBorderStyle(Value: TxActiveFormBorderStyle); safecall;
procedure Set_BiDiMode(Value: TxBiDiMode); safecall;
procedure Set_Caption(const Value: WideString); safecall;
procedure Set_Color(Value: OLE_COLOR); safecall;
procedure Set_Cursor(Value: Smallint); safecall;
procedure Set_DoubleBuffered(Value: WordBool); safecall;
procedure Set_DropTarget(Value: WordBool); safecall;
procedure Set_Enabled(Value: WordBool); safecall;
procedure Set_Font(const Value: IFontDisp); safecall;
procedure Set_HelpFile(const Value: WideString); safecall;
procedure Set_KeyPreview(Value: WordBool); safecall;
procedure Set_PixelsPerInch(Value: Integer); safecall;
procedure Set_PrintScale(Value: TxPrintScale); safecall;
procedure Set_Scaled(Value: WordBool); safecall;
procedure Set_Visible(Value: WordBool); safecall;
public
{ Public declarations }
procedure Initialize; override;
end;
implementation
uses ComObj, ComServ, WizForm;
{$R *.DFM}
{ TXWizForm }
procedure TXWizForm.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage);
begin
{ Define property pages here. Property pages are defined by calling
DefinePropertyPage with the class id of the page. For example,
DefinePropertyPage(Class_XWizFormPage); }
end;
procedure TXWizForm.EventSinkChanged(const EventSink: IUnknown);
begin
FEvents := EventSink as IXWizFormEvents;
end;
procedure TXWizForm.Initialize;
begin
inherited Initialize;
OnActivate := ActivateEvent;
OnClick := ClickEvent;
OnCreate := CreateEvent;
OnDblClick := DblClickEvent;
OnDeactivate := DeactivateEvent;
OnDestroy := DestroyEvent;
OnKeyPress := KeyPressEvent;
OnPaint := PaintEvent;
end;
function TXWizForm.Get_Active: WordBool;
begin
Result := Active;
end;
function TXWizForm.Get_AutoScroll: WordBool;
begin
Result := AutoScroll;
end;
function TXWizForm.Get_AutoSize: WordBool;
begin
Result := AutoSize;
end;
function TXWizForm.Get_AxBorderStyle: TxActiveFormBorderStyle;
begin
Result := Ord(AxBorderStyle);
end;
function TXWizForm.Get_BiDiMode: TxBiDiMode;
begin
Result := Ord(BiDiMode);
end;
function TXWizForm.Get_Caption: WideString;
begin
Result := WideString(Caption);
end;
function TXWizForm.Get_Color: OLE_COLOR;
begin
Result := OLE_COLOR(Color);
end;
function TXWizForm.Get_Cursor: Smallint;
begin
Result := Smallint(Cursor);
end;
function TXWizForm.Get_DoubleBuffered: WordBool;
begin
Result := DoubleBuffered;
end;
function TXWizForm.Get_DropTarget: WordBool;
begin
Result := DropTarget;
end;
function TXWizForm.Get_Enabled: WordBool;
begin
Result := Enabled;
end;
function TXWizForm.Get_Font: IFontDisp;
begin
GetOleFont(Font, Result);
end;
function TXWizForm.Get_HelpFile: WideString;
begin
Result := WideString(HelpFile);
end;
function TXWizForm.Get_KeyPreview: WordBool;
begin
Result := KeyPreview;
end;
function TXWizForm.Get_PixelsPerInch: Integer;
begin
Result := PixelsPerInch;
end;
function TXWizForm.Get_PrintScale: TxPrintScale;
begin
Result := Ord(PrintScale);
end;
function TXWizForm.Get_Scaled: WordBool;
begin
Result := Scaled;
end;
function TXWizForm.Get_Visible: WordBool;
begin
Result := Visible;
end;
procedure TXWizForm._Set_Font(const Value: IFontDisp);
begin
SetOleFont(Font, Value);
end;
procedure TXWizForm.Set_AutoScroll(Value: WordBool);
begin
AutoScroll := Value;
end;
procedure TXWizForm.Set_AutoSize(Value: WordBool);
begin
AutoSize := Value;
end;
procedure TXWizForm.Set_AxBorderStyle(Value: TxActiveFormBorderStyle);
begin
AxBorderStyle := TActiveFormBorderStyle(Value);
end;
procedure TXWizForm.Set_BiDiMode(Value: TxBiDiMode);
begin
BiDiMode := TBiDiMode(Value);
end;
procedure TXWizForm.Set_Caption(const Value: WideString);
begin
Caption := TCaption(Value);
end;
procedure TXWizForm.Set_Color(Value: OLE_COLOR);
begin
Color := TColor(Value);
end;
procedure TXWizForm.Set_Cursor(Value: Smallint);
begin
Cursor := TCursor(Value);
end;
procedure TXWizForm.Set_DoubleBuffered(Value: WordBool);
begin
DoubleBuffered := Value;
end;
procedure TXWizForm.Set_DropTarget(Value: WordBool);
begin
DropTarget := Value;
end;
procedure TXWizForm.Set_Enabled(Value: WordBool);
begin
Enabled := Value;
end;
procedure TXWizForm.Set_Font(const Value: IFontDisp);
begin
SetOleFont(Font, Value);
end;
procedure TXWizForm.Set_HelpFile(const Value: WideString);
begin
HelpFile := String(Value);
end;
procedure TXWizForm.Set_KeyPreview(Value: WordBool);
begin
KeyPreview := Value;
end;
procedure TXWizForm.Set_PixelsPerInch(Value: Integer);
begin
PixelsPerInch := Value;
end;
procedure TXWizForm.Set_PrintScale(Value: TxPrintScale);
begin
PrintScale := TPrintScale(Value);
end;
procedure TXWizForm.Set_Scaled(Value: WordBool);
begin
Scaled := Value;
end;
procedure TXWizForm.Set_Visible(Value: WordBool);
begin
Visible := Value;
end;
procedure TXWizForm.ActivateEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnActivate;
end;
procedure TXWizForm.ClickEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnClick;
Beep;
end;
procedure TXWizForm.CreateEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnCreate;
end;
procedure TXWizForm.DblClickEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnDblClick;
end;
procedure TXWizForm.DeactivateEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnDeactivate;
end;
procedure TXWizForm.DestroyEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnDestroy;
end;
procedure TXWizForm.KeyPressEvent(Sender: TObject; var Key: Char);
var
TempKey: Smallint;
begin
TempKey := Smallint(Key);
if FEvents <> nil then FEvents.OnKeyPress(TempKey);
Key := Char(TempKey);
end;
procedure TXWizForm.PaintEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnPaint;
end;
procedure TXWizForm.FormCreate(Sender: TObject);
begin
WizardForm := TWizardForm.Create (self);
WizardForm.Parent := self;
WizardForm.Align := alClient;
WizardForm.BorderStyle := bsNone;
WizardForm.Show;
end;
initialization
TActiveFormFactory.Create(
ComServer,
TActiveFormControl,
TXWizForm,
Class_XWizForm,
1,
'',
OLEMISC_SIMPLEFRAME or OLEMISC_ACTSLIKELABEL,
tmApartment);
end.
WIZFORM.PAS
unit WizForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls;
type
TWizardForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
Image1: TImage;
btnNext1: TButton;
btnNext2: TButton;
btnNext3: TButton;
btnNext4: TButton;
Bevel1: TBevel;
Label1: TLabel;
CheckInprise: TCheckBox;
btnBack: TButton;
Label2: TLabel;
Label3: TLabel;
CheckDone: TCheckBox;
Label4: TLabel;
Label5: TLabel;
CheckDone2: TCheckBox;
ListBox1: TListBox;
Label6: TLabel;
Label7: TLabel;
btnNext5: TButton;
procedure btnNext1Click(Sender: TObject);
procedure btnBackClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnNext2Click(Sender: TObject);
procedure btnNext3Click(Sender: TObject);
procedure btnNext4Click(Sender: TObject);
procedure btnNext5Click(Sender: TObject);
procedure LabelLinkClick(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
BackPages: TList;
public
procedure MoveTo (TabSheet: TTabSheet);
end;
var
WizardForm: TWizardForm;
implementation
{$R *.DFM}
uses
ShellApi;
procedure TWizardForm.btnNext1Click(Sender: TObject);
begin
if CheckInprise.Checked then
MoveTo (TabSheet2)
else
MoveTo (TabSheet3);
end;
procedure TWizardForm.btnBackClick(Sender: TObject);
var
LastPage: TTabSheet;
begin
// get the last page and jump to it
LastPage := TTabSheet (BackPages [BackPages.Count - 1]);
PageControl1.ActivePage := LastPage;
// delete the last page from the list
BackPages.Delete (BackPages.Count - 1);
// eventually disable the back button
BtnBack.Enabled := not (BackPages.Count = 0);
// move image and bevel
Bevel1.Parent := PageControl1.ActivePage;
Image1.Parent := PageControl1.ActivePage;
end;
procedure TWizardForm.FormCreate(Sender: TObject);
begin
BackPages := TList.Create;
end;
procedure TWizardForm.FormDestroy(Sender: TObject);
begin
BackPages.Free;
end;
procedure TWizardForm.MoveTo(TabSheet: TTabSheet);
begin
// add the last page to the list
BackPages.Add (PageControl1.ActivePage);
BtnBack.Enabled := True;
// change page
PageControl1.ActivePage := TabSheet;
// move image and bevel
Bevel1.Parent := PageControl1.ActivePage;
Image1.Parent := PageControl1.ActivePage;
end;
procedure TWizardForm.btnNext2Click(Sender: TObject);
begin
if CheckDone.Checked then
MoveTo (TabSheet5)
else
MoveTo (TabSheet3);
end;
procedure TWizardForm.btnNext3Click(Sender: TObject);
begin
if CheckDone.Checked then
MoveTo (TabSheet5)
else
MoveTo (TabSheet4);
end;
procedure TWizardForm.btnNext4Click(Sender: TObject);
begin
MoveTo (TabSheet5);
end;
procedure TWizardForm.btnNext5Click(Sender: TObject);
begin
Close;
end;
procedure TWizardForm.LabelLinkClick(Sender: TObject);
var
Caption, StrUrl: string;
begin
Caption := (Sender as TLabel).Caption;
StrUrl := Copy (Caption, Pos ('www.', Caption), 100);
ShellExecute (Handle, 'open', PChar (StrUrl), '', '', sw_Show);
end;
procedure TWizardForm.ListBox1Click(Sender: TObject);
var
StrUrl: string;
begin
StrUrl := ListBox1.Items [ListBox1.ItemIndex];
ShellExecute (Handle, 'open', PChar (StrUrl), '', '', sw_Show);
end;
end.
XWIZF.DFM
object XWizForm: TXWizForm
Left = 192
Top = 107
Width = 451
Height = 363
Caption = 'XWizForm'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
end
WIZFORM.DFM
object WizardForm: TWizardForm
Left = 213
Top = 134
Width = 470
Height = 259
Caption = 'WizardUI'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object PageControl1: TPageControl
Left = 0
Top = 0
Width = 462
Height = 232
ActivePage = TabSheet1
Align = alClient
TabHeight = 1
TabOrder = 0
object TabSheet1: TTabSheet
Caption = 'TabSheet1'
TabVisible = False
object Bevel1: TBevel
Left = 8
Top = 32
Width = 175
Height = 153
end
object Image1: TImage
Left = 16
Top = 40
Width = 153
Height = 139
AutoSize = True
Picture.Data = {...skipped...}
end
object Label1: TLabel
Left = 224
Top = 32
Width = 92
Height = 13
Caption = 'Delphi Web Wizard'
end
object btnNext1: TButton
Left = 368
Top = 184
Width = 75
Height = 25
Caption = 'Next'
TabOrder = 0
OnClick = btnNext1Click
end
object CheckInprise: TCheckBox
Left = 224
Top = 80
Width = 169
Height = 25
Caption = 'About Borland/Inprise site'
TabOrder = 1
end
end
object TabSheet2: TTabSheet
Caption = 'TabSheet2'
ImageIndex = 1
TabVisible = False
object Label2: TLabel
Left = 224
Top = 24
Width = 128
Height = 13
Cursor = crHandPoint
Caption = 'Main site: www.inprise.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsUnderline]
ParentFont = False
OnClick = LabelLinkClick
end
object Label3: TLabel
Left = 224
Top = 48
Width = 149
Height = 13
Cursor = crHandPoint
Caption = 'Delphi: www.inprise.com/delphi'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsUnderline]
ParentFont = False
OnClick = LabelLinkClick
end
object btnNext2: TButton
Left = 368
Top = 184
Width = 75
Height = 25
Caption = 'Next'
TabOrder = 0
OnClick = btnNext2Click
end
object CheckDone: TCheckBox
Left = 224
Top = 88
Width = 97
Height = 17
Caption = 'Done'
TabOrder = 1
end
end
object TabSheet3: TTabSheet
Caption = 'TabSheet3'
ImageIndex = 2
TabVisible = False
object Label4: TLabel
Left = 224
Top = 32
Width = 145
Height = 13
Cursor = crHandPoint
Caption = 'My site: www.marcocantu.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsUnderline]
ParentFont = False
OnClick = LabelLinkClick
end
object Label5: TLabel
Left = 224
Top = 64
Width = 126
Height = 13
Cursor = crHandPoint
Caption = 'Publisher: www.sybex.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsUnderline]
ParentFont = False
OnClick = LabelLinkClick
end
object btnNext3: TButton
Left = 368
Top = 184
Width = 75
Height = 25
Caption = 'Next'
TabOrder = 0
OnClick = btnNext3Click
end
object CheckDone2: TCheckBox
Left = 224
Top = 104
Width = 97
Height = 17
Caption = 'Done'
TabOrder = 1
end
end
object TabSheet4: TTabSheet
Caption = 'TabSheet4'
ImageIndex = 3
TabVisible = False
object Label6: TLabel
Left = 224
Top = 16
Width = 51
Height = 13
Caption = 'More sites:'
end
object btnNext4: TButton
Left = 368
Top = 184
Width = 75
Height = 25
Caption = 'Next'
TabOrder = 0
OnClick = btnNext4Click
end
object ListBox1: TListBox
Left = 224
Top = 40
Width = 193
Height = 121
Cursor = crHandPoint
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsUnderline]
ItemHeight = 13
Items.Strings = (
'www.drbob42.com'
'www.iunknown.com'
'www.EckelObjects.com'
'www.informant.com'
'www.itecuk.com'
'sunsite.icm.edu.pl/delphi'
'www.delphiexchange.com')
ParentFont = False
TabOrder = 1
OnClick = ListBox1Click
end
end
object TabSheet5: TTabSheet
Caption = 'TabSheet5'
ImageIndex = 4
TabVisible = False
object Label7: TLabel
Left = 224
Top = 32
Width = 175
Height = 26
Caption =
'That''s all the information provided by the wizard. Thanks for us' +
'ing it.'
WordWrap = True
end
object btnNext5: TButton
Left = 368
Top = 184
Width = 75
Height = 25
Caption = 'Finish'
TabOrder = 0
Visible = False
OnClick = btnNext5Click
end
end
end
object btnBack: TButton
Left = 280
Top = 190
Width = 75
Height = 25
Caption = 'Back'
Enabled = False
TabOrder = 1
OnClick = btnBackClick
end
end
Copyright Marco Cantù 1998