자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey MAC OSX 에서 Firemonkey SaveDialog 오류 (내용수정)
2012.04.02 11:17
버그 리포팅 게시판이 없어져서 이곳에 올립니다.
현재 Delphi XE2 Update 4 사용하고 있고 MAX OSX 는 Lion 입니다.
기존 개발된 어플을 파이어몽키를 사용하여 MAC 용 어플로 변환하는 작업을 진행중인데..
MAC OSX 에서 파일처리 관련 버그들이 발견 되고 있습니다.
* TSaveDialog 동적 생성 사용시
SaveDialog.Options := [ ofOverwritePrompt, ofHideReadOnly, ofEnableSizing] 이 구문자체가 아예 컴파일이 안됩니다.
기본 옵션에 오버라이트 확인(ofOverwritePrompt)이 FALSE 로 되어있어 ofOverwritePrompt 를 추가 하려고 하니 먹히질 않네요.
* TSaveDialog 에서 기존에 존재하는 같은 화일명 호출시 어플 다운현상
아래 xmlFile.SaveToFile 과 FileExists 등의 사용시 이 함수들이 문제가 있는것이 아니라
TSaveDialog.Filename에서 존재하는 화일명을 호출하는것 자체가 문제 였네요.
즉, TSaveDialog 만 문제가 있고 다른 파일관련 함수는 TSaveDialog 파일명만 사용하지않으면 정상 작동 합니다.
(그나마 다행이군요)
* TXMLDocument 사용 파일 저장시 overwrite 하면 어플이 아예 죽어 버리네요.
xml 파일을 생성해서 저장을 할때 동일 파일명으로 overwrite 시키면 아예 어플이 죽어 버리니 난감하군요.
즉, xmlFile := TXMLDocument.Create( Form1 ); 로 xmlFile 오프젝트를 동적 생성한후
xmlFile.SaveToFile( FileName ); 을 실행하면 어플이 종료 되버립니다.
* FileExists 및 DeleteFile 사용시도 어플이 사망합니다.
오버라이트가 안되어 파일존재유무를 확인하고 기존파일을 삭제하고 저장하려고 FileExists 와 DeleteFile 를 사용하였으나
역시 두가지 함수 모두다 호출만 하면 어플이 죽어 버립니다.
* WINS32환경에서 버그
TOpenDialog 오픈시 WIN32환경에서 Modaless 타입으로 오픈되고 MAC OSX 에서는 Modal 타입으로 오픈.
Vcl 환경에서는 Modal 타임으로 오픈되므로 WIN32 환경에서 버그 입니다.
관련 내용이 다음버전에 속히 업데이트 되기를 바랍니다.
댓글 3
-
관리자
2012.04.02 19:36
윈도우즈와 OSX는 기본적으로 다른 OS라서 In/Out 관계에서 나타 날 수 있는 문제들이 다양합니다.아래링크에서도 '/' 혹은 '\'의 사용상의 차이에서 오는 문제로 인해 발샐한 오류를 확인 할 수 있습니다.http://tech.devgear.co.kr/delphi_news/2942개발 툴의 버그 일 수도 있지만 OS의 차이점에서 발생하는 오류 일 수도 있을것 같습니다.
말씀하신 각 항목에 대해서 좀더 검토해 보도록 하겠습니다.감사합니다.
-
c2design
2012.04.02 21:39
말씀하신 링크는 제가 올린 글이구요...^^
계속 확인해 보니 결국은 TSaveDialog 가 문제가 있어서 관련 나머지 함수들도 같이 문제를 일으킨것 같네요.
TSaveDialog 오류만 수정이 되면 해결 될것 같습니다.
본문 내용수정했습니다..감사합니다.
-
관리자
2012.04.02 21:50
아! 그렇군요 ㅠ.ㅠ
좀더 찾아보고 정보가 있으면 올리도록 하겠습니다 ^^;
Firemonkey MAC OSX 에서 Firemonkey SaveDialog 오류 (내용수정)
2012.04.02 11:17
버그 리포팅 게시판이 없어져서 이곳에 올립니다.
현재 Delphi XE2 Update 4 사용하고 있고 MAX OSX 는 Lion 입니다.
기존 개발된 어플을 파이어몽키를 사용하여 MAC 용 어플로 변환하는 작업을 진행중인데..
MAC OSX 에서 파일처리 관련 버그들이 발견 되고 있습니다.
* TSaveDialog 동적 생성 사용시
SaveDialog.Options := [ ofOverwritePrompt, ofHideReadOnly, ofEnableSizing] 이 구문자체가 아예 컴파일이 안됩니다.
기본 옵션에 오버라이트 확인(ofOverwritePrompt)이 FALSE 로 되어있어 ofOverwritePrompt 를 추가 하려고 하니 먹히질 않네요.
* TSaveDialog 에서 기존에 존재하는 같은 화일명 호출시 어플 다운현상
아래 xmlFile.SaveToFile 과 FileExists 등의 사용시 이 함수들이 문제가 있는것이 아니라
TSaveDialog.Filename에서 존재하는 화일명을 호출하는것 자체가 문제 였네요.
즉, TSaveDialog 만 문제가 있고 다른 파일관련 함수는 TSaveDialog 파일명만 사용하지않으면 정상 작동 합니다.
(그나마 다행이군요)
* TXMLDocument 사용 파일 저장시 overwrite 하면 어플이 아예 죽어 버리네요.
xml 파일을 생성해서 저장을 할때 동일 파일명으로 overwrite 시키면 아예 어플이 죽어 버리니 난감하군요.
즉, xmlFile := TXMLDocument.Create( Form1 ); 로 xmlFile 오프젝트를 동적 생성한후
xmlFile.SaveToFile( FileName ); 을 실행하면 어플이 종료 되버립니다.
* FileExists 및 DeleteFile 사용시도 어플이 사망합니다.
오버라이트가 안되어 파일존재유무를 확인하고 기존파일을 삭제하고 저장하려고 FileExists 와 DeleteFile 를 사용하였으나
역시 두가지 함수 모두다 호출만 하면 어플이 죽어 버립니다.
* WINS32환경에서 버그
TOpenDialog 오픈시 WIN32환경에서 Modaless 타입으로 오픈되고 MAC OSX 에서는 Modal 타입으로 오픈.
Vcl 환경에서는 Modal 타임으로 오픈되므로 WIN32 환경에서 버그 입니다.
관련 내용이 다음버전에 속히 업데이트 되기를 바랍니다.
댓글 3
-
관리자
2012.04.02 19:36
윈도우즈와 OSX는 기본적으로 다른 OS라서 In/Out 관계에서 나타 날 수 있는 문제들이 다양합니다.아래링크에서도 '/' 혹은 '\'의 사용상의 차이에서 오는 문제로 인해 발샐한 오류를 확인 할 수 있습니다.http://tech.devgear.co.kr/delphi_news/2942개발 툴의 버그 일 수도 있지만 OS의 차이점에서 발생하는 오류 일 수도 있을것 같습니다.말씀하신 각 항목에 대해서 좀더 검토해 보도록 하겠습니다.감사합니다. -
c2design
2012.04.02 21:39
말씀하신 링크는 제가 올린 글이구요...^^
계속 확인해 보니 결국은 TSaveDialog 가 문제가 있어서 관련 나머지 함수들도 같이 문제를 일으킨것 같네요.
TSaveDialog 오류만 수정이 되면 해결 될것 같습니다.
본문 내용수정했습니다..감사합니다.
-
관리자
2012.04.02 21:50
아! 그렇군요 ㅠ.ㅠ
좀더 찾아보고 정보가 있으면 올리도록 하겠습니다 ^^;