| Class TBaseInstallDlg (unit Instdlg) |
Ancestors MUST have an overriding implementation of DoExternalComponentCall
| Constructors |
constructor Create(AOwner: TComponent);| Functions |
destructor Destroy;
procedure Loaded;
procedure DoCancelClick(Sender: TObject);
procedure DoExternalComponentCall(Install: TInstall;ComponentCall: String;PO: TObject);
procedure DoInstallClick(Sender: TObject);
procedure SetDialogText(Value: TStrings);
procedure SetThemeBitmap(Value: TBitmap);| Properties |
property DialogText : TStrings
property InstallComponent :
property OverwriteText : Boolean
property ThemeBitmap : TBitmap| Events |
event OnInstallClick : TContinueEvent| Variables |
PreviousExternalComponentCall : TExternalComponentCall;
WrappingDialog : TForm;
FDialogText : TStrings;
FInstallClickEvent : TContinueEvent;
FOverwriteText : Boolean;
FThemeBitmap : TBitmap;| Constructors |
constructor Create(AOwner: TComponent);Published declarations
| Functions |
destructor Destroy;Register this as a dialog
procedure Loaded;In case we somehow get "freed", we do not want to create a gap in the "back-chaining", so we will relinquish control of the event handler to the component that took it before us... A fair shake if I may say so myself.
procedure DoCancelClick(Sender: TObject);This must always go here... If we have more than one component intercepting this event, then we must "back-chain" the event calls. I.e., we will know call the event that we was previously assigned to the ExternalComponentCall event of the TInstall, if there was one. Also, ancestor must always call the inherited DoExternalComponentCall (i.e. this)
procedure DoExternalComponentCall(Install: TInstall;ComponentCall: String;PO: TObject);
procedure DoInstallClick(Sender: TObject);
procedure SetDialogText(Value: TStrings);Well, we want to be able to intercept "external component calls" made by the TInstall componet (or for that matter, any component that is installing itself). To do this we assign an event handler to the ExternalComponentCall event of the TInstall component. However, there will probably be components before us that also want to handle the event. So what we do here is remember who was before us so that when it is our turn to handle the event, we will be "unselfish" and let the person before us call handle the event and after he/she/it is done, we will call our event handler. In essence, we have a "back-chaining" of this event call.
procedure SetThemeBitmap(Value: TBitmap);| Properties |
property DialogText : TStringsPublic declarations
property InstallComponent :
property OverwriteText : Boolean
property ThemeBitmap : TBitmap| Events |
event OnInstallClick : TContinueEventEvents
| Variables |
PreviousExternalComponentCall : TExternalComponentCall;
WrappingDialog : TForm;Protected declarations
FDialogText : TStrings;Private declarations
FInstallClickEvent : TContinueEvent;Events
FOverwriteText : Boolean;
FThemeBitmap : TBitmap;