delphi的消息对话框
Delphi程序设计教程 第8章 各种对话框的制作
3.MaxFontSize属性 该属性为整型量,它确定字体对话框中对用户来 说可用的最大字体的大小。要限制可用的字体大小, Options属性中必须包含有fdLimitSize的值。若 fdLimitSize的值为False,则MaxFontSize属性的值是 无效的。
默认值为0,即没有限制。
4.MinFontSize属性 该属性为整型量,它确定字体对话框中对用户来 说可用的最小字体的大小。要限制可用的字体大小, Options属性中必须包含有fdLimitSize的值。若 fdLimitSize的值为False,则MinFontSize属性的值是 无效的。
退出
8.1 定制对话框
8.1.1 对话框的分类 1. 模式对话框
在打开对话框之后,必须回答对话框的提问,然 后才能进行其它的操作。也就是使用“确定”或“取 消”按钮关闭对话框之前,不能对程序的其它部分进 行操作。
Windows中的大部分对话框都属于模式对话框无模式对话框 在打开对话框之后,用户可以继续进行其它的操 作,而不必首先响应对话框。 Windows中的查找、替换对话框属于无模式对话框。 8.1.2 对话框组件 Dialog页标签中包含了创建标准的Windows公共对 话框的组件。
默认值为0,即没有限制。
5.Options属性 Options属性中包含有出现在字体对话框选项集中 的所有可能值。 字体对话框组件的事件有OnApply事件。该事件为 在字体对话框上出现应用按钮时,用户单击应用按钮 出现的事件。 8.4.3 调用字体对话框的方法 要调用字体对话框,在要使用字体对话框的相应 事件处理程序中使用Execute方法即可,其语法为: FontDialog1.Execute; 其中,FontDialog1为字体对话框的Name属性的值。
Delphidui对话框
大家学习中有什么不明白的可以加我QQ:1889318必须要有黑基VIP ID和密码才能通过验证Delphi程序设计常用组件属性详解(3)使用对话框(消息框)函数与对话框过程对于一些简单信息的输入和输出,可以使用对话框.DELPHI提供的内部对话框有两种:1.信息对话框使用过程SHOWMESAGE, SHOWMESSAGEFMT,函数MESSAGEDLG.MESSAGEDLGPOS,CREATEMESSAGEDIALG.2.输入对话框使用函数INPUTBOX, INPUTQUERY.1).SHOWMESSAGE与SHOWMESSAGEFMT过程SHOWMESSAGE过程显示一个最简单的对话框,其语法格式为:SHOWMESSAGE(信息内容);说明:SHOWMESSAGE过程显示的对话框以应用程序的执行文件名作为标题,对话框只含有一个OK按钮,单击该按钮对话框即关闭并返回.SHOWMESSAGEFMT过程语法格式为:showmessagefmt(信息内容,参数组);说明:此过程与上一个过程其本相同,只是参数多了格式化的字符.例: showmessagefmt(‘%s已进球%d个!’,[‘公牛队’,11]);2)MESSAGEDLG与MESSAGEDLGPOS函数这两个函数可以显示一个信息对话框,并等待用户的响应.MESSAGEDLG函数语法格式为: 变量名:=MESSAGEDLG(信息内容,类型,按钮组,HELPCTX);说明: 信息内容是显示在对话框中的信息.类型是对话框的类型,其取值有:mtwarning含有感叹号的警告对话框.Mterror含有红色叉符号的错误对话框.Mtinfomation含有蓝色I符号的信息对话框.Mtconfirmation含有绿色?号的确认对话框Mtcustiom不含图标的一般对话框,对话框的标题是程序的名称.按钮组指定对话框中出现的按钮组,其中出现的按钮与参数有:MBYES YES按钮,函数返回值为:6MBNO NO按钮,函数返回值为:7大家学习中有什么不明白的可以加我QQ:1889318必须要有黑基VIP ID和密码才能通过验证MBOK OK按钮,函数返回值为:1MBCANCEL CANCEL按钮,函数返回值为:2MBHELP HELP按钮.MBABORT ABORT按钮,函数返回值为:3MBRETRY RETRY按钮,函数返回值为:4MBIGNORE IGNORE按钮,函数返回值为:5MBALL ALL按钮,函数返回值为:8MBNOTOALL NOTOALL按钮,函数返回值为:9MBYESTOALL YESTOALL按钮,函数返回值为:10按钮组可以组成某种形式,如[MBYES,MBNO]表示对话框中出现两个按钮:”YES”和”NO”;也可以常量形式如,MBOKCANCEL表示对话框中出现两个按钮:”OK”和”CANCEL”例: 密码框.procedure TForm1.Button1Click(Sender: TObject);varx:integer;beginif edit1.text='123' thenshowmessage('密码正确,欢迎进入!')elsebeginx:=messagedlg('密码错误,请重新输入!',mterror,[mbyes,mbno],0);if x=6 thenbeginedit1.text:='';edit1.SetFocus;endelseclose;end;end;3.MESSAGEDLGPOS函数调用MESSAGEDLGPOS函数,可以屏幕的指定位置显示信息对话框,其语法格式为:大家学习中有什么不明白的可以加我QQ:1889318必须要有黑基VIP ID和密码才能通过验证变量=MESSAGEDLGPOS(信息内容,类型,按钮组,,HELPCTX,X,Y);它比MESSAGEDLG只是多了一项功能,即具有X,Y显示位置坐标.4.INPUTBOX与INPUTQUERY函数1)INPUTBOX的作用为显示一个输入对话框.格式为: 变量:=INPUTBOX(对话框信息,信息内容,默认内容);对话框信息为指定对话框的标题.信息内容为指定在对话框上出现的文本.默认内容为在出现对话框时自动出现的输入内容.2)INPUTQUERY函数与INPUTBOX相似出现一个输入框.只是对CANCEL按钮(退出事件)另作处理,将返回一个布尔值.格式为: 变量=INPUTQUERY(对话框标题,信息内容,字符串变量);在出现对话框时如果单击OK输入框中的值将赋值到变量中,并且函数返回TRUE;若用户单击CANCEL按钮,变量值不变并返回FALSE;可以根据返回值的不同作出判断.例:procedure TForm1.Button1Click(Sender: TObject);varx:integer;beginx:=strtoint(inputbox('求和','请输入求和值','0'));if x=strtoint(edit1.Text)+strtoint(edit2.Text) thenedit3.Text:='正确'elseedit3.Text:='错误';end;分组控件GROUPBOX.大家学习中有什么不明白的可以加我QQ:1889318必须要有黑基VIP ID和密码才能通过验证也可称之为框架.一般来说此框架的作用是用于对某一组界面的分类,没有实质作用.例如:十一、面板PANEL此面板的功能作相似与GROUPBOX。
Delphi中Messagedlg用法
MessageDlg用法对话框类型:mtwarning——含有感叹号的警告对话框mterror——含有红色叉符号的错误对话框mtinformation——含有蓝色i符号的信息对话框mtconfirmation——含有绿色问号的确认对话框mtcustom——不含图标的一般对话框,对话框的标题是程序的名称按钮组中的按钮:mbYes——mrYes或6mbNo——mrNo或7mbOk——mrOk或1mbCancel——mrCancel或2mbHelp——help按钮mbAbort——mrAbort或3mbRetry——mrRetry或4mbIgnore——mrIgnore或5mbAll——mrAll或8mbNoToAll——9mbYesToAll——10procedure TForm1.Button1Click(Sender: TObject);varS:string;beginif MessageDlg('提示框',mtInformation,[mbok,mbyes],0)=mryes thenmessagebeep(MB_ICONEXCLAMATION);end;TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp);constmrNone = 0;mrOk = idOk;mrCancel = idCancel;mrAbort = idAbort;mrRetry = idRetry;mrIgnore = idIgnore;mrYes = idYes;mrNo = idNo;mrAll = mrNo + 1;mrNoToAll = mrAll + 1;mrYesToAll = mrNoToAll + 1;MessageDlg()信息的汉化Delphi中的常量都放在consts.pas中,修改它可以达到汉化的目的.如: MessageDlg()显示的窗口标题及其中的按钮标题都是英文,虽然不影响使用,但在一个中文软件中总显得有些不协调.为此在consts.pas中查找以下内容:"SMsgDlgWarning"把SMsgDlgWarning = 'Warning';SMsgDlgError = 'Error';SMsgDlgInformation = 'Information';SMsgDlgConfirm = 'Confirm';SMsgDlgYes = '&Yes';SMsgDlgNo = '&No';SMsgDlgOK = 'OK';SMsgDlgCancel = 'Cancel';SMsgDlgHelp = '&Help';SMsgDlgHelpNone = 'No help available';SMsgDlgHelpHelp = 'Help';SMsgDlgAbort = '&Abort';SMsgDlgRetry = '&Retry';SMsgDlgIgnore = '&Ignore';SMsgDlgAll = '&All';SMsgDlgNoToAll = 'N&o to All';SMsgDlgYesToAll = 'Yes to &All';改成SMsgDlgWarning = '警告'; SMsgDlgError = '错误'; SMsgDlgInformation = '提示'; SMsgDlgConfirm = '确认'; SMsgDlgYes = '是(&Y)';SMsgDlgNo = '不(&N)';SMsgDlgOK = '确定'; SMsgDlgCancel = '取消'; SMsgDlgHelp = '帮助(&H)'; SMsgDlgHelpNone = '没有该帮助信息'; SMsgDlgHelpHelp = '帮助'; SMsgDlgAbort = '放弃(&A)'; SMsgDlgRetry = '重试(&R)'; SMsgDlgIgnore = '忽略(&I)'; SMsgDlgAll = '全部(&A)'; SMsgDlgNoToAll = '全都不(&O)'; SMsgDlgYesToAll = '全都是(&A)';然后重新编译Consts.pas,把Consts.duc拷到delphi的lib和slib子目录下,就一劳永逸啦!。
Delphi实现QQ消息弹框
微软的每一个产品,无论功能还是界面设计都会带给我们一定的惊喜,比如OfficeXP、Office2003、Messenger的界面设计,早已成为众多软件竞相模仿的对象,就拿Messenger来说,我就见过好几套网络视频会议的软件都借鉴了它的界面风格。
前段时间因为要在原来的软件上增加一个快捷键提示窗体,这个提示窗要求在显示的时候比较醒目美观能引起用户注意,显示后不影响用户操作,能够关掉。
很自然的就想到了Messenger那个从屏幕右下角逐渐弹出的消息提示窗体,不过相对Messenger我更喜欢QQ2004奥运版的配色风格,反正都是偷就多偷点吧,下面快捷键提示窗的最终效果:这个窗体有以下几个特点:1、显示的时候是从屏幕右下角逐渐弹出的;2、它是个无标题窗体,但它必须允许用户移动和改变大小,因此要用到无标题窗体拖动、改变大小的技术;3、它是个不规则的窗体,主要是左上角和右上角是圆形导角,因此要为窗体创建外形,且窗体改变大小时必须重建;4、它标题和内容显示区都有渐层色,标题还有几个小点点,在实现时使用取巧的方法,直接利用截图进行填充。
当然界面可以偷,代码就得老老实实的写的了,下面是界面设计图和实现代码:界面formPSHotKey.dfm内容[内容较长,请点击此处找开/折叠]代码formPSHotKey.pas内容unit formPSHotKey;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, StdCtrls, Buttons;{======================================================================== DESIGN BY : 彭国辉DATE: 2004-10-28SITE: /BLOG: /nhconchEMAIL: kacarton#文章为作者原创,转载前请先与本人联系,转载请注明文章出处、保留作者信息,谢谢支持!=========================================================================} typeTfrmPSHo tKey = class(TFo rm)imgTitleBar: TImage;imgTitleBarBG: TI mage;imgShapeBG: TImage;SpeedButton1: TSpeedButton;Label1: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;Label5: TLabel;Label6: TLabel;Label7: TLabel;Label8: TLabel;Label9: TLabel;Label10: TLabel;Label11: TLabel;Label12: TLabel;Label13: TLabel;procedure FormPaint(Sender: TObject);procedure imgTitleBarMo useDo wn(Sender: TObject; Button: TMouseButto n; Shift: TShiftState; X, Y: Integer);procedure FormCreate(Sender: TObject);procedure SpeedButton1Click(Sender: TObject);procedure Label11Mo useDo wn(Sender: TObject; Butto n: TMouseButto n; Shift: TShiftState; X, Y: Integer);procedure FormResize(Sender: TObject);procedure Label12MouseDo wn(Sender: TObject; Button: TMo useButton; Shift: TShiftState; X, Y: Integer);procedure Label13MouseDo wn(Sender: TObject; Button: TMo useButton; Shift: TShiftState; X, Y: Integer);procedure imgTitleBarMo useMo ve(Sender: TObject; Shift: TShiftState; X, Y: Integer);procedure Label11Mo useMo v e(Sender: TObject; Shift: TShiftState; X,Y: Integer);private{ Private declarations }public{ Public declarations } end;varfrmPSHotKey: TfrmPSHotKey;implementation{$R *.dfm}procedure TfrmPSHotKey.FormCreate(Sender: TObject); beginTag := Height;Height := 16;//定位到屏幕右下角Top := Screen.Height - 40;Left := Screen.Width - Width - 2;Show;//从屏幕右下角逐渐弹出while Height<Tag do beginHeight := Height + 5;Top := Top - 5;Update;Application.ProcessMessages;Sleep(10);end;Height := Tag;Tag := 0;Color := $F4BA9D;FormResize(Sender);end;procedure TfrmPSHotKey.FormPaint(Sender: TObject); vari: integer;rgn: HRGN;r: TRect;beginwith Canvas do begin//利用imgTitleBarBG绘制标题背景for i:=0 to ClientWidth div imgTitleBarBG.Width doDraw(i*imgTitleBarBG.Width, 0, imgTitleBarBG.Picture.Bitmap);if Tag<>0 then Exit; //如果窗体正在弹出状态,不绘制内容面板背景 //绘制内容面板背景SetRect(r, 5, 15, Width-5, Height-5);StretchDraw(r, imgShapeBG.Picture.Bitmap);Pen.Color := $C97F55;Brush.Style := bsClear;RoundRect(r.Left, r.Top, r.Right, r.Bottom, 6, 6);//绘制窗体边框rgn := CreateRectRgn(0,0,0,0);GetWindowRgn(Self.Handle, rgn);Brush.Color := $BE796B;windows.FrameRgn(Handle, rgn, Brush.Handle, 2, 2);DeleteObject(rgn);end;end;procedure TfrmPSHotKey.imgTitleBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin//在标题按下鼠标键时,允许移动窗体或改变窗体大小ReleaseCapture;if X < 5 then Perform(WM_SYSCOMMAND, $F004, 0)else if X > Width - 5 then Perform(WM_SYSCOMMAND, $F005, 0)else if Y < 3 then Perform(WM_SYSCOMMAND, $F003, 0)else Perform(WM_SYSCOMMAND, $F012, 0);end;procedure TfrmPSHotKey.FormResize(Sender: TObject);varrgn, rgn2: HRGN;beginif Tag<>0 then Exit;//窗体改变大小时重建Rgnrgn := CreateRoundRectRgn(0, 0, Width+1, Height, 4, 4);rgn2 := CreateRectRgn(0, 11, Width, Height);CombineRgn(rgn, rgn, rgn2, RGN_OR);SetWindowRgn(Handle, rgn, True);DeleteObject(rgn);DeleteObject(rgn2);Invalidate;end;procedure TfrmPSHotKey.SpeedButton1Click(Sender: TObject); beginClose;end;//以下几个Label用来改变窗体大小procedure bel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;if X < 5 then Perform(WM_SYSCOMMAND, $F007, 0)else if X > Width - 5 then Perform(WM_SYSCOMMAND, $F008, 0) else Perform(WM_SYSCOMMAND, $F006, 0);end;procedure bel12MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;Perform(WM_SYSCOMMAND, $F001, 0);end;procedure bel13MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;Perform(WM_SYSCOMMAND, $F002, 0);end;//下面代码判断鼠标所在位置,并改变鼠标光标,提示用户可以拖动窗体或改变大小procedure TfrmPSHotKey.imgTitleBarMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginif X < 5 then imgTitleBar.Cursor := crSizeNWSEelse if X > Width - 5 then imgTitleBar.Cursor := crSizeNESW else if Y < 3 then imgTitleBar.Cursor := crSizeNSelse imgTitleBar.Cursor := crSizeAll;end;procedure bel11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginif X < 5 then Label11.Cursor := crSizeNESWelse if X > Width - 5 then Label11.Cursor := crSizeNWSE else Label11.Cursor := crSizeNS;end;end.{ Public declarations } end;varfrmPSHotKey: TfrmPSHotKey;implementation{$R *.dfm}procedure TfrmPSHotKey.FormCreate(Sender: TObject); beginTag := Height;Height := 16;//定位到屏幕右下角Top := Screen.Height - 40;Left := Screen.Width - Width - 2;Show;//从屏幕右下角逐渐弹出while Height<Tag do beginHeight := Height + 5;Top := Top - 5;Update;Application.ProcessMessages;Sleep(10);end;Height := Tag;Tag := 0;Color := $F4BA9D;FormResize(Sender);end;procedure TfrmPSHotKey.FormPaint(Sender: TObject);vari: integer;rgn: HRGN;r: TRect;beginwith Canvas do begin//利用imgTitleBarBG绘制标题背景for i:=0 to ClientWidth div imgTitleBarBG.Width doDraw(i*imgTitleBarBG.Width, 0, imgTitleBarBG.Picture.Bitmap);if Tag<>0 then Exit; //如果窗体正在弹出状态,不绘制内容面板背景 //绘制内容面板背景SetRect(r, 5, 15, Width-5, Height-5);StretchDraw(r, imgShapeBG.Picture.Bitmap);Pen.Color := $C97F55;Brush.Style := bsClear;RoundRect(r.Left, r.Top, r.Right, r.Bottom, 6, 6);//绘制窗体边框rgn := CreateRectRgn(0,0,0,0);GetWindowRgn(Self.Handle, rgn);Brush.Color := $BE796B;windows.FrameRgn(Handle, rgn, Brush.Handle, 2, 2);DeleteObject(rgn);end;end;procedure TfrmPSHotKey.imgTitleBarMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin//在标题按下鼠标键时,允许移动窗体或改变窗体大小ReleaseCapture;if X < 5 then Perform(WM_SYSCOMMAND, $F004, 0)else if X > Width - 5 then Perform(WM_SYSCOMMAND, $F005, 0)else if Y < 3 then Perform(WM_SYSCOMMAND, $F003, 0)else Perform(WM_SYSCOMMAND, $F012, 0);end;procedure TfrmPSHotKey.FormResize(Sender: TObject);varrgn, rgn2: HRGN;beginif Tag<>0 then Exit;//窗体改变大小时重建Rgnrgn := CreateRoundRectRgn(0, 0, Width+1, Height, 4, 4);rgn2 := CreateRectRgn(0, 11, Width, Height);CombineRgn(rgn, rgn, rgn2, RGN_OR);SetWindowRgn(Handle, rgn, True);DeleteObject(rgn);DeleteObject(rgn2);Invalidate;end;procedure TfrmPSHotKey.SpeedButton1Click(Sender: TObject); beginClose;end;//以下几个Label用来改变窗体大小procedure bel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;if X < 5 then Perform(WM_SYSCOMMAND, $F007, 0)else if X > Width - 5 then Perform(WM_SYSCOMMAND, $F008, 0) else Perform(WM_SYSCOMMAND, $F006, 0);end;procedure bel12MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;Perform(WM_SYSCOMMAND, $F001, 0);end;procedure bel13MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); beginReleaseCapture;Perform(WM_SYSCOMMAND, $F002, 0);end;//下面代码判断鼠标所在位置,并改变鼠标光标,提示用户可以拖动窗体或改变大小procedure TfrmPSHotKey.imgTitleBarMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);beginif X < 5 then imgTitleBar.Cursor := crSizeNWSEelse if X > Width - 5 then imgTitleBar.Cursor := crSizeNESW else if Y < 3 then imgTitleBar.Cursor := crSizeNSelse imgTitleBar.Cursor := crSizeAll;end;procedure bel11MouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integer);beginif X < 5 then Label11.Cursor := crSizeNESWelse if X > Width - 5 then Label11.Cursor := crSizeNWSE else Label11.Cursor := crSizeNS;end;。
delphi messagebox用法
文章标题:深入探讨Delphi中MessageBox的用法及其实际应用在Delphi编程语言中,MessageBox是一个非常常见且实用的函数,用于在程序中显示各种提示、警告和错误信息。
在本文中,我们将从浅入深地探讨MessageBox的使用方法及其实际应用。
1. MessageBox的基本语法在Delphi中,使用MessageBox函数可以在程序中创建一个消息框来显示提示信息。
其基本语法如下:```ShowMessage('这是一个简单的提示信息');```上面的代码将在程序中弹出一个消息框,显示内容为“这是一个简单的提示信息”。
2. MessageBox的参数MessageBox函数还可以接受多个参数,以便实现更丰富的提示信息展示。
常用的参数包括:- 弹出消息框的标题- 指定显示的消息内容- 消息框的类型(比如信息、警告、错误等)- 消息框的按钮类型(比如确定、取消、是、否等)3. MessageBox的实际应用在实际开发中,MessageBox函数可以帮助程序员完成很多任务,比如:- 在用户操作错误时给出友好的提示- 在程序出现异常时提醒用户- 在特定条件下展示重要的信息4. MessageBox的深入使用除了基本的使用方法,MessageBox还可以通过结合其他功能来实现更复杂的效果。
比如可以在MessageBox弹出后执行一些额外的逻辑,或者定制化消息框的外观和行为。
5. 个人观点和总结对于MessageBox的用法,我的个人观点是,在实际开发中要灵活运用MessageBox函数,根据不同的场景和需求来选择合适的参数和样式,以展现出更好的用户体验。
也要注意不要过多地使用MessageBox,以免影响用户的操作流畅性。
通过本文的阐述,相信大家对Delphi中MessageBox的用法有了更深入的了解。
在实际开发中,熟练掌握MessageBox函数的使用方法将有助于提高程序的用户友好性和交互性。
在Delphi中使用对话框
end;
finally
frmUserData.Free;
end;
end;
End.
private
{ Private declarations }
public
{ Public declarations }
nd;
function GetUserData(var aUserName: String;var aUserID: Integer): Word;
在Delphi中使用对话框2006-10-08 14:481、procedure ShowMessage(const Msg: string);
showMessage('Hello,World!');
2、function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
if MessageDlg('文档被修改,是否保存?',mtConfirmation,[mbYes,mbNo],0,mbYes)=mrYes then
3、模式窗体实例化函数
所有窗体单元都应当含有实例化函数,用于创建、设置、模式显示和释放窗体。这个函数将返回由窗体返回的模式结果。传递给这个函数的参数遵循参数传递的规则。之所以要这样封装,是为了便于代码的重用和维护。
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
第5章 Delphi的对话框设计
TOpenPictureDialog的直接上级是 TOpenDialog,它的特性、方法和事件与
TOpenDialog全相同。在一个Timagem1.Button2Click(Sender: TObject);
begin
OpenPictureDialog1.Filter := '图片|*.jpg;*.bmp';
✓ Copies:设置打印的份数。
✓ FromPage、ToPage:设置打印范围的起始页 码和结束页码。
✓ PrintToFile:打印作业被输出到一个文件 而不是到打印机上。
例:
procedure TForm1.Button5Click(Sender: TObject);
begin
with PrintDialog1 do
OpenDialog1.FileName := '';
if OpenDialog1.Execute then
memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
另外TOpenDialog组件有一组 Options属性,缺省时它们的取值均为 False。
为了方便用户,Delphi预定义了
FontDialog组件。
常用属性和事件:
Device属性:用于设置从哪儿检索可用 的字体。
(可选项有fdScreen/屏幕、fdPrinter/ 打印机、fdBoth/两者)。
OnApply事件:当OnApply事件被定 义后,[字体]对话框会出现[应用]按钮, 当用户按下[应用]按钮时将触发这个事 件。
第5章 对话框设计
5.1 “打开”对话框组件 5.2 “保存”对话框组件 5.3 “字体”对话框组件 5.4 “颜色”对话框组件 5.5 “打印”对话框组件 5.6 “打印设置”和
Delphi中MessageBox使用详解
Delphi中MessageBox使用详解在Delphi中,MessageBox是一个用于显示消息框的函数。
消息框是一个常见的交互式对话框,用于向用户显示信息并等待用户响应。
MessageBox函数可以用于显示不同类型的消息框,包括警告、确认、错误等类型。
MessageBox函数有多个参数,包括消息文本、标题、按钮和图标等。
下面我们将详细介绍这些参数的使用。
1.消息文本:MessageBox函数的第一个参数是消息文本,即要显示给用户的消息内容。
消息文本可以是一个字符串常量或变量。
例如:```DelphiMessageBox(0, 'Hello world', 'Message', MB_OK);```这个示例代码将在消息框中显示"Hello world"。
2.标题:MessageBox函数的第二个参数是消息框的标题。
标题是可选的,如果不提供标题,默认为"Message"。
标题可以是一个字符串常量或变量。
3.按钮:MessageBox函数的第三个参数用于指定要显示的按钮。
有多种按钮类型可供选择,包括OK、Cancel、Yes、No等。
可以使用按位或运算符(,)将多个按钮组合在一起。
例如:```DelphiMessageBox(0, 'Are you sure?', 'Confirmation', MB_YESNO);```这个示例代码将显示一个带有"Yes"和"No"两个按钮的确认消息框。
4.图标:MessageBox函数的第四个参数用于指定要显示的图标。
有多种图标类型可供选择,包括信息、警告、错误等。
可以使用按位或运算符(,)将多个图标组合在一起。
例如:```DelphiMessageBox(0, 'Error occurred!', 'Error', MB_ICONERROR);```这个示例代码将显示一个带有错误图标的错误消息框。
DELPHI中的自定义通用对话框处理
DELPHI中的自定义通用对话框处理和消息处理一、自定义通用对话框在Delphi的VCL的Dialog包中存在多个通用对话框,比如TopenDialog(文件选择对话框)、TsaveDialog(文件保存对话框)、TopenPictureDialog(图片打开对话框)、TfontDialog(字体选择对话框)、TfindDialog(文件查找对话框)、TreplaceDialog(文件替换对话框)等13个常用、通用的标准对话框,这里的标准对话框采用的是Windows系统内置的标准对话框,对话框的风格和样式和操作系统的风格和样式是一致的,之所以能够保持一致,是因为通用对话框是由通过对话框模版生成的窗体,只不过这些对话框模版由操作系统定义。
建立自定义通用对话框有两种方式:1、修改通过对话框模版来实现的;2、通过代码在运行时添加控件;这里首先介绍一下通过对话框模板方式的实现步骤:1、对话框模板方式Delphi的通用对话框位于Delphi系统库的VCL.Dialogs单元,Delphi 中所有通用对话框类都继承自TCommonDialg 抽象类,以TfindDialog为例,可以看到创建查找兑换的结构信息如下:tagFINDREPLACEW = packed recordlStructSize: DWORD; { size of this struct $20 }hWndOwner: HWND; { handle to owner's window }hInstance: HINST; { instance handle of.EXE thatcontains cust. dlg. template }Flags: DWORD; { one or more of the fr_?? }lpstrFindWhat: PWideChar; { ptr. to search UnicodeString }lpstrReplaceWith: PWideChar; { ptr. to replace UnicodeString }wFindWhatLen: Word; { size of find buffer }wReplaceWithLen: Word; { size of replace buffer }lCustData: LPARAM; { data passed to hook fn. }lpfnHook: function(Wnd: HWND; Message: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall;{ ptr. to hook fn. or nil }lpTemplateName: PWideChar; { custom template name }在这个抽象类中定义了PWideChar 类型的Template属性,这个属性就是用来存放模版标识的,通过在IDE中对操作系统标准的对话框模板进行修改,因为lpTemplateName是保护属性,所以需要对通用对话框进行继承,继承的类中定义好TemplateRes属性,将修改好的模板赋给TemplatesRes属性,例如:TemplateRes := Windows.MakeIntResource(131);其中131为资源ID。
delphi 代码中设置控件的方法 -回复
delphi 代码中设置控件的方法-回复Delphi代码中设置控件的方法在Delphi中,设置控件是编写桌面应用程序的基本任务之一。
通过设置控件的属性,可以实现对其外观、大小、位置、行为和其他一些与用户交互相关的方面进行控制。
本文将一步一步地解释Delphi中设置控件的方法。
第一步:添加控件到窗体首先,在Delphi中,我们需要在窗体上添加控件。
这可以通过拖放控件到窗体设计视图上或者通过编程方式创建控件来实现。
拖放方式是最常用的方法。
在Delphi的窗体设计视图中,从工具箱中选择所需的控件,将鼠标拖动到窗体上,并释放鼠标按钮。
这将在窗体上创建一个新的控件实例。
编程方式创建控件需要用到Delphi的组件对象模型(Component Object Model, COM)。
首先,需要选择所需的控件类型,然后使用代码创建该控件的实例。
第二步:设置控件属性添加控件到窗体后,可以开始设置控件的属性。
在Delphi中,可以通过属性编辑器或代码来设置控件的属性。
使用属性编辑器属性编辑器是Delphi中设置控件属性的常用方法。
可以在组件面板中选中相应的控件,然后在对象检查器面板中查看和编辑控件的属性。
属性可以按字母顺序或按类别进行排序,以便更轻松地找到所需的属性。
使用代码通过编程方式设置控件属性可以使用Delphi的对象模型。
可以在代码中使用控件实例的属性或方法来设置相应的属性。
以下是一个示例,演示了如何以代码方式设置一个编辑框的背景颜色:pascalEdit1.Color := clYellow;本示例将编辑框(Edit1)的背景颜色设置为黄色。
以此方式,通过为控件实例调用属性和方法,可以对控件的各个属性进行设置。
例如,可以设置控件的字体、大小、位置、可见性等等。
第三步:设置控件事件处理程序除了设置控件的属性外,还可以为其添加事件处理程序,以响应用户的交互。
Delphi中的事件处理程序是一个特殊的方法,用于处理控件与用户之间的交互。
Delphi7程序设计第4章
内容提要
使用Delphi7内建的信息对话框函数 Delphi7内建的信息对话框函数 Delphi7 Delphi 通用对话框 多重窗体设计
4.1 Delphi7内建的对话框函数 Delphi7内建的对话框函数
在Delphi 7中,提供了几个直接显示内建信 息对话框的函数。这些函数分别是 ShowMessage,ShowMessagePos,ShowMessa gFmt,MessageDlg,MessageDlgPos,Message Dlg,MessageDlgPos,MessageDlgPosHelp,Me ssageBox,InputBox和InputQuery等。下面就 分别介绍这些对话框。
图4 - 1
ShowMessage函数弹出的对话框 ShowMessage函数弹出的对话框
4.1.2 ShowMessagePos函数 ShowMessagePos函数
ShowMessagePos函数ShowMessage函数也类 似,不过多了一个显示格式参数。通过该函数可以 输出一些字符串进行格式化后的值。 ShowMessagePos函数定义如下:
4.2.1 TOpenDialog 和 TSaveDialog组件 TSaveDialog组件
(3)FileName 属性:是用户选择或者输入的文件名称,它可 返回最近一次选择的文件的名称和完整目录路径。 (4)Filter 属性:该属性提供了文件过滤器。 (5)FilterIndex 属性:该属性可预先设置对话框打开时所 使用的过滤器。 (6)Title 属性:该属性可以在程序中改变对话框的标题条 中的内容。默认情况下,打开对话框(OpenDialog)的标题为 “打开”;保存对话框(SaveDialog)的标题为“另存为”。 (7)Options 属性:该属性决定对话框的显示和行为方式。 它是集合类型,包含很多对话框的细节设置,其取值及含义如 表4-9 所示。
delphi fileopendialog 使用 参数
delphi fileopendialog 使用参数在Delphi 中,TFileOpenDialog 是一个用于打开文件的对话框组件,它属于Vcl.Dialogs 单元。
使用 TFileOpenDialog,用户可以轻松地从文件系统中选择一个或多个文件。
下面将详细介绍如何使用 TFileOpenDialog 及其参数。
首先,你需要确保你的 Delphi 项目中包含了 Vcl.Dialogs 单元。
通常,这可以通过在代码文件的顶部添加 uses 语句来完成,如下所示:delphiusesVcl.Dialogs;然后,你可以创建一个 TFileOpenDialog 实例并配置其属性。
以下是一个基本的示例:delphivarOpenDialog: TFileOpenDialog;begin// 创建 TFileOpenDialog 实例OpenDialog := TFileOpenDialog.Create(nil);try// 设置对话框的标题OpenDialog.Title := '请选择一个文件';// 设置默认的文件类型过滤器OpenDialog.Filter := '文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*';// 设置默认的文件类型OpenDialog.FilterIndex := 1;// 设置初始目录OpenDialog.InitialDir := 'C:\';// 显示对话框if OpenDialog.Execute thenbegin// 如果用户选择了文件,则获取第一个文件的完整路径ShowMessage(OpenDialog.FileNames[0]);end;finally// 释放 TFileOpenDialog 实例OpenDialog.Free;end;end;在这个示例中,我们创建了一个 TFileOpenDialog 实例,并设置了其标题、文件类型过滤器、默认文件类型、初始目录等属性。
delphi dxcalloutpopup 控件用法
delphi dxcalloutpopup 控件用法Delphi dxCalloutPopup 控件用法Delphi 是一种功能强大的集成开发环境(IDE),用于创建Windows 应用程序。
在Delphi 中,有许多控件可供开发者使用,以增强应用程序的用户界面。
dxCalloutPopup 是其中之一,它提供了一种弹出式消息框,用于在用户界面中显示信息。
在本篇文章中,我们将一步一步地介绍dxCalloutPopup 控件的用法。
第一步:准备开发环境在开始使用dxCalloutPopup 控件之前,我们需要确保已正确安装并配置了Delphi IDE。
确保在开发环境中使用的是最新版本的Delphi,并在项目中添加dxCalloutPopup 单元。
第二步:创建dxCalloutPopup 控件要使用dxCalloutPopup 控件,我们需要在Delphi 窗体上创建一个实例。
在Form Designer 上,可以从“工具栏”中,选择“Additional”选项卡,然后从“dxCalloutPopup”组件列表中,将dxCalloutPopup 控件拖放到窗体上。
第三步:设置dxCalloutPopup 控件的属性在属性编辑器中,我们可以设置dxCalloutPopup 控件的各种属性,以满足应用程序的需求。
以下是一些常见的属性设置:1. BackgroundColor:设置弹出消息框的背景颜色。
2. BorderColor:设置弹出消息框的边框颜色。
3. CalloutLocations:设置弹出消息框的定位方式(例如,左上角、右上角等)。
4. AnimationType:设置弹出消息框的动画类型(例如,淡出、滑入等)。
5. CalloutPosition:设置弹出消息框的位置(例如,相对于控件的中心、左边缘等)。
6. ShowBeak:设置是否显示弹出消息框的箭头。
除了上述属性设置之外,dxCalloutPopup 控件还提供了许多其他属性,可用于自定义消息框的外观和行为。
对话框函数和对话框组件
显示“是”、“否”、“取消”按钮
显示“终止”、“重试”、“忽略”按钮
信息框上左边第一个按钮聚焦 信息框上左边第二个按钮聚焦 信息框上左边第三个按钮聚焦
提示信息对话框
InputBox(输入框)
定义格式:function InputBox(const ACaption, APrompt, ADefault: string): string;
OpenDialog组件的常用方法
Execute方法 执行该方法将打开文件对话框,若用户选择文件后单击“打开”按钮,Execute方法返回True
演示
MessageBox(信息框)
定 义 格 式 : function MessageBox(const Text, Caption:PChar; Flags: Longint): Integer;
功能说明:调用MessageBox后,在屏幕中心处显示一个信息对话框,并等待用户 的回应。其中Text是信息框中要显示的字符串;Caption是信息框的标题内容; Flags是复合参数,可以由下表 的Flags参数的取值及意义中每个类别各取一 个参数相加,如MB_OKCANCEL + MB_ICONQUESTION +MB_DEFBUTTON2。
OpenDialog组件和SaveDialog组件 OpenPictureDialog组件和SavePictureDialog组件 FontDialog组件和ColorDialog组件 FindDialog组件和ReplaceDialog组件 PrintDialog组件和PrinterSetupDialog组件
演示
OpenDialog组件的常用属性
FileName属性:用于记录最后一个选中的文件的全路径名。 Files属性:是TStrings类型。当允许选择多个文件时,它按先后顺 序记录下被选中的所有文件的全路径名,最后被选中的文件路径名 (即FileName)置于Files[0]中。 Filter属性:它的类型为TStrings,用来设置要浏览的各文件类型。 使得文件打开对话框仅显示扩展名与Filter中所列扩展名匹配的文件。 FilterIndex属性:用来指定Filter属性中哪个显示在文件类型栏中。 FilterIndex大于Filter属性中类型的总数,则第一个类型会被显示。 FilterIndex从1开始计数,默认值是1。 InitialDir 属 性 : 用 于 指 定 该 对 话 框 弹 出 时 默 认 目 录 。 如 果 InitialDir为空或其指定的目录根本不存在,则显示当前的工作目录。
delphi弹出信息框大全
delphi弹出信息框大全1.警告信息框MessageBox(Handle,'警告信息框','警告信息框',MB_ICONWARNING); 2.疑问信息框MessageBox(Handle,'疑问信息框','疑问信息框',MB_ICONQUESTION); 3.错误提示框MessageBox(Handle,'错误信息框','错误信息框',MB_ICONERROR); 4.提示信息框MessageBox(Handle,'提示信息框','提示信息框',MB_ICONASTERISK); 5.说明信息框MessageBox(Handle,'说明信息框','说明信息框',MB_HELP);6.提示信息框MessageBox(Handle,'提示信息框','提示信息框',MB_OK);7.确认信息框MessageBox(Handle,'确认信息框','确认信息框',MB_OKCANCEL);8.重试信息框MessageBox(Handle,'重试信息框','重试信息框',MB_RETRYCANCEL); 9.是否信息框Application.MessageBox(Handle,'是否信息框','是否信息框',MB_YESNO);10.是否取消信息框Application.MessageBox(Handle,'是否取消信息框','是否取消信息框',MB_YESNOCANCEL);11 简单提示信息框ShowMessage('这个就是ShowMessage函数生成的信息提示框!');_______________________________________________________________________ ______1.警告信息框MessageBox(Handle,'程序超出内存。
输出对话框
MessageDlg和MessageDlg函数返回值
单击按钮 mbYes mbNo mbOK
mbCancel mbAbort mbRetry mbIgnore
mbAll mbNoToAll mbYesToAll
mbHelp
MessageDlg返回值 mrYes mrNo mrOK
mrCancel mrAbort mrRetry mrIgnore
Delphi系统中定义了11个表示按钮类型的 枚举值,各个枚举值对应的按钮类型如下表 所示。
MessageBox函数返回值的宏及含义
枚举值 mbYes mbNo mbOK mbCancel mbAbort mbHelp
含义 Yes按钮 No按钮 OK按钮 Cancel按钮 Abort按钮 Help按钮
Delphi程序设计
• Caption:设置对话框标的题栏。
• Text:设置对话框中显示的文本内容。
• Flags:设置对话框中按钮的类型和数量。
在上述参数中,Text与Caption均为字符串 类型,其长度没有限制,如果需要,可以超过 255个字符。当Text字符串长度过长时,系统会 自动换行,而Caption字符无论长度如何均不能 换行。
(a)Warming类型 (b)Error类型 (c)Information类型(d)Confirmation类型
不同类型的对话框
3.MessageDlg对话框中的按钮
在MessageDlg对话框中可以出现一个或 多个按钮,但在同一对话框中,一种类型的 按钮只能有一个。MessageDlg函数使用 Butto合型。在Buttons集合中添加 一个枚举值,就在MessageDlg对话框中增加 一个对应的按钮。
Delphi教学 第08章 对话框设计(new)
messagedlg('aa',mtinformation,[mbok, mbcancel],0ssagedlg('输入的数据无效 ',mtinformation,[mbok,mbcancel],0)=mrok then showmessage('ok') else showmessage('cancel');
8.2 消息框
表8-5 Abuttom参数的取值
取值
mbYes mbNo mbOk
说明
一个表面上显示“Yes”的按钮 一个表面上显示“No”的按钮 一个表面上显示“OK”的按钮
mbCancel
mbHelp mbAbort mbRetry mbIgnore mbAll
一个表面上显示“Cancel”的按钮
8.2 消息框
表8-4 Atype参数的取值 取值 mtWarning mtError 说明 显示一个带有蓝色惊叹号的消息框 显示一个带有红色停止符号的消息框
mtInformation 显示一个带有蓝色“i”标志的消息框 mtConfirmation 显示一个带有绿色问号的消息框 mtCustom 消息框中没有位图,对话框的标题是应 用程序执行文件名
8.1 通用对话框组件
(2) 主要属性 ① DefaultText属性:用于设置打开文件对话框的默认扩展 名,如果不需要扩展名,该属性设置为空. ② FileName属性:用来设置打开对话框中默认的文件名 ③ Filter属性:确定文件类型和在文件类型下拉框中的顺序 ④ filterindex属性:文件类型过滤器的索引项 ⑤ InitialDir属性:用来设置打开对话框中的当前文件夹 ⑥Title属性:用来设置对话框的标题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delphi的消息对话框输入输出inputBox()函数MessageBox()ShowMessage对话框是Windows操作系统中程序与用户沟通的一种常见的交互方式,对话框可以向用户提供当前程序的运行状况,也可以接受用户输入的信息,在 Delphi中,对话框函数大体上可以分为两种——输入对话框函数和输出对话框函数。
输入对话框函数用于接收用户在程序运行过程中输入的信息,其中包括 InputBox(),InputQuery()函数。
输出对话框函数则用于显示一个对话框窗体和向用户报告当前程序的运行状态等信息,它包括ShowMessage()函数、 MessageDlg()函数。
下面就对各个函数分别加以介绍。
输入:InputBox()函数对话框函数中的InputBox()函数用于在程序运行的过程中显示一个包含一个字符串和按钮信息的输入对话框。
它的语法结构如下所示:function InputBox(const ACaption, APrompt, ADefault: string): string;下面以一个示例来说明InputBox()函数的用法:procedure TForm1.Button1Click(Sender: TObject);varstr : string;beginstr:=inputbox('南山古桃的对话框','请输入要平方的数据','0');edit1.Text:='南山古桃得到的平方是:' + floattostr(strtofloat(str)*strtofloat(str)); end;输出:1.ShowMessage()函数--最常用,最简单对话框函数中的ShowMessage()函数用于在程序运行的过程中显示包含一个字符串信息的对话框。
它的语法结构如下所示:ShowMessage(const Msg:string);如:ShowMessage('南山古桃问候您!');2.MessageBox()函数--正式程序时常用此函数输出(个人观点)例:--Application.MessageBox('MessageBox','警告',MB_ICONWARNING+MB_YesNo);--MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel);--MessageBox(Form1.Handle,'MessageBox','提示‘,MB_ICONINFORMATION+MB_OkCancel+MB_DEFBUTTON2);-- if MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel)= idOk thenbeginShowMessage('Ok');end;//********************************************************************************* ***********************************在Delphi中输入MessageBox按下F1,会出来帮助,可以查阅具体参数int MessageBox(HWND hWnd, // handle of owner windowLPCTSTR lpText, // address of text in message boxLPCTSTR lpCaption, // address of title of message boxUINT uType // style of message box);Specifies a set of bit flags that determine the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags.Specify one of the following flags to indicate the buttons contained in the message box: Flag MeaningMB_ABORTRETRYIGNORE The message box contains three push buttons: Abort, Retry, and Ignore.MB_OK The message box contains one push button: OK. This is the default.MB_OKCANCEL The message box contains two push buttons: OK and Cancel.MB_RETRYCANCEL The message box contains two push buttons: Retry and Cancel.MB_YESNO The message box contains two push buttons: Yes and No.MB_YESNOCANCEL The message box contains three push buttons: Yes, No, and Cancel.Specify one of the following flags to display an icon in the message box:Flag MeaningMB_ICONEXCLAMATION,MB_ICONWARNINGAn exclamation-point icon appears in the message box.MB_ICONINFORMATION, MB_ICONASTERISKAn icon consisting of a lowercase letter i in a circle appears in the message box. MB_ICONQUESTION A question-mark icon appears in the message box.MB_ICONSTOP,MB_ICONERROR,MB_ICONHANDA stop-sign icon appears in the message box.Specify one of the following flags to indicate the default button:Flag MeaningMB_DEFBUTTON1 The first button is the default button. MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or MB_DEFBUTTON4 is specified.MB_DEFBUTTON2 The second button is the default button.MB_DEFBUTTON3 The third button is the default button.MB_DEFBUTTON4 The fourth button is the default button.Return ValuesThe return value is zero if there is not enough memory to create the message box.If the function succeeds, the return value is one of the following menu-item values returned by the dialog box:Value MeaningIDABORT Abort button was selected.IDCANCEL Cancel button was selected.IDIGNORE Ignore button was selected.IDNO No button was selected.IDOK OK button was selected.IDRETRY Retry button was selected.IDYES Yes button was selected.If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect.//********************************************************************************* ***********************************3.MessageDlg()函数--南山古桃不知道为什么出不来中文?对话框函数中的MessageDlg()函数用于在程序运行的过程中显示包含一个字符串、位图和按钮信息的对话框。
它的语法结构如下所示:function MessageDlg(const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint): Word;下面以一个示例来说明MessageDlg()函数的用法:procedure TForm1.Button3Click(Sender: TObject);begin//显示一个问号和Yes、No两个按钮的输出对话框if MessageDlg('你想退出本程序吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes thenbegin//如果按下“yes”就显示一个感叹号的输出对话框MessageDlg('按下OK就退出', mtInformation,[mbOk], 0);Close;end;end;在本例中MessageDlg()函数中使用到的参数Atype是TmsgDlgType类型,它的值主要有以下几种:mtWarning、 mtError、mtInformation、mtConfirmation,、mtCustom;而参数Abuttons 是 TmsgDlgButtons类型,它的值主要有以下几种:mbYes、mbNo、 mbOK,、mbCancel、mbAbort、mbRetry、mbIgnore、mbAll、mbHelp。