lcl: start implementation of TApplication.HelpCommand method, remove InvokeHelp private method

git-svn-id: trunk@20822 -
This commit is contained in:
paul 2009-07-11 05:45:37 +00:00
parent 96ecfcf61f
commit 9cd1098625
2 changed files with 29 additions and 31 deletions

View File

@ -378,7 +378,7 @@ type
TCloseEvent = procedure(Sender: TObject; var CloseAction: TCloseAction) of object;
TCloseQueryEvent = procedure(Sender : TObject; var CanClose : boolean) of object;
TDropFilesEvent = procedure (Sender: TObject; const FileNames: Array of String) of object;
THelpEvent = function(Command: Word; Data: Longint; var CallHelp: Boolean): Boolean of object;
THelpEvent = function(Command: Word; Data: PtrInt; var CallHelp: Boolean): Boolean of object;
TShortCutEvent = procedure (var Msg: TLMKey; var Handled: Boolean) of object;
TCustomForm = class(TScrollingWinControl)
@ -1152,7 +1152,6 @@ type
function GetTitle: string;
procedure FreeIconHandles;
procedure IconChanged(Sender: TObject);
function InvokeHelp(Command: Word; Data: Longint): Boolean;
function GetControlAtMouse: TControl;
procedure SetBidiMode ( const AValue : TBiDiMode ) ;
procedure SetFlags(const AValue: TApplicationFlags);
@ -1185,6 +1184,7 @@ type
procedure NotifyDeactivateHandler;
procedure NotifyCustomForms(Msg: Word);
function IsHintMsg(var Msg: TMsg): Boolean;
function DoOnHelp(Command: Word; Data: PtrInt; var CallHelp: Boolean): Boolean; virtual;
procedure DoOnMouseMove; virtual;
procedure ShowHintWindow(const Info: THintInfoAtMouse);
procedure OnHintTimer(Sender: TObject);
@ -1213,6 +1213,7 @@ type
function UpdateAction(TheAction: TBasicAction): Boolean; override;
procedure HandleException(Sender: TObject); override;
procedure HandleMessage;
function HelpCommand(Command: Word; Data: PtrInt): Boolean;
function HelpContext(Sender: TObject; const Position: TPoint;
Context: THelpContext): Boolean;
function HelpContext(Context: THelpContext): Boolean;

View File

@ -414,42 +414,20 @@ begin
end;
end;
{------------------------------------------------------------------------------
function TApplication.InvokeHelp(Command: Word; Data: Longint): Boolean;
------------------------------------------------------------------------------}
function TApplication.InvokeHelp(Command: Word; Data: Longint): Boolean;
function TApplication.HelpCommand(Command: Word; Data: Longint): Boolean;
var
CallHelp: Boolean;
ActiveForm: TCustomForm;
i: LongInt;
begin
Result := False;
CallHelp := True;
ActiveForm := Screen.ActiveCustomForm;
{ let existing hooks get called, if any. }
if Assigned(ActiveForm) and Assigned(ActiveForm.FOnHelp) then
Result := ActiveForm.FOnHelp(Command, Data, CallHelp)
else if Assigned(FOnHelp) then begin
Result := FOnHelp(Command, Data, CallHelp);
i:=FApplicationHandlers[ahtHelp].Count;
while (not Result) and (FApplicationHandlers[ahtHelp].NextDownIndex(i)) do
Result:=THelpEvent(FApplicationHandlers[ahtHelp][i])(Command, Data, CallHelp);
end;
Result := DoOnHelp(Command, Data, CallHelp);
if CallHelp then begin
if Assigned(ActiveForm) and ActiveForm.HandleAllocated
and (ActiveForm.FHelpFile <> '') then
begin
if Result then
Exit;
end
else
if HelpFile <> '' then
begin
end else begin
end;
if CallHelp then
begin
// TODO: call help
end;
end;
@ -644,6 +622,25 @@ begin
Result := False;
end;
function TApplication.DoOnHelp(Command: Word; Data: PtrInt; var CallHelp: Boolean): Boolean;
var
ActiveForm: TCustomForm;
i: LongInt;
begin
ActiveForm := Screen.ActiveCustomForm;
if Assigned(ActiveForm) and Assigned(ActiveForm.FOnHelp) then
Result := ActiveForm.FOnHelp(Command, Data, CallHelp)
else
if Assigned(FOnHelp) then
begin
Result := FOnHelp(Command, Data, CallHelp);
i := FApplicationHandlers[ahtHelp].Count;
while (not Result) and (FApplicationHandlers[ahtHelp].NextDownIndex(i)) do
Result := THelpEvent(FApplicationHandlers[ahtHelp][i])(Command, Data, CallHelp);
end;
end;
{------------------------------------------------------------------------------
procedure TApplication.DoOnMouseMove;