打破Delphi框架

dnchen 2000-03-01 09:26:00
Delphi的结构是基于VCL类库的,对于开发普通应用程序很方便,但是问题是很多程序中是无法直接适用VCL类库的。

我想写一个函数,根据rebarwindow32的hwnd,添加入工具条,可惜写入时程序没有问题,但是被写入对象在执行时非法操作,程序无法跟踪进对方程序中。

我估计我自己程序中的错误,但是看了MSDN没有找打答案。哪位能给我写一个同功能函数的?我的分数不多,只能给这点了
...全文
242 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
光明山人 2000-03-03
  • 打赏
  • 举报
回复
还是看看源程序吧,否则就是在空谈
dnchen 2000-03-02
  • 打赏
  • 举报
回复
我想加入的是VCL类里的任意wincontrol,事实上,加入的是什么东西是没有关系的。

我连& *的关系都老是忘了,怎么用VC呀,呵呵,我还是用Delphi的好。
jiangtao 2000-03-02
  • 打赏
  • 举报
回复
用VC做更好,
你加入的工具条是Delphi自带的,还是其他?
dnchen 2000-03-02
  • 打赏
  • 举报
回复
呵呵,可能问题就在这里,我没有处理消息,是让VCL自己去做的
hubdog 2000-03-02
  • 打赏
  • 举报
回复
你要把wincontrol插入别人程序的工具条?
~~~~~~~
插入到是容易,但消息你是如何处理的?
能不能帖点代码上来
kxy 2000-03-01
  • 打赏
  • 举报
回复
没有看太明白你的问题,能否详细一些:) (我的理解能力有点差:),rebarwindow32)是什么?
dnchen 2000-03-01
  • 打赏
  • 举报
回复
1)没兴趣就这种问题讨论,牵涉到windows底层的程序,delphi的vcl类库是无法满足需求的,但是delphi可以满足需求。
2)请看清楚题目
deepwater 2000-03-01
  • 打赏
  • 举报
回复
1)〉很多程序中是无法直接适用VCL类库的
请举出些例子来。
2)工具条的详细说明到MSDN=>Platform SDK=>Common Controls中找。愿意的话你甚至可以自己做一个,当然可以用Delphi
deepwater 2000-03-01
  • 打赏
  • 举报
回复
1)〉很多程序中是无法直接适用VCL类库的
目录 一、简介 2 1.Delphi 2 2.数据库 3 二、系统设计 4 1、数据库的建立 4 2、管理系统建立 6 3、 实现功能 11 三、结论 13 一、简介 1.Delphi Delphi是Borland公司推出的可视化编程环境,它提供了一种方便、快捷的Windows应 用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了可重复利用的完整的面向对象 程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。Delphi是优秀的可视 化开发工具,不仅简单、易于掌握而且功能强大,使用Delphi开发应用软件,会大大地 提高编程效率。 Delphi是Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架 正是应用程序的"骨架"。在"骨架"上即使没有附着任何东西,仍可以严格的按照设计运 行。用户的工作只是在"骨架"中添入自己的程序。默认的应用程序是一个空白的窗体"F orm",可以直接运行,结果得到一个空白的窗口,这个窗口具有Windows窗口的全部性质 :可以被放大、缩小、移动最大化、最小化等,但没有编写程序代码。因此,可以说应 用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下良好的基础 。用户所需要做的,只是在应用程序中中假如完成所需功能的代码而已。 Delphi具有以下的特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库 支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的,简单易学。 Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,除此之外,还允许用户挂接其它的应用程 序开发工具。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于 多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系 统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件。 Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi 自1995年3 月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。 Delphi的出现打破了V承可视化编程领域一统天下的局面。并且Delphi使用了本地编译 器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向 对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充 分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。 Delphi在你编好程序后自动转换成.EXE文件它运行时速度比VB快,而且编译后不需要 其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程 工具。 Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多 一样的功能,而且一样能应用API函数,这在控制Windows很有用。 Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开 发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向 对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人 员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入 ,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份 欣喜。 2.数据库 数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的 冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修 改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完 全分开的若干个数据库时,则该系统包含一个"数据库集合"。 数据库是"按照数据结构来组织、存储和管理数据的仓库"。在数据管理的日常工作中 ,常常需要把某些相关的数据放进这样"仓库",并根据管理的需要进行相应的处理。 数据库发展阶段大致划分为如下几个阶段:人工管理阶段;文件系统阶段;数据库系 统阶段;高级数据库阶段。使用数据库可以带来许多好处:如减少了数据的冗余度,从 而大大地节省了
一个关于嵌入式系统很详细的文档 第1章 概 述 1.1 研发背景 随着电子技术的发展,微型计算机应用迅速渗透到各个领域。工业控制领域中计算机应用从编程器、单板机、微机系统到工业网络,由简单到复杂,对软件的要求越来越高。近年来网络技术的飞速发展,又为工业自动化开辟了广阔的发展空间,用户可以方便快捷地组建优质高效的监控系统,并且通过采用远程监控及诊断、双机热备等先进技术,使系统更加安全可靠,在这方面,出现了许多应用软件,其中的典型代表就是工控组态软件,如昆仑通态软件公司的MCGS,亚控公司的组态王,Intellution公司的!FIX等。 组态软件的目的就是提供给用户一种二次开发平台,尽量减少组建工程过程中的重复劳动,隐蔽复杂的编程过程。而目前的组态软件大多停留在对人机界面的组态上,随着我国工业自动化水平的不断提高和普及,对工控组态软件的要求也越来越高。对设备驱动程序的可组态是目前研究的热点。 一直以来,工业控制软件缺乏统一的工业标准,不同厂家的软件之间进行通讯是非常麻烦的一件事。各个厂家的软件对控制系统硬件操作的设备驱动程序接口也各不相同,这样为了对市场上不同厂家的设备都能管理,控制软件厂家必须针对市场上的几百种常用的设备都开发设备驱动程序,而且当硬件设备升级、修改时,驱动程序也必须修改,这样做的代价无疑是相当高的。目前并没有一种软件能够很好的实现对设备驱动的所见即所得的支持[1]。出现这种现象的原因主要是外部设备种类繁多,所基于的协议也是千差万别,如果要实现一种比较通用的驱动很不容易。但是我们可以考虑提供一个一般工程人员非常熟悉的开发环境,在这个环境中通过简单易行的操作实现数据的采集和控制。用户只需要关注他们熟知的通讯规程,然后用一种图形化的方法来实现通讯的一个过程,而不需要对程序内部实现有所了解。所以希望通过这种二次开发平台的设计、开发来解决工控软件与大部分的硬件设备数据交换问题。 1.2 本文的目的和意义 本文主要目的是研究面向对象软件开发技术和软件设计模式在工业数据采集软件设计开发中的应用。内容基于一套包含多种智能控制模块的嵌入式实时控制软件,实际上就是一套软PLC软件包,并结合当前工控组态软件实际情况,开发符合国际标准的功能块图(Function Block Diagram?FBD)编程语言[3],即第四代编程语言(4GL语言),以方便用户的组态为目的,使用户不需要编程经验就可组态出优质高效的符合自己需求的工业控制系统,其功能块编译后实际上生成第三代编程语言(3GL语言),而本文要实现的FBD也就是C++的代码生成器。 这种FBD编程语言有着很广泛的应用价值: 首先,普通的工控组态软件要与设备连接,必须有支持所挂设备的驱动程序,运用符合标准的图形化FBD编程模块后,将不需对市场上的几百种常用的设备都开发设备驱动程序,也不需要专门的编程人员,而由用户根据实际需要,应用功能块来搭建完成,打破了组态软件仅限于人机界面的组态局面,实现设备驱动的可组态。例如可移植到北京昆仑通态自动化软件科技有限公司最新推出的嵌入式组态软件??MCGSE中,使其可以用图形化的FBD语言组态设备和策略,将监控和软逻辑集成一体。 其次,运用于嵌入式实时控制软件,可以作为独立的开发环境,与工控机配合使用,形成软PLC。形成一套面向中小型过程应用和设备集成控制的开放型控制系统。满足工控行业从简单到复杂的各种控制应用要求和各种设备过程自动化控制的应用要求,是用来代替硬PLC(可编程控制器)[4] 和各种设备过程控制系统的理想解决方案。 社会的发展以及先进的生产管理理念的不断引入,当今用户不仅要求系统本身能够完成各种常规及先进的控制要求,而且要求通过友好的动画界面显示现场生产的状况。普通的PLC加HMI人机接口界面软件构成的系统在快速逻辑控制应用领域有其优势[1],尤其在断续的生产过程以及各种设备控制应用领域有他的市场并能保持较为适中的系统价格,但在连续复杂的过程控制以及各种针对特殊应用要求的领域和具备先进的生产管理方面满足不了用户的要求,同时系统的可靠性也有待提高。我们通过软PLC来代替普通的PLC,并集成到现有的MCGS人机界面组态软件中不失为解决上述问题的好方法,实现将图形组态与控制器组态相结合。 笔者主要负责其中基于功能流程图的驱动程序软件的设计和开发,以实现设备驱动的可组态,使用户可方便的用FBD来开发设备驱动,针对大多数的工业过程控制应用如:石油化工、电站、钢铁冶炼、食品加工等要求,完成对控制器的控制策略的组态。工程人员只需简单地从功能块库中拖拽所需功能块到组态窗口中并用软接线连接起来就可快速的生成需要的控制策略。使用规范的FBD编程语言来增强昆仑通态的组态软件??MCGS的脚本处理功能和策略功能,提供可视化的I/O设置,简化设备驱动的开发;取代组态软件中原来的设备接口,完成数据采集和数据传送。然后考虑进一步完善界面和加强功能后作为单独的软件系统,形成一套软逻辑控制系统。 1.3 研究方法与思路 目前,在软件中实现与硬件设备的数据交换有以下一些方法: 1.编写特定设备的驱动程序。这种方式是最多和最常见的手段,一般使用VC、VB、Delphi的高级语言进行纯粹的程序开发。这种方法不仅可以开发数据采集程序,还可以编写硬件设备的底层驱动,功能非常强大。但是这种方式对开发人员要求非常高,开发人员必须非常熟练的使用这些开发工具,还要对在不同平台下的驱动设计方法、技巧十分清楚。一般来说,这种开发都是专业的软件开发公司的业务。对于工业控制中的技术人员不适合,并且这样开发出来的产品一般是二进制文件,硬件有了小的改动都需要修改源代码进行重新编译,不能做到很好的复用性。然而,在工业中使用的硬件设备基本结构相同,存在很小的差异,使用这种方法就不太适合。 2.建立统一数据接口标准[6]。如:OPC基金会制定了一套标准的OPC规范。OPC规范基于微软的COM技术,它规范了过程控制和生产自动化软件与用OPC服务器实现的硬件驱动程序之间的接口,并且提供基于工业自动化应用的统一数据传输平台。各个硬件厂商在开发自己设备时只要遵守这个规范,就可以用标准的通讯程序与硬件进行数据交换。但是,这只是提供一个通讯的框架,必须符合才能使用,它的灵活性很差。并且对于很多简单的智能仪表完全没有必要去遵循相对而言庞大的协议。 3.提供一个二次开发的环境。这里有两种方案[8]:一种是提供了I/O采集和数据通讯的动态连接库,然后在协议编辑器中编写通讯协议,最后生成一个工程文件。其中笛卡儿有限公司开发的Omni Server就是其中的代表作。另一种是遵循IEC1131标准的[3]。IEC1131-3标准是PLC程序设计语言的标准,它提供了一种非常灵活的程序开发方法,是一种面向图形的方法。关于IEC1131-3标准将在后面章节作详细介绍。由于基于IEC1131标准设计的程序基本都是PLC或大型控制器的编程软件,主要考虑的是实现硬件的内部功能,并没有将数据通讯的功能作为主要的考虑因素。 根据本课题的特点,通过参考IEC1131-3标准和其他PLC、控制器设计软件,探讨了一种基于功能块图(FBD)的驱动程序开发模式。通过将具体功能和框架分离的设计方法实现功能的易扩充性和跨平台的易移植性。 1.4 主要背景知识及技术 本文主要涉及工业控制领域的相关知识,在此领域中工控组态软件、PLC及其发展动向、IEC1131-3标准、嵌入式软件等是本文密切相关的内容,这些内容之间有着密切的联系,都是完成本文必不可少的。首先从大的角度看,本文属于工控组态软件的范畴,是组态软件在嵌入式系统平台下运行的一种形式,与嵌入式软件是密不可分的。那么,提到嵌入式就不能不提起PLC,PLC是目前在工业自动化控制领域运用非常广泛的一种逻辑器件,正由于它的运用广泛,人们才十分关注他,在实际的生产应用过程中不断发现其使用的不便之处,摸索出解决问题的方法,即用符合IEC1131-3标准的编程规则,来实现复杂的逻辑控制,并考虑用软件来替代硬的PLC,这也是PLC发展的新的动向。相关的内容将在后面章节作详细介绍。 另外,软件设计用到的面向对象软件开发技术和软件设计模式,也将在本文中作较细致的阐述。 1.5 主要研究内容及本文结构安排 课题内容基于一套包含多种智能控制模块的嵌入式实时控制软件,运用面相对象软件设计方法对其中的FBD功能块进行分析设计,参考IEC1131标准,提出适合需要的编程模型并定义需求、进行功能设计和开发。 作为该课题的负责人,笔者的工作主要是: 1. 运用计算机科学技术知识,结合工业自动化控制领域的相关知识,确定课题的范围。 2. 确定功能块图的模型,根据模型设计和开发FBD开发环境的系统框架。 3. 参考类似软件,结合本软件的要求,分析、编写数学“加”功能块的详细需求文档,实现模块的功能。 本文论述了课题的研究思路、工作和取得的研究成果,文章的内容结构安排如下: 本文分为三大部分: 第一部分,在第一章交代本课题的意义、背景和研究方向,使读者能够了解课题的来由和基本研究思路。 第二部分包括两章,在第二章中介绍嵌入式系统的相关知识和概念,并介绍了MCGS嵌入式实时控制软件的特点、软件结构等相关内容,在第三章讨论完成本课题中需要用到的一些知识和相关技术。为后续论文作必要的知识准备。 第三部分是整个软件系统设计和实现,是本文的主体部分。第四章阐述了FBD的设计思想及其实现效果,第五章中文章详细的介绍了系统的整体设计、核心框架的设计并给出了核心类的实现;第六章介绍了数学“加”模块的需求设计与实现。
本课程是分布式集群自动化测试高阶框架进阶实战课中的发包配置实战。课程内容是基于发包框架的发包配置进行讲解。是DevOps发包框架高阶实战进阶的必备知识。老师从多角度、多层次、多维度基于Demo进行迭代讲解,做到认真细致讲好课程的每一要点。全方位助力学员掌握发包高阶框架开发的必备知识,快速领悟发包模块开发的技术要领。 主讲老师为资深高级技术专家。毕业于电子科技大学。先后工作于多家知名外企,知名通信民企,知名IT公司。◇ 具备区块链领域高级测试解决方案设计、专家级测试开发、团队管理培训经验。◇ 具备专家级自动化测试解决方案、自动化测试平台框架设计开发、自动化测试团队管理培训经验。◇ 具备专家级的功能专项测试、性能专项测试经验及丰富的渗透测试经验。◇ 具备丰富的持续集成/持续交付(CI/CD)开发、实施及运维经验。◇ 具备丰富的C#/Java/Delphi/VB/C++/Python/Tcl/Groovy/Shell等开发及脚本开发经验◇ 具备20年的IT互联网工作经验。先后担任过项目经理,测试技术经理,测试总监以及专家级技术顾问等职务。独立开发完成有如下自动化测试框架及平台◇ GUI自动化测试框架(TSL)◇ ATF自动化测试框架(Tcl/Tk)◇ ATP自动化测试平台(C#/Java)◇ SoapUI接口自动化测试框架(Groovy/华为)◇ 持续集成自动化打包框架(Java/华为)◇ 区块链性能测试框架(Python)等。擅长框架/平台设计开发、团队管理、团队技能提升培训,技术瓶颈突破等。

5,386

社区成员

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

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