掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
PageControlの右端のタブを削除したときアクティブタブを右端にするには。 (ID:33293)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WindowsXP Delphi6personalです。 基本的なことですが解りません。 Pagecontrolで動的に複数のタブを作成し、右端のタブを削除すると 左端の0番のタブがアクティブになります。 途中のタブを削除するとアクティブ番号が同じタブをアクティブにします。 仕様だと思いますが、右端のタブを削除したら次にやはり右端のタブを アクティブにしたいので PageControl1.ActivePageIndex:=PageControl1.PageCount-1; で強制的に戻していますが、 リソースの残りが少なかったりタブを削除するのに少し時間のかかるような コントロールなどを貼り付けて動きが重いときは、 はっきり、いったん0番をアクティブにしてから 右端をアクティブにするのが目に見えます。(画面の揺らぎの原因にもなります) 途中のタブを削除したときのようにスムースにする方法があるでしょうか。 下記はボタンと2個とPageControlを貼り付けただけのテストコードです。 //新規ページ作成 procedure TForm1.Button1Click(Sender: TObject); begin with TTabSheet.Create(PageControl1) do begin PageControl := PageControl1; Name := 'ts' + inttostr(Form1.PageControl1.PageCount); Caption := inttostr(Form1.PageControl1.PageCount); end; end; //タブの削除(右端のタブを削除すると左端のタブがアクティブになる) procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin i:=PageControl1.ActivePageIndex; PageControl1.Pages[i].Free; //PageControl1.ActivePageIndex:=PageControl1.PageCount-1;//強制的に右端に戻す end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.