delphi 如何获得一个窗体中有多少控件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何获得一个窗体中有多少控件相关的知识,希望对你有一定的参考价值。
比如我想知道一个窗体中有多少个button
ControlCount可以获得当前控件(可能是Form、Panel, GroupBox)下直接包含的可视化控件总数,通过Controls[i]可以依次访问第i个控件。通过Controls[i] is TButton可以判断控件是不是按钮。与Controls对应的还有一个ComponentCount和Components。这个是当前窗口下所有控件,不管可见还是不可见,也不分直接包含还是通过Panel,GroupBox等间接包含的控件。
深入解析。
button := TButton.Create(Self); //这里Self.Components中就包含了button,
button.Parent := Self; //这里Self.Controls就包含了button
对你这个问题,想要知道有多少个Button的代码如下:
var
I: Integer;
Count: Integer;
begin
Count := 0;
for I := 0 to ControlCount - 1 do
begin
if Controls[I] is TCustomButton then
Inc(Count);
end;
ShowMessage('所有从TCustomButton继承的控件且直接放在Form上的控件总数为:' + IntToStr(Count));
Count := 0;
for I := 0 to ComponentCount - 1 do
begin
if Components[I] is TCustomButton then
Inc(Count);
end;
ShowMessage('所有从TCustomButton继承的控件总数为:' + IntToStr(Count));
end; 参考技术A var i,qty : Integer;
for i = 0 to Form1.ComponentCount-1
begin
if (Form1.components[i].ClassName = TButton) then
qty := qty + 1 ;
end
showmessage("Button控件数量:"+inttoStr(qty)); 参考技术B ShowMessage(IntToStr(ComponentCount)); 参考技术C 不可见控件不用转换
请问在Delphi里如何从一个窗体调用另一个窗体?
首先你要确认你想调用的窗体在你所使用的工程中,不在就add project还要包含你所调用窗体的头文件
直接在现在的窗体的某个控件的单击事件中new就可以了 参考技术A mplementation uses unit2;$R *.DFMbeginprocedure TForm1.Button1Click(Sender: TObject);form2.show;end; 参考技术B 请问在Delphi里若何大大一个窗体调用另一个窗体?Load From1在VB里我用From1.show或者在Delphi里怎么做?
以上是关于delphi 如何获得一个窗体中有多少控件的主要内容,如果未能解决你的问题,请参考以下文章
c#window窗体应用程序中一个控件,如果鼠标点击控件,怎么获得此时鼠标点击处的屏幕坐标