Delphi 停靠技术的应用3(两个窗体停靠成PageControl样式, 分页停靠) 因为TPageControl组件重载了TWinControl组件的DoAddDockClient和DoRemoveDockClient方法,能过自动响应停靠动作添加新的也没,而当浮动被停靠的窗口后将自动的将先前创建的TTabSheet也没删除,我们不需要写代码,只要设定基本的属性就可以实现分页停靠的功能. 一.两个窗体停靠成PageControl样式的实例 1.基本步骤: 1>.先创建一个新窗体(Dockab…
一.基础知识介绍 1.VCL组件的基础知识 在TWinControl类中有一个DockSite属性(boolean),它的作用是是否允许别的控件停靠在它的上面:在TControl类中有一个DragKind属性,如果要这个控件能停靠在别的控件上,就把DragKind属性设成dkDock.就这么简单,只要设置一下属性,一个支持停靠的程序就完成了.当然,上面说的只是最最基本的步骤,有了以上两步,我们就可以继续编写代码实现更复杂的功能. 2.停靠操作常用的属性 >.TControl. TBDockHei…
随着软件技术的不断进步,软件界面也越来越美观,操作也越来越方便.综观市面上比较专业的各种软件,我们会发现大部分都提供窗体停靠的功能,特别象工具软件,基本上都或多或少有停靠功能.自然,Delphi也支持停靠,而且她和VCL紧密结合,对于广大的Delphi程序员来说更是一大福音.让我们省去枯燥的编码时间.把注意力集中在核心程序的构思上.先让我们来复习一下VCL的结构,在TWinControl类中有一个DockSite属性(boolean),它的作用是是否允许别的控件停靠在它的上面,在TControl…
2014年9月,delphi xe7 出来了,这次在数据库技术方面,彻底抛掉了从1995 年 delphi 1.0 就自带的(Borland Database Engine)数据库访问技术.从而宣告了这个持续 了20余年delphi 访问数据库技术进入历史. 纵观delphi 数据库技术的20年发展史,其实也是delphi 的发展史.通过数据库技术的 变化,也可以了解delphi的发展历史及未来的方向. 一. 话说当初 Delphi 1.0 是16 位的编译器,当时的互联网几乎是不存在,拿到的第…
Delphi是市场上最好的RAD工具,但是现在C++占据着主导地位,有时针对一个问题很难找到Delphi或Pascal的解决方案.可是却可能找到了一个相关的C++类.本文描述几种在Delphi代码中使用C++类的方法. Delphi is one of the greatest RAD tools on the market, but it in this currently C++-dominated world, it can sometimes be hard to find a Delp…
Delphi中的操作二进制文件的两个重要函数 对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家.(申明:非本人所写) 1. 将Byte数组生成文件 procedure ByteArrayToFile(const ByteArray : TByteDynArray; const FileName : string );var Count: integer; F: FIle of B…
想练练手,所以封装了一个两种选择星星的评价样式的Demo,并且可以获取到点击的星星的索引值,方便记录值,上传数据时使用 首先创建View类,设计初始化方法,并且用到了枚举类型和代理方法 方式一:默认的有文字的5颗星评价的样式 case .TextType://有文字样式                        //计算每个星星的大小宽.高            let itemWidthF:CGFloat = viewWidthF / 5.0            let itemHeig…
委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一个文本框,一个按钮 点击计算按钮调出form2 点击form2窗体按钮返回结果20赋值给form1窗体文本框 form1代码如下: //计算按钮事件 private void Button1_Click(object sender, EventArgs e) { Form2 f2 = new For…
假设我们有两个list,分别是: (def a [“one” “two” “three”]) (def b [1 2 3]) 我们要把它们合为一个键值对应的map,做法很简单: 1. 先将a和b合为一个一一对应的list: (map vector a b) => (["one" 1] ["two" 2] ["three" 3]) 2. 然后再将list转化成为map: (into {} (map vector a b)) => {&q…
编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单.以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返回给FormMain 1. FormMain和FormInfo 点击“修改...”按钮,显示FormInfo 2. 设置FormInfo中buttonOK和buttonCancal的属性 3. FormMain代码 public partial class FormMain : Form { pub…