..................
strValue := 'Value:' + FloatToStr(YValues[ValueIndex])+ #13#10;
strValue := strValue + 'Percentage:'+ MarkPercent(ValueIndex, True);
nWidth := Canvas.TextWidth(strValue);
nHeight := Canvas.TextHeight(strValue);
hntHint := THintWindow.Create(Self);
Rect.Left := Sender.ClientOrigin.X + X;
Rect.Top := Sender.ClientOrigin.Y + Y - nHeight;
Rect.Top := Sender.ClientOrigin.Y + Y;
Rect.Right := Rect.Left + nWidth;
Rect.Bottom := Rect.Top + nHeight;
hntHint.ActivateHint(Rect, strValue);
....................
다음은 코드의 일부분입니다. 여기서 문제는
nHeight := Canvas.TextHeight(strValue); 에 있습니다. strValue를 ShowMessage를 이용하여 출력을 해보면 정확히 개행해서 메시지로 보여지게 됩니다. 그러나 TextHeight값은 그대로 한줄짜리 높이가 출력이 되어지는 데여.......이것을 개행한 만큼의 높이만큼 출력을 원하는데 어떤식으로 코드를 적어주어여 할지여....
고수님들의 좋은 답변 기다립니다...감사합니다.
DrawText로 그리시면 정확한 영역의 크기를 알 수 있습니다...
아래와 같이 하면 DrawText로 문자를 출력해도 실제 화면에는 그려지지 않습니다...
var
......
R: TRect;
begin
strValue := 'Value:' + FloatToStr(YValues[ValueIndex])+ #13#10;
strValue := strValue + 'Percentage:'+ MarkPercent(ValueIndex, True);
R := Rect(0, 0, 0, 0);
DrawText(Canvas.Handle, PChar(strValue), -1, R, DT_CALCRECT or DT_LEFT);
hntHint := THintWindow.Create(Self);
OffsetRect(R, Sender.ClientOrigin.X + X,
Sender.ClientOrigin.Y + Y);
hntHint.ActivateHint(R, strValue);
......
end;
^^ 항상 즐코하세요...