Форум: "KOL";
Текущий архив: 2019.02.17;
Скачать: [xml.tar.bz2];
ВнизХинт ы Найти похожие ветки
← →
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 вся ветка
Форум: "KOL";
Текущий архив: 2019.02.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c