나는이 페이지를 우연히 만났습니다 Why shouldn’t I call Application.CreateForm. 지금이 같은 일부 코드가 있습니다Application .CreateForm을 두 번 호출하지 않으려면 어떻게해야합니까?
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update; // force update
Application.Initialize;
Application.CreateForm(TClientData, ClientData);
SplashForm.Update; // force update
Application.CreateForm(TClientMainForm, ClientMainForm);
Application.ShowHint := True;
Application.Run;
ClientMainForm.ServerConnected := false;
FreeAndNil(ClientMainForm);
FreeAndNil(ClientData);
먼저 splashform가 만든 다음, 데이터 모듈 및 기본 폼을 지속됩니다. 이 페이지에는 Application.CreateForm을 두 번 호출해서는 안됩니다. 위의 코드를 변경해야합니까?
감사
내가 IDE가 전역을 만들어 제거하는 것이 더 나은 스타일을 고려하지 않습니다 ... 메모리 사용을 최소화 . 이것들은 Delphi 애플리케이션의 작동 방식의 일부입니다. 이러한 "최적화"는 실제로 최적화되지 않은 IDE 생성 코드보다 "코드 냄새"가 더 큽니다. –
@ 워렌 : 그 의견은 전혀 이해가되지 않습니다. 델파이 애플리케이션은 메인 폼 변수를 제외하고는 전역 변수 중 어느 것도 사용할 필요가 없으며 메인 폼에 대한 변수는 프로젝트 파일의 변수로 쉽게 대체 될 수 있습니다. 다른 단위이기 때문에 실제로 전역 변수가 아닐 수도 있습니다. – mghie
나는 단순히 "당신이 원한다면 제거 할 수 있지만"그 구절을 좋은 생각으로 생각하지 않습니다. –