2

LazarusとDelphiの両方にタグを付けました。これまでに行ったことすべてについて、どちらも類似している(100%)ようです。しかし、私の開発プラットフォームはLazarusです。

次のようなタブシートを動的に作成しています。

procedure TForm1.cmdTabButtonClick(Sender: TObject);
var
  NewTab: TTabSheet;
begin
  NewTab := TTabSheet.Create(PageControl1);
  NewTab.PageControl:= PageControl1;
  NewTab.Caption:='hi';
//  NewTab.TabVisible:=true;
//  newtab.SetFocus;
end;

手順の最後の2行はコメント化されています。それらがないとコードは機能しますが、新しいタブは一番上にありません。それを上に表示するには、クリックする必要があります。

しかし、これらの2行のコメントを外すと、プログラムがクラッシュし、非表示のオブジェクトにフォーカスを設定できないことを示します。

これを修正する方法について何かアドバイスはありますか?

どうもありがとう!

4

2 に答える 2

3

ActivePageページ コントロールのプロパティを設定する必要があります。このような:

PageControl.ActivePage := NewTab;
于 2012-12-10T10:41:04.580 に答える
3

PageControl には、これに使用できるプロパティActivePageとがあります。この場合、呼び出すだけでよいため、最も便利なものです。ActivePageIndexActivePage

PageControl1.ActivePage := NewTab;
于 2012-12-10T10:41:16.930 に答える