Q&A

  • splash 화면이 느리게 뜨기...
스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

대따 빨리 뜹니다.

Sleep() 함수를 써 보았지만 에러가 납니다.

타이머를 올려 놓아도 인식을 못 합니다.

좋은 방법을 가르쳐 주세요....

그럼 즐코 되세요....



6  COMMENTS
  • Profile
    이문환 2000.08.09 23:07
    이문환 wrote:

    > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > 대따 빨리 뜹니다.

    > Sleep() 함수를 써 보았지만 에러가 납니다.

    > 타이머를 올려 놓아도 인식을 못 합니다.

    > 좋은 방법을 가르쳐 주세요....

    > 그럼 즐코 되세요....

    >



    질문을 올린 초보자입니다.

    델파이 개발자님들 답변 감사드립니다.

    win20000 프로에서 작업중인데 for문을 길게 돌렸더니 오래 버팁니다.

    Sleep()은 에러가 나고요...

    그럼 항상 즐코되세요..



  • Profile
    심동훈 2000.08.09 19:25
    이문환 wrote:

    > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > 대따 빨리 뜹니다.

    > Sleep() 함수를 써 보았지만 에러가 납니다.

    > 타이머를 올려 놓아도 인식을 못 합니다.

    > 좋은 방법을 가르쳐 주세요....

    > 그럼 즐코 되세요....

    >



    꽁수인데 for문을 길게 잡아서 돌리시길...^^;





  • Profile
    강호규 2000.08.09 07:45
    이문환 wrote:

    > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > 대따 빨리 뜹니다.

    > Sleep() 함수를 써 보았지만 에러가 납니다.

    > 타이머를 올려 놓아도 인식을 못 합니다.

    > 좋은 방법을 가르쳐 주세요....

    > 그럼 즐코 되세요....

    >



    저도 그런데..

    너무 빨리 뜨기 때문에 Sleep(1000)으로 대신했는데

    에러 않나는데요.





  • Profile
    이문환 2000.11.15 00:52
    강호규 wrote:

    > 이문환 wrote:

    > > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > > 대따 빨리 뜹니다.

    > > Sleep() 함수를 써 보았지만 에러가 납니다.

    > > 타이머를 올려 놓아도 인식을 못 합니다.

    > > 좋은 방법을 가르쳐 주세요....

    > > 그럼 즐코 되세요....

    > >

    >

    > 저도 그런데..

    > 너무 빨리 뜨기 때문에 Sleep(1000)으로 대신했는데

    > 에러 않나는데요.

    >





    Application.Initialize;

    F_Splash := TF_Splash.Create(Application);//스플레쉬화면.

    F_Splash.Show;

    Sleep(1000); <--에러......

    F_Splash.Update;

    Application.Initialize;

    Application.CreateForm(TF_Main, F_Main);//MAIN 화면.

    F_Login := TF_Login.Create(Application);//Login 화면.

    Application.Run;

    F_Splash.hide;

    F_Splash.Free;





    Sleep(1000);을 어디에 써 줘야 하나여?

    그냥 Sleep(1000);만 쓰면 되는건가여?

    아니면 추가해주는 게 있나여?

    그럼...

  • Profile
    강호규 2000.11.15 02:27
    이문환 wrote:

    > 강호규 wrote:

    > > 이문환 wrote:

    > > > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > > > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > > > 대따 빨리 뜹니다.

    > > > Sleep() 함수를 써 보았지만 에러가 납니다.

    > > > 타이머를 올려 놓아도 인식을 못 합니다.

    > > > 좋은 방법을 가르쳐 주세요....

    > > > 그럼 즐코 되세요....

    > > >

    > >

    > > 저도 그런데..

    > > 너무 빨리 뜨기 때문에 Sleep(1000)으로 대신했는데

    > > 에러 않나는데요.

    > >

    >

    >

    > Application.Initialize;

    > F_Splash := TF_Splash.Create(Application);//스플레쉬화면.

    > F_Splash.Show;

    > Sleep(1000); <--에러......

    > F_Splash.Update;

    > Application.Initialize;

    > Application.CreateForm(TF_Main, F_Main);//MAIN 화면.

    > F_Login := TF_Login.Create(Application);//Login 화면.

    > Application.Run;

    > F_Splash.hide;

    > F_Splash.Free;

    >

    >

    > Sleep(1000);을 어디에 써 줘야 하나여?

    > 그냥 Sleep(1000);만 쓰면 되는건가여?

    > 아니면 추가해주는 게 있나여?

    > 그럼...



    program MyApplication;



    uses

    Forms,

    windows,

    .

    .

    .

    .;



    var

    Mutex : THandle;



    {$R *.RES}



    begin

    Mutex := CreateMutex(nil, True, 'MY APPLICATION'); {중복실행을 막기위함}

    if (Mutex <> 0 ) and (GetLastError = 0) then begin

    Application.Initialize;

    FormSplash := TFormSplash.Create(Application);

    FormSplash.Show;

    FormSplash.Update;

    Application.Title := '마이 어플리케이션';

    Application.CreateForm(TDM, DM);

    Application.CreateForm(TFormMain, FormMain);

    Sleep(1000);

    FormSplash.Hide;

    FormSplash.Close;

    Application.Run;

    FormSplash.Free;

    if Mutex <> 0 then CloseHandle(Mutex); {중복실행이라면 종료}

    end;

    end.



    Sleep(1000);의 위치는 위와 같습니다.

    하지만 이방법은 좋은 방법은 아닙니다.

    위에서 설명한 유수정님의 의견대로

    메인폼에서 Free시키는 방법이 더 좋을 듯 싶습니다.



    참고로 Mutex : THandle; 변수는 프로그램의 중복실행을 막기위해

    사용한 것입니다.

  • Profile
    유수정 2000.08.09 20:39
    강호규 wrote:

    > 이문환 wrote:

    > > 스플레쉬 화면이 뜨기도 전에 메인화면이 뜹니다.

    > > 저는 MDI 폼을 만들어서 그런지 스플레쉬화면은 잠깐 뜨기도 전에 메인폼이

    > > 대따 빨리 뜹니다.

    > > Sleep() 함수를 써 보았지만 에러가 납니다.

    > > 타이머를 올려 놓아도 인식을 못 합니다.

    > > 좋은 방법을 가르쳐 주세요....

    > > 그럼 즐코 되세요....

    > >

    >

    > 저도 그런데..

    > 너무 빨리 뜨기 때문에 Sleep(1000)으로 대신했는데

    > 에러 않나는데요.

    >



    타이머라든가 Sleep도 하나의 방법이겠지만

    Splash의 Handle을 보관하였다가 메인화면 시작전에

    WM_CLOSE메세지를 날리세요..