FireMonkey Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
FireMonkey 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

FireMonkey Q&A
[157] Re:Re:[답변] 델파이 소스입니다
초보자 [] 893 읽음    2016-04-16 09:13
주신 소스를 테스트 해봤습니다.

제가 뭘 잘못했는지 모르겠지만 오류가 나서 당장은 결과를 확인할 수 없는 상태지만,
유용한 소스라고 생각합니다. 차후에 실력이 어느 정도 축적이 된 후에 다시 참고할 예정이고요.

좀 더 공부한 후에... 저처럼 초보들에게 님처럼 답글을 달아주는 흑기사가 되도록 노력하겠습니다.

고맙습니다.


초보자 님이 쓰신 글 :
: 헉, 이렇게나 빨리... 답변을 주시다니... 고맙습니다. ^^;
:
:
:
: 정성훈.해미 님이 쓰신 글 :
: : 제가 델파이는 전문이 아니라서
: : 예외처리 부분은 구문을 잘 모르겠네요.
: : 일단 주요 코드만 변환하여 드립니다.
: :
: : //---------------------------------------------------------------------------
: : // 환경 설정 불러오기 함수
: : //---------------------------------------------------------------------------
: :     Prefs: JSharedPreferences;
: :
: :     Prefs := SharedActivity.getPreferences(StringToJString('MyApp'), TJActivity.JavaClass.MODE_PRIVATE);
: :
: :     UserID := Prefs.getString(StringToJString('User ID'), StringToJString(''));
: :     UserPW := Prefs.getString(StringToJString('User PW'), StringToJString(''));
: :
: : //---------------------------------------------------------------------------
: : // 환경 설정 저장 함수
: : //---------------------------------------------------------------------------
: :     Prefs: JSharedPreferences;
: :     Editor: JSharedPreferences_Editor;
: :
: :     Prefs := SharedActivity.getPreferences(StringToJString('MyApp'), TJActivity.JavaClass.MODE_PRIVATE);
: :     Editor := Prefs.edit;
: :
: :     Editor.putString(StringToJString('User ID'), StringToJString(UserID));
: :     Editor.putString(StringToJString('User PW'), StringToJString(UserPW));
: :
: :     Editor.apply;
: :
: :
: :
: :
: :  님이 쓰신 글 :
: : : 답변 감사드립니다...
: : :
: : : 델파이를 한 지 얼마 안돼 수준 또한 일천한데 C++소스를 보니 전혀 알 길이 없고, 어지럽네요 @@
: : : 염치없어서 델파이코드로 변환해 주십사 부탁은 못드리겠고...
: : : 하지만 지식을 공유하는 차원에서 하수에게 한 수 가르쳐 주신다면 저와 비슷한 처지의 사람들에게
: : : 많은 힘이 될 거라 생각합니다.
: : :
: : : 거듭 답변에 감사드립니다...
: : :
: : :
: : :
: : : 정성훈.해미 님이 쓰신 글 :
: : : : 안녕하십니까.
: : : : 정성훈.해미입니다.
: : : :
: : : : 어플이 제거될 경우에는 관련 파일이 모두 없어지기때문에
: : : : 유지하실려면 다른 꼼수가 필요하지만
: : : : 그러면 사용자 휴대폰에 쓰레기 파일이 남게되서
: : : : 추천하지 않습니다.
: : : :
: : : : 일반적으로 설정파일(INI파일 등)로 저장을 할 경우
: : : : 어플이 제거되지 않는 한 그대로 유지 됩니다.
: : : : 어플이 업데이트 되어도 유지되니 구현하시던 INI파일 형태로 하셔도 됩니다.
: : : : (추신: 어플 폴더 내에 생성한 유저 파일은 유지되는지 확인 못했네요)
: : : :
: : : : 설정값이 초기화 되는 문제는 여러거지 원인이 있을 수 있겠지만
: : : : 프로젝트 옵션(배포 방법, 디버그/릴리즈)이 다를 경우에
: : : : 설정 파일 위치가 달라져서 그럴수도 있습니다.
: : : :
: : : : getSharedPreferences함수를 이용하면
: : : : 해당 어플에 대한 사용자 환경 설정을 저장하고 불러올 수 있습니다.
: : : : 어플이 제거되지 않는 한 유지됩니다.
: : : :
: : : : 제가 구현하여 사용하고 있는 코드를 살짝 바꿔서 공유해 드립니다.
: : : : 도움이 되시길 바랍니다.
: : : :
: : : : *추신: C++소스입니다.
: : : :
: : : :
: : : : //---------------------------------------------------------------------------
: : : : // 환경 설정 불러오기 함수
: : : : //---------------------------------------------------------------------------
: : : : void c_Cfg::Load()
: : : : {
: : : : #if defined(__ANDROID__) && defined(__arm__)
: : : :     _di_JSharedPreferences Prefs;
: : : :     Prefs = SharedActivity()->getSharedPreferences(StringToJString("MyApp"), TJActivity::JavaClass->MODE_PRIVATE);
: : : :
: : : :     try {
: : : :         UserID = Prefs->getString(StringToJString("User ID"), StringToJString(""));
: : : :         UserPW = Prefs->getString(StringToJString("User PW"), StringToJString(""));
: : : :     } catch (...) {
: : : :         UserID = "";
: : : :         UserPW = "";
: : : :     }
: : : :
: : : : #endif
: : : : }
: : : : //---------------------------------------------------------------------------
: : : : // 환경 설정 저장 함수
: : : : //---------------------------------------------------------------------------
: : : : void c_Cfg::Save()
: : : : {
: : : : #if defined(__ANDROID__) && defined(__arm__)
: : : :     _di_JSharedPreferences Prefs;
: : : :     _di_JSharedPreferences_Editor    Editor;
: : : :
: : : :     Prefs = SharedActivity()->getSharedPreferences(StringToJString("MyApp"), TJActivity::JavaClass->MODE_PRIVATE);
: : : :     Editor = Prefs->edit();
: : : :
: : : :     Editor->putString (StringToJString("User ID"), StringToJString(UserID));
: : : :     Editor->putString (StringToJString("User PW"), StringToJString(UserPW));
: : : :
: : : :     Editor->apply();
: : : : #endif
: : : : }
: : : :
: : : : // 사용법
: : : : FormCreate 이벤트에서 설정 불러오기 함수를 호출합니다.
: : : : FormCloseQuery 이벤트에서 설정 저장 함수를 호출합니다.
: : : :
: : : :
: : : :
: : : :
: : : : 초보자 님이 쓰신 글 :
: : : : : USB 디버깅 상태로 프로그램을 테스트 중입니다.
: : : : :
: : : : : 프로그램에서는 <아이디><비번>을 입력받아 서버로 접속하여 인증처리를 하고 있습니다.
: : : : : 그러다 보니 프로그램을 구동할 때마다 매번 <아이디><비번>을 입력해야 하는 번거로움이 생겼습니다. 그래서 접속이 한 번이라도 이루어 진 후에는  계정을 묻지 않도록 ini파일로 계정을 보관했다가 재사용 하도록 조치했습니다.
: : : : :
: : : : : 문제는 프로그램을 수정한 뒤 실행(Deploy)하면 원래 보관했던 ini파일이 없어지는 겁니다.
: : : : :
: : : : : (1) 원래 그런 건지요?
: : : : : 원래 그런 거라면 계정 값을 어떤 특정위치에 보관했다가 재사용 한다든지 하는 방법이 있을까요?
: : : : : 즉, 프로그램이 제거되거나 변경되어도 임의의 위치에 보관된 값은 그대로 유지되게 한다든지 하는 꼼수라도 있는지요?
: : : : :
: : : : : (2) ini파일에 보관하는 방법이 아닌 다른 방법이 있는지요?
: : : : :
: : : : : 여기 저기 뒤져가면서 어떻게 해보려는데... 아는 것도 없거니와 참고할 만한 자료도 별로 없어서 진전이 없습니다.
: : : : : 알고 보면 별 거 아닐 거 같은데 말이죠...
: : : : :
: : : : : 미리 감사드립니다. (꾸벅)
: : : : :

+ -

관련 글 리스트
150 [질문] 보관된 값이 초기화 되지 않게 하려면... 초보자 705 2016/04/14
152     Re:[질문] 보관된 값이 초기화 되지 않게 하려면... 정성훈.해미 742 2016/04/15
153         Re:Re:[질문] 보관된 값이 초기화 되지 않게 하려면... 725 2016/04/15
155             [답변] 델파이 소스입니다 정성훈.해미 1021 2016/04/15
156                 Re:[답변] 델파이 소스입니다 초보자 792 2016/04/15
157                     Re:Re:[답변] 델파이 소스입니다 초보자 893 2016/04/16
151     Re:[질문] 보관된 값이 초기화 되지 않게 하려면... 험프리 685 2016/04/15
154         Re:Re:[질문] 보관된 값이 초기화 되지 않게 하려면... 초보자 741 2016/04/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.