请教高手(关于Delphi的提示器的做法?)(100分)

  • 主题发起人 主题发起人 delphi_zm
  • 开始时间 开始时间
D

delphi_zm

Unregistered / Unconfirmed
GUEST, unregistred user!
我想达到的效果和Delphi自己的提示器一样的功能(就是打点就出来一个函数、属性
窗)。不知道该怎么做?
 
可以用ListBox做函数提示窗,
用THintWindow用做参数提示
 
ListBox的显示只能在父窗体内,不能出父窗体
 
新建一个窗口,加入一个ListBox, 将窗口设为bsDialog,并实现下列事件
procedure TFormXXX.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=Params.Style and (not WS_CAPTION);
end;
ListBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);// 可以不用
ListBoxDbClick(Sender: TObject);//处理选择
FormDeactivate(Sender: TObject);//实现隐藏
KeyDown(var Key:Word;Shift:TShiftState)// 处理键盘
KeyPress(var Key:char))// 处理键盘
ListBoxKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);)// 处理ListBox键盘
ListBoxKeyPress(Sender: TObject; var Key: Char));)// 处理ListBox键盘
在主窗口中实现TFormXXX的事件
OnKeyDown;// 完成选择
OnKeyPress;;// 完成选择


 
放在另一个窗体上,如何做到这个窗体只在父窗体的前面,不会因父窗体得到焦点
而,在父窗体后面。
 
很早就有人讨论过。搜一下吧
用popupmenu其实不错。
 
>>放在另一个窗体上,如何做到这个窗体只在父窗体的前面,不会因父窗体得到焦点
>>而,在父窗体后面。
这个好办,举例:
form1为父,form2为子
将form2的定义如下:
form2.parent:=form1
我以前试过,这样form2相当于是form1上的一个容器,就不会到form1的背後了


 
问题又回到原来了。如果form2.parent:=form1,那么form2就
只能在form1的客户区出现了。
 
后退
顶部