一个函数的用法(10分)

  • 主题发起人 主题发起人 studing
  • 开始时间 开始时间
S

studing

Unregistered / Unconfirmed
GUEST, unregistred user!
我碰到一个难题:
richedit1.perform(em_scrollcavet,0,0),
请问 perform 是什么函数呀!,他所带的参数有哪些, 请高手给以指教,最好有
example,
 
看下面:其实等效SendMessage(xx.handle,...)
function TControl.Perform(Msg: Cardinal; WParam, LParam: Longint): Longint;
var
Message: TMessage;
begin
Message.Msg := Msg;
Message.WParam := WParam;
Message.LParam := LParam;
Message.Result := 0;
if Self <> nil then WindowProc(Message);
Result := Message.Result;
end;
 
Responds as if the control received a specified Windows message.
Example:在运行期移动Button

procedure TForm1.Button5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if ssleft in shift then
begin
releasecapture;
Button5.perform(WM_syscommand, $F012, 0);
end;
end;
 
window APIs帮助里面有的呀,很详细.
去看以下.
多用Help
 
就像Wi n d o w s 发送消息给应用程序一样,也可以在窗口与控件之间发送消息。D e l p h i 提供了几种
在一个应用程序内部发送消息的方式:调用P e r f o r m ( ) (这种方式不依赖于Windows API),以及调用
S e n d M e s s a g e ( )、PostMessage() API 函数。
5.6.1 Perform()
V C L 的P e r f o r m ( )方法适用于所有的T C o n t r o l 派生对象。P e r f o r m ( )可以向任何一个窗体或控件发送
消息,只需要知道窗体或控件的实例。P e r f o r m ( )需要传递3 个参数:消息标识符、w P a r a m 和l P a r a m 。
P e r f o r m ( )是这样声明的:
要给一个窗体或控件发送一个消息,可以参照下面的代码:
调用了P e r f o n n ( )后,它要等消息得到处理后才返回。P e r f o r m ( )把3 个参数组装成T M e s s a g e 记录,
然后调用D i s p a t c h ( )方法把消息传递给Wi n d o w s 的消息系统。后面的部分将进一步介绍D i s p a t c h ( )方法。
 
粘贴一段《DELPHI5开发人员指南》中的东东,希望对你有用,至于几个参数可以看一下
Windows单元中的TMsg:
t y p e
TMsg = packed record
hwnd: HWND; / /窗口句柄
message: UINT; / /消息常量标识符
wParam: WPA R A M ; // 32 位消息的特定附加信息
lParam: LPA R A M ; // 32 位消息的特定附加信息
time: DWORD; / /消息创建时的时间
pt: TPoint; / /消息创建时的鼠标位置
e n d ;
已经有人举了例子
列子我就不举了
 
多人接受答案了。
 
后退
顶部