怎么让MessageDlg一段时间内关闭 我在操作成功时弹出MessageDlg对话框,MessageDlg('成功',mtInformation,[mbok],0)我想让他在10秒钟后自动关闭怎么实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/2249/2249047.xml?temp=.833935function StrLeft(const mStr: string; mDelimiter: string): string;begin Result := Copy(mStr, 1, Pos(mDelimiter, mStr) - 1);end; { StrLeft }function StrRight(const mStr: string; mDelimiter: string): string;begin if Pos(mDelimiter, mStr) > 0 then Result := Copy(mStr, Pos(mDelimiter, mStr) + Length(mDelimiter), MaxInt) else Result := '';end; { StrRight }procedure TForm1.Timer1Timer(Sender: TObject);var vHandle: THandle; vBuffer: array[0..255] of Char; I: Integer;begin vHandle :=FindWindow('TMessageForm', nil); TTimer(Sender).Enabled := vHandle <> 0; if vHandle = 0 then Exit; GetWindowText(vHandle, vBuffer, 256); I := StrToIntDef(StrRight(vBuffer, ','), 11) - 1; if I < 0 then SendMessage(vHandle, WM_SYSCOMMAND, SC_CLOSE, 0); SetWindowText(vHandle, PChar(StrLeft(string(vBuffer) + ',', ',') + ',' + IntToStr(I)));end;procedure TForm1.Button1Click(Sender: TObject);begin Timer1.Enabled := False; Timer1.Enabled := True; ShowMessage('Hello!');end;procedure TForm1.Button2Click(Sender: TObject);begin Timer1.Enabled := False; Timer1.Enabled := True; MessageDlg('Are you ok?', mtWarning, [mbYes, mbNo], 0);end; to zswangII 老大你很搞笑呀,不管怎么说谢谢zswangII 老大,试验,如果没有更好的晚上结贴 已后还是自己研究吧,象联众中的计时器一样:var Form1: TForm1; hh:word;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin with CreateMessageDialog('dsfdsf',mtWarning, [mbYes, mbNo]) do try Position := poScreenCenter; hh:=handle; timer1.Enabled:=true; ShowModal; hh:=0; timer1.Enabled:=false; finally hh:=0; timer1.Enabled:=false; Free; end;end;procedure TForm1.Timer1Timer(Sender: TObject);begin if hh>0 then SendMessage(hh, WM_SYSCOMMAND, SC_CLOSE, 0); enabled:=false;end; DelPHI中画图问题 高分求cxgrid多选删除解答 存储过程???? TADODataSet 在DELPHI程序运行中,可以随意修改RAVE报表格式吗? 数据库提交时报错,请高手帮忙 ★★★CSDN结贴联盟第9次信誉提问!!★★★ 找一个最小二乘算法 俺帮了你们都那么多,你们一个小问题也不帮俺?伤心啊!!! 如何将查询出的数据导入excel中??要求有源码,因为我很菜:( 请问下怎样批量把WORD转为PDF(能否带上权限) 分割条怎么用啊
begin
Result := Copy(mStr, 1, Pos(mDelimiter, mStr) - 1);
end; { StrLeft }function StrRight(const mStr: string; mDelimiter: string): string;
begin
if Pos(mDelimiter, mStr) > 0 then
Result := Copy(mStr, Pos(mDelimiter, mStr) + Length(mDelimiter), MaxInt)
else Result := '';
end; { StrRight }procedure TForm1.Timer1Timer(Sender: TObject);
var
vHandle: THandle;
vBuffer: array[0..255] of Char;
I: Integer;
begin
vHandle :=FindWindow('TMessageForm', nil);
TTimer(Sender).Enabled := vHandle <> 0;
if vHandle = 0 then Exit;
GetWindowText(vHandle, vBuffer, 256);
I := StrToIntDef(StrRight(vBuffer, ','), 11) - 1;
if I < 0 then SendMessage(vHandle, WM_SYSCOMMAND, SC_CLOSE, 0); SetWindowText(vHandle, PChar(StrLeft(string(vBuffer) + ',', ',') + ',' +
IntToStr(I)));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled := False;
Timer1.Enabled := True;
ShowMessage('Hello!');
end;procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := False;
Timer1.Enabled := True;
MessageDlg('Are you ok?', mtWarning, [mbYes, mbNo], 0);
end;
晚上结贴
var
Form1: TForm1;
hh:word;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
with CreateMessageDialog('dsfdsf',mtWarning, [mbYes, mbNo]) do
try
Position := poScreenCenter;
hh:=handle;
timer1.Enabled:=true;
ShowModal;
hh:=0;
timer1.Enabled:=false;
finally
hh:=0;
timer1.Enabled:=false;
Free;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if hh>0 then
SendMessage(hh, WM_SYSCOMMAND, SC_CLOSE, 0);
enabled:=false;
end;