Приветствую. Вопросик тупейший... но...
Итак. Мне нужно отобразить Hint. Все ок, он выводится :)
Вывожу я его через создание THintWindow и юзаю ActivateHint.
Вот метод ActivateHint принимает первым параметром TRect.
Так вот, я туда запуляю функцию CalcHintRect. В общем вот код:
procedure TForm1.cxMemo1KeyPress(Sender: TObject; var Key: Char);
begin
IF h<>nil
then H.ReleaseHandle; -- Если счас кто то уже показывает хинт - то скроем его.
H:=THintWindow.Create(Self);
H.ActivateHint(H.CalcHintRect(100,'Hello',nil),'Hello');
end;
H - описано как глобальная переменная...
ТАК ВОТ все работает. НО ппочему то чертов хинт показывается в левом-верхнем углу экрана.. енто конечно же не красиво... Я хочу показывать там где надо...
НО мое желание натыкается на непонятную мне вещь O_o..... Вот такой код я написал:
procedure TForm1.cxMemo1KeyPress(Sender: TObject; var Key: Char);
var
Rec: TRect;
begin
IF h<>nil
then H.ReleaseHandle;
Rec := H.CalcHintRect(100,'Hello',nil); <<<<< Вот тут вылетает исключение Access Violation !
... тут я буду заменять top, left и т.д.
H:=THintWindow.Create(Self);
H.ActivateHint(Rec,'Hello');
end;
Так вот.... Почему вылетает ацесс виолейшн то ??????
TRect енто структура... память же не нужно выделять....
Как побороть ?....