掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TPageControlで選択されようとしているタブは? (ID:19777)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> その必要は無いです。 > VK_RETURN で TabCtrl_GetCurFocus マクロを使えば、 > フォーカスのあるタブのインデックスが返ります。 なんと! そういうものがあったのですね。 奥が深い・・・「TabCtrl_GetCurFocus」でググっても、海外サイトしかみつかりません。 で、Basserさんの元のソースを、以下のように修正しました。 これで、概ね希望通りの動作のような感じです。 しばらく、これで様子を見てみます。 ありがとうございました。 [追加] CanTabChange: Boolean; //True:タブ変更可能 OnMouseClick: Boolean; //True:マウスクリックである [変更] procedure TForm1.PgCtrlProc(var Message: TMessage); type PTCKeyDown = ^TTCKeyDown; var NextTab: Integer; Pt: TPoint; begin if (Message.Msg = CN_NOTIFY) then begin case PNMHdr(Message.LParam)^.code of NM_CLICK:begin OnMouseClick := True; end; TCN_SELCHANGE:begin CanTabChange := False; end; TCN_SELCHANGING: begin if OnMouseClick then begin GetCursorPos(Pt); Pt:= ScreenToClient(Pt); NextTab:= PageControl1.IndexOfTabAt(Pt.x, Pt.y); end else begin NextTab := TabCtrl_GetCurFocus(PageControl1.Handle); end; OnMouseClick := False; CanTabChange := Abs(PageControl1.ActivePageIndex - NextTab) = 1; end; end; end; FDefProc(Message); end; procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean); begin AllowChange := CanTabChange; //現在の選択タブを戻す、 //これがないと、移動しようとしたタブボタンが凹んだまま TabCtrl_SetCurFocus(PageControl1.Handle, PaeControl1.ActivePageIndex); end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.