python
DELPHI自己做控件?
一、DELPHI自己做控件?
但是要编写控件,则必须使用包(package)。从File菜单中选择New,新建一个Package,这就是存放和安装控件用的包。然后单击Package窗口中的Add按钮,添加一个元件(Unit)。 在弹出的对话框最上方选择New Component。因为一个控件的所有属性、方法、事件不可能都由自己编,所以就需要选择祖先类(或者叫做"父类"或"基类"),然后再在其上面添加自己的属性、方法、事件。在Ancestor type后的下拉框中选择所需的祖先类。由于编写可视化控件必须要画图,所以选择TGraphicControl作为祖先类。再在Class Name框中输入新控件(类)的名称,一般以"T"开头。Palette Page是用来选择新控件在Delphi的窗口中的控件页面名称,例如"Standard",这个可以自己取。在Unit File Name中添好新控件文件的路径及文件名,单击OK按钮。新的控件便加入了。现在可以为该控件编写代码了。 下面以编写一个可以自定义图片的滚动条为例,说明编写可视化控件的方法。 按照上面的方法,选择TGraphicControl为祖先类,新控件的名称是TPigHorizontalScroller(小猪水平滚动条)。选择好文件路径和文件名后,单击OK按钮,开始编写代码。 每一个控件,都会被创建(Create)和删除(Destroy),所以必须首先编写这两个过程。对于控件中的每一个过程,都必须在前面先定义,然后再在后面编写。定义的过程或属性有三种:一、在private后定义的是属于控件内部使用的,使用该控件的人无法看到;二、在protected后定义的一般是看不到的,只在别人使用该控件作为祖先类编写其它控件时才可见;三、在public后定义的只允许别人在程序中调用;四、在published后定义的可以在属性窗口(Object Inspector)中看到。由于创建和删除过程除了在编程过程中建立控件时自动执行外,还可能在程序运行过程中动态创建控件时被调用,所以把它定义在public后⑴。(该序号表示次步骤在所附源程序中的代码的位置,下同)现在也许还不知到应该在这两个过程中编写什么,如何去编。我们在下面将会讲到。 我们首先为这个控件添加一些属性。我们定义一个Max属性用于设置或读取滚动条的最大值。因为在程序中一般不直接使用属性,所以要定义一个变量,和该属性对应起来,一边修改或读取其值。因为它只在控件内部使用,所以我们把它定义在private后⑵。(一般与属性相关联的变量都以"F"开头,例如FMax)定义好变量后,再定义属性。这个属性需要再Object Inspector窗口中可见,所以把它定义再published后⑶。定义的语法是: property
二、delphi动态生成控件?
var i:Integer; Lab:array of TLabel;begin if length(Lab)> 0 then //判断是否已经创建,如果有就删除 begin for i:=0 to Length(Lab)-1 do begin FreeAndNil(Lab[i])
; end; end; SetLength(Lab,ADOQuery1.FieldCount)
; for i :=0 to ADOQuery1.FieldCount-1 do begin Lab[i]:=TLabel.Create(Self); Lab[i].AutoSize:=True; Lab[i].Parent:=Panel1; Lab[i].Top:=Trunc((i div 8)*70)
; //每行8个,每个间隔70 Lab[i].Left:=Trunc((i mod 8)*70)
; Lab[i].Caption:=ADOQuery1.Fields.Fields[i].FieldName; Lab[i].Color:=clRed; end;我已经加了注释。
三、delphi动态创建控件?
可以的。
B 文件
procedure newbutton(ANotifyEvent: TNotifyEvent);
var
button : Tbutton;
begin
button := Tbutton.create(nil);
button .onclick := ANotifyEvent; ///// 这就是从A文件里面传过来的单击事件 不用引用a单元
end;
A文件动态生成按钮事件改成 //
procedure newbutton1
begin
newbutton(ClickSelf); // 这里调用B文件
end;
四、Delphi的WebBrowser控件在哪?
在Internet选项卡下,如果没有就安装下dclsockets70.bpl
五、delphi串口通讯spcomm控件?
Spcomm串口通信控件的基本属性、方法和事件说明如下:
CommName属性:计算机串口端口号的名字,COM1、COM2……等,在打开串口前,必须填写好此值。
Parity属性:校验位 None、Odd、Even、Mark、Space等。
BaudRate:设定支持串口通信用的波特率9600,4800等,根据实际需要来定,在串口打开后也可更改波特率,实际波特率随之更改。
ByteSize属性:表示一个字节中,使用多少个数据位收发数据,根据具体情况设定5、6、7、8等。
StopBits属性:表示一个字节中,使用停止位的位数,根据具体情况设定1、1.5、2等。
SendDataEmpty属性:布尔属性,为True时表示发送缓存为空,或者发送队列里没有信息;为False时表示表示发送缓存不为空,或者发送队列里有信息。
StartComm方法:用来打开通信串口,开始通信。如果失败,则会导致串行口错误。错误类型大致分为串行口己处于打开状态,所以不能打开串行口,不能创建读写进程,不能建立串行口缓冲区等。
StopComm方法:用来停止通信串行口的所有进程,关闭串口。
WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word)方法是带有布尔型返回值 的函数,其中参量pDataToWrite是要写入串行口的字符串,dwSizeofDataToWrite是要写入的字符串的长度。该函数通过一个写线程向串行口输出缓冲区发送数据。发送操作将在后台默认执行。如果写线程 PostMessage成功,则返回值是True,若写线程失败,返回值是False。
OnReceiveData(Buffer:Pointer;BufferLength:Word),其中Buffer是指向输入缓冲区的指针。BufferLength是从缓冲区收到的数据长度。当输入缓冲区收到数据时,该事件被触发。当输入缓存有数据时将触发该事件,对从串口收到的数据进行处理。
六、delphi如何添加删除控件?
1在delphi的主窗口上点右键(在它的菜单上也行,不要在控件面板上),选customize,在toolbars下选component palette,点reset,OK
七、Delphi中怎样使用VSFlexGrid控件?
在Image控件中有一个picture属性,点击属性后面的按钮,就可以弹出装入图片窗口,在窗口中点击LOAD按钮,然后选择图片就可以了。
如果想装入gif动画,可以在Delphi7下可以安装一下三方控件
gifimaged7c控件
安装以后Delphi下的Image控件就可以支持gif动画了。
八、delphi中如何使用listview控件?
如果 delphi 7 的 ListView 提供了 GridLines 属性,则将之设置为 True,即可显示出表格线(同时,需要设置 ViewStyle 属性为 vsReport):
如果没有该属性,则可以下载安装第三方控件,如 RzListView 等。
九、delphi有没有ssh的控件?
调用libssh2 libssh2的Delphi头文件,用于开发ssh用的。
示例十、delphi动态创建控件怎么写事件?
比如动态创建的Combox:TCombox;procedureOnComboxChange(Sender:TObject);beginend;Combox.OnChange:=OnComboxChange;注:事件要一致。包控参数个数,类型,返回值。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...