A
Another_eYes
Unregistered / Unconfirmed
GUEST, unregistred user!
最近完成了一个输入类控件,目的是设计时用一个控件,运行时能自动产生几十个
输入框(edit, combobox, grid). 该控件继承自TCustomControl.
这个控件的显示效果有点象个TRichEdit(或TMemo), 提示文字和输入的文字一起
被认为是一个整体,可以自动换行(wordwrap), 可以设置制表位, 制表位内的提示文字和
输入文字可以分别自动换行(主要用于模拟Grid型输入),自动控制edit类输入,可输入整
数,浮点数,日期,金额类浮点数. 所有整数,浮点数输入时可直接输成数学公式(提供20多
种公式,任意组合),该控件会把计算结果添入相应位置. 可在运行时插入行(效果如同Grid
中增加row).
显示上提供了一些简单的效果,除了整篇(所有提示与输入连在一起可以认为是一整篇)自动
换行之外,只提供提示文字和输入文字不同字体,字号,颜色,3D效果.
整个控件的透明效果有全透明,25%透明,50%透明,75%透明和不透明(结合前景色).
设计时只要放置这么一个控件, 然后输入一段文本(内含预先定义好的一些控制字串), 就可
以看到运行时显示的效果, 运行时会根据控制字串的位置自动生成edit控制供输入.
每个edit进入与退出时都提供事件跟踪(甚至可以用自己的edit替换掉原来标准的edit).
如果运行时显示范围超出该控件的显示区域, 可以用鼠标点在控件任意位置拖动即可实现
滚屏,但是不提供HScrollBar和VScrollBar(嫌做起来麻烦)
现在提供的控制字串主要有:
%I -- 整数输入框
%D -- 日期输入框
%F -- 浮点输入框
%C -- 金额输入框
%S -- 字串输入框
%B -- 逻辑输入框
%L -- 列表选择输入框
%M -- Memo输入框
%O -- 自定义输入框(运行时通过事件给定)
%T -- 制表位(Tab, 不同行中相同Tab位置显示时对齐)
%% -- 显示%自己
// -- 注释行(//必须在当前行的第一个字符位置才有效, 前面不能有空格)
设计时只要在CommandLines属性中输入包含上述控制串的文字(可以包含任意多
控制串), 运行时就可让程序代您生成几十个输入框.
现在征求捉虫者(如果能改虫最好). 现在包含了一个虫虫很奇怪, 我的控件和TPanel有冲
突如果把我的控件放在TPanel中, 如果我的控件Align属性为alNone, 则如果TPanel
边框改变或resize时, 我的控件就会被擦除而无法显示.只有等窗口再次刷新才会正常.
如果我的控件的align不是alNone而TPanel的Align也不是alNone的话也会出现这个问
题.其他情况下正常.
另征求改进意见. 但是做个设计时的Property Editor来输入控制字串的提议不考虑,
本来做这个控件的动因就是因为做界面要安排几十个edit太烦琐, 如果通过个Property
Editor来点击几十次才能设计这个控件, 还不如直接在form上安排那几十个edit呢.
(这些控制字串并不难记吧?)
输入框(edit, combobox, grid). 该控件继承自TCustomControl.
这个控件的显示效果有点象个TRichEdit(或TMemo), 提示文字和输入的文字一起
被认为是一个整体,可以自动换行(wordwrap), 可以设置制表位, 制表位内的提示文字和
输入文字可以分别自动换行(主要用于模拟Grid型输入),自动控制edit类输入,可输入整
数,浮点数,日期,金额类浮点数. 所有整数,浮点数输入时可直接输成数学公式(提供20多
种公式,任意组合),该控件会把计算结果添入相应位置. 可在运行时插入行(效果如同Grid
中增加row).
显示上提供了一些简单的效果,除了整篇(所有提示与输入连在一起可以认为是一整篇)自动
换行之外,只提供提示文字和输入文字不同字体,字号,颜色,3D效果.
整个控件的透明效果有全透明,25%透明,50%透明,75%透明和不透明(结合前景色).
设计时只要放置这么一个控件, 然后输入一段文本(内含预先定义好的一些控制字串), 就可
以看到运行时显示的效果, 运行时会根据控制字串的位置自动生成edit控制供输入.
每个edit进入与退出时都提供事件跟踪(甚至可以用自己的edit替换掉原来标准的edit).
如果运行时显示范围超出该控件的显示区域, 可以用鼠标点在控件任意位置拖动即可实现
滚屏,但是不提供HScrollBar和VScrollBar(嫌做起来麻烦)
现在提供的控制字串主要有:
%I -- 整数输入框
%D -- 日期输入框
%F -- 浮点输入框
%C -- 金额输入框
%S -- 字串输入框
%B -- 逻辑输入框
%L -- 列表选择输入框
%M -- Memo输入框
%O -- 自定义输入框(运行时通过事件给定)
%T -- 制表位(Tab, 不同行中相同Tab位置显示时对齐)
%% -- 显示%自己
// -- 注释行(//必须在当前行的第一个字符位置才有效, 前面不能有空格)
设计时只要在CommandLines属性中输入包含上述控制串的文字(可以包含任意多
控制串), 运行时就可让程序代您生成几十个输入框.
现在征求捉虫者(如果能改虫最好). 现在包含了一个虫虫很奇怪, 我的控件和TPanel有冲
突如果把我的控件放在TPanel中, 如果我的控件Align属性为alNone, 则如果TPanel
边框改变或resize时, 我的控件就会被擦除而无法显示.只有等窗口再次刷新才会正常.
如果我的控件的align不是alNone而TPanel的Align也不是alNone的话也会出现这个问
题.其他情况下正常.
另征求改进意见. 但是做个设计时的Property Editor来输入控制字串的提议不考虑,
本来做这个控件的动因就是因为做界面要安排几十个edit太烦琐, 如果通过个Property
Editor来点击几十次才能设计这个控件, 还不如直接在form上安排那几十个edit呢.
(这些控制字串并不难记吧?)