说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

控件使用技巧-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
控件使用技巧-Delphi资料

在Delphi中实现类似VB中的控件数组。

你可以通过设置一组相应控件的TAG属性来实现这一功能。首先在窗体中放置3个BUTTON控件,然后分别设置这三个控件的TAG属性为1、2、3。接下来双击任意一个按钮,

在其代码部分输入如下代码:

procedureTForm1.Button1Click(Sender:TObject);

varcap:string;

begin

caseTButton(sender).Tagof

1:ShowMessage(′1stButtonPressed′);

2:ShowMessage(′2ndButtonPressed′);

3:ShowMessage(′3rdButtonPressed′);

end;

end;

最后在其他两个按钮的ONCLICK事件中选择已经编好的代码。这样一来就可以实现以上功能了。

在Delphi中实现不同风格的SPEEDBUTTON。

在许多常用的软件(如WORD)中经常会遇到这样的快捷按钮(SPEEDBUTTON):若干个按钮做为一组来工作,同一时刻只能有一个按钮处于按下状态,比如WORD中的四个段落排版按钮。在Delphi中实现这样的功能只需要简单的一个步骤:设置若干个SPEEDBUTTON按钮的GROUPINDEX属性设置为同一个大于0的整数。

还有另外一种快捷按钮,我们称之为开关按钮,比如WORD中的“粗体”按钮,这种按钮每按一次状态就改变一次。在Delphi中实现这种按钮只需要两步设置:首先设置按钮的GROUPINDEX属性为一个大于0的整数,第二步设置ALLOWALLUP属性为TRUE。这样就完成了开关按钮的建立。

通过调用API确定MEMO控件中的当前行和列。

你可以调用WINDOWSAPI中的EM—LINEFROMCHAR和EM—LINEINDEX函数来确定MEMO控件中的当前行和列,具体调用的过程见下面的过程。

varLineNum:longint;

CharsBeforeLine:longint;

begin

LineNumΚSendMessage(Memo1.Handle,EM—LINEFROMCHAR,Memo1.SelStart,0);

CharsBeforeLine:=SendMessage(Memo1.Handle,EM—LINEINDEX,LineNum,0);

Label1.Caption:=′Line′+IntToStr(LineNum+1)

Lab

el2.Caption:=′Position′+IntToStr((Memo1.SelStart-CharsBeforeLine)+1);

end;

动态产生构件并相应事件

方法:

var

MyBu : TBUTTON;

begin

MyBu:=TBUTTON.Create(Form1);

MyBu.Parent:=Form1;

MyBu.Left:=10;

MyBu.Top:=10;

MyBu.OnClick:=MyOnClick;

MyBu.Show;

end;

注:MyOnClick为响应的事件过程.

几个构件共用一段代码

方法:

(Sender as TStringGrid).Width:=5;

注:这样将发送消息的构件强制类型转换成TStringGrid类

并改变它的属性.

回车替Tab下移控件

需要用回车键代替TAB键下移一个控件时,把KeyPress设为True,加入下列代码拦截击键:

Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);

Begin

if key=#13 then { 判断是按执行键}

if not (ActiveControl is TDbgrid) Then

Begin { 不是在TDbgrid控件内}

key:=#0;

perform(WM_NEXTDLGCTL

0

0);{移动到下一个控件}

end else

if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}

begin

With TDbgrid(ActiveControl) Do

if Selectedindex<(fieldcount-1) then

Selectedindex:=Selectedindex+1{ 移动到下一字段}

else Selectedindex:=0;

end;

End;

分行提示

无论你什么时候要分行显示的时候,只需要在字符串中间加入“#13”就可以了,但在属性框里却不能这么干,以下就几种控件加以说明:

begin

Label1.caption :='垂'+#13+'直'+#13+'显'+#13+'示';

Edit1.Hint :='输入框说明:'+#13+'文本的输入';

end;

运行时生成控件

㈠、运行时生成可视控件:以下以TEdit 控件为例

1.在Form的Public中定义TEdit控件

Edit1:TEdit;

2.在需要生成的地方加入以下代码:

Edit1:=TEdit.Create(Self);

Edit1.Parent:=Form1;

Edit1.Left ?:=20;

Edit1.Top :=20;

Edit1.Text :='Edit1 Text';

3.使用完毕后,释放分配的资源

if? Assigned(Edit1) then Edit1.Free; ?

㈡、运行时生成非可视控件:以下以 TTimer控件为例

1.在Form的Public中定义TTimert控件

Timer1:TTimber;

2.在需要生成的地方加入以下代码:

Timer1:=TTimer.Create(Self);

Timer1.OnTimer:=YourAction;

YourAction是自己定义的OnTimer事件,使用

procedure TForm1.YourAction(Sender:TObject); 完成

3.使用完毕后,释放分配的资源

if? Assigned(Timer1) then Timer1.Free; ?

谈谈VB的数据库编程方式 为VB5辩解: VB处理数据库时求数据表记录总数的最佳方法 为什么安装后的数据库应用总是路径不对或找不到? 返回 -VB资料 无论如何,就是只能输入数字-VB资料 VB用 DAO 或 ADO 正确访问 Access 2000 VB用CELL组件显示Access数据库的图片对象 VB用DAO打开Excel文件 VB用DATA控件绑定报表控件打印报表 VB用EXCEL来打印报表并生成折线图 VB用EXCEL组件简化VB编程的一种方法 VB用MDB文件做密码库 VB用ODBC API访问ODBC数据库 用VB 实现类电子表格的数据录入 用VB5直接控制Excel 97 用VBA编制Access的查询程序 用VB和RDO访问SQL Server 用VB开发多通道仪表数据采集程序 用VB实现关闭所有数据库对象 用VB实现类电子表格的数据录入 VB用代码创建数据库,表,字段 VB用类来编写数据库程序 优化OLE的调用频率-VB资料 语言选择引起的查询错误 -VB资料 远程数据库的访问-VB资料 运用ADO进行数据库表数据互导 -VB资料 在 VB5.0中编辑数据库和电子表格 在Access 2000中用ADO-VB资料 在Access数据库中实现密码管理的另一种方式 -VB资料 在VB6.0中使ACCESS数据库在网络使用中保持同步 在VB中更改SQL Server数据库结构 在VB中兼容非ACCESS数据库的技巧 两个字符串,前面是任意字符,后面必须是数字,怎么验证这两个字符串前面的字符是否一样? 怎么才能不关?? 祝大家中秋节快乐,进来帮小妹一把!关于JavaMail收邮件的问题! 一段列表筐代码不知道能不能短一些(请高手帮忙) 一个关于安装控件的问题? 请教SNMP的命令? Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 如何在formload时就确定TabControl1显示第3页?菜鸟提问 css的问题,如何使字体大一点??? 紧急求救 datagrid选中的颜色(我重新画了一个datagrid,设置颜色) 在access中如何控制查询 avg(某字段)的小数位数,比如要两位小数 如何起死回生 一道题目 做文件上传系统时,当上传较大容量的文件时如大于2M的文件时出差,请问是什么问题? 请教一个insert into select...语句的问题! 简单的问题,取出头n条记录的select语句怎么写? 谁可以介绍一下关于HMM(隐马可尔夫模型)方面的资料? 在windows2003下能上网,不能下载东西,为什么? strtolower 的问题 各位大侠谁知道,哪里能下到LEI或ESB? 在LotusScript中如何输出到控制台? 各位中秋节快乐! 怎样不通过post传输方式传输数据(肯定给分) eMvb中的image和picture控件怎么插入不了图片啊。。。。 有关路径问题 在jsp中的 文件是否存在file.exists()的监测和打开这个文件的疑惑 中秋节了,睡个好觉吧 怎样合并字符串? SQL SERVER 2000为什么安装不了! ■■■■■■十万火急。。公司里,急需给全体员工的一份中秋贺信,谁帮我找一分,拜托了! 關于數據庫系統表的說明和pb本身的自主創建的四個系統表的相關細節 关于App.path的丢失 如何动态设置cedit中可输入数据的长度呢 关于用c读取文件 我有一个内网,怎么使外网能访问内网的网页. 我靠,JBuilder 9怎么就那么那么那么那么那么那么那么那么慢啊??? 更那堪冷落 仲秋节!今宵酒醒何处?杨柳岸晓风员残月。 如何把纵向表转为横向表(只轉字段名)? 中秋节,祝你们都快乐,散技术分! 请问怎样一步步学.net阿?! 5xsoft upload组件的使用方法如何? 那位高手能告诉我怎么让option响应方向键(事件)? 急 我的Datawindow怎么不能编辑? 迫在眉睫! 有关fcanf()的疑问 98访问2000的问题,麻烦大家帮忙 关于sysgate的问题 急~~~做一个邮箱注册系统 怎样利用XML技术实现不同网络之间的数据交换?比如C/S模式下,服务器端用JAVA写的程序,客户段是用VB写的程序 如何实现两个异地SQL数据库同步? 真假取值问题? 他说很累,就给我发了一条信息说“工作是理性的,只有相处才是感性的?”我的同事当了部门经理总是感到好累,我应该怎么安慰他, 有一句话不怎么理解,有的人再好也只是朋友,有的却连朋友也不是 lim√x^2+2-√x^2+3x趋于无穷大lim√(x^2+2)-√(x^2+3) x趋于无穷大 Lim(x→无穷大)√(x^2+3x)-x lim x趋向无穷大 [3x/(x^2)+1]sinx=? 本报讯2014年3月2日上午,中纪委网站发布了国家体育总局反腐倡廉建设…的主要内容 有一句话,在语法上该怎么解释啊,请大家帮我一下最近在看国外电影(也就想提高一下自己的听力,我听力太差了),里面有句话,不知道该怎么分析.这是电影里的一句话:Don't take you eyes off of the wal 求高手指教下题答案是否正确,有关概率的 一道想不通的概率题目一个口袋中有10个红、绿两种球,若第三次(拿后不放回)摸到红球概率为4/5,则袋中红球有几个? 这是大毛病吗?请大家帮我解释一下 老鼠在成长过程中是不是不喝水也能活? 2012年恐怖袭击超过8千起 不幸遇伊核对话进展积极 伊朗或做重要让步德国联邦情报局否认监听美国政要俄否认G20峰会用手机充电器监控外国俄罗斯电影《斯大林格勒》中国将映 小欧盟20年:应对挑战携手前行谷歌街景拍到诡异图像:天空现耶稣与圣韩媒调查显示韩国民众出现“远日亲中”巴黎再发名品盗窃案 巴黎西郊20块名墨西哥一警察在路边与女子发生性关系 法国里尔市中心一珠宝店遭劫 损失高达环瑞士总结:彼得萨甘状态好 卡文迪什库里再登《体育画报》封面 配文:是金国民党老兵将亮相抗战阅兵 外界关注日韩星池石镇拍视频好友入镜 宋智孝歪头新华侨报:日本为何出现中国游客“爆检天津自贸区金融改革创新实现新突破美媒:日本有能力自保 凭什么美国继续王彬彬:中国流氓文化之王朔正传新华侨报:日本地铁设“弱空调车厢”彰李学勇:落实一带一路战略 不断深化务安倍最近有点“惨”命运降临夜之轮回陌上花开为君顾妻乃古医重生之木槿花开铁衣志骄女谋江山秦墓仙踪异界元素学家打怪升级在贞观神奇宝贝之坂木之子洪荒财神爷洛扎旅游包头渡口旅游太子山国家森林公园旅游沙河公园旅游西昌卫星发射中心旅游小普陀寺旅游四季悦温泉旅游深圳大学旅游猫儿山旅游珠山国家森林公园旅游原野牧场旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘