BSOne.SFC/Tocsg.Module/ContextAwarePolicy/FCaPolicyTaskCate.pas

93 lines
2.5 KiB
Plaintext

unit FCaPolicyTaskCate;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons, FCaPolicySel,
Define, Vcl.ExtCtrls, ManagerCaPolicy, FCaPolicyTaskSel;
type
TFrmCaPolicyTaskCate = class(TFrame)
pnClient: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
private
{ Private declarations }
FrmCaPolicyTaskSel_: TFrmCaPolicyTaskSel;
SelCaKind_: TCaTaskKind;
procedure CreateCaPolicySel(nCate: Integer);
public
{ Public declarations }
Constructor Create(aOwner: TComponent); override;
procedure process_WM_CAPOLICY_DLG_OK(var msg: TMessage); Message WM_CAPOLICY_DLG_OK;
procedure process_WM_CAPOLICY_DLG_CANCEL(var msg: TMessage); Message WM_CAPOLICY_DLG_CANCEL;
property SelectedCaKind: TCaTaskKind read SelCaKind_;
end;
implementation
{$R *.dfm}
Constructor TFrmCaPolicyTaskCate.Create(aOwner: TComponent);
begin
Inherited Create(aOwner);
SelCaKind_ := ctkUnknown;
FrmCaPolicyTaskSel_ := nil;
end;
procedure TFrmCaPolicyTaskCate.CreateCaPolicySel(nCate: Integer);
begin
if FrmCaPolicyTaskSel_ = nil then
begin
FrmCaPolicyTaskSel_ := TFrmCaPolicyTaskSel.Create(Self);
FrmCaPolicyTaskSel_.Parent := Self;
FrmCaPolicyTaskSel_.Align := alClient;
FrmCaPolicyTaskSel_.RefreshPolicy(nCate);
FrmCaPolicyTaskSel_.Visible := true;
pnClient.Visible := false;
end;
end;
procedure TFrmCaPolicyTaskCate.SpeedButton1Click(Sender: TObject);
begin
if Sender is TSpeedButton then
CreateCaPolicySel(TSpeedButton(Sender).Tag);
end;
procedure TFrmCaPolicyTaskCate.SpeedButton7Click(Sender: TObject);
begin
if (Owner <> nil) and (Owner is TWinControl) then
PostMessage(TWinControl(Owner).Handle, WM_CAPOLICY_DLG_CANCEL, 0, 0);
end;
procedure TFrmCaPolicyTaskCate.process_WM_CAPOLICY_DLG_OK(var msg: TMessage);
begin
if (Owner <> nil) and (Owner is TWinControl) then
begin
SelCaKind_ := FrmCaPolicyTaskSel_.SelectedCaKind;
PostMessage(TWinControl(Owner).Handle, WM_CAPOLICY_DLG_OK, 0, 0);
end;
end;
procedure TFrmCaPolicyTaskCate.process_WM_CAPOLICY_DLG_CANCEL(var msg: TMessage);
begin
if FrmCaPolicyTaskSel_ <> nil then
begin
pnClient.Visible := true;
FreeAndNil(FrmCaPolicyTaskSel_);
end;
end;
end.