Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[1205] [답변] GRUNT95/ DELPHI3에서 FileListBox......
이정욱 [ ] 1751 읽음    1998-02-09 21:56
아주 알면 유용한것이 있어서 소스를 작성해 봤습니다.
보통때 같았으면 SendMessage를 사용하세요... 그냥 있랬을 텐데..
사실 그래야 연구도 하고 많이 공부를 하실테지만 이번것은 사실 여러가지(?) 테크닉
이 필요합니다.
shl이라는 연산자도 알아야 할것 같구요...
먼저 소스를 보세요... mousedown이벤트에서...

procedure TForm1.FileListBox1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
   P : Integer;
begin
   P := Y shl 16;
   P := P or X;
   If Shift=[ssRIght] then
   begin
      SendMessage(FileListBox1.Handle, WM_LBUTTONDOWN, MK_LBUTTON, P);
      SendMessage(FileListBox1.Handle, WM_LBUTTONUP, MK_LBUTTON, P);
   end;
end;

위를 보시면 아실 수 있을 테지만...

Y shl 16하는 부분은 Y값을 P의 상위 16바이트로 옮겨주는것입니다.
WM_LBUTTONDOWN이라는 메세지의 lParam값에는 마우스의 X,Y좌표가 들어가는데
그것이 상위16바이트, 하위16바이트를 사용하게 됩니다.
상위 16바이트에 값을 넣어준후 하위값은 OR 연산자를 통해서 넣어주면 맞는
결과가 나오게 됩니다.

또한가지 알아 두어야 할것은 WM_LBUTTONDOWN메세지를 줬으면 꼭! WM_LBUTTONUP이라는 메세지를 보내주어야 한다는것이죠.

도움이 되셨기를...


+ -

관련 글 리스트
1205 [답변] GRUNT95/ DELPHI3에서 FileListBox...... 이정욱 1751 1998/02/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.