明白delphi的来看看

2025-03-03 07:38:01
推荐回答(4个)
回答1:

ActiveControl 属性

返回拥有焦点的控件。当窗体被引用时,如在 ChildForm.ActiveControl 中,如果被引用的窗体是活动的,ActiveControl 指定将拥有焦点的控件。在设计时是不可用的;在运行时是只读的。

语法

object.ActiveControl

object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。

说明

可以使用 ActiveControl 来访问控件的属性或调用其方法:例如,Screen.ActiveControl.Tag = "0"。如果在窗体上的所有控件都是不可见的或不可使用的,那么将产生一个运行时错误。

每个窗体都可以有一个活动控件 (Form.ActiveControl),而不管窗体是否是活动的。在应用程序中,可以在每个窗体上编写处理活动控件的代码,即使此窗体不是活动窗体。

这个属性在多文档接口 (MDI) 应用程序中尤其有用,其中工具栏上的一个按钮必须初始化为 MDI 子窗体中的控件上的一个动作。当用户单击工具栏上的“复制”按钮时,代码可以引用 MDI 子窗体的活动控件中的文本,例如 ActiveForm.ActiveControl.SelText。

注意 如果计划将 Screen.ActiveControl 传递给一个过程,那么在那个过程中必须用子句 As Control 而不是指定控件的类型 (As TextBox 或 As ListBox)声明参数,即使 ActiveControl 总是引用相同类型的控件。

myrect:=activecontrol.boundsrect;//读入形状(左,上,右,下)
myrect.Right:=myrect.left+2*(myrect.Right-myrect.left); //(右=左+2*(右-左)) 右-左=长度
myrect.Bottom:=myrect.Top+(myrect.Bottom-myrect.top) div 2; //(下=上+(下-上)/2) 下-上=高度
ActiveControl.BoundsRect:=myrect;//同样不明白 重设形状(左,上,右,下)

回答2:

代码很简单,就是用一个TRect结构,将当前激活控件的位置区域,取出来,经过计算后,再设置当前激活控件的位置区域

ActiveControl.BoundsRect表示了当前激活组件的区域(上下左右),当你对它赋值的时候,就是修改它的区域,

回答3:

ActiveControl应该是form的属性

回答4:

为什么改变控件的大小要用rect..
如果是我的话我会这样写:
procedure TForm1.Button1Click(Sender: TObject);
var
mybutton:tbutton;
begin
mybutton:=tbutton(sender);//把sender强制转换成一个button控件
mybutton.width:=mybutton.width*2;//修改宽
mybutton.height:=mybutton.height div 2;//修改长
end;
这样应该就可以了吧.如果不行的话请联系我.
http://grayluck.blog.163.com