질문의 내용은 이렇습니다.
한 프로그램에 폼을 여러개 만드는 경우 프로잭트 옵션부분을 보면
여러개의 폼을 동적으로 생성시킬 것인가 아니면 자동으로 생성시킬 것인가를
선택하는 부분이 있는데
예를 들어 폼이 달랑 두개밖에 없는 프로그램의 경우 두번째 폼(Form2)의 사용빈도가
높다는 가정하에서 Form2 가 불릴때마다 메모리를 할당받고 폼을 생성한다면
속도도 느리고 많은 점에서 비 합리 적이리라 생각 됩니다.
제가 맞게 이해 하고 있는지 궁금하고,
Form1에서 Uses절에 Unit2(Form2)를 쓰고나면 Form2를 바로 쓸수 있는 겁니까?
책을 보니 Application.Create(Form2 : TForm2); 이렇게 쓰라고 하고
저는 지금 먼저 var Form2 : TForm2 라고 한 다음에
Form2 := TForm2.Create(nil)
Form2.Visible := true;
라고 사용하고 있는데 2가지의 문제가 있는것 같습니다.
자동으로 이미 생성시킨 폼인데 둘다 Create()를 써야 한다는 겁니다.
자동으로 이미 생성된 폼인데도 Create()가 필요한건가요?
아니면 잘못 사용하고 있는건가요?
그리고 Form1에서 버튼과 연결 시켜 놓으면 계속해서 같은 폼들이
여러개 생성 됩니다.
폼을 하나만 생성 시키려면 어떻게 해야 하나요?
정리를 하면......
폼을 동적으로 생성시키지 않고 자동으로 생성하게 한다음에
Form1(MainForm)에서 버튼을 누르면 Form2가 하나만 생성되게 하고싶습니다.
고수님들의 조언 바랍니다.
1. 자동으로 만든 폼을 Create해야 하나...?
- Create 하지 않으셔도 됩니다.
2. 같은 폼이 계속 뜬다...?
-Create시켰는데 Free하는 곳이 없어서 그러거든요...
3. 결과적으로 폼 하나만 띄우는 방법은...?
-Form1에서 Form2를 부를때(즉,버튼 클릭 이벤트할때..)
Form2.show; 나 Form2.showmodal;
를(을) 해주시면 됩니다.
그러면 Form1에 있는 버튼을 계속 눌러도 하나의 폼만 뜨게 되죠..
많은 도움이 되었으면 좋겠네요...
최종오 wrote:
> 질문의 내용은 이렇습니다.
>
> 한 프로그램에 폼을 여러개 만드는 경우 프로잭트 옵션부분을 보면
> 여러개의 폼을 동적으로 생성시킬 것인가 아니면 자동으로 생성시킬 것인가를
> 선택하는 부분이 있는데
> 예를 들어 폼이 달랑 두개밖에 없는 프로그램의 경우 두번째 폼(Form2)의 사용빈도가
> 높다는 가정하에서 Form2 가 불릴때마다 메모리를 할당받고 폼을 생성한다면
> 속도도 느리고 많은 점에서 비 합리 적이리라 생각 됩니다.
> 제가 맞게 이해 하고 있는지 궁금하고,
> Form1에서 Uses절에 Unit2(Form2)를 쓰고나면 Form2를 바로 쓸수 있는 겁니까?
> 책을 보니 Application.Create(Form2 : TForm2); 이렇게 쓰라고 하고
> 저는 지금 먼저 var Form2 : TForm2 라고 한 다음에
> Form2 := TForm2.Create(nil)
> Form2.Visible := true;
> 라고 사용하고 있는데 2가지의 문제가 있는것 같습니다.
> 자동으로 이미 생성시킨 폼인데 둘다 Create()를 써야 한다는 겁니다.
> 자동으로 이미 생성된 폼인데도 Create()가 필요한건가요?
> 아니면 잘못 사용하고 있는건가요?
>
> 그리고 Form1에서 버튼과 연결 시켜 놓으면 계속해서 같은 폼들이
> 여러개 생성 됩니다.
> 폼을 하나만 생성 시키려면 어떻게 해야 하나요?
>
> 정리를 하면......
> 폼을 동적으로 생성시키지 않고 자동으로 생성하게 한다음에
> Form1(MainForm)에서 버튼을 누르면 Form2가 하나만 생성되게 하고싶습니다.
> 고수님들의 조언 바랍니다.