Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2019.02.17;
Скачать: CL | DM;

Вниз

Хинт ы   Найти похожие ветки 

 
RusSun ©   (2010-03-04 17:44) [0]

Доброе время суток.
Вот такой код:

program Project1;

uses
 windows,
 kol;

{$R *.res}
type  TOnEvent = procedure( Sender: PObj )of object;
var
form,Button1,
editbox1,editbox2:PControl;
HintWND: HWND;
TI: TToolInfo;
Tips: array[0..3] of PChar = (
  "Кнопка Открыть",
  "ЭдитБох1",
  "ЭдитБох2",
  "");

//область для процедур
procedure clickbutton1(Dummy:pointer;Sender:PControl; var mouse:TMouseEventData);
begin
showmessage("");
end;
procedure mousemove(Dummy:pointer;Sender: PControl; var Mouse: TMouseEventData );
begin
with TI do
begin
  cbSize:=sizeof(TI);
  uFlags:=TTF_SUBCLASS;
  hWnd:=Sender.GetWindowHandle;
  uID:=0;
  Rect.Left:=Sender.ClientRect.Left;
  Rect.Top:=Sender.ClientRect.Top;
  Rect.Right:=Sender.ClientRect.Right;
  Rect.Bottom:=Sender.ClientRect.Bottom;
  hInst:=HInstance;
  lpszText:=Tips[Sender.Tag];
  form.StatusText[0]:=Tips[Sender.Tag];
end;
SendMessage(HintWnd,TTM_ADDTOOL,0,DWORD(@TI));
end;
procedure Destr(Dummy:pointer;Sender:PControl);
begin
DestroyWindow(HintWnd);
end;
Begin
form:=NewForm(Applet,"hint"+#39+"s "+#8470).SetSize(330,240).CenterOnParent;
form.StatusText[0]:=pchar("");
form.tag:=3;
Button1:=NewButton(form,"Кнопка").SetSize(120,50);
Button1.CenterOnParent;//размещаент объект по середине родительского.
Button1.Tag:=0;
Button1.OnMouseMove:=TonMouse(MakeMethod(nil,@mousemove));

EditBox1:= NewEditBox(form,[]).SetPosition( 10, 34 ).SetSize( 60, 0 );
EditBox1.Color:=clWhite;
EditBox1.Text :=" 10.00 ";
editbox1.Tag:=1;
EditBox1.OnMouseMove:=TonMouse(MakeMethod(nil,@mousemove));
   
EditBox2:= NewEditBox(form,[]).SetPosition( 10, 58 ).SetSize( 60, 0 );
EditBox2.Color:=clWhite;
EditBox2.Text :=" 10.01 ";
editbox2.Tag:=2;
EditBox2.OnMouseMove:=TonMouse(MakeMethod(nil,@mousemove));
//область для работы
Button1.OnClick:=TonEvent(MakeMethod(nil,@clickbutton1));

HintWnd:=CreateWindowEx(0,TOOLTIPS_CLASS,nil,0,CW_USEDEFAULT,CW_USEDEFAULT,CW_US EDEFAULT,CW_USEDEFAULT,form.GetWindowHandle,0,HInstance,nil);

form.OnMouseMove:=TonMouse(MakeMethod(nil,@mousemove));
form.OnDestroy:=TonEvent(MakeMethod(nil,@Destr));
Run(form);

end.

Вопрос: если будет добавлена вторая форма, то
посказки всё равно останутся на первой форме.
Можно сделать так чтобы подсказки появлялись над своими формами?


 
Barloggg   (2010-03-05 11:33) [1]

ну, создай второй HintWnd.
а то у тебя он создается вот так:
> HintWnd:=CreateWindowEx(0,TOOLTIPS_CLASS,nil,0,CW_USEDEFAULT,
> CW_USEDEFAULT,CW_US EDEFAULT,CW_USEDEFAULT,form.GetWindowHandle,
> 0,HInstance,nil);

ну вот тут и видно, что он прикреплен к конкретной форме.
> form.GetWindowHandle


 
RusSun ©   (2010-03-05 13:51) [2]

2Barloggg Спасибо, просто думал может есть другой вариант.



Страницы: 1 вся ветка

Текущий архив: 2019.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.003 c
15-1476631640
xayam
2016-10-16 18:27
2019.02.17
Кубик 2х2х2


11-1267713848
RusSun
2010-03-04 17:44
2019.02.17
Хинт ы


11-1266412713
bobah
2010-02-17 16:18
2019.02.17
Проблема с большими Bitmap в Delphi7+KOL


11-1265359559
Barloggg
2010-02-05 11:45
2019.02.17
шрифт на канвасе выглядит разно!


4-1291421794
Kto_tyT_a
2010-12-04 03:16
2019.02.17
CreateProcess + Windows Srv 2003 + ERROR_FILE_NOT_FOUND