TEmbeddedWB
컨트롤에서 기본 편집 작업이 작동하지 않습니다. 해당 구성 요소는 TCustomEdit
에서 나옵니다. TEditAction
, TEditSelectAll
은에서 내려오고 TCustomEdits
을 처리하는 방법 만 알고 있습니다.
이 동작을 무시하는 동작의 이벤트는 OnUpdate
및 OnExecute
이벤트를 사용하십시오. 기본 동작은 무시되므로 수동으로 구현하십시오. 다음은 TEditSelectAll
작업의 예입니다.
procedure TForm1.EditSelectAll1Update(Sender: TObject);
begin
EditSelectAll1.Enabled := (Screen.ActiveControl is TEmbeddedWB) or
EditSelectAll1.HandlesTarget(ActiveControl)
end;
procedure TForm1.EditSelectAll1Execute(Sender: TObject);
begin
if ActiveControl is TEmbeddedWB then
TEmbeddedWB(Screen.ActiveControl).SelectAll
else
EditSelectAll1.ExecuteTarget(Screen.ActiveControl);
end;
또는이 사용자 정의 동작을 중앙 집중화하기 위해 동일 ACTIONLIST의 이벤트 (또는 ApplicationEvents 구성 요소의 OnActionUpdate
및 OnActionExecute
)를 사용 : 그냥이 처리하는 데 필요한 것처럼
procedure TForm1.ActionList1Update(Action: TBasicAction; var Handled: Boolean);
begin
if Action is TEditAction then
begin
TCustomAction(Action).Enabled := (Screen.ActiveControl is TEmbeddedWB) or
Action.HandlesTarget(Screen.ActiveControl);
Handled := True;
end;
end;
procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
if (Action is TEditSelectAll) and (Screen.ActiveControl is TEmbeddedWB) then
begin
TEmbeddedWB(Screen.ActiveControl).SelectAll;
Handled := True;
end;
end;
덕분에,이 모습을. – Coder12345