前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >delphi vcl_delphi数据类型

delphi vcl_delphi数据类型

作者头像
全栈程序员站长
发布2022-11-09 21:21:52
2.7K0
发布2022-11-09 21:21:52
举报

大家好,又见面了,我是你们的朋友全栈君。

[+]

窗体和应用程序类表示Form和Application对象,这些类是从TComponent派生而来,它们实际也是组件,单独地把它列举出来,以示与拖到窗体上的控件加以区别。

1、 TApplication类

TApplication类封装了Windows程序的基本操作。TApplication所担负的任务有:管理图标、提供快捷帮助和基本消息处理。每个Delphi应用程序都有一个指向TApplication对象的指针,此指针称为Application,用TApplication类主要执行消息框,管理快捷帮助,为按钮和状态栏设置提示文本。TApplication有点不一样,它的有些属性(Icon,HelpFile和Title)可以通过Project Options对话框的Application页面来进行设置。其继承关系如下:

image
image

2、TForm类

TForm类封装了VCL中的窗体,窗体可用作主窗体、对话框、辅助窗口以及可以想像出的任何其他类型窗口。TForm是VCL中的主要功能类。其继承关系如下:

image
image

组件类

这组类包含的类非常广泛,可以进一步把它分成一些独立的分类:

1、 标准组件类

标准组件类是那些封装大部分Windows控件的组件,包括TButton,TEdit,TListBox,TMemo,TMainMenu,TScrollBar,TPopupMenu,TCheckBox,TRadioButton,TRadioGroup,TGroupBox,TPanel和TActionList。

0102
0102

这些类的大部分都封装了一个Windows控件,TMainMenu类封装一个应用程序的主菜单,在设计阶段,双击MainMenu组件的图标就会出现Menu Designer。TMainMenu有一些属性,这些属性能控制菜单选项是否变灰,是否被复选,快捷帮助ID,选项提示文本,以及其他的一些内容,每个菜单选项都有一个OnClick事件,因此可以为选中的菜单选项连接一个事件处理程序。

(1) TPanel组件

New Term

面板(panel)代表窗体上的一个矩形区域,通常它有它自己的组件,可以把它作为一个单元来处理。

Panel组件是一个包容器组件,因此它包含了其他一些组件,Panel有一些属性,这些属性用来控制面板将用什么类型的边缘,控制面板是否凸起、下凹或平放;还可以控制其便捷的宽度,这些属性的组合可以建立起各种多维面板。其继承关系如下:

image
image

(2) TActionList组件

这个组件用来增加一些命令,并且使这些命令很容易作用于一个组件或者一组组件,例如,一个应用程序通过用Clipboard组件,就可以在菜单、工具栏和快捷菜单上删除、拷贝和传送选项,如果Clipboard中有数据,那么传送的按钮盒菜单选项就会生效。如果Clipboard中没有数据,那么传送的按钮盒菜单项将无效,当用TActionList组件时,所有的控件(工具栏、按钮盒菜单选项)都可以是有效或者无效。其继承关系如下:

image
image

(3)Addition标签上的组件

它们也是标准控件,在组件选项板的Additional标签中可以找到这些控件,如下图:

0103
0103

TSpeedButton也是一个具有图像的按钮,但这个按钮不是一个真正的按钮,相反它是一个按钮的图形描述,这就使得可以利用大量的此按钮,但不消耗每个按钮的Windows资源。

image
image

TImage组件能够在窗体放置图像,可以从磁盘上选择这个图像文件。

image
image

TBevel提供了一个更美观的窗体。

image
image

TStringGrid和TDrawGrid类提供了一种表示网格信息的方法。

image
image
image
image

2、Win32自定义控件类

0104
0104

VCL有一种组件类,它们封装了很多Windows32位的自定义控件,这些包括TListView,TTreeView,TTrackBar,TProgressBar,TTabControl,TPageControl,TRichEdit,TImageList,TStatusBar,TAnimate,TDateTimePicker,TToolBar,TCoolBar和一些其他的组件。这里的有些组件较复杂,表示它们的VCL类也同样很复杂,但有一点是可以相信的,那就是应用这些通用控件,VCL可以减轻很多工作负担,在充分理解这些类之前,必须花一些时间去熟悉这些类,在以后的使用过程中我们会详细介绍。

3、数据库组件类

VCL还有一组主数据库组件,不但包括可视化组件,也包括非可视化组件,非可视化数据库组件包括TDateSource,TDatabase,TTable和TQuery。这些类封装了幕后数据库操作。

0105
0105

可视化数据库组件是VCL数据库操作的一部分,用户可以查看这些组件并可以与之交互。例如,TDBGrid组件是用来显示网格中的数据库表,在这种情况下,TDBGrid充当用户与数据库的接口,通过TDBGrid,用户可以查看和编辑数据库表。

TDBNavigator组件提供了一些按钮,用这些按钮用户可以移动数据库表,这个类包括的按钮有下一个记录、前一个记录、第一个记录、最后一个记录、取消编辑、接收编辑和继续编辑等。

0106
0106

另一种数据意识(data-aware)组件类把标准Windows控件与数据库字段紧紧地联系在一起,这些类包括TDBText、TDBEdit、TDBList、TDBImage和其他一些类。

4、通用对话类

0107
0107

毫无疑问,Windows用通用对话框来处理诸如打开文件、保存文件、选择字体、选择颜色等事情。VCL在各种类型的类中封装了这些通用对话框,这些类时TOpenDialog、TSaveDialog、TOpenPictureDialog、TSavePictureDialog、TFontDialog、TColorDialog、TPrintDialog和TPrintSetupDialog。VCL也为这个组件组中增加了TFindDialog和TReplaceDialog类,这个组件组中所有组件都是非可视化的,它们没有设计阶段可视化接口,当然在运行阶段显示,对话框是可视的。

5、系统组件类

0108
0108

组件选项面板上的System标签包含了可视化和非可视化组件的混合,TTimer类用来表示Windows系统计时器,它只有一个OnTimer事件,每当计时器启动时,就会调用这个事件,计时器的时间间隔是由Interval属性设置,TTimer是一个非可视化组件。

TMediaPlayer类也包含在这组类中,这个类可以用来处理媒体文件。比如音频、AVI视频和MIDI音频等,媒体不但可以被播放、停止、暂停、定位、而且还有很多其他操作,这个类具有很多属性和事件,这些属性和事件大大简化了Windows Media Control Interface(媒体控制接口MCI)复杂程度。

TPaintBox具有一个空画布,在这个画上可以画出任何喜爱的东西。这个组件有很多潜在的用户。

系统组件组中还包括OLE和动态数据交换DDE类。

6、Win 3.1组件

0109
0109

不要犯这种错误:只因为标签上的名字便放弃这个组件组。这个组件组包含一些功能强大的组件(Win 3.1标签源自Delphi1中)。其中比较好用的是TTabSet和TNotebook组件。这个组件组还包括一些组件,这些组件能帮助读者创建自己拥有的自定义File Open和File Save对话框,如TFileListBox、TDirectoryListBox、TDriveComboBox和TFilterComboBox。

7、Internet组件

0110
0110

这个Internet标签中包含了一些用于Internet编程的组件,这些组件包括HTML、FTP、SMTP、POP3和HTTP等组件,它也包含一些通过API进行的一般网络编程组件,这些组件中的绝大部分本来就是VCL组件,起码有一个组件THTML就是ActiveX控件。

8、样本组件

0111
0111

Samples标签中包含一些用于理解怎样编写组件的组件,它提供了这些组件的源代码,因此可以看出它们是怎样工作的,样本组件包括TGauge、TColorButton、TSpinButton,TSpinEdit,TDirectoryOutline和TCalendar。

9、ActiveX控件

0112
0112

ActiveX标签中包含ActiveX控件,这些控件可用于应用程序,这些控件包括Software FX公司的Chart Ix、Visual Component公司的Visual Speller、以及Bits Per Second公司的Formula One Spreadsheet、Formula One VtChart和Graph控件。

10、GDI类

GDI(图形设备接口)类在Windows GUI应用程序中起很大作用,这些类封装了位图、字体、设备描述环境(DCs)、画笔和笔等应用,它可以通过这些GDI对象把图形和文本在窗口上显示出来。GDI类与一个具体的组件没有联系,但很多类都有这些类的属性实例。例如,编辑控件有一个属性叫Font,它是TFont类的实例。

术语设备描述环境(device context)在传统的Windows程序员中是很著名的,但在VCL中此术语用的并不广泛,这是因为VCL在TCanvas类中封装Windows DC,VCL用术语画布(Canvas)来表示Windows设备描述环境。画布提供了可以用来画画的面,它用的方法是MoveTo、LineTo和TextOut,通过用Draw或StretchDraw方法可以再画布上显示位图。画布可以用来在其上画画。

TCanvas类包含了其他类GDI类的实例。例如,当做MoveTo/LineTo工作时,线是用当前画笔画的,Pen属性用来决定当前笔色,Pen属性是TPen类的一个实例。TPen有一些决定画什么类型线的属性,其类型有:线宽、线的格式(实线、虚线、点线等)和画线的模式。

TBrush类代表画笔,画笔是用来为画布操作填补画案,比如像FillRect,Polygon和Ellipse等画布操作,TBrush属性包括Color,Style和Bitmap。Style属性可以为画笔设置阴影线图案。Bitmap属性可以为填充一个位图。

TBitmap类封装了VCL中的位图操作,其属性包括Palette,Height,Width和TransparentColor,其方法包括LoadFromFile,LoadFromResourceID和SaveToFile,其他组件类也可以用TBitmap,除了TCanvas外诸如TImage、TBitBtn和TSpeedButton等都可以用TBitmap,在大量图形应用程序中通常用脱屏位图,这样可以减少闪动,改善图形质量。

TFont类处理字体操作,其属性包括Color,Height和Style。所有显示文本的组件类都有TFont类。

除了这里列出的GDI类以外,还有一些其他类,在以后的Delphi学习过程中,我们将会学习到更多有关这方面的类,并掌握使用它们。

下图显示了GDI类继承关系:

0113
0113

11、实用类(Utility Class)

VCL包括很多实用类,这些实用类可以用在应用程序中,实用类可以简化一些Windows编程。例如,TIniFile可以方便地使用Windows配置文件读和写(.INI文件),一般常识是在外面用.INI文件,在内部用Registry注册表,为了使用注册表方便,VCL提供了TRegistry和TRegkeyInfo类。

TStringList类可以表示字符串数组,TStringList类可以被很多类用来存储字符串,例如,TMemo类的Lines属性就是一个TStringList对象,通过用LoadFromFile和SaveToFile方法,TStringList可以保存字符串列表文件,或从文件中加载字符串列表,TStringList也可以用来读写文本文件。

另一个VCL实用类就是TList类,这个类可以建立任何想要的类型对象数组。TList类可以存储指针清单,TList类主要优点就是它提供了一种方法,这种方法可以使数组随着增加和删除对象,动态地扩大或缩小。

VCL还包括一些类,这些类可以用来读写数据流(数据流实际上只是数据块)。TStream,TFileStream,TMemoryStream和TResourceStream类都可以读写数据流,TStream是所有数据流类的基类,当处理磁盘上的文件时就会用到TFileStream类,在内存中处理数据时就要用到TMemoryStream类,从EXEs和DLLs中加载二进制资源时就要用到TResourceStream类,这些类还有更高级的用法,当需要它们提供的这些特别功能时,它们是很有用的。更多这些类的详细信息请大家自己看看Delphi VCL Help。

这不是全部

讨论到这里并没有讨论到所有的VCL类,但这里所涉及到的类在应用程序中用到的可能性很大。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/190031.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月24日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、 TApplication类
  • 2、TForm类
  • 组件类
    • 1、 标准组件类
      • (1) TPanel组件
      • (2) TActionList组件
      • (3)Addition标签上的组件
    • 2、Win32自定义控件类
      • 3、数据库组件类
        • 4、通用对话类
          • 5、系统组件类
            • 6、Win 3.1组件
              • 7、Internet组件
                • 8、样本组件
                  • 9、ActiveX控件
                    • 10、GDI类
                      • 11、实用类(Utility Class)
                        • 这不是全部
                        相关产品与服务
                        数据库
                        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档