Q&A

  • componentcount에 대해
main form에서 다른 폼에 있는 컴포넌트의 갯수를 알아내기 위해

componentcount를 사용하려면 어떻게 해야하죠?



예를 들어 제가 쓴 코드는 이건데..



savename:=filename;

j:=1;

if ExtractFileExt(saveName)='.trm' then

begin

myini := TIniFile.Create(savename);

for i:=0 to FCreateform.ComponentCount-1 do

begin

comp := FCreateform.Components[i];

if comp is TPanel then

with TPanel(comp) do

begin

myini.WriteInteger('DRAW','NO',j);

inc(j);

end;

메인에서 fcreateform에 있는 컴포넌트를 알아내려고 하는데

이렇게 하면 (이거 ini저장루틴인데.. 콤포넌트의 위치값등을 저장하는..)

저장하면 에러가 납니다. 왜 그러죠?

4라인과 6라인의 fcreateform을 빼면 되는데 그건 메인폼의 콤퍼넌트 갯수이고..

fcreateform의 콤퍼넌트갯수를 메인폼에서 알아내려면 어떻게 하죠?

1  COMMENTS
  • Profile
    권오경 1999.11.05 22:16
    장덕권 wrote:

    > main form에서 다른 폼에 있는 컴포넌트의 갯수를 알아내기 위해

    > componentcount를 사용하려면 어떻게 해야하죠?

    >

    > 예를 들어 제가 쓴 코드는 이건데..

    >

    > savename:=filename;

    > j:=1;

    > if ExtractFileExt(saveName)='.trm' then

    > begin

    > myini := TIniFile.Create(savename);

    > for i:=0 to FCreateform.ComponentCount-1 do

    > begin

    > comp := FCreateform.Components[i];

    > if comp is TPanel then

    > with TPanel(comp) do

    > begin

    > myini.WriteInteger('DRAW','NO',j);

    > inc(j);

    > end;

    > 메인에서 fcreateform에 있는 컴포넌트를 알아내려고 하는데

    > 이렇게 하면 (이거 ini저장루틴인데.. 콤포넌트의 위치값등을 저장하는..)

    > 저장하면 에러가 납니다. 왜 그러죠?

    > 4라인과 6라인의 fcreateform을 빼면 되는데 그건 메인폼의 콤퍼넌트 갯수이고..

    > fcreateform의 콤퍼넌트갯수를 메인폼에서 알아내려면 어떻게 하죠?





    하~~ 소스가 눈에 잘 안들어 와서..어떤 상황인지 파악은

    잘 안되지만 대충 내용은 여하간에 다른 폼에 있는 ComponentCount

    를 알고 싶은 거잖아요..?



    { Main Form }

    ....

    uses FCreateFormUnit;



    procedure frmMain.Event;

    var

    SaveName : string;

    begin

    ...

    savename:=filename;

    j:=1;

    if ExtractFileExt(saveName)='.trm' then begin

    myini := TIniFile.Create(savename);

    for i:=0 to FCreateform.ComponentCount-1 do begin

    comp := FCreateform.Components[i];

    if comp is TPanel then

    with TPanel(comp) do begin

    myini.WriteInteger('DRAW','NO',j);

    inc(j);

    end;

    end;

    ....

    end;



    위 내용은 잘못된것이 없는것 같은데요..

    혹시 uses 절에 유닛 추가를 안했거나.. 아니면

    FcreateForm 자체가 생성되지 않았거나...그런것 같으네요..