VCL继承层次图(组件)

Kingron 2002-04-20 03:46:43
http://kingron.myetang.com/vcl_component.gif

VCL的继承层次图,GIF图形,目前只画了可视组件的部分,本来WinControl也Draw完成了的但是他妈的M$的软件出现了错误,在我最后一次操作的时候,丢失了全部的数据,因此重新Draw的时候,就只有这一部分了,他妈的,害得我一个晚上白干了!我FUCK M$....赫赫,等下又要被人骂“端起碗来吃饭,放下筷子骂娘”了!
...全文
242 90 打赏 收藏 转发到动态 举报
写回复
用AI写文章
90 条回复
切换为时间正序
请发表友善的回复…
发表回复
man8888 2002-10-16
  • 打赏
  • 举报
回复
Delphi 完整类树,For D5,D6,D7。
到这里下载我做的程序,按2种方式查看Delphi所有VCL类继承关系:
http://www.softreg.com.cn/shareware_view.asp?id={EEEF56C0-C9B8-4D72-90A6-5FF3C11813BE}
服务器有点慢,D5,D6,D7版程序做完了不过全部上传3M多,下载太慢,过两天
上传其他版的。


baiyongchun 2002-05-09
  • 打赏
  • 举报
回复
谢了!!!!!!!!!
man8888 2002-05-09
  • 打赏
  • 举报
回复
*******************************************************************
我做出个VCL完整类树,可以类继承方式/类层次两中方式查看整个VCL类信息。
有列出所有published属性,查找一个类,查找一个属性发布在哪个类等功能。
代码行数:400行。
使用控件:TreeView
使用函数:GetPropInfo,IsPublishedProp,TObject.ClassParent
E-mail: tzdgg@sohu.com
*******************************************************************
luckychange 2002-05-08
  • 打赏
  • 举报
回复
辛苦了~~~
johnmack 2002-05-07
  • 打赏
  • 举报
回复
你好厉害呀!
DDGG 2002-05-06
  • 打赏
  • 举报
回复
Very Good!崇拜中……
make11111 2002-05-06
  • 打赏
  • 举报
回复
up
csdnzjc 2002-05-04
  • 打赏
  • 举报
回复
不错,谢啦
Kingron 2002-04-28
  • 打赏
  • 举报
回复
zswang,我也准备作啊,哈!!!!!
你做我就不作了.......,我的思路还没有整理好,也是准备用TreeView来做....
做好了,通知我一下哦.......要不要数据文件?我有类层次数据文件.....,Excel的,你要Access的我也可以转换出来........
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻
嘻嘻嘻我将用代码来实现VCL继承层次图嘻嘻嘻嘻
嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻

Classes -> LineText -> TTreeView -> TreeText
man8888 2002-04-28
  • 打赏
  • 举报
回复
得到类继承图是通过简单编程是可以得到。但是类的属性、
数据域,方法就很难了。
前几天我琢磨想得到一个类的一个Published属性最初定义在哪个父类的
Protected部分,研究了一天没结果。:(
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
如果再在把属性取出来放到数据库中,不就可以自己整理一个VCL元件帮助
嘻嘻嘻MyBase一样的功能!嘻嘻嘻嘻
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
嘻嘻嘻我给你的只是一个例子,你怎么就当真了?嘻嘻嘻嘻

用 终端类 如果没有好的办法
就只有手工一个个的加代码
“Memo1.Lines.Add(ClassHierarchy(????????????));”
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
Memo1.Lines.Add(ClassHierarchy(TStringList));
Memo1.Lines.Add(ClassHierarchy(TMemoryStream));
.............................................
我已经想办法了,想利用单元名来取得
http://www.csdn.net/Expert/TopicView1.asp?id=683443
Kingron 2002-04-28
  • 打赏
  • 举报
回复
谢~~~~~~~
不过最好不要利用在窗体上面放控件的方法,可以考虑用所有的终端类类作。。。。。
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
uses TypInfo;

function ClassHierarchy(mClass: TClass; mDelimiter: string = '\'): string;
begin
Result := '';
while Assigned(mClass) do begin
Result := mClass.ClassName + mDelimiter + Result;
mClass := mClass.ClassParent;
end;
Delete(Result, Length(Result) - Length(mDelimiter) + 1, MaxInt);
end; { ClassHierarchy }

function 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 := ''
else Result := Copy(mStr, Pos(mDelimiter, mStr) + Length(mDelimiter), MaxInt);
end; { StrRight }

function ListCount(mList: string; mDelimiter: string = ','): Integer;
var
I, L: Integer;
begin
Result := 0;
if mList = '' then Exit;
L := Length(mList);
I := Pos(mDelimiter, mList);
while I > 0 do begin
mList := Copy(mList, I + Length(mDelimiter), L);
I := Pos(mDelimiter, mList);
Inc(Result);
end;
Inc(Result);
end; { ListCount }

function ListValue(mList: string; mIndex: Integer; mDelimiter: string = ','): string;
var
I, L, K: Integer;
begin
L := Length(mList);
I := Pos(mDelimiter, mList);
K := 0;
Result := '';
while (I > 0) and (K <> mIndex) do begin
mList := Copy(mList, I + Length(mDelimiter), L);
I := Pos(mDelimiter, mList);
Inc(K);
end;
if K = mIndex then Result := StrLeft(mList + mDelimiter, mDelimiter);
end; { ListValue }

function TreeNodeString(mTreeNode: TTreeNode; mDelimiter: string = '\'): string;
begin
Result := '';
while Assigned(mTreeNode) do begin
Result := mTreeNode.Text + mDelimiter + Result;
mTreeNode := mTreeNode.Parent;
end;
Delete(Result, Length(Result) - Length(mDelimiter) + 1, MaxInt);
end; { TreeNodeString }

function TreeViewToLineText(mTreeView: TTreeView; mStrings: TStrings;
mDelimiter: string = '\'): Boolean;
var
I: Integer;
begin
Result := False;
if not (Assigned(mTreeView) and Assigned(mStrings)) then Exit;
mStrings.Clear;
for I := 0 to mTreeView.Items.Count - 1 do
if mTreeView.Items[I].Count = 0 then
mStrings.Add(TreeNodeString(mTreeView.Items[I], mDelimiter));
Result := True;
end; { TreeViewToLineText }

function LineTextToTreeView(mStrings: TStrings; mTreeView: TTreeView;
mDelimiter: string = '\'): Boolean;
var
I, J, K: Integer;
vStrPath: string;
vStrText: string;
vTreeNode: TTreeNode;
vBoolFind: Boolean;
begin
Result := False;
if not (Assigned(mTreeView) and Assigned(mStrings)) then Exit;
mTreeView.Items.Clear;
for I := 0 to mStrings.Count - 1 do begin
vStrPath := '';
vTreeNode := nil;
for J := 0 to ListCount(mStrings[I], mDelimiter) - 1 do begin
vStrText := ListValue(mStrings[I], J, mDelimiter);
vStrPath := vStrPath + mDelimiter + vStrText;
vBoolFind := False;
for K := 0 to mTreeView.Items.Count - 1 do
if mDelimiter + TreeNodeString(mTreeView.Items[K], mDelimiter) =
vStrPath then begin
vTreeNode := mTreeView.Items[K];
vBoolFind := True;
Break;
end;
if vBoolFind then Continue;
vTreeNode := mTreeView.Items.AddChild(vTreeNode, vStrText);
end;
end;
Result := True;
end; { LineTextToTreeView }

procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
Memo1.WordWrap := False;
Memo1.Clear;
for I := 0 to ComponentCount - 1 do
Memo1.Lines.Add(ClassHierarchy(Components[I].ClassType));
LineTextToTreeView(Memo1.Lines, TreeView1);
TreeView1.SaveToFile('c:\temp.txt');
end;
王集鹄 2002-04-28
  • 打赏
  • 举报
回复
TObject
 TPersistent
  TComponent
   TControl
    TGraphicControl
     TCustomLabel
      TLabel
     TSpeedButton
     TBevel
     TShape
     TImage
    TWinControl
     TCustomTreeView
      TTreeView
     TCustomEdit
      TCustomMemo
       TMemo
      TEdit
      TCustomMaskEdit
       TMaskEdit
     TButtonControl
      TButton
       TBitBtn
      TCustomCheckBox
       TCheckBox
      TRadioButton
     TCustomListControl
      TCustomMultiSelectListControl
       TCustomListBox
        TListBox
      TCustomCombo
       TCustomComboBox
        TComboBox
     TScrollBar
     TCustomControl
      TCustomGroupBox
       TGroupBox
      TCustomGrid
       TCustomDrawGrid
        TDrawGrid
         TStringGrid
      TCustomPanel
       TPanel
     TCommonCalendar
      TDateTimePicker
      TMonthCalendar
     TCustomHotKey
      THotKey
     TAnimate
   TMenu
    TMainMenu
    TPopupMenu
   TCustomActionList
    TActionList
   TCustomImageList
    TDragImageList
     TImageList
forgot2000 2002-04-26
  • 打赏
  • 举报
回复
kingron(对CSDN愤怒中……),你现在在哪儿呢?
Kingron 2002-04-26
  • 打赏
  • 举报
回复
:wolfAone(¤一步一步网上爬¤) :
Word文档?没有........
40Star 2002-04-25
  • 打赏
  • 举报
回复
偶像Kingron (对CSDN愤怒中……) :我好崇拜你,给我签个名吧!

:)
加载更多回复(70)

中文名称:Delphi 7完美经典

http://www.huachu.com.cn/photo/2003/BB04672130c.jpg

出版社 : 中国铁道出版社
作者  : 江义华/
出版日期: 2003年7月
综合评价:
国标编号:ISBN 7-113-05241-X/TP.931
条形码 :9787113052416
字数  :989千字  
印张  :41.75
印数  :1-5000   
页数  :654
开本  :787*1092 1/16
版别版次:2003年7月第一版第一次印刷
内容简介:
本书特色
层次清晰、语言通俗、语法简练、以实用性为第一位。
深入剖析了Object Pascal程序语言,包括指针、数据结构以及有关Override 和Overload函数的语法等。
对面向对象的观点详述了Delphi VCL组件的属性、方法及事件,且在数据库设计方面辅以应用的范例。
实例配有光盘,快速引导您踏入Delphi程序开发领域。
适合想要深入了解Delphi程序设计的专业设计师,对一开始就想打好Delphi程序设计基础的初学者也非常适用。

目录 :
第0章 认识Delphi

0-1 前言
0-2 Delphi简介
0-3 进入Delphi7
0-4 退出Delphi

第1章 常用的窗口工具

1-1 窗体(Form)
1-2 代码编辑器(Code Editor)
1-3 代码浏览器(Code Explorer)
1-4 组件面板(Componet Palette)
1-5 对象检视器(Object Inspector)
1-6 快捷工具栏(Speed Menu)
1-7 项目管理器(Project Manager)
1-8 桌面工具栏(Desktops Tollbar)
1-9 像编辑器(Image Editor)
1-10 对象浏览器(Object TreeView)
1-11 关联选项卡(Digram Page)

第2章 常用的菜单

2-1 File菜单
2-2 Edit菜单
2-3 Search菜单
2-4 View菜单
2-5 Project菜单
2-6 Run菜单
2-7 Tools菜单
2-8 Windows菜单

第3章 集成开发环境的改变

3-1 Delphi集成开民环境介绍
3-2 操作菜单方面的改进
3-2-1 外面方面的改变
3-2-2 内容方面的改变
3-3 对象检视器方面的改进
3-4 组件面板的改进
3-5 代码编辑器的改进
3-6 设计陈列室的改进
3-7 编译信息的显示
3-8 调试器方面的改进
3-8-1 Watch List改进
3-8-2 Debugger选项的改进
3-8-3 Run Parameters对话框的改进

第4章 Delphi Object Pascal的初步印象

4-1 面向对象程序概论
4-1-1 类
4-1-2 对象
4-1-3 继承
4-1-4 封装
4-1-5 信息
4-2 Delphi项目结构及窗体的建立
4-2-1 GUI模式的项目
4-2-2 Console模式的项目
4-3 Object Pascal程序结构
4-3-1 项目程序(Program)的结构
4-3-2 单元程序(Unit)的结构
4-4 如何完成一个简单的窗体程序

第5章 简单的常用指令介绍

5-1 TLabel类对象
5-1-1 Caption属性
5-2 TButton类对象
5-2-1 Caption属笥
5-2-2 OnClick事件
5-3 TEdit类对象
5-4 TCanvas类对象
5-5 Showmessage函数
5-6 InputBox函数
5-7 MessageDlg函灵敏

第6章 Delphi与Object Pascal程序的基本概念

6-1 Object Pascal Program程序结构与Delphi项目结构的关系
6-1-1 标头(Heading)
6-1-2 Uses子句
6-1-3 编译指令(Compiler directive)
6-1-4 源代码区(begin end)
6-2 Unit程序结构与窗体的关系
6-2-1 Unit代码结构
6-2-2 语句(Statement)
6-2-3 Unit间Use的状况
6-3 数据类型与定义变量
6-3-1 数据类型概论
6-3-2 不需要使用type声明的数据类型
6-3-3 必须使用type声明的数据类型
6-3-4 定义变量
6-3-5 变量的作用域
6-3-6 定义常量
6-3-7 变量的类型转换(Typecast)
6-4 Object Pascal的运算符(Operator)
6-4-1 设置运算符(assign Operator)
6-4-2 算数运算符(Arithmetic Operator)
6-4-3 关系运算符(Relational Operator)
6-4-4 布尔运算符
6-4-5 集合运算符
6-4-6 字符串运算符
6-4-7 位逻辑运算符
6-4-8 运算符优先级
6-5 流程控制
6-5-1 语句的基本概念
6-5-2 表达式语句(Expression-Statement)
6-5-3 流程控制语句
6-5-4 可视化程序与嵌套程序
6-6 数组与指针
6-6-1 数组类型
6-6-2 指针类型
6-6-3 浅谈指针与数据结构
6-7 程序与函数(Procedures and Functions)
6-7-1 函数的意义与优点
6-7-2 函数的分类与效用
6-7-3 自定义函数使用方法概述
6-7-4 函数的声明、定义及其实现
6-7-5 参数传递方式
6-7-6 声明修饰字
6-7-7 常用的内建函数

第7章 Object Pascal面向对象设计

7-1 类和对象
7-1-1 类(Class)与对象(Object)的基本概念
7-1-2 对象的构造与类的关系
7-2 类的声明与对象的定义
7-2-1 类的声明与对象的实现
7-2-2 对象的构造与析构
7-3 类成员的封装等级与可见度
7-3-1 封装的意义
7-3-2 Object Pascal类成员的封装等级
7-3-3 以实例说明类成员封装等级的可见度
7-3-4 开头不加保留字的类成员
7-3-5 成员封装等级的变更法则
7-4 类成员的定义与实现
7-4-1 字段(Field)与对象引用(Object Reference)的实现
7-4-2 方法(Method)
7-4-3 属性(Property)
7-5 类的继承
7-5-1 继承的意义与优点
7-5-2 子类成员的存在方式
7-6 成员函数的Override及 Overload
7-6-1 Override 适用的情况——Virtual与 Dynamic的成员函数
7-6-2 Override成员函数的定义语法
7-6-3 Virtual成员函数与动态绑定(Dynamic Binding)
7-6-4 覆盖(Overriding)与隐藏(Hiding)的差别
7-6-5 Override与OVerload的差别
7-7 Abstract成员函数与多态(Polymorphic)
7-7-1 一般纯虚函数的多态实现概念
7-7-2 纯虚函数的定义语法及实现
7-8 Self、AS、is、Sender、Parent、owner、inerited
7-8-1 Self变量
7-8-2 AS运算符
7-8-3 is运算符
7-8-4 Sender
7-8-5 Parent
7-8-6 owner
7-8-7 inerited保留字
7-9 静态成员方法——Class Methods

第8章 异常处理

8-1 异常处理存在的目的
8-2 Object Pascal异常的种类
8-2-1 Delphi内建的异常类
8-2-2 自定义异常类
8-3 触发异常的方法
8-3-1 由程序系统自动触发
8-3-2 使用Raise指令触发
8-4 处理异常情况
8-4-1 try…finally…end语法说明
8-4-2 ty…except…end语法说明

第9章 Delphi用户接口设计详述

9-1 基本概念
9-2 TForm的属性
9-2-1 由TComponent继承而来的属性
9-2-2 由TControl继承而来的属性
9-2-3 由TWinControl继承而来的属性
9-2-4 由TScrollingWindControl继承而来的属性
9-2-5 由TCustomForm继承而来的属性
9-3 TForm的方法
9-3-1 由TObject继承而来的属性
9-3-2 由TPersistent继承而来的属性
9-3-3 由TComponent继承而来的属性
9-3-4 由TControl继承而来的属性
9-3-5 由WinControl继承而来的属性
9-3-6 由TScrollingWinControl继承而来的属性
9-3-7 由TCustomForm继承而来的属性
9-3-8 由TForm继承而来的属性
9-4 TForm的事件
9-4-1 由TControl继承而来的属性
9-4-2 由TWinControl继承而来的属性
9-4-3 由TCustomForm继承而来的属性
9-5 TLabel的类成员
9-5-1 TLabel的属性
9-5-2 TLabel的方法

第10章 标准组件介绍及实作范例

10-1 Frames组件
10-2 MainMenu组件
10-3 PopuMenu组件
10-4 Label组件
10-5 Edit组件
10-6 Memo组件
10-7 Button组件
10-8 CheckBox组件
10-9 RadioButton组件
10-10 ListBox组件
10-11 ComboBox组件
10-12 ScrollBar组件
10-13 GroupBox组件
10-14 RadioGroup组件
10-15 Panel组件
10-16 ActionList组件

第11章 TApplication与TScreen类介绍及应用

11-1 TApplication类
11-1-1 TApplication类对象常用的属性
11-1-2 TApplication类对象常用的方法
11-2 TScreen类

第12章 高级组件介绍

12-1 Additional选项卡中的常用组件
12-1-1 TBitBtn组件
12-1-2 TMaskEdit组件
12-1-3 TImage组件
12-1-4 TShape组件
12-2 Win32选项卡中的常用组件
12-2-1 TPageControl组件
12-2-2 TImageList组件
12-2-3 TRichEdit组件
12-2-4 TDateTimePicker组件
12-2-5 TStatusBar组件
12-3 System选项卡中的常用组件
12-3-1 TTimer组件
12-4 Dialogs选项卡中的常用组件
12-4-1 TOpenDialog组件
12-4-2 FTontDialog组件
12-4-3 TColorDialog组件

第13章 封装Delphi7开发的应用程序

13-1 安装Borland的InstallShiled程序
13-2 利用InstallShield封装 Delphi7开发的程序
13-2-1 InstallShield环境界面简介
13-2-2 封装一个简单的Delphi项目

第14章 数据库概念及SQL指令介绍

14-1 数据库基本概念
14-1-1 数据库结构
14-1-2 开放数据库连接协议(ODBC)
14-1-3 SQL Explorer
14-2 结构化查询语言SQL
14-2-1 CREATE语句
14-2-2 ALTER TABLE语句
14-2-3 DROP语句
14-2-4 SELECT语句
14-2-5 INSERT、UPDATE语句
14-2-6 DELETE语句
14-3 SQL指令高级使用
14-3-1 UNION运算
14-3-2 JOIN运算
14-3-3 特殊运算符
14-3-4 子查询(Sub Query)

第15章 Delphi数据库程序基础

15-1 Delphi各种数据库连接设置
15-1-1 建立dBase、Paradox连接
15-1-2 建立Access连接
15-1-3 建立MSSQL连接
15-1-4 建立MySQL连接
15-2 Delphi的Database Desktop使用方法
15-2-1 字段定义
15-2-2 输入数据
15-2-3 设置BDE数据库别名与连接数据库

第16章 Delphi数据库程序设计——使用BDE组件

16-1 TDataSet组件
16-1-1 TDataSet组件常用的属性
16-1-2 TDataSet组件常用的方法
16-1-3 TDataSet组件常用的事件
16-2 TTable组件
16-2-1 TTable组件常用的属性
16-2-2 TTable组件常用的方法
16-3 TQuery组件
16-3-1 TQuery组件常用的属性
16-3-2 TQuery组件常用的方法
16-4 TDataModule组件
16-5 TDatabase组件
16-5-1 TDatabase组件常用的属性
16-5-2 TDatabase组件常用的方法
16-5-3 TDatabase组件常用的事件
16-6 综合范例
16-6-1 员工管理系统——使用TTable组件
16-6-2 员工管理系统——使用TQuery组件
16-6-3 订单管理系统——使用TTable组件
16-6-4 订单系统——使用TQuery组件

第17章 数据程序设计——使用Delphi组件

17-1 TADOConnection组件
17-1-1 TADOConnection组件常用的属性
17-1-2 TADOConnection组件常用的方法
17-1-3 TADOConnection组件常用的事件
17-2 TADOCommand组件
17-2-1 TADOCommand组件常用的属性
17-2-2 TADOCommand组件常用的方法
17-3 TADODataSet组件
17-3-1 TADODataSet组件常用的属性
17-3-2 TADODataSet组件常用的方法
17-3-3 TADODataSet组件常用的事件
17-4 TADOTable组件
17-4-1 TADOTable组件常用的属性
17-4-2 TADOTable组件常用的方法
17-5 TADOQuery组件
17-6 综合范例
17-6-1 客户管理系统——使用TADODataSet组件
17-6-2 客户管理系统——使用TADOTable组件
17-6-3 客户管理系统——使用TADOQuery组件
17-6-4 订单管理系统——使用TADOTable组件
17-6-5 订单系统——使用TADOQuery组件

第18章 数据感知组件

18-1 TDBText组件
18-2 TDBEdit组件
18-3 TDBMemo组件
18-4 TDBImage组件
18-5 TDBListBox组件
18-6 TDBComboBox组件
18-7 TDBLookupListBox与TDBLookupComboBox组件
18-8 TDBNavigator组件
18-9 TDBGrid组件

第19章 设计Delphi数据库报表

19-1 设计报表的基本观念
19-1-1 报表的组成
19-1-2 报表的主体组件——TquickRep
19-1-3 建立第一个报表程序
19-2 QuickReport中可打印出组件
19-2-1 TQR系列组件介绍
19-2-2 TQRDB系列组件介绍
19-3 综合范例
19-3-1 一般表达报表范例
19-3-2 标签式报表范例
19-3-3 主/明细报表范例
19-3-4 一般表达式附片报表范例
19-3-5 分组式报表范例——打印多色报表
19-3-6 报表输出及输出范例

附录 Kylix程序安装及转换

http://lib.verycd.com/2005/02/07/0000038314.html

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧