TDateTimePicker
구성 요소에 대해 OnMouseLeave
이벤트를 감지해야하지만 이벤트 목록에 해당 이벤트가 포함되어 있지 않습니다. 수동으로 감지하는 방법이 있습니까?Delphi 7에서 TDateTimePicker 구성 요소에 대한 onmouseleave 이벤트를 catch하는 방법
답변
CMMouseLeave 프로 시저의 보호를 해제 할 수 있습니다.
TDateTimePicker = class(ComCtrls.TDateTimePicker)
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end;
{ TDateTimePicker }
procedure TDateTimePicker.CMMouseLeave(var Message: TMessage);
begin
{do something};
end;
보호 여부는 중요하지 않습니다. 메시지 핸들러는 비공개이며 여전히 override 할 수 있습니다. 여기에있는 속임수는 클래스를 폼 클래스 선언 위에 놓고 새 구성 요소를 설치하지 않고도 자동으로 새 비헤이비어를 가져올 수 있다는 것입니다. 스코프 트릭없이이를 수행하려면 컨트롤의 'WindowProc' 속성에 새 값을 지정하기 만하면됩니다. –
OnMOuseLeave 메시지가 잡히면이 기능은 한 번만 작동합니다. 더 이상 작동하지 않습니다. 왜 아무도 알지 못해? –
나를 위해 그것은 당신이 컨트롤을 떠날 때마다 작동합니다. – Linas
TDateTime은 시각적 구성 요소가 아니므로 마우스 이탈 이벤트가 발생하지 않습니다. 실제 구성 요소를 확인할 수 있습니까 (날짜 선택기입니까?) onExit 이벤트는 시각적 컨트롤을 남긴 마우스를 처리해야합니다.
또한
가 미안, 어제 내가 델파이가 설치되어 있지 않은에 있던 컴퓨터를 더 많은 도움을 제공 할 수 있습니다 ... 당신이감사를 사용하는 델파이의 버전을 알고 도움이 될 것입니다. 내보낼 수없는 특정 컨트롤에 대한 마우스 나가기 이벤트를 가져 오려면 다음을 시도하십시오.
procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage := AppMsg;
// Save the windows hande of the date time picker...
DTWind := DateTimePicker1.handle;
end;
procedure TForm1.AppMsg(var Msg: TMsg; var Handled: Boolean);
begin
// If we find a mouse leave event, for the date/time picker,
// then do something
if (msg.message = 160) and
(msg.hwnd = DTWind)
then
begin
if dateTimePicker1.color = clBlue
then dateTimePicker1.Color := clRed
else dateTimePicker1.Color := clBlue;
end;
end;
이 (AppMsg를) 응용 프로그램의 메시지를 얻고 응용 프로그램 객체의 onMessage 이벤트에 할당하는 프로 시저를 작성 (이 코드는 날짜 시간 선택 컨트롤을 잡고 양식에). dateTimePicker 컨트롤의 창 핸들을 저장하십시오. 절차 내에서
, DateTimePicker 컨트롤에서 마우스 휴가 메시지를보고, 다음이 당신에게 일을 주위에 제공희망 (내 예를 들어, 난 그냥 색상 재생) 원하는대로 처리 할 .
질문의 제목은 Delphi 7을 나타냅니다. 'OnExit' 이벤트는 마우스 움직임을 처리하지 않고 curosr 이동 만 처리합니다. –
그래, TDateTimePicker,하지만 OnExit은 완전히 다른 것입니다 –
죄송합니다, 제 브라우저가 Delphi 버전을 차단했습니다 ... onMessage 이벤트를 캡처하고 CMMouseLeave 메시지에 응답 해보십시오. – Sparky
JVCL에는 datetimepicker 컨트롤이 있으며 Delphi 버전과 관계없이 OnMouseEnter/OnMouseLeave 이벤트가 있어야합니다 (AFAIK 모든 JVCL 컨트롤에 해당).
- 1. "비어있는"표시 TDateTimePicker
- 2. 런타임 객체에서 이벤트를 catch하는 방법
- 3. 파일 열기 이벤트를 catch하는 방법
- 4. C에서 CLR에서 이벤트를 catch하는 방법
- 5. QSystemTrayIcon 종료 이벤트를 catch하는 방법?
- 6. 사용자 정의 Delphi 구성 요소에 대한 Redeclare Width 속성
- 7. hl7 구성 요소에 대한.
- 8. 이미지에서 uiscrollview 내부의 이벤트를 catch하는 방법
- 9. 동적으로 생성 된 구성 요소에 대한 이벤트를 발생시킬 수 없습니다.
- 10. Delphi 7에서 "컨트롤 이름 바꾸기"?
- 11. URI 구성 요소에 대한 도움말 #
- 12. 갤러리의 구성 요소에 대한 전경색
- 13. kohana의 이벤트 구성 요소에 대한 생각
- 14. UIView에서 WillRotateToInterfaceOrientation 이벤트를 catch하는 방법이 있습니까?
- 15. Delphi 7에서 TPageControl을 평평하게 만들기
- 16. Delphi 7에서 EXE 아이콘 설정
- 17. Delphi 7에서 OutputDebugString을 무시 하시겠습니까?
- 18. Delphi Server 소켓 구성 요소
- 19. Windows 7에서 Delphi VCL "TaskDialog"문제가 발생했습니다.
- 20. Flex의 mxml 구성 요소에 대한 썸네일
- 21. .NET UDP 구성 요소에 대한 권장 사항
- 22. 스윙 구성 요소에 대한 일반적인 질문
- 23. 타사 구성 요소에 대한 SVN 조직
- 24. Java의 시각적 구성 요소에 대한 단위 테스트
- 25. 자바 스윙 구성 요소에 대한 Z 순서
- 26. multi = threaded 서버 구성 요소에 대한 로깅
- 27. 이동 가능한 구성 요소에 대한 도움말 정보
- 28. 특정 개찰구 구성 요소에 대한 URL
- 29. cakePHP의 Set() 구성 요소에 대한 질문
- 30. 스레드의 vcl 구성 요소에 대한 액세스! 델파이
여기에 언급 된 내용이 확실하지 않습니다. TDateTime은 구성 요소가 아닌 기본 데이터 형식입니다. –
TDateTimePicker 구성 요소를 의미합니까? –
Ops, 예 TDateTimePicker :) –