Q&A

  • 안녕하세요 점심식사 하셨는지요.. ^^;; 폼 숨기기 질문드려요 ㅠㅠ;;
식사 맛나게 하셨나요? ^^;; 오랜만에 글을 올립니다 ㅠㅠ;;

다름이 아니구요 프로그램 실행시 폼도 숨기고 작업표시줄에도 안나오게하궁 트레이아이콘도 안보이게 할려고하거든요..

그래서 검색을 통해 이것저것 해
4  COMMENTS
  • Profile
    장성호 2009.06.15 22:53
    음...

    VCL에서는 기본적으로 작업표시줄에 나타나는 버튼이 Application.Handle입니다.



    그런데 2005이상부터는 그것을 옵션으로 조정이 가능합니다.

    Application.Mainform.Hanlde 로 설정이 가능하죠

    Delphi의 경우

    xxxx.bpr 파일에서 CreateForm하기전에
    Application.MainFormOnTaskBar = false로 하면 Application.Handle이 작업표시줄에 나타나고
    Application.MainFormOnTaskBar = true 상태로 CreateForm하면 메인폼의 버튼이 작업표시줄에 타나납니다.


    즉 님의 경우 Application.MainFormOnTaskBar = true상태인것 같은데..

    이경우
    ShowWindow(Application.Handle, SW_HIDE);
    대신

    ShowWindow(Application.MainForm.Handle, SW_HIDE);
    이렇게 하시면 될것입니다.

    그럼..




  • Profile
    하늘사랑 2009.06.15 23:10
    안녕하세요 장성호님 ^^ 답변감사드리구요 ^^
    말씀하신데로.. dpr 파일에 createform하기전에
    Application.MainFormOnTaskBar = true << 요렇게하구요

    FormCreate 에
    ShowWindow(Application.MainForm.Handle, SW_HIDE);
    SetWindowLong(Application.Handle, GWL_EXSTYLE,
    GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW); << 요렇게 해주었는데요..

    ShowWindow(Application.MainForm.Handle, SW_HIDE);
    SetWindowLong(Application.MainForm.Handle, GWL_EXSTYLE,
    GetWindowLong(Application.MainForm.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW); << 요렇게도.. 해주었는데요..

    실행을 시키니 Access violation 에러가.. ㅠㅠ;;;
    제가 뭔가 많이 잘못하는거져?? ㅠㅠ
  • Profile
    장성호 2009.06.15 23:42
    Application.MainForm은 nil 일때도 있습니다.

    Application.CreateForm을 호출하기 전..

    또는

    Application.CreateForm에서 Form을 Create 중에 ..

    기타 등등...


    Application.MainForm이 nil인데 Access하려고 했기때문에 Access Violation이 난것입니다.

    FormCreate 에 위 코드는 적당하지 않는것 같네요..

  • Profile
    하늘사랑 2009.06.16 00:09
    에공.. 답변감사드립니다 ^^
    더 연구해봐야겠어요 ㅠㅠ;;
    아무튼 관심가져주셔서 감사합니다

    즐거운하루 보내셔요 ^^