많은 수의 컴포넌트를 동적생성해서 폼에 올려놨습니다.
var
curr:TCurrenyEdit;
str:String;
str:= Edit1.Text;
그런데 curr:= TCurrencyEdit(Findcomponent('cur'+str)); 라는 식으로 해서 해당 컴포넌트를 찾았는데 계속 못찾더군요. 이상해서 ShowMessage('cur'+str)해보니까 분명히
폼에 있는 컴포넌트의 이름이 맞더군요. 몇 번이나 해봤는데 결과는 같았습니다.
왜 이런 현상이 발생하는지 궁금합니다.
> 많은 수의 컴포넌트를 동적생성해서 폼에 올려놨습니다.
>
> var
> curr:TCurrenyEdit;
> str:String;
> str:= Edit1.Text;
>
> 그런데 curr:= TCurrencyEdit(Findcomponent('cur'+str)); 라는 식으로 해서 해당 컴포넌트를 찾았는데 계속 못찾더군요. 이상해서 ShowMessage('cur'+str)해보니까 분명히
> 폼에 있는 컴포넌트의 이름이 맞더군요. 몇 번이나 해봤는데 결과는 같았습니다.
> 왜 이런 현상이 발생하는지 궁금합니다.
우선 제 기억이 맞는다면 FindComponent 함수는 인자로 컴포넌트의 이름을 갖고
찾는 함수 입니다...
컴포넌트 변수명이 아니라는 뜻이지요...
위에서 FindComponent 함수를 쓰스기 전에
curr.Name := 'curr';
을 쓰신후 사용하시면 잘 될것 같군요...
그럼 이만....