Q&A

  • panel 같은 컴포넌트 위에 있는 여러 컴포넌트 clear 방법 좀
우선 반갑습니다.

질문 게시판을 끝까진 뒤져보지는 않았지만 없는 건 같아서요..



너무 쉬워서 그런지 잘 모르겠네요...쩝



다름이 아니구여 Panel 이나 또다른 개체 의 아들 속성으로 있는 TEdit..기타등등



여러 컴포넌트 값을 Clear 시켜 주고 싶은데요...



componentCount 속성(?)을 사용하니 Form에는 적용이 되는데...특정 판넬에서는



적용 되지가 않더라구요... 그래서 이렇게 질문합니다..



제가 쓴 구문은



"for i := 0 to ComponentCount -1 do

begin

if (Components[i] is TEdiT) then (Components[i] As TEdit).Text := '' ;

end;"

이렇게 해서 하면 그 폼아래 있는 아들 개체는 다 Clear 되더라구여...



그래서 저 속성앞에 panel11.ComponentCount 라고 적으면 syntax(?)에러는 없는데



제대로 수행되지가 않아요..



단위 플로그램이라 단위별로 Clear 할일 이 많은데...일일이 그 컴포넌트 명을



적어서 클리어 할려니 넘 에너지 낭비라서요...



아시는 분의 도움을 바랍니다.

2  COMMENTS
  • Profile
    seagod 2000.04.26 01:56
    요렇게 하면 어떨까요?

    var

    nIndex:Integer

    begin

    for nIndex := 0 To frmMain.ComponentCount -1 do begin

    if frmMain.Components[nIndex] is TEdit then begin

    //부모가 Panel1이라면 즉 Panel1에 컴포넌트가 놓여있다면

    if TEdit(frmMain.Components[nIndex]).parent = Panel1 then

    TEdit(frmMain.Components[nIndex]).Text := '';

    end;

    end;

    end;



    김상국 wrote:

    > 우선 반갑습니다.

    > 질문 게시판을 끝까진 뒤져보지는 않았지만 없는 건 같아서요..

    >

    > 너무 쉬워서 그런지 잘 모르겠네요...쩝

    >

    > 다름이 아니구여 Panel 이나 또다른 개체 의 아들 속성으로 있는 TEdit..기타등등

    >

    > 여러 컴포넌트 값을 Clear 시켜 주고 싶은데요...

    >

    > componentCount 속성(?)을 사용하니 Form에는 적용이 되는데...특정 판넬에서는

    >

    > 적용 되지가 않더라구요... 그래서 이렇게 질문합니다..

    >

    > 제가 쓴 구문은

    >

    > "for i := 0 to ComponentCount -1 do

    > begin

    > if (Components[i] is TEdiT) then (Components[i] As TEdit).Text := '' ;

    > end;"

    > 이렇게 해서 하면 그 폼아래 있는 아들 개체는 다 Clear 되더라구여...

    >

    > 그래서 저 속성앞에 panel11.ComponentCount 라고 적으면 syntax(?)에러는 없는데

    >

    > 제대로 수행되지가 않아요..

    >

    > 단위 플로그램이라 단위별로 Clear 할일 이 많은데...일일이 그 컴포넌트 명을

    >

    > 적어서 클리어 할려니 넘 에너지 낭비라서요...

    >

    > 아시는 분의 도움을 바랍니다.

  • Profile
    최용일 2000.04.26 01:55
    안녕하세요. 최용일입니다.



    판넬안에 있는 컨트롤들은 모두 TPanel.Controls배열에 들어 있습니다.



    var

    I: Integer;

    begin

    for I := 0 to Panel1.ControlCount - 1 do

    if Panel1.Controls[I] is TEdit then

    TEdit(Panel1.Controls[I]).Text := '';

    // as연산자보다는 형변환을 하시는 것이 더 빠름니다.

    end;



    ^^ 항상 즐코하세요.



    김상국 wrote:

    > 우선 반갑습니다.

    > 질문 게시판을 끝까진 뒤져보지는 않았지만 없는 건 같아서요..

    >

    > 너무 쉬워서 그런지 잘 모르겠네요...쩝

    >

    > 다름이 아니구여 Panel 이나 또다른 개체 의 아들 속성으로 있는 TEdit..기타등등

    >

    > 여러 컴포넌트 값을 Clear 시켜 주고 싶은데요...

    >

    > componentCount 속성(?)을 사용하니 Form에는 적용이 되는데...특정 판넬에서는

    >

    > 적용 되지가 않더라구요... 그래서 이렇게 질문합니다..

    >

    > 제가 쓴 구문은

    >

    > "for i := 0 to ComponentCount -1 do

    > begin

    > if (Components[i] is TEdiT) then (Components[i] As TEdit).Text := '' ;

    > end;"

    > 이렇게 해서 하면 그 폼아래 있는 아들 개체는 다 Clear 되더라구여...

    >

    > 그래서 저 속성앞에 panel11.ComponentCount 라고 적으면 syntax(?)에러는 없는데

    >

    > 제대로 수행되지가 않아요..

    >

    > 단위 플로그램이라 단위별로 Clear 할일 이 많은데...일일이 그 컴포넌트 명을

    >

    > 적어서 클리어 할려니 넘 에너지 낭비라서요...

    >

    > 아시는 분의 도움을 바랍니다.