button的default,cancel两个属性可以实现用enter执行确认esc执行取消,speedbutton如何能够实现那功能

解决方案 »

  1.   

    试试这个看。type TActionListU = class(TActionList);
    type TActionU = class(TAction);procedure TForm1.UF_FormInit;
    var
        laul_ActionList: TActionListU;
        lau_Action: TActionU;
    begin
        laul_ActionList := TActionListU.Create(self);    lau_Action := TActionU.Create(laul_ActionList);
        //lau_Action.ShortCut :=Menus.ShortCut(Word('O'), [ssCtrl]);
        lau_Action.ShortCut := Menus.ShortCut(VK_ESCAPE, []);
        lau_Action.OnExecute := Button1.OnClick;
        laul_ActionList.AddAction(lau_Action);    lau_Action := TActionU.Create(laul_ActionList);
        //lau_Action.ShortCut :=Menus.ShortCut(Word('O'), [ssCtrl]);
        lau_Action.ShortCut := Menus.ShortCut(VK_RETURN, []);
        lau_Action.OnExecute := Button2.OnClick;
        laul_ActionList.AddAction(lau_Action);
    end;