자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17304
공지 유용한 관련 사이트 관리자2 2014.03.20 56187
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99611
2139 unable to create process adb:error failed to copy file 송세건 2016.07.06 256
2138 XE8에서 인터넷 도움말을 보려면..?? [1] 훈0 2015.07.11 256
2137 베를린 10.1, Windows 10 환경에서 Bluetooth LE 스캔 시 장비가 검색되지 않습니다 [1] 지병철 2016.09.30 256
2136 QR CODE Component Natura 2016.12.22 256
2135 object lock not owned. 오류가 나는 원인이 뭔가요?? sihwan 2018.08.03 256
2134 CTI 연동할때 모니터 하단에서 알림창 같이 떠오르게 하는 방법? 미스터리 2018.08.31 256
2133 ipworks 더이상 무상으로 지원 안되나요? [2] 별땅땅쫑 2019.02.22 256
2132 실행이 너~무 느립니다. [1] 포세가이 2020.02.27 256
2131 [XE8 출시세미나] 물리엔진인 Box2D를 모바일에서도 사용할 수 있나요? [1] Humphery 2015.04.30 256
2130 구글 새 OS 안드로이드 N, 5월 공개대해.. 가을이다 2016.01.13 256
2129 퍼미션에 추가하려고하는데 항목이 없습니다. [1] file 처음처럼 2016.04.18 257
2128 "Build All Projects"로 컴파일시 정상동작하지만 "F9"로 컴파일시 에러가 발생합니다. file lamp 2016.09.26 257
2127 Tokyo 10.2.2에서 안드로이드용 실행문제 [2] 스카이 2018.01.26 257
2126 RIO 에서 TWebbrowser 문제해결 차선책 [1] 지병철 2019.01.10 257
2125 오류관련 문의 드립니다 [1] 투덜이스머프투 2019.05.20 257
2124 Delphi 10.2 Tokyo dbExpress 및 FireDAC 문의 [4] file 엘트 2019.09.19 257
2123 ClientDataSet 이 연결오류 [1] file 우기여니아빠 2019.11.29 257
2122 PushEvents1.StartupNotification 문의드립니다 [1] 최민철 2015.06.30 257
2121 데이터스냅 서버 함수의 파라미터 타입 제약이 있나요? [2] devdevil0625 2015.10.28 257
2120 Delphi RAD Studio 10.1 FileOpen Dialog 문제 [2] file allright 2016.11.09 258