掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TListView のスクロール量(ピクセル値)の取得について (ID:26806)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、ひろ と申します。 TListViewでExcelの抽出機能のようなものを自前で作って見たのですが スクロールすると正常な位置(クリックされたカラムの左側を合わせる)に 抽出フォームが表示されません。(スクロールしなければ問題ありません) Q1. ListViewの横スクロール量をピクセル値で取得するにはどうすればよいでしょうか? Q2. ListViewのヘッダーカラムの高さはどのように取得するのでしょうか? 以上、宜しくお願いします。 procedure TfrmMain.ListViewColumnClick(Sender: TObject; Column: TListColumn); var Pt, DlgPt: TPoint; ColLeft: Integer; ScrollPos: Integer; begin //ListViewのスクロール位置の取得 ScrollPos := GetScrollPos(ListView.Handle, SB_HORZ); //クリックされたカラムの左側座標の取得 ColLeft := GetColumnLeft(Column.Index-1); //ListViewのクライアント領域座標をグローバルな画面座標に変換 Pt := ListView.ClientToScreen(Point(ColLeft, 0)); //DlgPt.X := Pt.X + ScrollPos; ←ListViewの横Scroll量(ピクセル値)? //DlgPt.Y := Pt.Y+17 ←17は固定でカラム高さを足しています //抽出ダイアログの表示 with frmDlgExtract do begin Left := DlgPt.X; Top := DlgPt.Y; ShowModel; end; end; //クリックされたカラムの左側座標の取得 function TfrmMain.GetColumnLeft(ColIndex: Integer): Integer; var i: Integer; begin Result := 0; for i:=0 to ColIndex do Result := Result + ListView.Columns[i].Width; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.