掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
タブコントロールのタブをドラッグして並び換えるには? (ID:24362)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ついでに乗っからせてください。 べたな処理のため,使うことは断念していたのですが,だいぶ前に挿入 先に黒い縦線を引っ張るサンプルを作っていました(IDEのようなやつで す。)。参考までに載せてみます。 知識のある方は,まずい点等がありましたらご指摘くださると幸いです。 var AIndex: Integer; procedure TForm1.TabControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin TabControl1.BeginDrag(False); end; procedure TForm1.TabControl1DragDrop(Sender, Source: TObject; X, Y: Integer); var i: Integer; begin if not (Sender is TTabControl) then exit; i := TabControl1.IndexOfTabAt(X, Y); TabControl1.Tabs.Move(TabControl1.TabIndex, i); end; procedure TForm1.TabControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var Index, i: Integer; R: TRect; begin if Sender is TTabControl then Accept := True; Index := TabControl1.TabIndex; i := TabControl1.IndexOfTabAt(X, Y); R := TabControl1.TabRect(i); if AIndex <> i then begin AIndex := i; //↓これを何とかしたかった。 TabControl1.Repaint; end; if i = Index then exit; TabControl1.Canvas.Brush.Color := clBlack; if Index < AIndex then begin R.Right := R.Right + 1; R.Left := R.Right - 4; TabControl1.Canvas.FillRect(R); end else begin R.Left := R.Left - 1; R.Right := R.Left + 4; TabControl1.Canvas.FillRect(R); end; end; procedure TForm1.TabControl1EndDrag(Sender, Target: TObject; X, Y: Integer); begin TabControl1.Repaint; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.