Q&A

  • 배열로 Image를 만들려면? 2
며칠전에 질문드린거에서 문제점을 발견하고 다시 질문드립니다.



배열로 이미지(버튼도 같을거 같군요)를생성할려고 하는데

전역변수 선언을 하고

Img : Array[1..10,1..10] of TImage;



프로시져를 만들었습니다



ImgCreate(N,M:Integer;...몇개의 변수더..);

begin

{ - 판단문 몇개 - }

Img[N,M] := TImage.Create(Self); // <---69번째라인임

{ - 생략 - }

end;



그리고 다른 이벤트에서 위의 프로시저를 불러오게 했는데,



ImgCreate(5,5,....);



위의 프로시져에서 에러가 납니다

에러메세지는

[Error] main.pas(69): Undeclared identifier: 'Self'



이벤트에서 직접만들면되는데 프로시져를 쓰면 위와 같네요.

답변 부탁드립니다.





1  COMMENTS
  • Profile
    이정욱 1999.07.13 00:47
    음.. 제 생각에는 분명 프로시져를 객체속에 포함하지 않은것 같네요.



    폼의 형이 TForm1이라고 가정할 때...



    TForm1.ImgCreate 이런식으로 안하셨죠?



    ImgCreate를 TForm1의 구성원으로 넣으셔야 합니다. 다른 유닛에서 사용하지 않는다면 Private로 넣으세요.



    Private에 선언하시구 밑에서는 procedure TForm1.ImgCreate (N,M:Integer;...몇개의 변수더..); 이렇게 하세요.



    그 객체의 구성원이 되어야 Self를 사용하실 수 있습니다.



    서경철 께서 말씀하시기를...

    > 며칠전에 질문드린거에서 문제점을 발견하고 다시 질문드립니다.

    >

    > 배열로 이미지(버튼도 같을거 같군요)를생성할려고 하는데

    > 전역변수 선언을 하고

    > Img : Array[1..10,1..10] of TImage;

    >

    > 프로시져를 만들었습니다

    >

    > ImgCreate(N,M:Integer;...몇개의 변수더..);

    > begin

    > { - 판단문 몇개 - }

    > Img[N,M] := TImage.Create(Self); // <---69번째라인임

    > { - 생략 - }

    > end;

    >

    > 그리고 다른 이벤트에서 위의 프로시저를 불러오게 했는데,

    >

    > ImgCreate(5,5,....);

    >

    > 위의 프로시져에서 에러가 납니다

    > 에러메세지는

    > [Error] main.pas(69): Undeclared identifier: 'Self'

    >

    > 이벤트에서 직접만들면되는데 프로시져를 쓰면 위와 같네요.

    > 답변 부탁드립니다.

    >

    >