자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

 

첫번째 질문입니다.


아래와 같이 1개의 폼(같은 폼)에서 ini파일을 쓰고, 읽어오면 정상적으로 잘 되는데.


2개의 폼(다른 폼)에서 한개는 ini 파일을 쓰고, 또 다른 한개의 폼에서는 ini 파일을 읽어오면


현재 데이터를 읽어오지 못하고 전에 저장된 데이터를 읽어옵니다.


왜 그런건가요?

 

 


// Form1 : Main 폼
uses
   System.IOUtils, System.IniFiles;
{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin 

   Form2.Activate;
 end;

 

procedure TForm1.FormActivate(Sender: TObject);
begin 

   Form2.Show; 
 end;

 

procedure TForm1.FormShow(Sender: TObject);

 var
   sPath: string;
   iFile: TIniFile;
begin 

   sPath := TPath.Combine(TPath.GetDocumentsPath, 'Env.ini');
   iFile := TIniFile.Create(sPath);
   try
    ShowMessage(iFile.ReadString('Env', 'User', ''));  // Form2에서 Edit1.Text의 값이 a이면 b가 출력되고, b이면 a가 출력됨
   finally
     iFile.DisposeOf;
   end;
 end;

* 즉, 방금 저장된 값이 출력이 되는것이 아니라 전에 저장된 값이 출력이 됨(Form2 폼에서는 바로 저장된 값이 출력됨)

* 참고 : 이 현상은 2번 이상 실행을 해봐야 문제점을 확인할 수 있습니다.

*ex) 처음에 b입력시 a출력, 다시 실행하여 b입력시 b출력, 다시 실행하여 a입력시 b출력

 

 

// Form2 : 서브폼(로그인)
uses
   System.IOUtils, System.IniFiles;
{$R *.fmx}

procedure TForm2.Button1Click(Sender: TObject);
 var
   sPath: string;
   iFile: TIniFile;
 begin
   sPath := TPath.Combine(TPath.GetDocumentsPath, 'Env.ini');
   iFile := TIniFile.Create(sPath);
   try
     iFile.WriteString('ENV' ,'User', Edit1.Text);  // (Edit1.Text 에서 입력값이 a이면) / (Edit1.Text 에서 입력값이 b이면)
   finally
     iFile.DisposeOf;
   end;
 end;


procedure TForm2.Button2Click(Sender: TObject);
 var
   sPath: string;
   iFile: TIniFile;
 begin
   sPath := TPath.Combine(TPath.GetDocumentsPath, 'Env.ini');
   iFile := TIniFile.Create(sPath);
   try
     ShowMessage(iFile.ReadString('Env', 'User', ''));  // (a라고 출력됨) / (b라고 출력됨)  -- 정상적으로 잘 출력됨
   finally
     iFile.DisposeOf;
   end;
 end;

 

procedure TForm2.Button3Click(Sender: TObject);
 begin
   Close;
 end;


procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Self.free;
end;

 

 

 

 

===============================================================

두번째 질문입니다.

이번에는 Form2에서 ini 파일을 WriteString하지 않고 직접 ini파일을 생성해서

ini파일 자체를 업로드 하는 법을 알려주세요

 

제가 해본 방법은

Project > Deployment 메뉴에서 Add files 버튼을 누르고 미리 만들어 놓은 ini 파일을 선택 후에

Platform - [Android]

Remote Path - assets\internal로 수정하고 실행하면 ini파일의 내용을 불러오질 못하더라구요

ShowMessage(iFile.ReadString('Env', 'User', ''));  하면 아무값도 출력이 안됩니다.

ini.WriteString 해서 실행하면 불러오는데 직접 만든 ini파일은 왜 안되는지 모르겠습니다.

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 17237
공지 유용한 관련 사이트 관리자2 2014.03.20 56118
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99556
1019 2010 사용자 입니다. ime 한글 모드 전환문제 radio 2015.04.08 759
1018 TEdit 박스 한글로 선택후 입력시 선택된 문자를 덮어쓰지 않는 문제 [5] file 운땡최향태 2016.08.04 760
1017 xe8 에서 mssql서버 접속방법 [1] 윤영일 2015.07.18 761
1016 "Ignore this exception type" 다시 활성화 방법문의 드립니다. [1] file 슈크림 2020.01.31 761
1015 정적배열의 초기화 문제? [1] 스카이 2017.06.29 762
1014 [세미나: 데이터와 RAD] DataSnap 으로도 REST API 구현이 되는가요? 험프리 2020.06.24 764
1013 Baas를 이용하지 않고 구글 푸시 서비스(FCM)를 이용하는 방법 문의 드립니다. [5] 김태윤 2017.01.25 765
1012 [공유] 파이어몽키 콤보박스의 글자 크기를 변경하고 싶습니다. 험프리 2019.02.20 765
1011 RADSTUDIO XE3 컴포넌트 지원 관련 질문입니다 술그머니홍구 2014.11.20 766
1010 BindingsList1 properties의autobuffercount ? [5] silkroad99 2015.01.22 766
» XE8 Android에서 ini 파일 관련 문의 드립니다. [1] 비도리 2015.12.21 768
1008 Troubleshooting: Cannot Deploy an Application for Android [1] 민돌이 2015.01.27 768
1007 [공유] VCL 스타일을 사용해 보니 폼이 전체적으로 이뻐지는데요. 강조하고 싶은 특정 버튼의 스타일만 바꿀 수 있나요? [1] Humphery 2015.03.27 770
1006 AES 암호화 관련 [1] 다콜 2015.06.12 772
1005 델파이로 Jsp,php 등 웹서버와 통신할수 있나요? [2] 드레곤 2016.05.26 773
1004 블루투스 바코드스캐너연동 질문입니다. [3] file 과객 2017.11.26 774
1003 기존 프로젝트를 다른 폴더로 옮긴후 사용하는 방법문의 [1] 희망나라 2015.03.10 775
1002 DB를 읽어오는 부분에 속도문제 (이미지포함) [1] 김하나 2015.05.28 775
1001 카메라 실행 오류문의 [2] file kim 2015.11.16 776
1000 xe8에서 iphone device 연결방법문의? [2] silkroad99 2015.05.19 779