컨트롤에 포커스가 발생하면 자동으로 해당 콘트롤의 x,y좌표를
계산하여 컨트롤의 하단에 강제로 hint를 나타나게 할려고
CMEnter(var Message: TCMEnter)를 컴포넌트내에서 받을때
postMessage(handle,CM_HINTSHOW,0,0); 이렇게 코딩을 했습니다..
근데.. Hint가 나오질 않는군요...
메세지의 wparam이나 Lparam에 적절한 값을 설정해야 할 것 같은데..
아는게 워낙 짧아서.......~~
Debug를 해보니깐...Lparam에 6814760이란 값이 들어오던데..
6814760값을 넣고 postmessage해도 안되네요...
잘 아시는 분의 조언좀 부탁드립니다..
사용하시면 되겠습니다.
procedure TForm1.DoOnShowHint(var HintStr: string;
var CanShow: Boolean; var HintInfo: THintInfo);
var
XYPoint : TPoint;
begin
// SpeedButton1의 힌트라면
if HintInfo.HintControl = SpeedButton1 then
begin
getcursorpos(XYPoint);
XYPoint.Y := XYPoint.Y + 20;
with HintInfo do
begin
HintPos := XYPoint; // 이 버튼 힌트의 위치 바꾸기.
HintColor := clAqua; // 이 버튼 힌트의 색깔 바꾸기
HintMaxWidth := 50; // 이 버튼 힌트에 워드랩 주기.
end;
end;
end;
폼의 OnCreate이벤트 핸들러를 생성하고, 이 DoOnShowHint() 프로시저를 Application의 OnShowHint 프로퍼티에 대입해 주도록 하자.
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnShowHint := DoOnShowHint;
end;
파워러브 델파이 97년 7월호에서 뽑아 왔습니다...^^
파워러브 델파이 97년 7월호!!!
송기원 께서 말씀하시기를...
> 컨트롤에 포커스가 발생하면 자동으로 해당 콘트롤의 x,y좌표를
> 계산하여 컨트롤의 하단에 강제로 hint를 나타나게 할려고
> CMEnter(var Message: TCMEnter)를 컴포넌트내에서 받을때
> postMessage(handle,CM_HINTSHOW,0,0); 이렇게 코딩을 했습니다..
> 근데.. Hint가 나오질 않는군요...
> 메세지의 wparam이나 Lparam에 적절한 값을 설정해야 할 것 같은데..
> 아는게 워낙 짧아서.......~~
> Debug를 해보니깐...Lparam에 6814760이란 값이 들어오던데..
> 6814760값을 넣고 postmessage해도 안되네요...
>
> 잘 아시는 분의 조언좀 부탁드립니다..