delphi postmessage(在 Delphi 中实现控件焦点转移)

本文目录
在 Delphi 中实现控件焦点转移
要在
Delphi
中实现按回车后控件焦点的转移,可以调用
Windows
API
消息发送函数
PostMessage,做法如下:
把
Form1
的
KeyPreview
属性设为
True,在
Edit
和
Memo
的
OnKeyPress
事件中加入以下代码:
if
Key=#13
then
if
not
(ActiveControl
is
TMemo)
then
PostMessage(Handle,WM_KERYDOWN,VK_TAB,0);
DELPHI 获得句柄并发送给窗口文本和回车
//改成这样试下吧
var
h :THandle;
i :integer;
const
user = ’user’;
pw = ’pw’;
begin
h := FindWindow(nil,’Windows Title’);
h := FindWindowEx(h,0,nil,0)
if h 《》 0 then
begin
showmessage(’找到句柄’);
SetForegroundWindow(h);
for i := 1 to Length(user) do
SendMessage(h,WM_CHAR,Ord(user),0); //输入帐号
PostMessage(h,WM_KEYDOWN,VK_RETURN,0);
sleep(300);
for i := 1 to Length(pw) do
SendMessage(h,WM_CHAR,Ord(pw),0); //输入密码
PostMessage(h,WM_KEYDOWN,VK_RETURN,0);
end;
delphi中如何实现关闭窗口
关闭窗口很简单,可以关闭自己程序的窗口,也可以关闭其它程序的窗口。
关闭自己程序的窗口只需要调用相应窗口的close方法即可,比如Form1.close;
关闭其它程序的窗口需要知道它的HANDLE,用过程PostMessage可以关闭,比如:
PostMessage(handleWID,WM_QUIT,0,0)
怎样用delphi实现给指定邮箱发信息
你可以使用控件NMSMTP来发送电子邮件,以下是示例代码:
procedure TfrmSendMail.btnSendClick(Sender:Tobject);
begin
if edtAdress.text=’’ then
exit;
if edtport.text=’’ then
exit;
if edtSendusertext=’’ then
exit;
if edtReceiver.text=’’ then
exit;
NMSMTP1.host:=edtAdress.text;
NMSMTP1.port:=strtoint(edPort.text);
NMSMTP1.UserId:=edtSenduser.text;
NMSMTP1.conncet;
end;
procedure TfrmSendMail. NMSMTP1 ConnectionFailed(Sender:Tobject);
begin
showmessage(‘连接失败’);
end;
procedure TfrmSendMail. NMSMTP1 Connection (Sender:Tobject);
begin
sendmessage(Handle,WM_LOGIN,0,0);//自定义消息息传送。产生WM_LOGIN事件
end;
procedure TfrmSendMail. WMLOGIN (var MSG:TWM);//处理自定义消息
begin
//这里发送邮件。
NMSmTP1.postmessage.fromadress:=edtuserMail.text;
NMSmTP1.postmessage.fromname:=edtsenderuser.text;
NMSmTP1.postmessage.subject:=edtsubject.text;
NMSmTP1.postmessage.toadress.add(edtreceiver.text);
NMSmTP1.postmessage.attachments.addstrings(listbox1.items);
NMSmTP1.postmessage.body.assign(memo1.lines);
NMSMTP1.SENDMAIL;
NMSMTP1.DISCONNCET;
end;
以下是有关的NMSMTP资料:
属性
1、 ClearParams属性
为真时,邮件发送完毕会把PostMessage属性的值清空
2、 EncodeType
指定邮件编码方式。uuMIME—MIME 编码;unCode---UUEncoding编码
3、 FinalHeader
指定最后的消息头标。
4、Host
SMTP服务器的主机名或IP地址。
5、LocalIP
返回客户机的IP地址,若有多个只返回一个。
6、Port
指定服务器的端口
7、PostMessage
是一个类,存储要发送的邮件信息。具体如下:
l FromName:发件人名称
l FromAdress:发件人email地址。
l ReplayToAdress:回复地址
l Orgranization:发件人所在地址。
l LocalProgram:发件人所用的客户程序
l ToAdress:是Tstringlist对象,收件人的接收地址。
l ToCC: Tstringlist对象,抄送的email地址。
l ToBCC: Tstringlist对象,密送的email地址。
l Attachments: Tstringlist对象,指定的附件。
l Body: Tstringlist对象,邮件正文。
l Subject:邮件主题。
l Date:邮件发送日期,为空指当前日期。
9、 ReplayNumber
只读属性,返回smtp服务器响应应答信息。
10、status
当前状态信息。
11、Timeout
毫秒级别的单位,如果规定时间Socket没有响应,触发异常。
12、TransactionReply
返回上一次命令的执行结果。
13、UserID
指定的用户名。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30
vba编写excel插件(excel vba中能否动态创建控件)
2026年9月7日 04:40





