Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

delphi-ide-scroll

Mouse-wheel scroll direction utility for the Delphi IDE form designer (wheel = vertical, Ctrl+wheel = horizontal, adjustable sensitivity).

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

IDEScroll

한국어 | English

델파이 IDE 폼 디자이너의 마우스 휠 스크롤 방향을 바꿔주는 작은 유틸리티입니다. 큰 폼을 디자인할 때 휠로 세로, Ctrl+휠로 가로로 빠르게 스크롤할 수 있습니다.

기능

  • 휠 → 세로 스크롤
  • Ctrl + 휠 → 가로 스크롤
  • 세로 / 가로 스크롤 감도 개별 조정 (휠 1노치당 스크롤할 줄 수)
  • 감도 설정은 실행 파일 옆 IDEScroll.ini 에 자동 저장 / 복원

작동 원리

  • Windows 저수준 마우스 훅(WH_MOUSE_LL)을 사용합니다. IDE 프로세스에 인젝션하지 않으므로 Delphi / C++Builder 버전·비트수와 무관하게 동작합니다.
  • 커서 아래 창에서 부모를 거슬러 올라가 폼 디자이너 컨테이너 창(TFormContainerForm)을 찾고, 휠 이벤트를 WM_VSCROLL / WM_HSCROLL 메시지로 변환해 전달합니다.
  • 디자이너 위가 아닐 때는 휠 동작에 전혀 개입하지 않습니다.

다운로드

Releases 에서 IDEScroll.exe 를 받으세요. 별도 설치가 필요 없는 단일 실행 파일입니다.

사용법

  1. IDEScroll.exe 실행
  2. 후킹 시작 버튼 클릭 (또는 Enter)
  3. 세로 / 가로 감도를 원하는 값으로 조정
  4. Delphi IDE 폼 디자이너에서 휠(세로) / Ctrl+휠(가로) 사용
  5. 다시 버튼을 누르면 후킹이 중지됩니다. 종료 시 감도 설정이 저장됩니다.

백그라운드에서 계속 동작하도록 두려면 프로그램을 띄워둔 채로 후킹을 켜 두면 됩니다.

두 가지 형태

형태 설명 타깃
스탠드얼론 EXE 별도 실행 파일. 켜고 끄는 UI + 감도 설정 제공 Win64
IDE 패키지 (.bpl) IDE에 설치하면 자동 후킹 + 도킹형 미니맵 제공 Win32 (IDE가 32비트 프로세스)

패키지 버전의 감도는 %APPDATA%\IDEScroll\IDEScroll.ini 에서 조정합니다(첫 실행 시 기본값으로 생성).

패키지 설치

  1. build-bpl.cmd 로 빌드 → bin\IDEScrollPkg370.bpl 생성 (Delphi 13.0 기준; 13.1 IDE에서 빌드하면 ...371.bpl)
  2. IDE 메뉴 Component → Install Packages → Add 에서 해당 .bpl 선택
  3. 설치 후 IDE 디자이너에서 휠 / Ctrl+휠 사용 (별도 실행 불필요)

자세한 빌드·설치 절차는 패키지 빌드 가이드 를 참고하세요.

미니맵 (IDE 패키지 전용)

IDE 패키지를 설치하면 View 메뉴 → IDEScroll Minimap 으로 도킹 가능한 미니맵 창을 열 수 있습니다. ToolsAPI 도킹 폼(INTACustomDockableForm)으로 구현되어 다른 IDE 창처럼 자유롭게 도킹/플로팅할 수 있습니다.

IDEScroll 미니맵이 RAD Studio IDE에 도킹된 모습

  • 폼 디자이너의 전체 스크롤 영역을 축소해 폼 콘텐츠와 함께 보여주고, 현재 보이는 영역을 반투명 강조 박스로 표시합니다.
  • 강조 박스를 드래그/드롭하거나, 미니맵 위에서 마우스 휠(세로) / Ctrl+휠(가로)을 굴리면 디자이너가 그 위치로 스크롤됩니다. 박스 바깥을 클릭하면 그 지점으로 즉시 이동합니다.
  • 폼에서 컨트롤을 추가/이동/삭제하면 미니맵이 자동 갱신됩니다(디자인 알림 기반, 디바운스 재캡처).
  • IDE 테마(라이트/다크)에 맞춰 색이 적용됩니다.
  • 마지막 도킹/플로팅 위치를 기억해 다음에 같은 자리에 표시됩니다.

미니맵은 패키지가 IDE 프로세스 안에서 동작하기에 가능한 기능으로, EXE 버전에는 제공되지 않습니다.

빌드

  • 요구: Delphi 13 (RAD Studio 37.0) 권장

  • EXE (Win64): build.cmd

  • 패키지 (Win32): build-bpl.cmd

    각 스크립트의 STUDIO 경로를 설치된 RAD Studio 버전에 맞게 수정하면 다른 버전으로도 빌드할 수 있습니다. 또는 src\exe\IDEScroll.dpr / src\bpl\IDEScrollPkg.dpk 를 IDE에서 열어 빌드합니다.

프로젝트 구조

pascal
src/
  common/                    ?????? ??????
    IDEScroll.WheelHook.pas  WH_MOUSE_LL ??? + ??? ??? ????????? ?????? ?????? (EXE/????????? ??????)
  exe/                       ??????????????? ?????? ?????? (Win64)
    IDEScroll.dpr            ????????? (VCL ??????????????????)
    Main.pas / Main.dfm      UI (?????? ?????? + ?????? ??????)
    IDEScroll.rc / .RES      ?????????
  bpl/                       IDE ????????? (Win32, Delphi 13)
    IDEScrollPkg.dpk         design-time ????????? (requires: rtl, vcl, designide)
    IDEScroll.IdeHook.pas    ??? ?????? ????????? + View ??????/?????? ??? ??????
    IDEScroll.DockForm.pas   ToolsAPI ?????? ??? (INTACustomDockableForm)
    IDEScroll.DockFrame.pas  ????????? ????????? ????????? (+ .dfm)
    IDEScroll.MinimapControl.pas      ????????? ????????? (?????? + ?????????/??? ?????????)
    IDEScroll.DesignerIntrospect.pas  ????????????/????????? ?????? + ??? ??????
    IDEScroll.DesignNotifier.pas      ????????? ?????? ?????? ??? ????????? ??????
    IDEScroll.Theming.pas    IDE ?????? ??? + ?????? ??????
build.cmd                    EXE ?????? (Win64)
build-bpl.cmd                ????????? ?????? (Win32)

EXE와 패키지는 src/common/IDEScroll.WheelHook.pas 훅 로직을 공유합니다.

호환성

  • 동작 대상: 폼 디자이너 컨테이너가 TFormContainerForm 인 모든 Delphi / C++Builder 버전
  • 빌드/검증: Delphi 13 (RAD Studio 37.0), Windows 11 (Win64)

라이선스

MIT © 2026 civilian7