안녕하십니까? 항상 빠른 답변에 감사드립니다.
저는 MDI 형태에서 모든 화면이 Child로 호출이 되지만
한 화면에 대해서는 별개의 Form형태로 호출을 하여야 합니다.
그런데, 계속 Form를 호출하면 메모리가 낭비되기때문에
현재 해당 Form이 활성화 되었는데 뒤로 간 경우에는
bringtoFront로 설정을 주고 활성화가 되지 않은 경우에는
CreateForm을 하고 싶습니다.
MDI내에서는
for li_temp := 0 to MDIChildCount - 1 do
if MDIChildren[li_temp] is Tform1 then ....
으로 해당 윈도우를 찾았지만
MDI에서 NormalForm을 SHow를 통하여 호출하는 경우에 대해서는
어떻게 윈도우의 활성여부를 확인할 수 있는지요?
밑에 다른두분의 답변을 읽어 보았는데.. 저는 조금 다른 생각이어서 몇자 적습니다.
Form이라해도 이건 하나의 클래스일 뿐이거든요?? 그래서 생성이 되어 있고 이게 메인폼에서 생성된거 겠죠? 그럼 그냥 찾으시면 됩니다.
SubForm := FindComponent('Form2'); 하시면 됩니다. 들어가는건 콤포넌트 이름 즉 폼명이구요 만약에 메인폼에서 찾으시는게 아니라면 SubForm := FindGlobalComponent('Form2')하시면 됩니다
리턴값은 Tcomponent이고 못찾으면 nil을 리턴합니다.
그러니까 nil일때 생성하시구 값이 있으면 (SubForm as TForm)하셔서 뭐 show를 해주시든지 하시면 되겠죠..??
FindComponent('Form2');
FindGlobalComponent('Form2');
그럼 즐거운 시간 되세요
하얀까마귀
초보자 wrote:
> 안녕하십니까? 항상 빠른 답변에 감사드립니다.
>
> 저는 MDI 형태에서 모든 화면이 Child로 호출이 되지만
> 한 화면에 대해서는 별개의 Form형태로 호출을 하여야 합니다.
>
> 그런데, 계속 Form를 호출하면 메모리가 낭비되기때문에
> 현재 해당 Form이 활성화 되었는데 뒤로 간 경우에는
> bringtoFront로 설정을 주고 활성화가 되지 않은 경우에는
> CreateForm을 하고 싶습니다.
>
> MDI내에서는
> for li_temp := 0 to MDIChildCount - 1 do
> if MDIChildren[li_temp] is Tform1 then ....
> 으로 해당 윈도우를 찾았지만
>
> MDI에서 NormalForm을 SHow를 통하여 호출하는 경우에 대해서는
> 어떻게 윈도우의 활성여부를 확인할 수 있는지요?
>