好久没来CSDN了,都不认识了。我想我这个贴子应该发在这吧?
以前一直用BCB,现在为了饭碗问题,不得不改用Delphi,遇到了一个问题,请大家指教:
我用Delphi做了一个Active Form,然后在另一个Delphi工程中使用了这个Active Form(用Componet->Import ActiveX Control,就象使用其它ActiveX控件一样),在我的Active Form上有很多Edit,可是我有能用Tab键在Edit中切换了,而且在一个Edit中也不能用方向键移动光标了!在BCB中我没遇到过这个问题。不知道该怎么解决?

解决方案 »

  1.   

    我也遇到过这个问题,我是这样解决的:
    procedure TMainForm.FormCreate(Sender: TObject);//放置ActiveForm的窗体的OnCreate事件
    var
      CtrlComponentState: PComponentState;
    begin
      CtrlComponentState := @(MyCtrl.ComponentState);//假设你的ActiveForm类型的变量名是MyCtrl;
      Include(CtrlComponentState^, csDesigning);
    end;解释一下:
    我发现ActiveForm放到窗体上时在设计期是可以用<tab>键和<方向键>的,就想出了这种方法,把控件的ComponentState中加上csDesigning属性。不过由于ComponentState是一个只读属性,不能直接修改它的值,所以有了以上的古怪方法(这种修改只读属性的方法是跟《Delphi未证实的葵花宝典》学的)。
    我觉得这种方法很有点“旁门左道”的味道,不过还没发现什么问题。不过还是希望有高手用正规方法来解决这个问题。
    我用的Delphi是Delphi 6.0,Update Pack 2。