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

Tokyo 10.2.1에서 동적생성된 TFrame를 해제할 때 오류가 발생합니다.

베를린까지는 전혀 문제가 없었는데 Tokyo에서는 오류 또는 먹통이 되네요...

 

TFrame 생성/해재 테스트를 위해 간단히 만들어 봤습니다..

(원래는 프레임 생성/해제 관리 클래스를 만들어 사용하는데 하도 오류가 발생해서 원인 분석차 간단히 만들어 보았는데

역시 오류가 발생합니다.)

 

// 메인 유닛...

 

2017-10-14_15-48-01.png

 

unit Unit3;

........
  private

  public
    fr: TFrame1;

.....

procedure TForm3.btnFrameTestClick(Sender: TObject);

begin

   // 프레임 생성 버튼을 누르면 프레임을 동적생성한다....
    fr := TFrame1.Create(Self);
    fr.Parent := Self;
    fr.Align := TAlignLayout.Client;
end;

 

// 종료 버튼...

procedure TForm3.btnCloseClick(Sender: TObject);
begin
    Close;
end;

 

// 백버튼이 눌렸을 시 처리...

procedure TForm3.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
    if Key = vkHardwareBack then
    begin
        Key := 0;

        if Assigned(fr) then
        begin

            // 여기에서는 전혀 문제가 발생하지 않는다..
            fr.DisposeOf;
            Exit;
        end;

        Close;
    end;
end;

end.

 

// 프레임 유닛 (Unit4)

2017-10-14_15-48-16.png

 

//  '해제' 버튼을 눌렀을 때 프레임을 해제한다.

procedure TFrame1.btnFrameFreeClick(Sender: TObject);
begin

    DisposeOf;

   // Form3.fr.DisposeOf;  //  메인폼에 있는 변수를 이용해 해제. 먹통....

   // FreeOnRelease;         // 해제 안됨...

   // Release;                  // 먹통...

    // 첫 번째로 버튼을 눌렀을 때는 해제가 되는데 두 번째부터 버튼을 누르면 오류 또는 먹통이 된다..

    // 오류 메시지: Project Project2.apk raised exception class Segmentation fault(11).

    // 여기에서 DisposeOf 대신 어떤 방법으로 프레임을 해제해야 하는지요?

 

   // 베를린에서는 Release; 를 해주면 아무 문제없이 잘 작동한다.

   // 도쿄에서는 Release가 deprecated가 돼서 사용할 수가 없고 사용해도 먹통이 된다...
end;
 

 

ToKyo에서 프레임을 사용하시는 분들은 프레임 위에서 '닫기' 버튼을 눌렀을 때 어떻게 프레임을 해제하는지

궁금합니다..

혼자 여러가지로 궁리를 해 보다가 이해가 안돼서 질문을 올려 봅니다..

 

감사합니다..

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 19788
공지 유용한 관련 사이트 관리자2 2014.03.20 58725
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102304
2039 이미지 저장 및 읽기 오류 [1] 처음처럼 2016.03.04 626
2038 ios에서 classic bluetooth 로 통신하려면 [1] jojo 2016.03.04 3620
2037 Delphi10 에서 bpl로 제작된 컴포넌트 Install 메뉴가 안보이는 문제. (64bit 컴파일) [1] 김재욱 2016.03.04 212
2036 font 크기를 소숫점으로 안되나요? [1] 모나도 2016.03.04 555
2035 화면입력변수를 sql문에 적용하는 방법이 궁금합니다. [2] prince 2016.03.04 253
2034 안녕하세요. 질문드립니다. [1] hongmoonki 2016.03.04 459
2033 안드로이드 날짜 팝업창 관련 [2] 씨애틀 2016.03.07 356
2032 질문있습니다~사이베이스 연동 관련 [1] 신이치 2016.03.08 154
2031 TListView sort 방식 문의 [1] 광땡 2016.03.08 237
2030 FireDAC.MSSQL error seattle 10 [1] urong 2016.03.08 304
2029 개발시 uses 절 관련 [1] 씨애틀 2016.03.08 452
2028 안드로이드 백버튼시 선택 가능한 알림창 띄우기 [2] 씨애틀 2016.03.09 697
2027 Edit 내용입력 후 다음 버튼 클릭시 다음 Edit로 이용하는 방법 [4] 빨리빨리 2016.03.10 1612
2026 퀵리포트를 PDF로 변환하고자 합니다. [2] 손승규 2016.03.10 1515
2025 Zigbee 통신 어떻게 하는지 알고 싶습니다. [1] 이노야 2016.03.14 357
2024 bpl을 이용한 MDI 방식의 구성에서 DB커넥션의 공유는 어떻게 하는건가요? [1] 박종원 2016.03.14 452
2023 XE7 안드로이드 9-patch image기번 스플래쉬화면 [1] 빨리빨리 2016.03.15 313
2022 XE8/XE10 DATASNAP SERVER 연결관련문의 (MARSHMALLOW) [1] 김하나 2016.03.16 252
2021 XE10 Seattle에서 DBExpress로 원격지 Firebird서버에 접속시 의문점입니다. [1] 김태윤 2016.03.16 435
2020 ListBox style에서 text를 추가했는데 livebinding으로 연결이 가능한가요?? [1] 손주영 2016.03.17 347