2016-09-19 283 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