很多时候模式对话框没有关闭,用户一直在点击工具栏,
我看到很多软件都有这个功能,当用户点击其他地方时,会闪动模式对话框还有ShowMessage也可以这样闪动这要怎么做呢?
我看到很多软件都有这个功能,当用户点击其他地方时,会闪动模式对话框还有ShowMessage也可以这样闪动这要怎么做呢?
解决方案 »
- DBGrid(Eh)中特殊行着色问题
- 公益活动:大家把DELPHI开发中的小图片资源下载地方共享一下啊
- sql Server2000,一個sql在不同的數據庫上的執行結果不同
- dbgrid不支持SHIFT多选???
- 誰知道那裡有數據庫備份的控件或代碼阿,要可以在客戶端用的那種,最好還有進度條
- 如何设置快捷键?
- 这样排序怎么办?
- 哪儿可 DownLoad 《Delphi COM深入编程》 机械工业出版社(2000年的)?
- 请教哪里有好的ICON,用在BitBtn上的,常用的打开关闭什么的?
- 如何实现类似TADOTable中Connection中的效果?
- 经验之谈,现实人生
- delphi调用vc++动态库问题
所以,我对于新手建议至少要用 delphi2007 版本。
为什么我看一个软件用Borland C++ 做的都可以闪动呢? 也是TForm
delphi不能实现吗? 没有提示 经常客户会不知道怎么点 一直点 都不行
闪动 任务栏窗体
在哪里加呢?showmodal 里面?
用FlashWinFO更弹性一些。var
FR: FLashWinFO;
begin
//判断是模式窗口,并且应用程序消息不是属于该模式窗口(意味鼠标在其它位置)
if (Application.ModelLevel > 0) and (Msg.hwnd <> Applicaiton.ActiveFormHandle) then
begin
FR.hwnd := Applicaiton.ActiveFormHandle;//设置要闪动的窗口
FR.cbSize := Sizeof(FR);
FR.uCount := 5;//闪动次数
FR.dwTimeOut := 500;//闪动间隔
FR.dwFlags := FLASHW_CAPTION;//闪动位置,具体参考帮助,这里设置为标题栏
FLashWindowEx(FR);//开始闪动
end;
end;
我用的是delphi7Application.OnMessage:=MyCustomMessage;
procedure TForm2.MyCustomMessage(var Msg: tagMSG; var Handled: Boolean);
beginend;
ActiveFormHandle可自己写function GetActiveFormHandle: HWND;
begin
Result := GetActiveWindow;
if Result = 0 then
Result := GetLastAtivePopup(Applicaiton.Handle)
end;modelLevel是表示当前程序有模式窗口,且存在几层。
可用取巧的方式:判断主窗口 IsWindowEnabled(..)即可
begin
if Msg.message=WM_LBUTTONDOWN then
begin
//
end;
end;好像在窗体外 不执行啊
效能日程提醒
http://www.onlinedown.net/soft/77890.htm点关于弹出来的窗口是 TAboutForm
都可以闪动 就是不知道怎么实现的
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, pngimage, ExtCtrls, StdCtrls, LbButton;type
TfrmAbout = class(TForm)
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
img1: TImage;
lbl1: TLabel;
lbl6: TLabel;
img2: TImage;
procedure lbl3Click(Sender: TObject);
protected
procedure CreateParams(var Para: TCreateParams); override; //闪烁标题
private
{ Private declarations }
public
{ Public declarations }
end;var
frmAbout: TfrmAbout;implementation{$R *.dfm}procedure TfrmAbout.CreateParams(var Para: TCreateParams);
begin
inherited CreateParams(Para);
if ((Owner = Application) or (Owner = nil)) then
Exit;
Para.WndParent := TForm(Owner).Handle; //修改父窗口名称
end;procedure TfrmAbout.lbl3Click(Sender: TObject);
begin
Close;
end;end.
第二步:调用:procedure TfrmMain.mniAboutClick(Sender: TObject);
begin
try
frmAbout := TfrmAbout.Create(Self); 要传入父窗口的Handle
frmAbout.ShowModal;
finally
frmAbout.Free;
frmAbout := nil;
end;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, pngimage, ExtCtrls, StdCtrls, LbButton;type
TfrmAbout = class(TForm)
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
img1: TImage;
lbl1: TLabel;
lbl6: TLabel;
img2: TImage;
procedure lbl3Click(Sender: TObject);
protected
procedure CreateParams(var Para: TCreateParams); override; //闪烁标题
private
{ Private declarations }
public
{ Public declarations }
end;var
frmAbout: TfrmAbout;implementation{$R *.dfm}procedure TfrmAbout.CreateParams(var Para: TCreateParams);
begin
inherited CreateParams(Para);
if ((Owner = Application) or (Owner = nil)) then
Exit;
Para.WndParent := TForm(Owner).Handle; //修改父窗口名称
end;procedure TfrmAbout.lbl3Click(Sender: TObject);
begin
Close;
end;end.
第二步:调用:procedure TfrmMain.mniAboutClick(Sender: TObject);
begin
try
frmAbout := TfrmAbout.Create(Self); 要传入父窗口的Handle
frmAbout.ShowModal;
finally
frmAbout.Free;
frmAbout := nil;
end;
end;