喫茶XRAYトップページ

[スレッド全体
]

[4078] Re8:スクロールバーの制御(解決)返信 削除
2010/12/25 (土) 20:44:13 Sara
▼ たてぐやさん こんばんは

横レスです。

procedure TForm2.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
  APos : TPoint;
  cmpFind  : TWinControl;
begin
    GetCursorPos(APos);
    cmpFind := FindVCLWindow(APos);
    if cmpFind is TMemo then begin
      if WheelDelta > 0 then begin
        cmpFind.Perform(EM_SCROLL,SB_LINEUP,0);
      end else begin
        CmpFind.Perform(EM_SCROLL,SB_LINEDOWN,0);
      end;
    end;

    if cmpFind is TListView then begin
      if WheelDelta > 0 then begin
        cmpFind.Perform(WM_VSCROLL, SB_LINEUP,0);
      end else begin
        cmpFind.Perform(WM_VSCROLL, SB_LINEDOWN,0);
      end;
    end;
    Handled := true;
end;

こんなのもあります・・・Delphi6で使えるかは不明(^^;

[4079] Re9:スクロールバーの制御(解決)返信 削除
2010/12/25 (土) 20:48:54 Sara
▼ たてぐやさん こんばんは
 procedure TForm2.FormMouseWheel(Sender: TObject; Shift: TShiftState;
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
 var
   APos : TPoint;
   cmpFind  : TWinControl;
 begin
     GetCursorPos(APos);
     cmpFind := FindVCLWindow(APos);
 
     if (cmpFind is TListView) or (cmpFind is TMemo) then begin
       if WheelDelta > 0 then begin
         cmpFind.Perform(WM_VSCROLL, SB_LINEUP,0);
       end else begin
         cmpFind.Perform(WM_VSCROLL, SB_LINEDOWN,0);
       end;
     end;
     Handled := true;
 end;
 
だけでもできますね・・・(^^; あいかわらず、Delphi6で使えるかは不明(--;

[4080] Re10:スクロールバーの制御(解決)返信 削除
2010/12/25 (土) 21:13:55 たてぐや
▼ Saraさん

> だけでもできますね・・・(^^; あいかわらず、Delphi6で使えるかは不明(--;

 Delphi6で動作確認できました。ありがとうございます。
 勉強になるなぁ。

[4081] Re11:スクロールバーの制御(解決)返信 削除
2010/12/25 (土) 23:46:06 Mr.XRAY
▼ たてぐやさん
▼ Saraさん

なるほど,TWinControlですからね.
WM_XXX メッセージで全部できますよね.
FindVCLWindowというのもいいですね.
勉強になりますです.ハイ.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82