2016-09-19 90 views
-3

我试图减少代码,但我似乎无法做到这一点。我有35个“TfrxEdiTControl”(Tedit?),所以我想把它剪掉。缺点是我不确定语言是什么,但我认为是Pascal脚本。对于循环帕斯卡尔脚本

现在我有这样的:

if EPRD1.text <> '' then 
    begin 
     Tab.SQL.Add(','+EPRD1.text); 
     TabD.SQL.Add(','+EPRD1.text);    
    end;   
    if EPRD2.text <> '' then 
     begin 
      Tab.SQL.Add(','+EPRD2.text); 
      TabD.SQL.Add(','+EPRD2.text);    
     end; 

直到EPRD35,所以我希望做一个for循环。

我尝试以下方法:

for i := 1 to (35) do 
    begin 
     erpdConcat := FindComponent('EPRD'+IntToStr(i)); 
     if erpdConcat is TEdit then 
      begin 
       if TEdit(erpdConcat).text <> '' then 
        begin 
         Tab.SQL.Add(','+TEdit(erpdConcat).text); 
         TabD.SQL.Add(','+TEdit(erpdConcat).text);    
        end;                    
      end;             
    end; 

但我得到一个消息,说 “标识未声明 ”findcomponent“

+1

也许你应该问问给你代码的人是什么语言?然后,您可以使用它来帮助您搜索与您想要的类似的功能。事实上,知道你编程的语言是一个好的开始,否则你将无法做任何有用的事情。 –

+0

也许IDE,文件扩展名或其他任何内容都会提示您正在使用哪种语言? ;) –

+0

事情是,他们也不知道。他们问我是否可以提供帮助,并向我提供他们的定制编辑器。 – Enato

回答

0

看起来像帕斯卡尔给我。

FindComponent是TComponent的一种方法。

我相信TComponent在Delphi和Lazarus的“类”单元中。因此,类必须在“使用”条款中。

由于FindComponent是一个类的方法,它不是一个独立的函数,它必须从一个Component中调用。

所以,如果你的“TEdit”是开启的,比如说一个名为Panel1的面板,那么你需要把它称为Panel1.FindComponent(等等)。

HTH