![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проблемы с hint ом
Deus © (2002-05-12 01:16:00)В программе создаю hint window и показываю его справа внизу следующей процедуркой:
procedure showhint(t:string);
var
DeskTop:TCanvas;
x:trect;
hx:trect;
h:hwnd;
begin
h:=findwindow("Shell_TrayWnd",NIL);
if h=0 then exit;
GetWindowRect(h,x);
xx:=thintwindow.create(form1);
hx:=xx.CalcHintRect(300,t,nil);
hx.Top:=x.top-Canvas.TextHeight(t)-4;
hx.left:=x.right-Canvas.TextWidth(t)-10;
hx.Right:=x.right;
hx.Bottom:=hx.Top+Canvas.TextHeight(t);
xx.Color:=clInfoBk;
xx.Font.Color:=clBlack;
xx.ActivateHint(hx,t);
end;
Когда я вызываю её так:
showhint("aa bb cc");
то всё ок.
Но, когда я делаю так:
showhint("1.1.1 1:1:1");
то показывается только 1.1.1 8((
причём место под 1:1:1 есть, но оно пустое....
Deus (2002-05-12 12:53:00) [1]Нашёл багу. Канву не ту имел :))
Правильная проце-дура:
procedure altshowtext_2(t:string);
var
xx:THintWIndow;
x:trect;
hx:trect;
h:hwnd;
begin
h:=findwindow("Shell_TrayWnd",NIL);
if h=0 then exit;
GetWindowRect(h,x);
if xx<>nil then begin
xx.free;
end;
xx:=thintwindow.create(form1);
hx:=xx.CalcHintRect(300,t,nil);
hx.Top:=x.top-xx.Canvas.TextHeight(t)-4;
hx.left:=x.right-xx.Canvas.TextWidth(t)-10;
hx.Right:=x.right;
hx.Bottom:=hx.Top+xx.Canvas.TextHeight(t);
xx.Color:=clInfoBk;
xx.Font.Color:=clBlack;
xx.ActivateHint(hx,t);
end;
Deus (2002-05-12 12:23:00) [2]2Cobalt:
Да, xx:thintwindow; пропустил - оно раньше объявляется. Сорри.
xx.Font.Color - есть. Это ж работащая процедура...:))
я правильно понял, что когда Вы вызываете showhint("1.1.1 1:1:1");
то показывается именно 1.1.1 1:1:1 ?
Song (2002-05-12 10:09:00) [3]2Cobalt © (12.05.02 09:49)
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988623787&n=16
Cobalt (2002-05-12 09:49:00) [4]А у меня все ок, все показывает, все буквы и цифры, корректно выделяет место под текст, вот только...
var xx:thintwindow;??? Правильно?
и еще ругается наxx.Font.Color:=clBlack;
нет такого свойства уthintwindow
Может вы используете к-нить наследник, и в нем портачите?
Большое спасибо за пример создания Подсказки.
Да поможет Вам F1.