第4章 delphi主体窗体制作
盘古delphi窗体设计规范
1.1 窗体/对话框设计1.1.1 一般说明在本规范中主要对应用程序的窗体/对话框界面进行说明。
并且主要是说明在窗体中控件的排列规范1.1.2 消息对话框用来显示错误消息和其他重要信息的模式对话框叫消息对话框。
在对话款中包含标题栏,用来表示消息的来源。
在消息对话框中还包含一个只是正在被显示的消息种类的图形符号,消息的三种类型是:(提示:信息框统一采用MessageBox )。
●信息消息; ●警告消息; ● 极重要消息。
图 1 信息消息框图 2 警告消息框图 3 极重要消息1.1.3 窗体在窗体的设计中,本规范主要说明按钮在窗体中的放置位置。
● 窗体中的颜色设置为标准的Windows 颜色,以灰色为主。
窗体中文字颜色为黑色;● 窗体中的字体为宋体,字号为5号;● 窗体的大小应为60的倍数;● 窗体中的标题栏中不能含有图标,文字对齐方式为左对齐,窗体中要包含关闭按钮。
如果需要设置显示为(?)的帮助按钮;● 窗体中主要控制要包含快捷键;● 窗体的位置。
窗体通常水平和垂直地置于应用程序窗口的中央。
如果一个应用程序找到一个更适合对话框的位置,也可以放在别处。
●如果按钮命令显示一个对话框,在标题中需要有如下的提示(…)。
如(显示图例…)●按钮的大小。
按钮的高为“27”,宽为“90”(在将按钮和对话框的网格对齐时,网格的间隔设为10-15)。
当按钮的标题超过两个汉字时,可以适当增加按钮的宽。
如果需要,可以增加按钮的高,当改变按钮的形状,风格时,应该经过项目组的统一;●推荐的按钮。
每个对话框都至少包含一个关闭对话框的按钮。
只要求用户确认(而不用选择)的消息对话框只包含一个标以“确认”的按钮。
其他所有对话框都至少包含两个按钮:一个关闭对话框并启动一个动作;另一个关闭对话框但并不启动任何动作。
启动动作的按钮通常标以“确认”。
关闭对话框但不启动任何动作的按钮通常标以“取消”。
某些对话框(称为多动作对话框)另外包括一些允许用户启动某些动作但不管比对话框的按钮。
Delphi程序设计基础与上机指导演讲稿第04章精品PPT课件
程序基础 - 编写代码
自动生成的框架代码
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TfrmMain = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
end.
程序基础 - 编写代码
自动创建的工程代码
begin
Application.Initialize; Application.Title := 'My Hello World!';
程序基础 - 编写代码
多窗体调用
ShowModal 方法 多窗体的关系 主窗体 被调用窗体
程序基础 - 编写代码
修改对话框的标题
Caption := '关于 ' + Application.Title; 这里使用Application的属性 设置了Captions属性 多个对象作用,对象的概念
程序基础 - 设计窗体
窗体上包含多个组件
对齐工具 整体移动操作 统一调整尺寸 各种对多个组件的控制方法
程序基础 - 设计窗体
在窗体上添加按钮
窗体上可以存在多个按钮 不同按钮完成不同的功能 按钮有标题、位置、尺寸等属性 按钮具有事件句柄,能够相应用户的请求 按钮的事件句柄需要处理
delphi课件 组件与窗体
38
组件元素
1. 组件的公共元素 每个组件都包含一系列的属性、方法和事件。其中 一部分是从父类中继承而来的,称为公共元素,如 每个组件都有一个单击事件,它就是所有组件的公 共元素。 2. 组件的关键元素 每一组件都有自己特殊的元素,这些元素称之为关 键元素。如单选按钮有一个Checked属性,它表示 单选按钮的状态(是否被选中)。
28
过程与函数—量作用域
程序中应尽量少用全局标识符,全局标识符往往增 加了程序模块间的依赖关系和复杂性,降低了程序 模块封装性的要求。但有时还是需要使用全局变量 的,如用户的登陆信息等。 一般把全局变量定义在某个单元的接口部分。
29
可视化组件库
在使用Delphi开发应用程序中,广泛地使用到组件。 可视组件库(Visual Component Library,简称 VCL)是Delphi中最重要的部分,通过VCL可以在窗 体中方便地构建与用户交互的界面,其中大部分组 件显示在组件面板(Components Palette)上。除 了少数例外,所有的组件都是TComponent类的子类。 另外,用户还可以创建自己定义的特殊功能组件。
5
单元文件结构
3. 实现部分(implementation part)
• 从关键字implementation开始直到本单元末尾或初 始化部分之前。主要用于定义在界面部分说明的全 部公共过程体和函数体。也可说明局部的常量、类 型、变量、过程或函数。 • 其中的{$R *.DFM}是编译指令,指示编译器在编译 时要连接窗体。 4. 初始化部分(initialization part) 5. 结束部分(finalization part)
34
窗体和组件
2. 对窗体的理解
Delphi自定义窗体(最大化、最小化、关闭、窗体的移动)
Delphi自定义窗体(最大化、最小化、关闭、窗体的移动)Uses ShellAPI;1、//最小化procedure TForm1.btn1Click(Sender: TObject);varI, J, X, Y: Word;begin//第一种:最小化在屏幕的左下角,不是常见的最小化// WindowState := wsMinimized;//第儿种:最小化在任务栏里面,是常见的最小化postmessage(Self.Handle,WM_SYSCOMMAND,SC_MINIMIZ E,0);end;2、//最大化/正常的按钮procedure TForm1.btn2Click(Sender: TObject);varabd: TAppBarData;beginif WindowState = wsMaximized thenWindowState := wsNormalelsebeginWindowState := wsMaximized; // BorderStyle为 bsNoneabd.cbSize := sizeof(abd);SHAppBarMessage(ABM_GETTASKBARPOS, abd); //读取任务的区域Self.Height := Self.Height - (abd.rc.Bottom - abd.rc.Top); //预留出任务的位置end;end;3、//关闭procedure TForm1.btn3Click(Sender: TObject);beginClose;end;4、//窗体的移动procedure TForm1.lbl1MouseDown(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);beginif Button=Mbleft thenbeginReleaseCapture;Perform(WM_NCLBUTTONDOWN,HTCAPTION,0);//消息处理end;end;5、//查找应用程序中已经创建的窗体function FindForm(FormName: string): TForm;vari:Integer;beginResult := nil;for i:=0 to ponentCount-1 dobeginif ponents[i].Name = FormName thenbeginResult := TForm(ponents[i]);Break; end; end; end;。
使用Delphi进行Windows应用程序开发教程
使用Delphi进行Windows应用程序开发教程第一章: Delphi简介Delphi是一种集成开发环境(IDE),用于编写Windows上的应用程序。
它基于Pascal语言,并提供了丰富的库和组件,使开发人员能够快速构建功能强大的应用程序。
在本教程中,我们将介绍Delphi的基本概念和工具,以帮助您入门。
第二章:环境设置在开始编写Delphi应用程序之前,我们需要设置开发环境。
首先,下载并安装Delphi IDE。
然后,我们将通过设置项目选项来配置编译器和调试器,以确保我们的应用程序能够顺利运行。
第三章:界面设计一个成功的应用程序离不开良好的用户界面设计。
Delphi提供了丰富的可视化设计工具,如窗体设计器和组件面板,帮助开发人员创建吸引人且易于使用的界面。
在本章中,我们将学习如何添加控件、设置属性以及处理事件。
第四章:数据操作应用程序通常需要与数据库进行交互,以存储和检索数据。
Delphi通过提供数据库连接组件和数据集组件,使得数据操作变得轻松。
我们将学习如何连接和配置数据库,以及如何使用数据集组件执行查询和更新操作。
第五章:文件操作文件操作是应用程序中常见的任务之一。
Delphi提供了用于文件操作的各种函数和组件,如文件读写和文件夹操作等。
我们将演示如何使用这些功能来读取、写入和管理文件。
第六章:多媒体处理现代应用程序通常涉及到音频、视频和图像处理。
Delphi提供了用于多媒体处理的组件和库,如音频播放器、视频解码器和图像处理功能。
我们将学习如何使用这些组件来实现音频、视频和图像的播放、录制和编辑。
第七章:网络通讯在互联网时代,网络通讯在应用程序中变得越来越重要。
Delphi提供了强大的网络编程库,如Socket和HTTP组件,使开发人员能够轻松地与服务器进行通讯。
我们将介绍如何使用这些组件来实现网络通讯功能。
第八章:调试和测试调试和测试是开发过程中必不可少的步骤。
Delphi提供了强大的调试工具,如断点和单步调试器,以帮助开发人员快速定位和解决问题。
delphi下用windowsapi创建窗体
delphi下用windowsapi创建窗体Delphi 下用Windows API 创建窗体// Delphi 下调用Windows API 创建窗体. //// 模板-------BY Hottey 2004-4-13-0:18 //// 作者网站: //program delphi;useswindows,messages;consthellostr=‘Hello World!‘;{$R delphi.res}//窗口消息处理函数.function MyWinProc(hWnd:THandle;uMsg:UINT;wParam,lPa ram:Cardinal):Cardinal;export;stdcall;varhdca,hdcb:THandle; //设备描述表句柄.rect:TRect; //矩形结构.font:HFont;ps:TPaintStruct; //绘图结构.beginresult:=0;case uMsg ofWM_PAINT:beginhdca:=BeginPaint(hWnd,ps);SetBkMode(hdca, Transparent);SetBkColor(hdca,GetBkColor(hdca));GetClientRect(hWnd,rect); //获取窗口客户区的尺寸.DrawText(hdca,Pchar(hellostr),-1,rect,DT_SINGLELINE or DT_CENTER or DT_VCENTER);// TextOut(hdc,100,40,hellostr,Length(hellostr));EndPaint(hWnd,ps);end;WM_CREATE:beginhdcb := GetDC(hWnd);font := CreateFont(45, 0, 0, 0, FW_normal, 0, 0, 0, ansi_chars et, out_default_precis, clip_default_precis,default_quality, 34, PChar(‘Arial‘));SelectObject(hdcb, font);ReleaseDC(hWnd, hdcb);end;WM_DESTROY:PostQuitMessage(0)else//使用缺省的窗口消息处理函数.result:=DefWindowProc(hWnd,uMsg,wParam,lParam);end;end;//主程序开始.varMsg :TMsg; //消息结构.hWnd,hInst :THandle; //Windows 窗口句柄.WinClass :TWndClassEx; //Windows 窗口类结构.beginhInst:=GetModuleHandle(nil); // get the application instanc eWinClass.cbSize:=SizeOf(TWndClassEx);WinClass.lpszClassName:=‘MyWindow‘; //类名.WinClass.style:=CS_HREDRAW or CS_VREDRAW or CS_OWN DC;WinClass.hInstance:=hInst; //程序的实例句柄.//设置窗口消息处理函数.WinClass.lpfnWndProc:=@MyWinProc; //窗口过程.WinClass.cbClsExtra:=0; //以下两个域用于在类结构和Windows内部保存的窗口结构WinClass.cbWndExtra:=0; //中预留一些额外空间.WinClass.hIcon:=LoadIcon(hInstance,MakeIntResource(‘M AINICON‘));WinClass.hIconsm:=LoadIcon(hInstance,MakeIntResource(‘MAINICON‘));WinClass.hCursor:=LoadCursor(0,IDC_Arrow);//GetStockObject 获取一个图形对象,在这里是获取绘制窗口背景的刷子,返回一个白色刷子的句柄.WinClass.hbrBackground:=HBRUSH(GetStockObject(white_ Brush));WinClass.lpszMenuName:=nil; //指定窗口类菜单.//向Windows 注册窗口类.if RegisterClassEx(WinClass)=0 thenbeginMessageBox(0,‘Registeration Error!‘,‘SDK/API‘,MB_OK);Exit;end;//建立窗口对象.hWnd:=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, //扩展的窗口风格.WinClass.lpszClassName, //类名.‘Hello Window‘, //窗口标题.WS_OVERLAPPEDWINDOW, //窗口风格.CW_USEDEFAULT, //窗口左上角相对于屏幕左上角的初始位置x.0, //....右y.CW_USEDEFAULT, //窗口宽度x.0, //窗口高度y.0, //父窗口句柄.0, //窗口菜单句柄.hInst, //程序实例句柄.nil); //创建参数指针.if hWnd<>0 thenbeginShowWindow(hWnd,SW_SHOWNORMAL); //显示窗口.UpdateWindow(hWnd); //指示窗口刷新自己.SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_N OMOVE + SWP_NOSIZE);endelseMessa geBox(0,‘Window not Created!‘,‘SDK/API‘,MB_O K);//主消息循环程序.while GetMessage(Msg,0,0,0) dobeginTranslateMessage(Msg); //转换某些键盘消息.DispatchMessage(Msg); //将消息发送给窗口过程.end;end.>其实Windows 编程是每个学写程序的人都要掌握的,学Delphi 时也最好能先学习Windos编程(最少要知道).以上代码虽说不如在Delphi中直接来个New->Form来的快,但它能告诉你本质的东西.能让你更好的了解消息循环以及其他.而这些正是让New出来的窗体给掩盖的部分.。
Delphi程序设计教程 第4章 菜单组件与菜单生成器的使用
在该对话框的列表框中列出所有的菜单模板。 第2步:在列表框中选定要删除的菜单模板,按 Del键或单击OK按钮。 Delphi将从模板列表中删除菜单模板并从硬盘中 删除它。 4. 从资源中导入菜单 Delphi支持其它程序建立的菜单,只要它们是标 准的Windows资源文件(.RC)格式。可将这些菜单导入 到Delphi的项目中。其操作过程为:
4.3.3 Checked属性 该属性只在运行时有效,它确定了一个选项是否 被选定。该选项为一布尔型 4.3.4 Default属性 该属性为一布尔型,其值确定菜单项是否用黑体 字及当父菜单项双击时,该菜单项是否被调用。默认 值为false,即菜单项不用黑体字及当父菜单项双击时, 该菜单项不被调用。
在该对话框的列表框中列出所有可用的菜单模板。 第2步:在列表框中选定要插入的菜单模板。 选择的模板菜单插入到窗体中当前光标的位置。具体 的插入方式为:若当前光标在菜单项上,则插入到当 前光标之上;若光标在菜单栏上,则插入到当前光标 的左边。 2. 将自己设计的菜单保存为模板 用户自己设计的菜单也可以保存为模板,供以后 使用。以使自己设计的应用程序具有一致的外观(就像 选择MDI菜单,使设计的应用程序与Windows具有完 全一致的菜单)。将菜单保存为模板的操作过程为: 第1步:在菜单生成器窗口上右单击,弹出快捷菜 单。选择Save As Template菜单命令。 这时出现Save Template对话框。如图4-6所示。
⑴
使用Menu属性指定激活的菜单
使用窗体的Menu属性可指定激活的菜单。合并菜 单操作只用于激活的菜单,若窗体中包含多个菜单组 件,在运行时,可通过在代码中设置Menu属性来激活
菜单。
⑵ 使用GroupIndex属性确定合并菜单的次序
2024年delphi程序设计课件
Delphi程序设计课件引言Delphi是一种强大的应用程序开发工具,广泛用于桌面、移动、Web和数据库应用程序的开发。
本课件旨在为初学者提供Delphi程序设计的基础知识和技能,使读者能够掌握Delphi的基本概念和编程技术,从而开发出高效、可靠的应用程序。
第一部分:Delphi简介1.1Delphi的历史和发展Delphi是由Borland公司于1995年推出的,最初的版本是基于ObjectPascal语言的应用程序开发工具。
随着技术的发展,Delphi逐渐扩展支持多种编程语言和平台,如C++、.NET、JavaScript等。
目前,Delphi是由EmbarcaderoTechnologies公司维护和更新的。
1.2Delphi的特点和应用领域Delphi具有丰富的功能和特点,如可视化编程、快速应用程序开发、强大的数据库支持等。
它广泛应用于桌面应用程序、移动应用程序、Web应用程序、数据库应用程序等领域。
第二部分:Delphi编程基础2.1Delphi程序的基本结构Delphi程序由多个单元组成,每个单元包含一个或多个类和过程。
每个Delphi程序至少包含一个主单元,主单元中包含一个主过程,程序的执行从主过程开始。
2.2数据类型和变量Delphi支持多种数据类型,如整数、浮点数、字符、字符串、布尔等。
变量是存储数据值的容器,它们具有数据类型和名称。
在Delphi中,变量必须在声明后才能使用。
2.3控制结构控制结构用于控制程序的执行流程,包括条件语句、循环语句和跳转语句。
条件语句用于根据条件执行不同的代码块,循环语句用于重复执行代码块,跳转语句用于跳转到程序的其他部分。
第三部分:Delphi可视化编程3.1Delphi的可视化编程环境Delphi提供了一个可视化的编程环境,允许开发人员通过拖放控件来创建用户界面。
开发人员可以调整控件的大小和位置,设置控件的属性和事件,从而实现用户界面的设计和功能。
《Delphi程序设计基础教程》 第4章 过程与函数
过程声明的格式如下:
procedure <过程名>([<形式参数表>]);
过程定义的格式如下:
procedure <过程名>([<形式参数表>]);
[<局部变量和常量声明>]
begin
<过程语句体>
end;
DELPHI程序设计基础教程
2020年1月9日星期四
4.1.2 过程的调用
过程调用的格式如下: 过程名 ([<实际参数表>]); 其中过程名是过程的标识符;实际参数 可以是常量、变量或表达式,但实际参 数的个数和类型必须与形式参数完全匹 配,即个数相同,类型一致。 例4-1:使用过程实现三个数从大到小 排序输出。
函数返回一个函数值,过程则能完成一 系列各种操作。函数的调用方式出现在表达 式中,而过程调用是一句独立的语句。
函数调用的格式如下:
函数名([<实际参数表>]);
其中函数名是函数的标识符,它必须在 程序调用之前进行说明;实际参数表是一些 由逗号分隔的参数,参数出现的顺序必须和 函数定义时形式参数出现的顺序和类型一致 ,一一对应。
例4-3:求五边形的面积,如教材图4-1。
DELPHI程序设计基础教程
2020年1月9日星期四
4.3 过程和函数的递归调用
4.3.1 过程和函数的递归调用 4.3.2 过程和函数的类型 4.3.3 过程与函数的调用约定
DELPHI程序设计基础教程
2020年1月9日星期四
4.3 过程和函数的递归调用
函数定义的格式如下:
function 函数名 (形式参数列表:参数类型):函数返回类型;
<说明部分>;
delphi 加载窗体的方法
delphi 加载窗体的方法Delphi 加载窗体的方法1. 使用 CreateForm 函数•使用 CreateForm 函数可以在运行时创建并加载一个窗体。
•CreateForm 函数的语法如下:procedure CreateForm(InstanceClass: TComponentClass; var Reference);•Example:varForm1: TForm1;procedure (Sender: TObject);varForm2: TForm2;begin(TForm2, Form2);;end;2. 使用方法•使用方法可以在运行时创建并加载一个窗体。
•方法的语法如下:procedure CreateForm(InstanceClass: TComponentClass; var Reference);•Example:varForm1: TForm1;procedure (Sender: TObject);begin(TForm2, Form2);;end;3. 使用 TClass 类型的变量•使用 TClass 类型的变量可以在运行时创建并加载一个窗体。
•Example:varFormClass: TClass;Form: TForm;procedure (Sender: TObject);beginFormClass := TForm2;Form := TForm((Application));;end;4. 使用 TFormClass 类型的变量•使用 TFormClass 类型的变量可以在运行时创建并加载一个窗体。
•Example:varFormClass: TFormClass;Form: TForm;procedure (Sender: TObject);beginFormClass := TForm2;Form := (Application);;end;5. 使用 LoadFormRes 函数•使用 LoadFormRes 函数可以从资源中加载窗体。
用Delphi设计多边形窗体
本⽂将介绍如何利⽤Windows提供的制作界⾯函数制作⼀个多边形窗体。
制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状。
Windows的CreatePolygonRgn 和SetWindowRgn函数可以解决这两个难点。
利⽤以下代码即可将窗体设置为⼀个五边形:procedure TForm1.FormCreate(Sender: TObject); var pt: array [0..4] of TPoint; m_rgn: HRGN; begin pt[0].x:=self.Width div 2; pt[0].y:=0; pt[1].x:=0; pt[1].y:=self.Height div 2; pt[2].x:=self.Width div 2; pt[2].y:=self.Height; pt[3].x:=self.Width; pt[3].y:=self.Height div 2; pt[4].x:=self.Width; pt[4].y:=0; m_rgn:=CreatePolygonRgn(pt,5,WINDING); SetWindowRgn(self.Handle,m_rgn,TRUE);end; 该程序⾸先定义了⼀个TPoint类型的数组pt,在其中存储了⼀个五边形的数据。
然后使⽤CreatePolygonRgn函数将这个五边形转换成为⼀个区域,最后使⽤SetWindowRgn函数,根据五边形指定的区域改变窗体的形状。
程序代码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations }end;var Form1: TForm1; implementation {$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); var pt: array [0..4] of TPoint; m_rgn: HRGN; begin pt[0].x:=self.Width div 2; pt[0].y:=0; pt[1].x:=0; pt[1].y:=self.Height div 2; pt[2].x:=self.Width div 2; pt[2].y:=self.Height; pt[3].x:=self.Width; pt[3].y:=self.Height div 2; pt[4].x:=self.Width; pt[4].y:=0; m_rgn:=CreatePolygonRgn(pt,5,WINDING); SetWindowRgn(self.Handle,m_rgn,TRUE); end; end. 保存⽂件,然后按F9键运⾏程序,结果如图1-3所⽰。
delphi 代码中设置控件的方法 -回复
delphi 代码中设置控件的方法-回复Delphi代码中设置控件的方法在Delphi中,设置控件是编写桌面应用程序的基本任务之一。
通过设置控件的属性,可以实现对其外观、大小、位置、行为和其他一些与用户交互相关的方面进行控制。
本文将一步一步地解释Delphi中设置控件的方法。
第一步:添加控件到窗体首先,在Delphi中,我们需要在窗体上添加控件。
这可以通过拖放控件到窗体设计视图上或者通过编程方式创建控件来实现。
拖放方式是最常用的方法。
在Delphi的窗体设计视图中,从工具箱中选择所需的控件,将鼠标拖动到窗体上,并释放鼠标按钮。
这将在窗体上创建一个新的控件实例。
编程方式创建控件需要用到Delphi的组件对象模型(Component Object Model, COM)。
首先,需要选择所需的控件类型,然后使用代码创建该控件的实例。
第二步:设置控件属性添加控件到窗体后,可以开始设置控件的属性。
在Delphi中,可以通过属性编辑器或代码来设置控件的属性。
使用属性编辑器属性编辑器是Delphi中设置控件属性的常用方法。
可以在组件面板中选中相应的控件,然后在对象检查器面板中查看和编辑控件的属性。
属性可以按字母顺序或按类别进行排序,以便更轻松地找到所需的属性。
使用代码通过编程方式设置控件属性可以使用Delphi的对象模型。
可以在代码中使用控件实例的属性或方法来设置相应的属性。
以下是一个示例,演示了如何以代码方式设置一个编辑框的背景颜色:pascalEdit1.Color := clYellow;本示例将编辑框(Edit1)的背景颜色设置为黄色。
以此方式,通过为控件实例调用属性和方法,可以对控件的各个属性进行设置。
例如,可以设置控件的字体、大小、位置、可见性等等。
第三步:设置控件事件处理程序除了设置控件的属性外,还可以为其添加事件处理程序,以响应用户的交互。
Delphi中的事件处理程序是一个特殊的方法,用于处理控件与用户之间的交互。
Delphi程序设计基础第4章-Delphi的基本组件
1.RadioButton组件
RadioButton组件位于组件板的 “Standard”选项卡中。单选按钮一个比较 特殊的属性是Checked属性,表示单选按 钮是否被选中,默认值为False(未选中)。 在窗体上放置许多单选按钮时, Delphi会自动将它们看做一个组,每次只 能选中一个。如果想在窗体上放置两组单 选按钮,可以使用GroupBox(成组框)组 件或者直接用RadioGroup组件。
4.3 编辑型组件
编辑型组件在应用程序中主要用于输 入文本、数字或格式化字符串等。编辑型 组件都是窗口型控件,可以获得输入焦点。
4.3.1 Edit组件
Edit(编辑框)组件常与标签一起使 用,主要用于输入单行文本。
1.常用属性
编程时,常通过编辑框的Text属性获 取文本字符串。 如果用Edit组件来输入/输出数值型数 据,需对其数值合法性进行检验,使用时 用StrToInt(),StrToFloat(),IntToStr(), FloatToStr()abel(标签)组件是典型的非窗口控 件,它不能获得输入焦点,一般用来显示 用户不能改变的文字或给一些没有标题属 性的组件(如编辑框等)充当标题。标签 组件位于组件板的“Standard”选项卡上。
添加标签组件后,即可用对象查看器 设置标签属性。 标签很少单独使用,一般和其他组件 结合使用。
NumGlyphs属性指定位图按钮使用位 图的个数,取值只能是1,2,3,4,最多 使用4幅位图。不过,多幅(1,2,3,4) 位图保存在同一个位图文件中。实际上, Delphi 是将位图文件中的位图水平等分为 多幅(1,2,3,4)位图来使用的。
4幅位图的作用如下: 第1幅位图在释放按钮时显示; 第2幅位图在按钮处于禁止状态时显 示; 第3幅位图在单击按钮时显示; 第4幅位图在按钮凹陷时显示。
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 所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)BorderIcon属性用于定制窗体的标题栏,该 BorderIcon属性用于定制窗体的标题栏,该 属性为集合类型,集合元素及其含义见表4 属性为集合类型,集合元素及其含义见表4-3。
表4-3 BorderIcon属性的元素及其含义 BorderIcon属性的元素及其含义
元素 biSystemMenu biMinimize biMaximize biHelp 含义 窗体的标题栏中含系统菜单(位于左端) 窗体的标题栏中含最小化按钮(位于右端) 窗体的标题栏中含最大化按钮(位于右端) 当BorderIcon属性不含有biMinimize和biMaximize 时,窗体标题栏中含有帮助按钮(位于右端)
第四章 Delphi主体窗体制作 Delphi主体窗体制作
4.1创建新窗体 创建新窗体 4.2 窗体的属性、方法和事件 窗体的属性、 4.3 设计窗体
Delphi简明教程 简明教程
清华大学出版社
1
4.1创建新窗体 4.1创建新窗体
在Delphi的应用程序的开发过程中, 创建窗体往往是用户进行程序设计的第一 步。实际上,只要启动Delphi,系统就会 自动产生一个窗体,这在前面已经进行了 介绍。目前,尽管用户除了进入到Delphi 的开发环境还都什么都没有做,但系统已 经提供了一个完整的Windows应用程序, 这时只要用户选择Run菜单的Run命令,这 个用户没有做任何操作的应用程序就可以 运行。当然,这个应用程序对
图4-2 提示信息 Delphi简明教程 简明教程 清华大学出版社 5
单击yes按钮,Delphi将自动在Main单元的 代码中添加对单元unit2的引用。 也可以手工实现在Main单元中添加对单元 unit2 的 引 用 代 码 , 单 击 cancel 按 钮 , 然 后 在 Main单元的实现部分(implementation)添加如 下代码: implementation uses Unit2;
表4-2 FormStyle属性的取值及其说明 FormStyle属性的取值及其说明
取值 fsNormal fsMDIChild fsMDIForm fsStayOnTop 说明 普通的窗体 MDI(多文档窗体)子窗体 MDI主窗体 位于桌面顶层的窗体
Delphi简明教程 简明教程
清华大学出版社
14
4.2 窗体的属性、方法和事件
4.2.1 设置窗体属性
可以调整或设置窗体的大小、风格、标题、名 称等属性来确定其外观和特征。 1、窗体的位置及大小 、 与窗体位置及大小有关的属性有Height、Width、 Top、Left、Position、Align属性。 其中Height和Width分别决定了窗体的高度和宽 度,Top和Left属性则决定窗体的左上角相对于屏幕 左上角的坐标。
(5)HorzScrollBar和VertScrollBar属性分别用于设置窗体的 HorzScrollBar和VertScrollBar属性分别用于设置窗体的 水平和垂直滚动条。 水平和垂直滚动条。 除了以上介绍的属性之外,窗体还拥有其他许多属性, 除了以上介绍的属性之外,窗体还拥有其他许多属性,其 取值与用法可查阅Delphi的联机帮助。 取值与用法可查阅Delphi的联机帮助。 Delphi简明教程 简明教程 清华大学出版社 18
Delphi简明教程 简明教程
清华大学出版社
3
图4-1 新建的Form2窗体 新建的Form2窗体 ( 3 ) 修改主窗体:在主窗体 Form1 中增加按钮 修改主窗体:在主窗体Form1 Button1 Button2 Button3 并修改其属性如4 Button1、Button2、Button3,并修改其属性如4-1 右图所示。 并为按钮Button2 编写单击( OnClick) 右图所示 。 并为按钮 Button2 编写单击 ( OnClick ) 事件过程代码如下:
Delphi简明ion属性也是用来确定窗体在屏幕中的位置, 但 仅 当 Align 属 性 alNone 时 才 有 效 。 此 时 , 若 Position属性取值为poDesigned,窗体的位置由Top 和Left属性来确定;若Position属性取值为其它值, 则 Top 和 Left 属 性 无 效 。 Position 属 性 取 值 为 poScreenCenter,窗体位于屏幕的中央。 2、窗体的名称与标题 、 对象的名称即Name属性的取值,被用来唯一地 标识对象,窗体也不例外。Name属性的取值不能 为空。应注意,若工程中有多个窗体时,名称不能 相同。 窗体的标题由Caption属性来确定,该属性可以为 空。缺省时,Caption属性与Name属性相同。
BsSizeToolWindow
说明 标准对话框风格的边界,运行时不能改变窗体的 大小 窗体边界为单线,运行时不能改变窗体的大小 运行时窗体无边界线,且不能改变窗体的大小 运行时可以改变窗体的大小 运行时与BsDialog的外观相似,只是标题栏较小, 不能改变窗体的大小 运行时与BsDialog的外观相似,只是标题栏较小, 能改变窗体的大小
Delphi简明教程 简明教程 清华大学出版社 13
3、窗体的外观与风格 与 窗 体 的 外 观 与 风 格 有 关 的 属 性 有 FormStyle 、 BorderIcon 、 BorderStyle 、 WindowStyle 、 HorzScrollBar和VertScrollBar属性。 HorzScrollBar和VertScrollBar属性。 (1)FormStyle 属性用于确定窗体的类型, 属性用于确定窗体的类型,该属 性为枚举类型。属性的取值及其说明见表4 性为枚举类型。属性的取值及其说明见表4-2。
Delphi简明教程 简明教程
清华大学出版社
6
(5)保存并运行工程,单击主窗体上的按钮“创 保存并运行工程,单击主窗体上的按钮“ 建新窗体” 显示结果如图4 建新窗体”。显示结果如图4-3。
图4-3 工程的运行结果 Delphi简明教程 简明教程 清华大学出版社 7
2、动态创建新窗体 、 用上述方法创建的多窗体的工程,在运行时 将把所有的窗体装入内存。如果工程非常复杂 ,系统资源将变得非常紧张。这种情况最好使 用这种方法:在需要某个窗体的时候,临时创 建,使用完后再将其释放。 在上面的工程中进行修改。 (1)修改工程选项。选择Project|Options,系统 打开“Project Options”对话框。在“Form”选项 卡 中 , 所 有 工 程 的 窗 体 出 现 在 “ Auto-Creat Form”列表框中,表示这些窗体在运行时都是 在内存中自动创建的。选中Form2,将其移至 “Availableforms”列表框中,如图4-4。
Delphi简明教程 简明教程 清华大学出版社 11
Align属性用来设定窗体相对于屏幕的对齐方式 , Align 属性用来设定窗体相对于屏幕的对齐方式, 该属 性的类型为枚举类型,取值见表4 性的类型为枚举类型,取值见表4-1。
取值 alButton alClient alLeft alNone alRight alTop 表4-1 Align属性的取值 Align属性的取值 说明 窗体位于屏幕的下方,宽度为整个屏幕宽(Width属 性失败),高度为Height 窗体占据屏幕的中部Width与Height属性失败 窗体位于屏幕的左方,宽度为Width,高度为整个屏 幕高(Height属性失败) 其他属性有效 窗体位于屏幕的右方,宽度为Width,高度为整个屏 幕高(Height属性失败) 窗体位于屏幕的上方,宽度为整个屏幕宽(Width属 性失败),高度为Height
4.2.2 窗体的方法
窗体对象从其父类TCustomForm中继承了多种方法, 其中最常用的方法见表4-6。
表4-6 窗体的常用方法
方法名称 Creat Close CloseQuery Release Show ShowModa l Print 说明 用来创建一个窗体并进行初始化,同时引发一个OnCreat事件。应 该方法创建的窗体需要调用Show方法使之可见 用来关闭一个显示中的窗体,同时调用CloseQuery方法来判断是 否可以关闭,若可以,则引发一个OnClose事件并关闭窗体 用来判断窗体是否可以被关闭,返回一个逻辑值 用于将窗体对象从内存中彻底清除 用于显示窗体,同时引发一个OnShow事件 用于显示一个模式窗体,同时引发一个OnShow事件 用于打印窗体
Delphi简明教程 简明教程 清华大学出版社 8
图4-4 Project Options对话框 Options对话框 Delphi简明教程 简明教程 清华大学出版社 9
( 2 ) 修 改 代 码 。 修 改 主 窗 体 中 按 钮 Button2 的 单 击 ( OnClick)事件过程代码: Procedure TForm1.Button2Click(Serder : Tobject); Begin Form2 :=TForm2.Creat(nil); //使用Creat方法来创建并完 成Form2的初始化 Form2.Show; End; 增加Form2中关闭(OnClick)事件的过程代码: Procedure TForm2.FormClose(Serder : Tobject;var Action : tCloseAction): begin form2.Release;//释放form2所占的系统资源 end; 返回 Delphi简明教程 简明教程 清华大学出版社 10
Delphi简明教程 简明教程
清华大学出版社
15
(3)BorderStyle属性用于确定窗体边界的类型,该属性 BorderStyle属性用于确定窗体边界的类型, 为枚举类型,取值及其含义见表4 为枚举类型,取值及其含义见表4-4.
表4-4 BorderStyle属性的取值 BorderStyle属性的取值 属性值 BsDialog BsSingle BsNone BsSizeable BsToolWindow