Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

이 사이트 검색

검색 태그: '11.0'.

  • 태그로 검색

    태그 사이를 쉼표(,)로 구분하세요.
  • 작성자로 검색

콘텐츠 유형


게시판

  • 엠바카데로 (Embarcadero) 개발도구: 델파이 (Delphi), C++빌더 (C++Builder), RAD 스튜디오 (RAD Studio)
    • [기술 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [설치/등록 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [기술 기고 게시판] 델파이, C++빌더, RAD 스튜디오
    • [포트폴리오 게시판] 내가 참여한 프로젝트/프로그램 소개
    • [구인 게시판] 개발자 채용/프로젝트 의뢰
  • 엠바카데로 (Embarcadero) DBMS: 인터베이스 (InterBase)
    • [기술 Q&A 게시판] 인터베이스
    • [설치/등록 Q&A 게시판] 인터베이스
    • [기술 기고 게시판] 인터베이스
  • 비주얼 스튜디오 (Visual Studio) 관련 도구
    • [기술 Q&A 게시판] 비주얼 어시스트
    • [설치/등록 Q&A 게시판] 비주얼 어시스트
    • [기술 기고 게시판] 비주얼 어시스트
  • 구록 (Gurock) 테스트도구: 테스트레일 (TestRail)
    • [기술 Q&A 게시판] 테스트레일
    • [설치/등록 Q&A 게시판] 테스트레일
    • [기술 기고 게시판] 테스트레일
  • 아이데라 (Idera) 데이터 도구: 아쿠아 데이터 스튜디오 (Aqua Data Studio), ER/Studio 등
    • ER스튜디오 (ER/Studio)
    • 아쿠아 데이터 스튜디오 (Aqua Data Studio)
  • API레이어 (Apilayer) 개발 도구: API레이어 (Apilayer)
    • [Q&A 게시판] API레이어 (Apilayer)
  • 엠바카데로 (Embarcadero) 라이선스 서버: ELC (Enterprise License Center)
    • [게시판] ELC (Enterprise License Center) 라이선스 서버
  • 이 사이트 이용 관련
    • [게시판] 이 사이트 관련 이용 팁과 Q&A

Categories

  • 이달의 기술자료: 엠바카데로
  • 비디오 세미나
    • UX Summit
    • DelphiCon
    • CodeRage
    • 데브기어 세미나
    • Skill Sprint
  • 기술백서(PDF)

Categories

  • 시작하기
  • 설치/등록/라이선스
  • 튜토리얼
  • 도서

Categories

  • RAD 스튜디오 역사관
  • 11 알렉산드리아
  • 10.4 시드니
  • 10.3 리오
  • 10.2 도쿄
  • 10.1 베를린
  • 10.0 시애틀
  • XE8~XE
  • 2010~6.0

...에서 결과 찾기

검색어 일치 조건


최초 작성일

  • Start

    End


최종 변경일

  • Start

    End


개수로 필터링...

가입

  • Start

    End


Group


자주 쓰는 도구

  1. Kori

    [11.1.5] 알렉산드리아 - 릴리스 1.5

    << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1.5"를 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 7월 14일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. 이 릴리즈 1.5 (즉, 11.1.5 버전)은 C++빌더 코드 인사이트를 업데이트한 버전이다. 이 버전은 C++빌더 또는 RAD 스튜디오를 구입하여 C++빌더의 기능을 사용하는 사용자 만을 위해 C++ 코드 자동 완성 그리고 이와 관련된 C++ 기능을 향상하였다. 전적으로 C++에 집중된 버전이므로, 델파이 고객에게는 전혀 좋은 점이 없으며, 델파이 고객이 이 11.1.5 버전을 설치하는 것은 권장하지 않는다. 이 버전은 완전한 설치본이며 11.1 이후의 모든 핫픽스가 포함되어 있다. RAD 스튜디오 11.1.5 알렉산드리아에는 아래와 같은 새로운 기능과 강화된 기능이 포함되었다. 목차 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 1.2 프로젝트 생성 시 자동 저장 옵션 1.3 진행 알림 (Progress Notifications) 1.4 다중 코드 이동 위치 (Multiple Navigation locations) 1.5 색인 지연하기 (Delayed indexing) 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 1.7 품질 향상 1.8 기타 참고 (See Also) 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 새 C++ 프로젝트를 저장할 때, IDE에는 해당 프로젝트를 저장하는 창이 먼저 표시되고 나서 새 유닛(들)을 저장하는 창이 표시된다. 사전에 컴파일된 헤더는 프로젝트가 저장될 때 자동으로 함께 저장되며 따로 파일명과 위치를 입력하도록 요청하지 않는다. 1.2 프로젝트 생성 시 자동 저장 옵션 다른 C++ IDE들의 방식과 맞출 수 있도록, 프로젝트가 생성되면 코드 인사이트(Code Insight)도 즉시 활성화할 수 있는 옵션이 추가되었다. 이 옵션이 켜져있으면 프로젝트가 생성될 때 해당 프로젝트와 파일이 바로 저장된다. 이 기능을 변경하려면 IDE 메뉴, Options > Desktop > Saving에서 해당 설정을 변경한다. 1.3 진행 알림 (Progress Notifications) RAD 스튜디오 11.1.5에서 C++ LSP 파싱(parsing) 진행 상태는, 델파이와 마찬가지로, Projects 화면 맨 아래에 있는 LSP 진행 막대 안에 표시된다. 1.4 다중 코드 이동 위치 (Multiple Navigation locations) RAD 스튜디오 11.1.5에서 드롭 다운 목록은 코드 완성과 유사하게 보이는데, 키보드 또는 마우스를 이용하여 해당 코드로 이동할 수 있다. 만약 해당 위치가 이미 에디터(코드 편집 화면)에 열려있는 상태라면, 문맥에 맞는 더 많은 정보가 여기에 표시된다. 1.5 색인 지연하기 (Delayed indexing) 소스 코드 색인(index) 작업은 CPU 소모가 매우 클 수도 있다. RAD 스튜디오에 있는 LSP 서버는 파일이 변경될 때 마다 기본 색인을 한다. 11.1.5 버전부터는 개발자가 저장을 하는 (Ctrl+S) 경우에만 색인을 하도록 선택할 수 있는 새로운 설정 옵션이 추가되었다. 알아둘 점: 이 기능이 켜져있으면, 표시되는 코드 완성 드롭 다운 목록, 코드 이동 결과 위치 등 코드 인사이트가 작동한 결과는 개발자가 저장하기를 누르기 전까지는 업데이트 되지 않는다. 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 IDE의 Tools Options 메뉴 중에서, Tools > Options > User Interface > Editor > Language 를 보면, C++ LSP 페이지 안에 “LSP Behavior”라는 탭이 있다. 11.0 버전에서 이미 이 탭이 추가되었었는데, 여기에 새 옵션이 하나 더 추가되어 세번째 옵션으로 ‘Index all files in the project group’이 생겼다. 더 자세한 정보를 알고 싶으면, 도움말의 Configuring C++ Code Insight 을 통해서 각자의 프로젝트와 니즈에 맞게 설정하는 방법을 알 수 있다. 1.7 품질 향상 RAD 스튜디오 11.1.5에는 C++빌더 11.1과 RAD 스튜디오 11.1을 사용하고 있는 C++ 개발자를 위한 품질 개선 등이 포함되었다. 여기에는 성능 향상, 코드 완성 결과 표시, 코드 이동 향상 등이 해당되며, 클래식 컴파일러 사용자들이 보고한 이슈와 프로젝트 안에서 모든 파일을 저장할 때 발생하는 이슈 등등이 해소되었다. 1.8 기타 참고 (See Also) 11.1 새기능 Installation Notes Release Notes New features and fixed issues 과거 버전의 새기능
  2. << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1.5"를 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 7월 14일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. 이 릴리즈 1.5 (즉, 11.1.5 버전)은 C++빌더 코드 인사이트를 업데이트한 버전이다. 이 버전은 C++빌더 또는 RAD 스튜디오를 구입하여 C++빌더의 기능을 사용하는 사용자 만을 위해 C++ 코드 자동 완성 그리고 이와 관련된 C++ 기능을 향상하였다. 전적으로 C++에 집중된 버전이므로, 델파이 고객에게는 전혀 좋은 점이 없으며, 델파이 고객이 이 11.1.5 버전을 설치하는 것은 권장하지 않는다. 이 버전은 완전한 설치본이며 11.1 이후의 모든 핫픽스가 포함되어 있다. RAD 스튜디오 11.1.5 알렉산드리아에는 아래와 같은 새로운 기능과 강화된 기능이 포함되었다. 목차 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 1.2 프로젝트 생성 시 자동 저장 옵션 1.3 진행 알림 (Progress Notifications) 1.4 다중 코드 이동 위치 (Multiple Navigation locations) 1.5 색인 지연하기 (Delayed indexing) 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 1.7 품질 향상 1.8 기타 참고 (See Also) 1 IDE에서 새롭게 강화된 기능 1.1 저장 순서가 새롭게 바뀜 새 C++ 프로젝트를 저장할 때, IDE에는 해당 프로젝트를 저장하는 창이 먼저 표시되고 나서 새 유닛(들)을 저장하는 창이 표시된다. 사전에 컴파일된 헤더는 프로젝트가 저장될 때 자동으로 함께 저장되며 따로 파일명과 위치를 입력하도록 요청하지 않는다. 1.2 프로젝트 생성 시 자동 저장 옵션 다른 C++ IDE들의 방식과 맞출 수 있도록, 프로젝트가 생성되면 코드 인사이트(Code Insight)도 즉시 활성화할 수 있는 옵션이 추가되었다. 이 옵션이 켜져있으면 프로젝트가 생성될 때 해당 프로젝트와 파일이 바로 저장된다. 이 기능을 변경하려면 IDE 메뉴, Options > Desktop > Saving에서 해당 설정을 변경한다. 1.3 진행 알림 (Progress Notifications) RAD 스튜디오 11.1.5에서 C++ LSP 파싱(parsing) 진행 상태는, 델파이와 마찬가지로, Projects 화면 맨 아래에 있는 LSP 진행 막대 안에 표시된다. 1.4 다중 코드 이동 위치 (Multiple Navigation locations) RAD 스튜디오 11.1.5에서 드롭 다운 목록은 코드 완성과 유사하게 보이는데, 키보드 또는 마우스를 이용하여 해당 코드로 이동할 수 있다. 만약 해당 위치가 이미 에디터(코드 편집 화면)에 열려있는 상태라면, 문맥에 맞는 더 많은 정보가 여기에 표시된다. 1.5 색인 지연하기 (Delayed indexing) 소스 코드 색인(index) 작업은 CPU 소모가 매우 클 수도 있다. RAD 스튜디오에 있는 LSP 서버는 파일이 변경될 때 마다 기본 색인을 한다. 11.1.5 버전부터는 개발자가 저장을 하는 (Ctrl+S) 경우에만 색인을 하도록 선택할 수 있는 새로운 설정 옵션이 추가되었다. 알아둘 점: 이 기능이 켜져있으면, 표시되는 코드 완성 드롭 다운 목록, 코드 이동 결과 위치 등 코드 인사이트가 작동한 결과는 개발자가 저장하기를 누르기 전까지는 업데이트 되지 않는다. 1.6 모든 프로젝트(들)과 파일(들)을 색인(index)하기 IDE의 Tools Options 메뉴 중에서, Tools > Options > User Interface > Editor > Language 를 보면, C++ LSP 페이지 안에 “LSP Behavior”라는 탭이 있다. 11.0 버전에서 이미 이 탭이 추가되었었는데, 여기에 새 옵션이 하나 더 추가되어 세번째 옵션으로 ‘Index all files in the project group’이 생겼다. 더 자세한 정보를 알고 싶으면, 도움말의 Configuring C++ Code Insight 을 통해서 각자의 프로젝트와 니즈에 맞게 설정하는 방법을 알 수 있다. 1.7 품질 향상 RAD 스튜디오 11.1.5에는 C++빌더 11.1과 RAD 스튜디오 11.1을 사용하고 있는 C++ 개발자를 위한 품질 개선 등이 포함되었다. 여기에는 성능 향상, 코드 완성 결과 표시, 코드 이동 향상 등이 해당되며, 클래식 컴파일러 사용자들이 보고한 이슈와 프로젝트 안에서 모든 파일을 저장할 때 발생하는 이슈 등등이 해소되었다. 1.8 기타 참고 (See Also) 11.1 새기능 Installation Notes Release Notes New features and fixed issues 과거 버전의 새기능 View full RAD 스튜디오 버전별 신기능
  3. Kori

    [11.1] 알렉산드리아 - 릴리스 1

    << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 3월 15일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. RAD 스튜디오 11 알렉산드리아 - 릴리스 1 (11.1이라고도 부름)을 이제 설치할 수 있다. RAD 11.1은 11의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능을 추가했다. 업데이트 서브스크립션을 유지 중인 사용자는 누구나 델파이 11, C++빌더 11, RAD 스튜디오 11을 다운로드 받을 수 있다. RAD 스튜디오 11.1은 품질 향상에 주력했다. 집중한 주요 품질 영역은 다음과 같다. IDE 원격 데스크탑 컴파일러: 델파이, C++ C++ 툴체인 델파이 LSP C++ LSP 델파이 RTL VCL 파이어몽키 데이터 인터넷 [11.1] 에서 강화된 점을 제품 영역 별로 보기 11 알렉산드리아 - 릴리스 1 제품 영역 별로 보기 1. IDE 향상 1.1 IDE 일반 향상 1.2 IDE High DPI 품질 1.3 웰컴 페이지 1.3.1 ToolsAPI 지원! 1.4 겟잇(GetIt) 대화창 향상 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 2.2 델파이 디버거: macOS ARM용과 Android용 2.3 C++ 컴파일러와 툴체인 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP 3.2 C++과 cquery 3.2.1 Performance 향상 4. 라이브러리 향상 4.1 델파이 RTL 4.1.1 최적화 작업 4.1.2 새 TURLStream 클래스 4.1.3 RTL 기타 향상 4.1.4 TMemIniFile 및 섹션 중복 4.2 VCL 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 4.3.2 TWebBrowser 4.3.3 FMX 기타 품질 4.4 데이터 4.4.1 일반 사항 4.4.2 FireDAC(파이어닥) 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 4.5.2 데이터스냅 (DataSnap) 4.5.3 RAD 서버 4.5.4 기타 5. 기타 참고 (See Also) 1. IDE 향상 1.1 IDE 일반 향상 설치가 완료되면, IDE가 "작업 시작하기"가 작동하면서, IDE를 다시 시작하므로, 첫 실행을 높은 사용 권한이 아닌 일반 사용자 권한으로 진행한다. 이제 프로젝트 구성 설정에서 ‘Enable runtime themes (런타임 테마 활성화)’의 기본값은 "켜짐"이다. dproj/cbproj 파일 안에 있는 ProjectRoot는 항상 일관되게 정렬된다. IDE Wait 대화창에서 사용하는 ToolsAPI 인터페이스의 일부 파라미터 이름이 변경되어서 기능을 보다 잘 반영한다. 이제 ‘New Edit Window (새 에디트 창)’은 복제를 지원하지 않는 화면인 경우 메뉴 항목이 비활성화되어 있다. 웰컴 페이지도 여기에 해당된다. 웰컴 페이지는 중복될 수 없고 다른 창에 끌어다 놓을 수 없기 때문이다. Options > Saving and Desktop (저장 및 데스크탑) 페이지가 둘로 나누어져 새 페이지가 2개 생겼다: Saving and Recovering (자동-복구, 자동-저장 옵션을 지정하는 곳) Desktop and Layout (기존 페이지에 있던 나머지 옵션을 지정하는 곳) Options 대화창 안에 있는 메시지 화면에서 에러(Error), 경고(Warning), 힌트(Hint)를 표현하는 색상을 바꿀 수 있다. IDE 테마별로 각각 다른 색상 조합을 지정할 수도 있다 (예: 라이트 테마, 다크 테마, 기타 테마 별로 각각 다른 색상 조합 지정). IDE에서 사용되는 사소한 대화창들에서도 스타일이 지원된다. 사용자 승인을 요청하는 창, 파일 덮어쓰기를 경고하는 창, 유니코드 프로젝트 이름을 확인하는 창, 유효하지 않은 코드 페이지 사용을 알리는 창 등이 해당된다. 프로젝트 파일 안에 있는 배포 파일이 일관성있는 순서로 정렬되지 않던 이슈를 해소했다. 의미를 훼손하지 않으면서 변경된다. 기본 C++ 콘솔 앱이 향상되었다. 그리고 콘솔 앱 생성은 C++과 델파이 모두에서 File > New (와 Create New) 메뉴에 있는 바로가기이다. IDE 교정(Fix) 팩 항목 일부가 통합되었다. (편집 툴바 등) IDE 툴바 이슈 Options 대화창 페이지 안에 스크롤바가 나타나지 않음 오브젝트 인스펙터 렌더링 결함 디버깅할 때, IDE와 코드 에디터가 비어 있음 FMX 폼 디자이너 텍스트 입력에서 (윈도우 키 등) 특별 키 이슈 프로젝트 뷰의 목록 모드 기타 다양한 예외... New Items (새 항목) 대화창에서 항목 별 해당 플랫폼 표시 New Items (새 항목) 대화창을 열고 새 항목을 프로젝트에 추가하려고 할 때, 현재 프로젝트에서 활성화된 플랫폼에 해당하지 않는 항목은 숨김 처리됨 New Items (새 항목) 대화창에서 보기 스타일이 다양하게 제공됨. 이제는 목록을 수직으로 보기 뿐만 아니라 카드, 리스트, 아이콘, 작은 아이콘 보기가 제공됨 New Items (새 항목) 대화창은 이제 VCL 컨트롤인 TControlList를 사용함. 그 결과 스크롤 기능이 향상됨 Compile (컴파일) 대화창에서는 플랫폼과 빌드 구성이 표시됨. 그리고, 우선 순위를 고려하여 에러가 경고와 힌트보다 앞에 표시됨. 1.2 IDE High DPI 품질 데이터 모듈 (Data module)은 PixelsPerInch 프로퍼티의 값이 96 (기본값)일 때 해당 값을 저장한다. VCL 폼도 동일하다함. 동적으로 생성된 프레임이 high DPI에서 디자인되는 경우 이제 올바르게 확대/축소된다. 1.3 웰컴 페이지 웰컴 페이지에서 이제 배경 이미지를 지원한다. 이미지를 선택하면 웰컴 페이지 영역에 맞게 확대/축소 된다. 가로 세로 비율이 저장되므로 한쪽 축이 웰컴 페이지 크기에 맞으면 다른 축의 일부는 영역을 벗어날 수도 있다. 웰컴 페이지 설정 페이지가 IDE Options 대화창에 새로 추가되었다. 이 페이지에서는 배경(각 테마 별로)을 설정할 수 있고 "프로젝트를 열면 웰컴 페이지 닫기"를 선택할 수 있다. 이것은 "웰컴 페이지 Layout Editor"에서도 설정할 수 있다. 웰컴 페이지 프레임은 이제 투명이 기본값이다. 월페이퍼(wallpaper) 이미지를 지정하면 프레임 뒤에서 배경으로 배경으로 표현된다. 웰컴 페이지 투명도는 ToolsAPI에서 접근할 수 있는 메트릭스(metrics) 중 하나이다. 웰컴 페이지 안에 있는 각 프레임 간의 간격과 웰컴 페이지의 상하 여백이 살짝 조정되었다. 1.3.1 ToolsAPI 지원! 이제 ToolsAPI를 이용하여, 웰컴 페이지 안에 프레임을 생성할 수 있도록 완전하게 지원한다! 엠바카데로에서 제공하는 프레임들도 동일한 API를 사용한다. 즉 우리가 넣어둔 프레임에서 할 수 있는 것이라면 당신도 할 수 있다. 웰컴 페이지 데모 2개가 엠바카데로 공개 깃허브(Github)에서 제공된다. 간단 사용법과 고급 사용법을 볼 수 있다. 가장 간단한 형태를 보자면, 당신은 TFrame의 자손을 하나 생성하고 캡션(Caption)을 넣어서 표현할 수 있다. 생성한 프레임에는 당신이 원하는 무엇이든 넣을 수 있다. 원한다면, 더 복잡한 기능들도 활용할 수 있다. 프레임 캡션(Caption)에는 커스텀 UI 크롬 (두번째 프레임을 통해 구현된다)이 포함될 수 있다. 우리가 제공한 Open Recent 프레임 (버튼 구현), Create New 프레임 (델파이와 C++ 간 토글 기능 구현) 에 있는 것들을 당신도 구현할 수 있다. 우리가 제공한 프레임은 MVC 패턴을 사용하며, 데이터는 백그라운드 쓰레드에서 적재된다. 당신은 우리가 프레임을 만들 때 사용한 것과 동일한 프레임과 리스트뷰 등을 사용하여 우리가 구현을 것을 그대로 활용할 수도 있다. 당신은 우리가 제공한 동작과 룩앤필을 동일하게 얻을 수 있기 때문에, 우리의 설정을 흉내내지 않아도 되고 향후 우리가 기본 레이아웃과 크기 등을 변경을 신경쓰지 않을 수도 있다. 1.4 겟잇(GetIt) 대화창 향상 겟잇 대화 상자가 재설계 되었다. 눈에 보이는 UI는 비슷하게 유지되었지만, 새롭게 ControlList 컴포넌트를 사용하여 패키지 목록을 담았다. 그 결과 눈에 띄는 성능 향상 효과가 생겼다. RAD 스튜디오에서는 이제 겟잇(GetIt) 안에 들어가는 페키지의 아이콘들을 캐싱(cache)하기 때문에 대화창을 다시 열 때 걸리는 시간이 짧아졌다. 겟잇 안에 패치 무시하기 옵션이 새로 추가되었다. 그 결과 패치 설치를 건너뛸 수 있다. 또한 보류 중인 패치 알림을 중지할 수 있다. 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 델파이와 C++ 모두에서, 윈도우 링커(Linker)들이 플랫폼 보안 구성을 더 잘 지원한다. 델파이에서는: 이 기능은 이미 Compiler/linker 플래그 형태로 제공되고 있었다. {$DYNAMICBASE} ASLR 용 플래그 {$SetPEOptFlags $40} DEP/NX 용 플래그, 또는 같은 기능인 ‑‑peflags 옵션 C++에서는: -GE 플래그 사용: 이 플래그들을 켜거나 끄기 위한 링커(linker) 옵션: **-GE:option|0xNNNN[=on|off] Set DLL characteristics flags ALLOWBIND | ALLOWISOLATION | DYNAMICBASE | HIGHENTROPYVA NXCOMPAT | TSAWARE HIGHENTROPYVA 는 ASLR; NXCOMPAT 는 DEP/NX; TSAWARE 는 터미널 서버용이다. 델파이와 C++ 모두에서: 이제 이 설정의 기본값은 "켜짐"이다. 우리는 보안 구성이 활성화된 (패키지 BPL 파일 등과 같은) 재배포가 허용되는 바이너리를 구축(Build)한다. 2.2 델파이 디버거: macOS ARM용과 Android용 macOS 애플리케이션을 애플 ARM 장비에서 실행할 때 사용되는 새 디버거가 생겼다. 이 디버거는 앱을 인텔 장비에서 실행하는 경우에는 사용되지 않는다. 새 디버거는 LLDB 최근 빌드이며, 델파이 구문의 하위 집합을 이해하는 델파이 파서가 핵심 기술이다. (예를 들어, 당신이 새 클래스를 정의할 수 없어도 이 디버거는 델파이 표현을 이해할 수 있다. 이 기술은 당신이 사용할 필요가 있는 모든 디버거 표현을 델파이로 충분히 이해할 수 있어야 한다.) 이 구문은 진정으로 델파이다워야 한다. 대소문자를 가리지 않고 델파이 구문 안의 복잡한 표현을 평가할 수 있어야 한다. 우리는 이 디버거를 안드로이드 64-bit 용에도 사용할 수 있도록 했다. 이 디버거는 ‘Disconnected(연결 끊김)’ 에러가 발생하거나 중단될 가능성이 훨씬 적다. 2.3 C++ 컴파일러와 툴체인 UnicodeString의 기본 생성자(constructor)가 더이상 인라인(inline) 되지 않는다. 따라서 개발자가 문자열(string)을 반환하는 함수를 호출하고 디버깅할 때 해당 생성자 안으로 들어가고 싶지 않다면, 이 변경은 도움이 된다. AnsiStringT는 System:: namespace 접두사를 가진다. 이제 많은 내장 헤더(xmmintrin.h 등)를 사용할 수 있다. 이번 릴리스에는 하위 호환성을 깨는 C++ RTL 변경이 있다. 따라서 C++ 라이브러리는 11.1에서 다시 빌드되어야 한다 (예: 11.0에서 빌드된 오브젝트 파일 또는 .lib-s를 링크하지 말라). 이 변경은 윈64용 핸들을 올바르게 다루기와 관련이 있다. 일부 내부 RTL 구조는 과거에 확장되지 않아서 핸들 잘림 현상이 발생될 수 있었다; 이제는 충분히 확장되었다. 이제 더 많은 내장 (예, SSE-AVX)이 RTL과 함께 제공된다. System::DynamicArray에는 begin()과 같은 반복(iteration)을 위한 일부 STL이 포함되었다. 델파이의 헬퍼 클래스 안에 들어있던 몇가지 문자열 함수들을 이제 C++에서 사용할 수 있다. 예전 IDE에서는 (제공되는 상황이라면)클래식 디버그 라이브러리를 Clang 릴리스 바이너리보다 먼저 링커에서 찾을 수 있다는 링킹 경로 이슈가 있었기 때문에, 만약 당신이 당신의 컴포넌트 또는 라이브러리를 디버그 빌드로 제공하고 두 컴파일러를 모두 지원했었다면 당신의 고객이 잘못된 컴파일러 버전을 링크하게 되는 결과를 초래할 수 있었다. 이제는 해결되었다. 디버거 (특히 윈64용에서)에 있던 많은 컴파일러 버그와 디버그 정보가 개선되었다; 릴리스 모드에서 TDS 파일을 사용; 로케일(locale)과 기타 많은 RTL 및 STL 영역을 조정; 라이브러리 임포트가 많이 개선; 생성된OMF 라이브러리에 대한 coff2omf 수정, 등등 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP DelphiLSP는 품질과 속도에 주력했다. 그 결과 11.1은 성능이 크게 향상되었다. 새롭게 더 향상된 성능은 모든 프로젝트 유형(패키지 프로젝트 포함)에 적용된다는 점이 핵심적인 변화이다. 예외 정보(Exception info)가 헬프 인사이트 안에 다시 표시된다. 이제 배열 및 세트에 대해서 헬프 인사이트 안에 줄 번호 정보를 사용할 수 있다. 비활성화된 macro/ifdef 안에서 Ctrl-Shift-아래 방향키를 누르면 선언된 다음 메서드의 구현부로 이동한다. 별칭이 지정된 제네릭 타입에서 Ctrl-클릭 이동을 할 수 있다. 예를 들어, 만약 IntArray가 TArray<Integer> 타입이라면, IntArray를 Ctrl-클릭하면 System.pas 유닛 안에 있는 TArray<>가 있는 곳으로 이동하는 것이 아니라, TArray<Integer>가 있는 곳으로 이동한다. 유닛 안에 지시자(Directive)가 포함되었을 때 ctrl-shift-위 방향키/아래 방향키 이동이 올바로 작동하지 않던 이슈가 해소되었다. 다른 드라이브에 있는 파일을 프로젝트에 넣어서 사용하는 프로젝트에서 에러 인사이트(Error Insight)가 작동하지 않던 문제가 해소되었다. 일반 프로젝트가 이제 훨씬 더 빠르게 로딩된다. 프로젝트를 로드할 때 파싱을 훨씬 더 적게 하는 등 관련된 기술을 크게 변경했다. 그리고 DelphiLSP는 프로젝트 로딩을 끝내고 훨씬 더 빠르게 요청에 반응한다. 이제 에러 인사이트 결과가 훨씬 더 빠르게 업데이트 된다. 5배에서 30배까지 속도 향상을 기대할 수 있다. 가장 현격한 향상을 볼 수 있는 경우는 (다른 유닛을 많이 사용하는) 의존성이 많은 유닛들이 있는 상황이다. 기타 향상된 점: 매크로 (정의) 다루기가 개선되어서 IFDEF가 있을 때 메소드의 구현부와 선언부를 오가는 동작이 더 향상되었고 클래스 선언 부의 코드 완성도 더 잘 동작한다. 인클루드된 파일 안에 선언된 매크로 (정의)가 있는 경우에도 찾을 수 있다. 위 향상에 영향을 주었다. 프로퍼티를 선언할 때, 코드 완성(Code Completion)에서 겟터(Getter)와 셋터(Setter)를 제안한다. 코드 완성에서 Set type을 보여준다. 클래스 선언부 코드 안에 타입 파라미터가 나타난다. 제네릭 선언 안에 있는 제네릭 타입 (예: T)도 해당된다. 제네릭 타입의 인스턴스를 만들려고 할 때 파라미터 툴팁/헬프가 표시된다. 레코드 선언부 안에서 코드 완성을 할 때, AfterConstruction와 같이 TObject-고유한 완성이 나타났었다. 이제는 해결되었다. 3.2 C++과 cquery LSP Behavior 탭이 새로 생겼다. 이제 cquery LSP 서버가 파일을 인덱싱하는 방식을 통제하는 2가지 옵션이 제공된다. 즉, 코드 완성, 이동 등을 수행할 때 사용하는 정보를 어떻게 저장하는가를 지정하는 옵션이다. 여기에는 Restart server each time a project 옵션 (기본 설정에서 미리 선택되어 있음)과 Index only files that are opened in the editor 옵션이 있다. 주의: 인덱싱 작업은 부하가 CPU에 집중된다. 대체로 인덱싱이 완료될 때가지 코드 인사이트를 사용할 수 없다. LSP 서버를 재시작하기, 예를 들어 플랫폼 바꾸기 등은 저장된 인덱스를 모두 지운다. 기타 향상된 점: 코드 완성에 나타나는 목록은 cquery가 반환하는 순서대로 정렬된다. 그 순서는 범위(scope) 순서이다. 순서를 바꾸고 싶으면 (기본 설정에서 꺼져있는) Alpha Sort(알파벳 정렬)을 켠다. 기본 설정으로 모든 C++ 프로젝트의 Project Options에서 인덱싱이 켜져 있어야 한다. 프로젝트 안에 직접 들어있지 않은 헤더 파일 (예: cpp/header 유닛 짝이 아닌 부분) 에서도 코드 완성을 사용할 수 있다. 프로젝트 옵션(Project Options)이나 활성 플랫폼을 변경하면 새 프로젝트 설정에 맞게 LSP 서버가 다시 시작된다. LSP 서버는 파일이 언제 저장되었는 지를 알고 올바르게 업데이트 한다. 이점은 새 파일인 경우 특히 중요하다. 왜냐하면, 이 버전의 경우, 파일이 디스크에 존재하기 않으면 코드 인사이트가 작동하지 않기 때문이다. 기타 C++ 기능: IDE는 LSP 서버가 준비될 때까지 올바르게 기다린다. 프로젝트의 메인 소스 파일에서 코드 완성을 사용할 수 있다. 3.2.1 Performance 향상 코드 완성이 나타나는 시간은 프로젝트의 규모와 관계없이 2초 이내이다. VCL 프로젝트에서 글로벌 범위에서 코드 완성이 작동하면, 80,000개가 넘는 항목이 반환된다는 점에 주의하라. 4. 라이브러리 향상 FMX와 VCL로 구축된 프로젝트들 사이에 코드 공유를 돕기 위해, 프레임워크 별 사전 정의 심볼을 추가했다. FRAMEWORK_VCL - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 VCL 프레임워크를 사용한다. FRAMEWORK_FMX - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 파이어몽키 (FMX) 프레임워크를 사용한다. 4.1 델파이 RTL 4.1.1 최적화 작업 델파이 RTL 측면에서 우리는 성능 최적화와 관련된 작업을 했다. 또한 _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg (including purepascal version), _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase, TStringHelper.IndexOf가 향상되었다. 4.1.2 새 TURLStream 클래스 새 스트림 클래스인 TURLStream가 새로 생겼으며, 일반 기반 클래스인 TAsyncStream은 비동기 스트림을 위한 새 기반 클래스이다. 이것은 TMemoryStream으로부터 상속받는다. TURLStream은 비동기 스트림 중 하나로서 URL 경로를 지원하며 TAsyncStream으로부터 상속받는다. TAsyncStream.Create는 해당 백그라운드 쓰레드 안에서 APopulate(채우기)를 시작한다. 완료되기 전까지는 TAsyncStream에 대한 모든 TStream 메소드 호출이 차단된다. 활용 방식은, IAsyncResult를 사용하여 TAsyncStream 채우기 완료를 기다리고 확인한다. TAsyncStream은 IAsyncResult를 지원한다. AProvide 익명 메소드를 제공한다. 이것은 채우기가 완료되면 호출된다. TURLStream 생성자(constructor)는 자신의 기반 클래스 생성자를 확장하여 아래와 같이 선언된다. constructor TURLStream.Create(const AURL: string; const AProvide: TAsyncStream.TStreamer; ASynchronizeProvide, AFreeOnCompletion: Boolean); TURLStream은 기반 클래스인 TAsyncStream의 행위를 상속받지만, 안에서는 URL 스키마에 따라 THttpClient 또는 TFileStream을 사용한다. TAsyncStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, AfterConstruction, Read, Write, Seek, SetSize(Int64), SetSize(Longint), SaveToStream. TURLStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, RegisterSyncReqExexcutor, UnRegisterSyncReqExecutor. 4.1.3 RTL 기타 향상 TOSVersion 데이터 구조에서 윈도우 11과 윈도우 서버 2022을 지원한다. TURI.ToString이 포트를 고려한다. TMetaFile은 이제 큰 스트림에서 데이터를 로드할 수 있다. 4.1.4 TMemIniFile 및 섹션 중복 TIniFile이 변경되어 10.3 이전의 행위와 섹션이 중복되는 경우에 대한 호환성이 더 좋아졌다. 4.2 VCL 최근에 추가된 강화된 기능 (예, TTreeView, TRichEdit, TEdgeBrowser, TNumberBox 등)과 관련된 이슈 해소에 주력했다. 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 advmanager를 위해 android.bat 파일 도구에 대한 의존을 제거했다. 그리고 안드로이드 플랫폼용 IDE SDK 관리자 대화창을 업데이트 했다. DEX 컴파일과 DEX 병합이 C++/델파이 링킹 이후로 지연되어서, 배포 없이 컴파일하는 속도가 더 빨라졌다. 안드로이드 플랫폼 코어를 통합할 수 있도록, 메소드 오버로드로 Java 인터페이스를 구현하도록 델파이 클래스에 대한 지원을 추가했다. 이는 안드로이드 12와 안드로이드 센서 접근 문제를 해소하는 데 도움이 된다. (SensorInfo 데모 교정). Java 인터페이스를 구현하는 델파이 클래스는 이제 Int8, Int16, Int64, Float32, Float64 값을 반환하는 함수를 가질 수 있다. 4.3.2 TWebBrowser 윈도우에서 TWebBrowser (WebView 2 지원) 향상, 윈도우의 웹브라우저 엔진을 하나 이상 바꿀 수 있는 기능이 추가되었다. WindowsEngine 프로퍼티의 기본값이 변경되었다. TWebBrowser의 크기 변경과 투명도 이슈가 해소되었다. 또한 모바일에서 로컬 파일 작업 기능이 향상되었다. 4.3.3 FMX 기타 품질 윈도우에서 HighDPI-관련 이슈 해소 TMessageManager.Unsubscribe 성능 향상 TMemo 컨텍스트 메뉴에 Undo(되돌리기) 추가 및 내용 자동 스크롤링 이슈 해소 안드로이드와 iOS에서 이모티콘 색상 향상 macOS 플랫폼에서 메탈 GPU 드라이버 지원 향상 4.4 데이터 4.4.1 일반 사항 필드 링크 디자이너(Field Link Designer)와 새 필드 대화창(New Field Dialog)을 더 크고 더 사용하기 쉽게 만들었다. Firebird 4의 긴 필드 이름 (최대 63자) 지원하기 위해 데이터베이스 RTL 안에 있던 필드 이름 31-글자 제한을 없앴다. 4.4.2 FireDAC(파이어닥) FireDAC용 스트럭처 뷰를 구현 했다. 또한 일부 FireDAC 창들이 High DPI를 더 잘 지원하게 되었다. 데이터베이스 지원 추가: MariaDB 10.6 서버 (10.6 클라이언트 사용) 데이터베이스 지원 추가: SQLite SEE, C++빌더에서 FireDAC 정적 바인딩(static binding)을 할 때, SQLite OBJ들을 빌드할 수 있도록 명령줄 배치(Batch)를 제공한다. readme 파일인 sqlite_see.txt에 절차가 설명되어있다 (RAD 스튜디오 11.0에서는 이미 겟잇을 통해 이것을 받아서 사용할 수 있었다). FireDAC의 Firebird 4 드라이버를 향상했다. 추가된 데이터 타입을 지원한다: INT128 NUMERIC 정밀도 19..38 TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (제한있음) DECFLOAT(16/34) 네이티브 구문 시간제한 FireDAC에 FireBird 4 페이지크기 32768 지원이 추가되었다. 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 웹브로커 서버 애플리케이션을 이제 안드로이드 장비에도 배포할 수 있다. 또한 (안드로이드 OS를 실행하는 라즈베리 파이와 같은) 개발자 보드에도 배포할 수 있다. 안드로이드 32-비트와 64-비트 모두 해당된다. 4.5.2 데이터스냅 (DataSnap) Web.Win.ISAPIThreadPool을 확장하여 쓰레드를 64개 이상 허용할 수 있게 되었다. NumberOfThreads 변수 타입이 Cardinal로 변경되었다. ShutdownTimeout 변수 (쓰레드 풀에서 모든 작업 쓰레드를 끝내기 위해 기다릴 시간 제한을 밀리초 단위로 지정하는 곳)의 기본값은 2분이다. 4.5.3 RAD 서버 데이터베이스 구조 일부가 향상되었고, 새 엔드포인트인 REST SysAdmin가 제공된다. GET /sysadmin/log - LOG 테이블 내용에 대한 정보를 반환한다. POST /sysadmin/log?minTime=<ISO8601 date> - 지정된 날짜/시간보다 오래된 레코드를 LOG 테이블에서 모두 삭제한다. GET /sysadmin/backup?backupFile=<file path> - emsserver.ib 데이터베이스 백업 파일을 만든다. 백업 파일은 인터베이스 서버 안에서 사용할 수 있다. POST /sysadmin/backup?backupFile=<file path> - 지정한 백업 파일로부터 emsserver.ib 데이터베이스를 복구한다. GET /sysadmin/validate - emsserver.ib 데이터베이스 평가를 수행하고, 데이터베이스의 상태를 반환한다. RAD 서버 사용자가 동시에 세션 한개 이상에서 로그인할 수 있도록 허용한다. RS라이트(RSLite)용 새 배포 기능 EMS.INI의 새 옵션으로, Data 섹션 안에 ClientLib 엔트리를 사용하여, 특정 인터베이스 클라이언트 라이브러리 (임베이드 DB 또는 일반 DB 중 하나)를 고를 수 있도록 했다. 이제 RS라이트용 즉시 배포 기능이 있다. 4.5.4 기타 REST 디버거에서 클라이언트측 인증서를 선택할 수 있는 옵션이 추가되었다. REST 디버거가 이제 DPI-인식 창이 되었다. TCustomRESTRequest 클래스에 새 BodyCodePage 프로퍼티가 생겼다. 이 프로퍼티는 요청 바디의 코드 페이지 (Request body code page)를 명시한다. 특별한 값들이 몇개 있다. -1 (기본값) - 플랫폼의 기본 인코딩을 사용 0 - 현재 활성화된 코드 페이지 사용 65001 - UTF8 사용 AmazonAPI에서 지역(Region) 변경을 지원한다. 5. 기타 참고 (See Also) Installation Notes Release Notes New features and fixed issues What Was New in Past Releases
  4. << 위로 이동 (최신 버전 포함 모든 버전) "RAD 스튜디오 11 알렉산드리아 - 릴리스 1"을 정리한 Docwiki (원문 보기)를 번역한 글입니다. 업데이트된 RAD 스튜디오 11.1 알렉산드리아 릴리스 출시 (2022년 3월 15일) 주의: 11 알렉산드리아에 새로 포함된 기능을 모두 보려면, 여기를 클릭. RAD 스튜디오 11 알렉산드리아 - 릴리스 1 (11.1이라고도 부름)을 이제 설치할 수 있다. RAD 11.1은 11의 기능을 바탕으로 하여 제품 전반에 걸쳐 기존 기능을 강화하고 몇가지 새 기능을 추가했다. 업데이트 서브스크립션을 유지 중인 사용자는 누구나 델파이 11, C++빌더 11, RAD 스튜디오 11을 다운로드 받을 수 있다. RAD 스튜디오 11.1은 품질 향상에 주력했다. 집중한 주요 품질 영역은 다음과 같다. IDE 원격 데스크탑 컴파일러: 델파이, C++ C++ 툴체인 델파이 LSP C++ LSP 델파이 RTL VCL 파이어몽키 데이터 인터넷 [11.1] 에서 강화된 점을 제품 영역 별로 보기 11 알렉산드리아 - 릴리스 1 제품 영역 별로 보기 1. IDE 향상 1.1 IDE 일반 향상 1.2 IDE High DPI 품질 1.3 웰컴 페이지 1.3.1 ToolsAPI 지원! 1.4 겟잇(GetIt) 대화창 향상 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 2.2 델파이 디버거: macOS ARM용과 Android용 2.3 C++ 컴파일러와 툴체인 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP 3.2 C++과 cquery 3.2.1 Performance 향상 4. 라이브러리 향상 4.1 델파이 RTL 4.1.1 최적화 작업 4.1.2 새 TURLStream 클래스 4.1.3 RTL 기타 향상 4.1.4 TMemIniFile 및 섹션 중복 4.2 VCL 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 4.3.2 TWebBrowser 4.3.3 FMX 기타 품질 4.4 데이터 4.4.1 일반 사항 4.4.2 FireDAC(파이어닥) 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 4.5.2 데이터스냅 (DataSnap) 4.5.3 RAD 서버 4.5.4 기타 5. 기타 참고 (See Also) 1. IDE 향상 1.1 IDE 일반 향상 설치가 완료되면, IDE가 "작업 시작하기"가 작동하면서, IDE를 다시 시작하므로, 첫 실행을 높은 사용 권한이 아닌 일반 사용자 권한으로 진행한다. 이제 프로젝트 구성 설정에서 ‘Enable runtime themes (런타임 테마 활성화)’의 기본값은 "켜짐"이다. dproj/cbproj 파일 안에 있는 ProjectRoot는 항상 일관되게 정렬된다. IDE Wait 대화창에서 사용하는 ToolsAPI 인터페이스의 일부 파라미터 이름이 변경되어서 기능을 보다 잘 반영한다. 이제 ‘New Edit Window (새 에디트 창)’은 복제를 지원하지 않는 화면인 경우 메뉴 항목이 비활성화되어 있다. 웰컴 페이지도 여기에 해당된다. 웰컴 페이지는 중복될 수 없고 다른 창에 끌어다 놓을 수 없기 때문이다. Options > Saving and Desktop (저장 및 데스크탑) 페이지가 둘로 나누어져 새 페이지가 2개 생겼다: Saving and Recovering (자동-복구, 자동-저장 옵션을 지정하는 곳) Desktop and Layout (기존 페이지에 있던 나머지 옵션을 지정하는 곳) Options 대화창 안에 있는 메시지 화면에서 에러(Error), 경고(Warning), 힌트(Hint)를 표현하는 색상을 바꿀 수 있다. IDE 테마별로 각각 다른 색상 조합을 지정할 수도 있다 (예: 라이트 테마, 다크 테마, 기타 테마 별로 각각 다른 색상 조합 지정). IDE에서 사용되는 사소한 대화창들에서도 스타일이 지원된다. 사용자 승인을 요청하는 창, 파일 덮어쓰기를 경고하는 창, 유니코드 프로젝트 이름을 확인하는 창, 유효하지 않은 코드 페이지 사용을 알리는 창 등이 해당된다. 프로젝트 파일 안에 있는 배포 파일이 일관성있는 순서로 정렬되지 않던 이슈를 해소했다. 의미를 훼손하지 않으면서 변경된다. 기본 C++ 콘솔 앱이 향상되었다. 그리고 콘솔 앱 생성은 C++과 델파이 모두에서 File > New (와 Create New) 메뉴에 있는 바로가기이다. IDE 교정(Fix) 팩 항목 일부가 통합되었다. (편집 툴바 등) IDE 툴바 이슈 Options 대화창 페이지 안에 스크롤바가 나타나지 않음 오브젝트 인스펙터 렌더링 결함 디버깅할 때, IDE와 코드 에디터가 비어 있음 FMX 폼 디자이너 텍스트 입력에서 (윈도우 키 등) 특별 키 이슈 프로젝트 뷰의 목록 모드 기타 다양한 예외... New Items (새 항목) 대화창에서 항목 별 해당 플랫폼 표시 New Items (새 항목) 대화창을 열고 새 항목을 프로젝트에 추가하려고 할 때, 현재 프로젝트에서 활성화된 플랫폼에 해당하지 않는 항목은 숨김 처리됨 New Items (새 항목) 대화창에서 보기 스타일이 다양하게 제공됨. 이제는 목록을 수직으로 보기 뿐만 아니라 카드, 리스트, 아이콘, 작은 아이콘 보기가 제공됨 New Items (새 항목) 대화창은 이제 VCL 컨트롤인 TControlList를 사용함. 그 결과 스크롤 기능이 향상됨 Compile (컴파일) 대화창에서는 플랫폼과 빌드 구성이 표시됨. 그리고, 우선 순위를 고려하여 에러가 경고와 힌트보다 앞에 표시됨. 1.2 IDE High DPI 품질 데이터 모듈 (Data module)은 PixelsPerInch 프로퍼티의 값이 96 (기본값)일 때 해당 값을 저장한다. VCL 폼도 동일하다함. 동적으로 생성된 프레임이 high DPI에서 디자인되는 경우 이제 올바르게 확대/축소된다. 1.3 웰컴 페이지 웰컴 페이지에서 이제 배경 이미지를 지원한다. 이미지를 선택하면 웰컴 페이지 영역에 맞게 확대/축소 된다. 가로 세로 비율이 저장되므로 한쪽 축이 웰컴 페이지 크기에 맞으면 다른 축의 일부는 영역을 벗어날 수도 있다. 웰컴 페이지 설정 페이지가 IDE Options 대화창에 새로 추가되었다. 이 페이지에서는 배경(각 테마 별로)을 설정할 수 있고 "프로젝트를 열면 웰컴 페이지 닫기"를 선택할 수 있다. 이것은 "웰컴 페이지 Layout Editor"에서도 설정할 수 있다. 웰컴 페이지 프레임은 이제 투명이 기본값이다. 월페이퍼(wallpaper) 이미지를 지정하면 프레임 뒤에서 배경으로 배경으로 표현된다. 웰컴 페이지 투명도는 ToolsAPI에서 접근할 수 있는 메트릭스(metrics) 중 하나이다. 웰컴 페이지 안에 있는 각 프레임 간의 간격과 웰컴 페이지의 상하 여백이 살짝 조정되었다. 1.3.1 ToolsAPI 지원! 이제 ToolsAPI를 이용하여, 웰컴 페이지 안에 프레임을 생성할 수 있도록 완전하게 지원한다! 엠바카데로에서 제공하는 프레임들도 동일한 API를 사용한다. 즉 우리가 넣어둔 프레임에서 할 수 있는 것이라면 당신도 할 수 있다. 웰컴 페이지 데모 2개가 엠바카데로 공개 깃허브(Github)에서 제공된다. 간단 사용법과 고급 사용법을 볼 수 있다. 가장 간단한 형태를 보자면, 당신은 TFrame의 자손을 하나 생성하고 캡션(Caption)을 넣어서 표현할 수 있다. 생성한 프레임에는 당신이 원하는 무엇이든 넣을 수 있다. 원한다면, 더 복잡한 기능들도 활용할 수 있다. 프레임 캡션(Caption)에는 커스텀 UI 크롬 (두번째 프레임을 통해 구현된다)이 포함될 수 있다. 우리가 제공한 Open Recent 프레임 (버튼 구현), Create New 프레임 (델파이와 C++ 간 토글 기능 구현) 에 있는 것들을 당신도 구현할 수 있다. 우리가 제공한 프레임은 MVC 패턴을 사용하며, 데이터는 백그라운드 쓰레드에서 적재된다. 당신은 우리가 프레임을 만들 때 사용한 것과 동일한 프레임과 리스트뷰 등을 사용하여 우리가 구현을 것을 그대로 활용할 수도 있다. 당신은 우리가 제공한 동작과 룩앤필을 동일하게 얻을 수 있기 때문에, 우리의 설정을 흉내내지 않아도 되고 향후 우리가 기본 레이아웃과 크기 등을 변경을 신경쓰지 않을 수도 있다. 1.4 겟잇(GetIt) 대화창 향상 겟잇 대화 상자가 재설계 되었다. 눈에 보이는 UI는 비슷하게 유지되었지만, 새롭게 ControlList 컴포넌트를 사용하여 패키지 목록을 담았다. 그 결과 눈에 띄는 성능 향상 효과가 생겼다. RAD 스튜디오에서는 이제 겟잇(GetIt) 안에 들어가는 페키지의 아이콘들을 캐싱(cache)하기 때문에 대화창을 다시 열 때 걸리는 시간이 짧아졌다. 겟잇 안에 패치 무시하기 옵션이 새로 추가되었다. 그 결과 패치 설치를 건너뛸 수 있다. 또한 보류 중인 패치 알림을 중지할 수 있다. 2. 컴파일러와 툴체인 향상 2.1 델파이와 C++ 공통 2.1.1 ASLR, DEP/NX, TSAWARE 델파이와 C++ 모두에서, 윈도우 링커(Linker)들이 플랫폼 보안 구성을 더 잘 지원한다. 델파이에서는: 이 기능은 이미 Compiler/linker 플래그 형태로 제공되고 있었다. {$DYNAMICBASE} ASLR 용 플래그 {$SetPEOptFlags $40} DEP/NX 용 플래그, 또는 같은 기능인 ‑‑peflags 옵션 C++에서는: -GE 플래그 사용: 이 플래그들을 켜거나 끄기 위한 링커(linker) 옵션: **-GE:option|0xNNNN[=on|off] Set DLL characteristics flags ALLOWBIND | ALLOWISOLATION | DYNAMICBASE | HIGHENTROPYVA NXCOMPAT | TSAWARE HIGHENTROPYVA 는 ASLR; NXCOMPAT 는 DEP/NX; TSAWARE 는 터미널 서버용이다. 델파이와 C++ 모두에서: 이제 이 설정의 기본값은 "켜짐"이다. 우리는 보안 구성이 활성화된 (패키지 BPL 파일 등과 같은) 재배포가 허용되는 바이너리를 구축(Build)한다. 2.2 델파이 디버거: macOS ARM용과 Android용 macOS 애플리케이션을 애플 ARM 장비에서 실행할 때 사용되는 새 디버거가 생겼다. 이 디버거는 앱을 인텔 장비에서 실행하는 경우에는 사용되지 않는다. 새 디버거는 LLDB 최근 빌드이며, 델파이 구문의 하위 집합을 이해하는 델파이 파서가 핵심 기술이다. (예를 들어, 당신이 새 클래스를 정의할 수 없어도 이 디버거는 델파이 표현을 이해할 수 있다. 이 기술은 당신이 사용할 필요가 있는 모든 디버거 표현을 델파이로 충분히 이해할 수 있어야 한다.) 이 구문은 진정으로 델파이다워야 한다. 대소문자를 가리지 않고 델파이 구문 안의 복잡한 표현을 평가할 수 있어야 한다. 우리는 이 디버거를 안드로이드 64-bit 용에도 사용할 수 있도록 했다. 이 디버거는 ‘Disconnected(연결 끊김)’ 에러가 발생하거나 중단될 가능성이 훨씬 적다. 2.3 C++ 컴파일러와 툴체인 UnicodeString의 기본 생성자(constructor)가 더이상 인라인(inline) 되지 않는다. 따라서 개발자가 문자열(string)을 반환하는 함수를 호출하고 디버깅할 때 해당 생성자 안으로 들어가고 싶지 않다면, 이 변경은 도움이 된다. AnsiStringT는 System:: namespace 접두사를 가진다. 이제 많은 내장 헤더(xmmintrin.h 등)를 사용할 수 있다. 이번 릴리스에는 하위 호환성을 깨는 C++ RTL 변경이 있다. 따라서 C++ 라이브러리는 11.1에서 다시 빌드되어야 한다 (예: 11.0에서 빌드된 오브젝트 파일 또는 .lib-s를 링크하지 말라). 이 변경은 윈64용 핸들을 올바르게 다루기와 관련이 있다. 일부 내부 RTL 구조는 과거에 확장되지 않아서 핸들 잘림 현상이 발생될 수 있었다; 이제는 충분히 확장되었다. 이제 더 많은 내장 (예, SSE-AVX)이 RTL과 함께 제공된다. System::DynamicArray에는 begin()과 같은 반복(iteration)을 위한 일부 STL이 포함되었다. 델파이의 헬퍼 클래스 안에 들어있던 몇가지 문자열 함수들을 이제 C++에서 사용할 수 있다. 예전 IDE에서는 (제공되는 상황이라면)클래식 디버그 라이브러리를 Clang 릴리스 바이너리보다 먼저 링커에서 찾을 수 있다는 링킹 경로 이슈가 있었기 때문에, 만약 당신이 당신의 컴포넌트 또는 라이브러리를 디버그 빌드로 제공하고 두 컴파일러를 모두 지원했었다면 당신의 고객이 잘못된 컴파일러 버전을 링크하게 되는 결과를 초래할 수 있었다. 이제는 해결되었다. 디버거 (특히 윈64용에서)에 있던 많은 컴파일러 버그와 디버그 정보가 개선되었다; 릴리스 모드에서 TDS 파일을 사용; 로케일(locale)과 기타 많은 RTL 및 STL 영역을 조정; 라이브러리 임포트가 많이 개선; 생성된OMF 라이브러리에 대한 coff2omf 수정, 등등 3. LSP 향상 (델파이와 C++) 3.1 델파이 LSP DelphiLSP는 품질과 속도에 주력했다. 그 결과 11.1은 성능이 크게 향상되었다. 새롭게 더 향상된 성능은 모든 프로젝트 유형(패키지 프로젝트 포함)에 적용된다는 점이 핵심적인 변화이다. 예외 정보(Exception info)가 헬프 인사이트 안에 다시 표시된다. 이제 배열 및 세트에 대해서 헬프 인사이트 안에 줄 번호 정보를 사용할 수 있다. 비활성화된 macro/ifdef 안에서 Ctrl-Shift-아래 방향키를 누르면 선언된 다음 메서드의 구현부로 이동한다. 별칭이 지정된 제네릭 타입에서 Ctrl-클릭 이동을 할 수 있다. 예를 들어, 만약 IntArray가 TArray<Integer> 타입이라면, IntArray를 Ctrl-클릭하면 System.pas 유닛 안에 있는 TArray<>가 있는 곳으로 이동하는 것이 아니라, TArray<Integer>가 있는 곳으로 이동한다. 유닛 안에 지시자(Directive)가 포함되었을 때 ctrl-shift-위 방향키/아래 방향키 이동이 올바로 작동하지 않던 이슈가 해소되었다. 다른 드라이브에 있는 파일을 프로젝트에 넣어서 사용하는 프로젝트에서 에러 인사이트(Error Insight)가 작동하지 않던 문제가 해소되었다. 일반 프로젝트가 이제 훨씬 더 빠르게 로딩된다. 프로젝트를 로드할 때 파싱을 훨씬 더 적게 하는 등 관련된 기술을 크게 변경했다. 그리고 DelphiLSP는 프로젝트 로딩을 끝내고 훨씬 더 빠르게 요청에 반응한다. 이제 에러 인사이트 결과가 훨씬 더 빠르게 업데이트 된다. 5배에서 30배까지 속도 향상을 기대할 수 있다. 가장 현격한 향상을 볼 수 있는 경우는 (다른 유닛을 많이 사용하는) 의존성이 많은 유닛들이 있는 상황이다. 기타 향상된 점: 매크로 (정의) 다루기가 개선되어서 IFDEF가 있을 때 메소드의 구현부와 선언부를 오가는 동작이 더 향상되었고 클래스 선언 부의 코드 완성도 더 잘 동작한다. 인클루드된 파일 안에 선언된 매크로 (정의)가 있는 경우에도 찾을 수 있다. 위 향상에 영향을 주었다. 프로퍼티를 선언할 때, 코드 완성(Code Completion)에서 겟터(Getter)와 셋터(Setter)를 제안한다. 코드 완성에서 Set type을 보여준다. 클래스 선언부 코드 안에 타입 파라미터가 나타난다. 제네릭 선언 안에 있는 제네릭 타입 (예: T)도 해당된다. 제네릭 타입의 인스턴스를 만들려고 할 때 파라미터 툴팁/헬프가 표시된다. 레코드 선언부 안에서 코드 완성을 할 때, AfterConstruction와 같이 TObject-고유한 완성이 나타났었다. 이제는 해결되었다. 3.2 C++과 cquery LSP Behavior 탭이 새로 생겼다. 이제 cquery LSP 서버가 파일을 인덱싱하는 방식을 통제하는 2가지 옵션이 제공된다. 즉, 코드 완성, 이동 등을 수행할 때 사용하는 정보를 어떻게 저장하는가를 지정하는 옵션이다. 여기에는 Restart server each time a project 옵션 (기본 설정에서 미리 선택되어 있음)과 Index only files that are opened in the editor 옵션이 있다. 주의: 인덱싱 작업은 부하가 CPU에 집중된다. 대체로 인덱싱이 완료될 때가지 코드 인사이트를 사용할 수 없다. LSP 서버를 재시작하기, 예를 들어 플랫폼 바꾸기 등은 저장된 인덱스를 모두 지운다. 기타 향상된 점: 코드 완성에 나타나는 목록은 cquery가 반환하는 순서대로 정렬된다. 그 순서는 범위(scope) 순서이다. 순서를 바꾸고 싶으면 (기본 설정에서 꺼져있는) Alpha Sort(알파벳 정렬)을 켠다. 기본 설정으로 모든 C++ 프로젝트의 Project Options에서 인덱싱이 켜져 있어야 한다. 프로젝트 안에 직접 들어있지 않은 헤더 파일 (예: cpp/header 유닛 짝이 아닌 부분) 에서도 코드 완성을 사용할 수 있다. 프로젝트 옵션(Project Options)이나 활성 플랫폼을 변경하면 새 프로젝트 설정에 맞게 LSP 서버가 다시 시작된다. LSP 서버는 파일이 언제 저장되었는 지를 알고 올바르게 업데이트 한다. 이점은 새 파일인 경우 특히 중요하다. 왜냐하면, 이 버전의 경우, 파일이 디스크에 존재하기 않으면 코드 인사이트가 작동하지 않기 때문이다. 기타 C++ 기능: IDE는 LSP 서버가 준비될 때까지 올바르게 기다린다. 프로젝트의 메인 소스 파일에서 코드 완성을 사용할 수 있다. 3.2.1 Performance 향상 코드 완성이 나타나는 시간은 프로젝트의 규모와 관계없이 2초 이내이다. VCL 프로젝트에서 글로벌 범위에서 코드 완성이 작동하면, 80,000개가 넘는 항목이 반환된다는 점에 주의하라. 4. 라이브러리 향상 FMX와 VCL로 구축된 프로젝트들 사이에 코드 공유를 돕기 위해, 프레임워크 별 사전 정의 심볼을 추가했다. FRAMEWORK_VCL - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 VCL 프레임워크를 사용한다. FRAMEWORK_FMX - 이 사전 정의 변수가 True로 지정되면, 이 해당 프로젝트는 파이어몽키 (FMX) 프레임워크를 사용한다. 4.1 델파이 RTL 4.1.1 최적화 작업 델파이 RTL 측면에서 우리는 성능 최적화와 관련된 작업을 했다. 또한 _CopyArray, _IntToStr64, _IntToStr32, InitInstance, InvokeRecordInitializer, _FinalizeRecord, _UStrAsg (including purepascal version), _LStrAsg, _LStrLAsg, AnsiLowerCase / AnsiUpperCase, TStringHelper.IndexOf가 향상되었다. 4.1.2 새 TURLStream 클래스 새 스트림 클래스인 TURLStream가 새로 생겼으며, 일반 기반 클래스인 TAsyncStream은 비동기 스트림을 위한 새 기반 클래스이다. 이것은 TMemoryStream으로부터 상속받는다. TURLStream은 비동기 스트림 중 하나로서 URL 경로를 지원하며 TAsyncStream으로부터 상속받는다. TAsyncStream.Create는 해당 백그라운드 쓰레드 안에서 APopulate(채우기)를 시작한다. 완료되기 전까지는 TAsyncStream에 대한 모든 TStream 메소드 호출이 차단된다. 활용 방식은, IAsyncResult를 사용하여 TAsyncStream 채우기 완료를 기다리고 확인한다. TAsyncStream은 IAsyncResult를 지원한다. AProvide 익명 메소드를 제공한다. 이것은 채우기가 완료되면 호출된다. TURLStream 생성자(constructor)는 자신의 기반 클래스 생성자를 확장하여 아래와 같이 선언된다. constructor TURLStream.Create(const AURL: string; const AProvide: TAsyncStream.TStreamer; ASynchronizeProvide, AFreeOnCompletion: Boolean); TURLStream은 기반 클래스인 TAsyncStream의 행위를 상속받지만, 안에서는 URL 스키마에 따라 THttpClient 또는 TFileStream을 사용한다. TAsyncStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, AfterConstruction, Read, Write, Seek, SetSize(Int64), SetSize(Longint), SaveToStream. TURLStream에는 다음과 같은 퍼블릭(public) 메소드가 있다: Destroy, RegisterSyncReqExexcutor, UnRegisterSyncReqExecutor. 4.1.3 RTL 기타 향상 TOSVersion 데이터 구조에서 윈도우 11과 윈도우 서버 2022을 지원한다. TURI.ToString이 포트를 고려한다. TMetaFile은 이제 큰 스트림에서 데이터를 로드할 수 있다. 4.1.4 TMemIniFile 및 섹션 중복 TIniFile이 변경되어 10.3 이전의 행위와 섹션이 중복되는 경우에 대한 호환성이 더 좋아졌다. 4.2 VCL 최근에 추가된 강화된 기능 (예, TTreeView, TRichEdit, TEdgeBrowser, TNumberBox 등)과 관련된 이슈 해소에 주력했다. 4.3 파이어몽키(FireMonkey) 4.3.1 안드로이드 SDK 연동 향상 advmanager를 위해 android.bat 파일 도구에 대한 의존을 제거했다. 그리고 안드로이드 플랫폼용 IDE SDK 관리자 대화창을 업데이트 했다. DEX 컴파일과 DEX 병합이 C++/델파이 링킹 이후로 지연되어서, 배포 없이 컴파일하는 속도가 더 빨라졌다. 안드로이드 플랫폼 코어를 통합할 수 있도록, 메소드 오버로드로 Java 인터페이스를 구현하도록 델파이 클래스에 대한 지원을 추가했다. 이는 안드로이드 12와 안드로이드 센서 접근 문제를 해소하는 데 도움이 된다. (SensorInfo 데모 교정). Java 인터페이스를 구현하는 델파이 클래스는 이제 Int8, Int16, Int64, Float32, Float64 값을 반환하는 함수를 가질 수 있다. 4.3.2 TWebBrowser 윈도우에서 TWebBrowser (WebView 2 지원) 향상, 윈도우의 웹브라우저 엔진을 하나 이상 바꿀 수 있는 기능이 추가되었다. WindowsEngine 프로퍼티의 기본값이 변경되었다. TWebBrowser의 크기 변경과 투명도 이슈가 해소되었다. 또한 모바일에서 로컬 파일 작업 기능이 향상되었다. 4.3.3 FMX 기타 품질 윈도우에서 HighDPI-관련 이슈 해소 TMessageManager.Unsubscribe 성능 향상 TMemo 컨텍스트 메뉴에 Undo(되돌리기) 추가 및 내용 자동 스크롤링 이슈 해소 안드로이드와 iOS에서 이모티콘 색상 향상 macOS 플랫폼에서 메탈 GPU 드라이버 지원 향상 4.4 데이터 4.4.1 일반 사항 필드 링크 디자이너(Field Link Designer)와 새 필드 대화창(New Field Dialog)을 더 크고 더 사용하기 쉽게 만들었다. Firebird 4의 긴 필드 이름 (최대 63자) 지원하기 위해 데이터베이스 RTL 안에 있던 필드 이름 31-글자 제한을 없앴다. 4.4.2 FireDAC(파이어닥) FireDAC용 스트럭처 뷰를 구현 했다. 또한 일부 FireDAC 창들이 High DPI를 더 잘 지원하게 되었다. 데이터베이스 지원 추가: MariaDB 10.6 서버 (10.6 클라이언트 사용) 데이터베이스 지원 추가: SQLite SEE, C++빌더에서 FireDAC 정적 바인딩(static binding)을 할 때, SQLite OBJ들을 빌드할 수 있도록 명령줄 배치(Batch)를 제공한다. readme 파일인 sqlite_see.txt에 절차가 설명되어있다 (RAD 스튜디오 11.0에서는 이미 겟잇을 통해 이것을 받아서 사용할 수 있었다). FireDAC의 Firebird 4 드라이버를 향상했다. 추가된 데이터 타입을 지원한다: INT128 NUMERIC 정밀도 19..38 TIME WITH TIME ZONE, TIMESTAMP WITH TIME ZONE (제한있음) DECFLOAT(16/34) 네이티브 구문 시간제한 FireDAC에 FireBird 4 페이지크기 32768 지원이 추가되었다. 4.5 인터넷 (Internet) 4.5.1 안드로이드에서 작동하는 웹브로커 (WebBroker) 웹브로커 서버 애플리케이션을 이제 안드로이드 장비에도 배포할 수 있다. 또한 (안드로이드 OS를 실행하는 라즈베리 파이와 같은) 개발자 보드에도 배포할 수 있다. 안드로이드 32-비트와 64-비트 모두 해당된다. 4.5.2 데이터스냅 (DataSnap) Web.Win.ISAPIThreadPool을 확장하여 쓰레드를 64개 이상 허용할 수 있게 되었다. NumberOfThreads 변수 타입이 Cardinal로 변경되었다. ShutdownTimeout 변수 (쓰레드 풀에서 모든 작업 쓰레드를 끝내기 위해 기다릴 시간 제한을 밀리초 단위로 지정하는 곳)의 기본값은 2분이다. 4.5.3 RAD 서버 데이터베이스 구조 일부가 향상되었고, 새 엔드포인트인 REST SysAdmin가 제공된다. GET /sysadmin/log - LOG 테이블 내용에 대한 정보를 반환한다. POST /sysadmin/log?minTime=<ISO8601 date> - 지정된 날짜/시간보다 오래된 레코드를 LOG 테이블에서 모두 삭제한다. GET /sysadmin/backup?backupFile=<file path> - emsserver.ib 데이터베이스 백업 파일을 만든다. 백업 파일은 인터베이스 서버 안에서 사용할 수 있다. POST /sysadmin/backup?backupFile=<file path> - 지정한 백업 파일로부터 emsserver.ib 데이터베이스를 복구한다. GET /sysadmin/validate - emsserver.ib 데이터베이스 평가를 수행하고, 데이터베이스의 상태를 반환한다. RAD 서버 사용자가 동시에 세션 한개 이상에서 로그인할 수 있도록 허용한다. RS라이트(RSLite)용 새 배포 기능 EMS.INI의 새 옵션으로, Data 섹션 안에 ClientLib 엔트리를 사용하여, 특정 인터베이스 클라이언트 라이브러리 (임베이드 DB 또는 일반 DB 중 하나)를 고를 수 있도록 했다. 이제 RS라이트용 즉시 배포 기능이 있다. 4.5.4 기타 REST 디버거에서 클라이언트측 인증서를 선택할 수 있는 옵션이 추가되었다. REST 디버거가 이제 DPI-인식 창이 되었다. TCustomRESTRequest 클래스에 새 BodyCodePage 프로퍼티가 생겼다. 이 프로퍼티는 요청 바디의 코드 페이지 (Request body code page)를 명시한다. 특별한 값들이 몇개 있다. -1 (기본값) - 플랫폼의 기본 인코딩을 사용 0 - 현재 활성화된 코드 페이지 사용 65001 - UTF8 사용 AmazonAPI에서 지역(Region) 변경을 지원한다. 5. 기타 참고 (See Also) Installation Notes Release Notes New features and fixed issues What Was New in Past Releases View full RAD 스튜디오 버전별 신기능
  5. 온라인 세미나-What's NEW! RAD스튜디오11 의 중 1번째 세션의 다시보기, 자료, Q&A입니다. RAD 스튜디오 11 알렉산드리아 새 기능 요약 정리 "다시보기" RAD 스튜디오 11 알렉산드리아 새 기능 요약 정리 "자료" https://drive.google.com/file/d/1IOHiGnyDafo_waEqOscehAkSZwJl4ZrR/view?usp=sharing 기타 Q&A는 아래 답글을 참고/이용 하세요. 버전 별 주요 업데이트 문서에서 보기: RAD 스튜디오 11 알렉산드리아 이 세션이 포함된 세미나의 모든 세션 보기: 온라인 세미나-What's NEW! RAD스튜디오11
  6. RAD스튜디오 11 알렉산드리아는 개발자에게 필요했고 기다렸던 기능이 많이 추가되었습니다. 무엇보다 개발자가 더 쾌적한 환경에서 작업할 수 있습니다. 이 세미나에서는 RAD 스튜디오11 알렉산드리아의 주요 새 기능 중 실무에 바로 적용 가능한 활용 중심으로 한번에 정리합니다. 일시: 2021년 10월 15일(금), 오후 2시~오후 4시 순서 RAD스튜디오 11 새 기능 요약 정리 [활용] RAD서버를 이용해 “빠르게” 표준 REST API 구축하기 데모 [활용] 애플리케이션에 HighDPI 적용하기 [활용] 여러분의 애플리케이션에 VCL 스타일 적용하기 라이브 Q&A RAD스튜디오 11 새 기능 요약 정리 HighDPI 모니터와 같은 훨씬 쾌적한 환경에서 개발 윈도우, 맥, 안드로이드의 향상된 기능 반영 VCL 스타일을 개발 환경에서 보면서 개발 현대화된 VCL: TRichEdit, TTreeView, TLabelDBEdit (M 시리즈 애플 실리콘) 맥OS용으로 컴파일 안드로이드 API 30, 구글 플레이 V3, 안드로이드 X, “멀티덱스(multidex)” 지원과 라이브러리 업데이트 RAD서버 라이트 새 레코드 헬퍼, TZipFile 향상, 블루투스 LE 개선 등등 >>자료 및 다시보기: RAD 스튜디오 11 새기능 요약 [활용] RAD서버를 이용해 “빠르게” 표준 REST API 구축하기 데모 목표: 데이터베이스 서버와 그 데이터를 사용하는 클라이언트 사이에 “표준 REST API 층”을 넣어서 확장성과 유연성을 확보하는 과정 시연 1단계: 데이터 서비스를 HTTP 기반의 REST 표준 API로 서비스 하기 (RAD 서버 활용) 효과: 모바일, 웹, 데스크탑 등 어떤 클라이언트에서도 읽기/쓰기를 할 수 있는 “표준 REST API 서비스를 제공” 2단계: 표준 REST API로 서비스를 델파이 클라이언트에서 활용하기 (REST Client 활용) 효과: 표준을 준수하는 어떤 REST API 서비스에도 연결하여 읽기/쓰기를 하는 “네이티브 클라이언트 개발” >>자료 및 다시보기: 데이터를 HTTP 기반의 REST 표준 API로 서비스 하기 (RAD 서버 활용) >>자료 및 다시보기: 표준 REST API로 제공되는 서비스를 델파이 클라이언트에서 활용하기 (REST 클라이언트 활용) [활용] 애플리케이션에 HighDPI 적용하기 목표: High DPI를 완전하게 지원하는 애플리케이션을 만드는 과정 시연 효과: RAD 스튜디오 11 알렉산드리아는 High DPI 화면을 사용하는 개발자에게 훨씬 쾌적한 사용 경험을 제공한다. 이와 같은 효과를 사용자에게 제공 >>자료 및 다시보기: 애플리리케이션에 HighDPI 적용하기 [활용] 여러분의 애플리케이션에 VCL 스타일 적용하기 목표: 스타일을 완전하게 반영하기 위한 과정을 시연 내용: 스타일 파일 확보/반영, 개별 컨트롤 별 스타일 적용, 스타일 파일 사용자 편집 등 효과: RAD 스튜디오 11 에서는 개발 환경에서 스타일이 반영될 결과화면을 직접 보면서 개발할 수 있어서 더 빠르고 편하게 개발 >>자료 및 다시보기: 애플리케이션에 VCL 스타일 적용하기 라이브 Q&A 궁금한 점을 실시간으로 직접 묻고 답하고 토의할 수 있습니다. >>정리 및 다시보기: 라이브 Q&A
  7. RAD스튜디오 11 알렉산드리아는 개발자에게 필요했고 기다렸던 기능이 많이 추가되었습니다. 무엇보다 개발자가 더 쾌적한 환경에서 작업할 수 있습니다. 이 세미나에서는 RAD 스튜디오11 알렉산드리아의 주요 새 기능 중 실무에 바로 적용 가능한 활용 중심으로 한번에 정리합니다. 일시: 2021년 10월 15일(금), 오후 2시~오후 4시 순서 RAD스튜디오 11 새 기능 요약 정리 [활용] RAD서버를 이용해 “빠르게” 표준 REST API 구축하기 데모 [활용] 애플리케이션에 HighDPI 적용하기 [활용] 여러분의 애플리케이션에 VCL 스타일 적용하기 라이브 Q&A RAD스튜디오 11 새 기능 요약 정리 HighDPI 모니터와 같은 훨씬 쾌적한 환경에서 개발 윈도우, 맥, 안드로이드의 향상된 기능 반영 VCL 스타일을 개발 환경에서 보면서 개발 현대화된 VCL: TRichEdit, TTreeView, TLabelDBEdit (M 시리즈 애플 실리콘) 맥OS용으로 컴파일 안드로이드 API 30, 구글 플레이 V3, 안드로이드 X, “멀티덱스(multidex)” 지원과 라이브러리 업데이트 RAD서버 라이트 새 레코드 헬퍼, TZipFile 향상, 블루투스 LE 개선 등등 >>자료 및 다시보기: RAD 스튜디오 11 새기능 요약 [활용] RAD서버를 이용해 “빠르게” 표준 REST API 구축하기 데모 목표: 데이터베이스 서버와 그 데이터를 사용하는 클라이언트 사이에 “표준 REST API 층”을 넣어서 확장성과 유연성을 확보하는 과정 시연 1단계: 데이터 서비스를 HTTP 기반의 REST 표준 API로 서비스 하기 (RAD 서버 활용) 효과: 모바일, 웹, 데스크탑 등 어떤 클라이언트에서도 읽기/쓰기를 할 수 있는 “표준 REST API 서비스를 제공” 2단계: 표준 REST API로 서비스를 델파이 클라이언트에서 활용하기 (REST Client 활용) 효과: 표준을 준수하는 어떤 REST API 서비스에도 연결하여 읽기/쓰기를 하는 “네이티브 클라이언트 개발” >>자료 및 다시보기: 데이터를 HTTP 기반의 REST 표준 API로 서비스 하기 (RAD 서버 활용) >>자료 및 다시보기: 표준 REST API로 제공되는 서비스를 델파이 클라이언트에서 활용하기 (REST 클라이언트 활용) [활용] 애플리케이션에 HighDPI 적용하기 목표: High DPI를 완전하게 지원하는 애플리케이션을 만드는 과정 시연 효과: RAD 스튜디오 11 알렉산드리아는 High DPI 화면을 사용하는 개발자에게 훨씬 쾌적한 사용 경험을 제공한다. 이와 같은 효과를 사용자에게 제공 >>자료 및 다시보기: 애플리리케이션에 HighDPI 적용하기 [활용] 여러분의 애플리케이션에 VCL 스타일 적용하기 목표: 스타일을 완전하게 반영하기 위한 과정을 시연 내용: 스타일 파일 확보/반영, 개별 컨트롤 별 스타일 적용, 스타일 파일 사용자 편집 등 효과: RAD 스튜디오 11 에서는 개발 환경에서 스타일이 반영될 결과화면을 직접 보면서 개발할 수 있어서 더 빠르고 편하게 개발 >>자료 및 다시보기: 애플리케이션에 VCL 스타일 적용하기 라이브 Q&A 궁금한 점을 실시간으로 직접 묻고 답하고 토의할 수 있습니다. >>정리 및 다시보기: 라이브 Q&A View full 엠바카데로 기술자료
  8. 험프리

    11.0 알렉산드리아 언어와 컴파일러

    << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: 언어와 컴파일러" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - 언어와 컴파일러 관련 주요 업데이트 요약 델파이: 이진 리터럴 및 숫자 구분기호 AVX 명령어에 대한 인라인 어셈블러 지원(AVX-512) 신규 C++ 코드 포맷터 C++ / Delphi 호환성 C++: 델파이 타입 RTTI 호환성 스마트 포인터를 델파이 클래스에서 사용 타입 변환 기타 델파이: 이진 리터럴 및 숫자 구분기호 델파이 언어는 10진수 및 16진수 외에 이진 리터럴에 대한 지원이 추가되었다. 바이너리 리터럴은 % 기호를 접두사로 사용한다 (다른 파스칼 컴파일러에서 사용하는 구문과 동일하다 ) const Four = %100; var x: Integer; begin x := %10010001; 또한 숫자가 많은 리터럴 값의 가독성을 향상시킬 수 있도록 숫자 구분 기호(밑줄, “_”)을 사용할 수 있다. 코드 구문 분석과 컴파일에서 해당 기호는 무시된다. (C# 7.0에서 도입된 기능과 유사) const AMillion = 1_000_000; // _로 구분되므로 "1백만" 임을 쉽게 알 수 있다. ANumber = %10010101_10011001_11010001_10010011"; // 바이너리 리터럴에서도 _를 사용할 수 있다. 이 숫자 구분 기호는 이진 리터럴에서도 사용할 수 있다. (예 "%10010101_10011001_11010001_10010011") AVX 명령어에 대한 인라인 어셈블러 지원(AVX-512) AVX2(ymm) 및 AVX512(zmm) 등 최신 명령어셋을 위한 asm 코드를 지원한다. 참고: (최신 인텔 CPU와 같은) AVX-512 호환 CPU가 있어야 이 기능을 테스트할 수 있다. 더 자세한 정보: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512 신규 C++ 코드 포맷터 C++에 사용되는 코드 포맷터 기술이 clang 형식으로 완전히 대체되었다. 새 C++ 포맷터 옵션은 Language > C++ > Formatting 에서 설정할 수 있다. 코드 포맷을 수동으로 지정하기는 언제든 할 수 있다. 하지만, 저장하거나 입력할 때 IDE가 자동으로 코드 포맷을 지정하도록 할 수도 있다. 'Auto formatting' 설정에서 format on save, 또는 format on newline로 지정하면 된다. IDE는 일반적인 C++ 프로젝트 규칙대로, 소스폴더의 .clang-format 파일에 지정된 포맷 설정을 사용한다. .clang-format 파일을 찾을 수 없는 경우 IDE는 (위에 있는) Options 대화창에 있는 Formatting style에 지정된 포맷을 사용한다 (기본 값은 Embarcadero 추첫 포맷이다). C++ / Delphi 호환성 이제 델파이 타입용 C++-호환 RTTI가 있다. 이제 델파이 타입을 다루는 make_shared를 사용할 수 있으며, C++로 델타이 타입을 사용할 때 도움을 주는 타입 컨버전(전환)이 들어있다. C++: 델파이 타입 RTTI 호환성 예전에는 델파이 타입에 사용할 수 있는 C++ 타입 정보가 없었다. 즉, delphi-type이 Pascal 코드에서 가져온 타입이거나 C++의 델파이 스타일 클래스인 typeid(delphi-type)의 결과에 액세스하면 AV가 발생합니다. typeid는 단순히 타입에 대한 std::typeinfo를 반환하거나, 또는 해당 인스턴스의 가장 많이 파생된 타입에 대한 다형성 형식인 경우 이를 반환한다. typeid()는 이제 std::typeinfo를 반환한다. 그리고 델파이 타입 용 C++ 호환 RTTI가 생성된다. 스마트 포인터를 델파이 클래스에서 사용 이제 std::make_unique 와 std::make_shared 모두를 델파이 클래스에서 사용 할 수 있다 (델파이 또는 C++에 정의 되었지만 델파이에 정의된 클래스에서 상속됨). 타입 변환 이제 RTL에는 델파이 타입과 C++(및 델파이) 문자열 간에 타입 변환을 하는 헬퍼 메서드가 포함되었다. 여기에는 TDateTime에서 문자열 타입으로 변환, C++ 문자열에서 델파이 문자열로 쉽게 변환(할당), 델파이 문자열에서 std::string_view 사용이 포함되었다. 이제 to_string()과 from_string() 메소드를 이용해 문자열로 변환하거나 문자열에서 변환한다. (UnicodeString, WideString 및 AnsiString, 코드 페이지로 템플릿 포함). 이 메소드를 제공하는 타입은 다음과 같다. Currency TDateTime Integer(32/64비트, 부호가 있거나/부호가 없는) 부동 소수점 타입(Extended) Variants 기타 이제 Clang 컴파일러는 인터페이스가 IUnknown에서 파생되지 않았을 때 경고를 표시한다. 이제 C++ Win64 디버거를 사용하여 프로세스에 연결할 수 있다. 프로젝트 일괄 컴파일이 .c 파일을 무시하던 문제가 해결되었다.
  9. << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: 언어와 컴파일러" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - 언어와 컴파일러 관련 주요 업데이트 요약 델파이: 이진 리터럴 및 숫자 구분기호 AVX 명령어에 대한 인라인 어셈블러 지원(AVX-512) 신규 C++ 코드 포맷터 C++ / Delphi 호환성 C++: 델파이 타입 RTTI 호환성 스마트 포인터를 델파이 클래스에서 사용 타입 변환 기타 델파이: 이진 리터럴 및 숫자 구분기호 델파이 언어는 10진수 및 16진수 외에 이진 리터럴에 대한 지원이 추가되었다. 바이너리 리터럴은 % 기호를 접두사로 사용한다 (다른 파스칼 컴파일러에서 사용하는 구문과 동일하다 ) const Four = %100; var x: Integer; begin x := %10010001; 또한 숫자가 많은 리터럴 값의 가독성을 향상시킬 수 있도록 숫자 구분 기호(밑줄, “_”)을 사용할 수 있다. 코드 구문 분석과 컴파일에서 해당 기호는 무시된다. (C# 7.0에서 도입된 기능과 유사) const AMillion = 1_000_000; // _로 구분되므로 "1백만" 임을 쉽게 알 수 있다. ANumber = %10010101_10011001_11010001_10010011"; // 바이너리 리터럴에서도 _를 사용할 수 있다. 이 숫자 구분 기호는 이진 리터럴에서도 사용할 수 있다. (예 "%10010101_10011001_11010001_10010011") AVX 명령어에 대한 인라인 어셈블러 지원(AVX-512) AVX2(ymm) 및 AVX512(zmm) 등 최신 명령어셋을 위한 asm 코드를 지원한다. 참고: (최신 인텔 CPU와 같은) AVX-512 호환 CPU가 있어야 이 기능을 테스트할 수 있다. 더 자세한 정보: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512 신규 C++ 코드 포맷터 C++에 사용되는 코드 포맷터 기술이 clang 형식으로 완전히 대체되었다. 새 C++ 포맷터 옵션은 Language > C++ > Formatting 에서 설정할 수 있다. 코드 포맷을 수동으로 지정하기는 언제든 할 수 있다. 하지만, 저장하거나 입력할 때 IDE가 자동으로 코드 포맷을 지정하도록 할 수도 있다. 'Auto formatting' 설정에서 format on save, 또는 format on newline로 지정하면 된다. IDE는 일반적인 C++ 프로젝트 규칙대로, 소스폴더의 .clang-format 파일에 지정된 포맷 설정을 사용한다. .clang-format 파일을 찾을 수 없는 경우 IDE는 (위에 있는) Options 대화창에 있는 Formatting style에 지정된 포맷을 사용한다 (기본 값은 Embarcadero 추첫 포맷이다). C++ / Delphi 호환성 이제 델파이 타입용 C++-호환 RTTI가 있다. 이제 델파이 타입을 다루는 make_shared를 사용할 수 있으며, C++로 델타이 타입을 사용할 때 도움을 주는 타입 컨버전(전환)이 들어있다. C++: 델파이 타입 RTTI 호환성 예전에는 델파이 타입에 사용할 수 있는 C++ 타입 정보가 없었다. 즉, delphi-type이 Pascal 코드에서 가져온 타입이거나 C++의 델파이 스타일 클래스인 typeid(delphi-type)의 결과에 액세스하면 AV가 발생합니다. typeid는 단순히 타입에 대한 std::typeinfo를 반환하거나, 또는 해당 인스턴스의 가장 많이 파생된 타입에 대한 다형성 형식인 경우 이를 반환한다. typeid()는 이제 std::typeinfo를 반환한다. 그리고 델파이 타입 용 C++ 호환 RTTI가 생성된다. 스마트 포인터를 델파이 클래스에서 사용 이제 std::make_unique 와 std::make_shared 모두를 델파이 클래스에서 사용 할 수 있다 (델파이 또는 C++에 정의 되었지만 델파이에 정의된 클래스에서 상속됨). 타입 변환 이제 RTL에는 델파이 타입과 C++(및 델파이) 문자열 간에 타입 변환을 하는 헬퍼 메서드가 포함되었다. 여기에는 TDateTime에서 문자열 타입으로 변환, C++ 문자열에서 델파이 문자열로 쉽게 변환(할당), 델파이 문자열에서 std::string_view 사용이 포함되었다. 이제 to_string()과 from_string() 메소드를 이용해 문자열로 변환하거나 문자열에서 변환한다. (UnicodeString, WideString 및 AnsiString, 코드 페이지로 템플릿 포함). 이 메소드를 제공하는 타입은 다음과 같다. Currency TDateTime Integer(32/64비트, 부호가 있거나/부호가 없는) 부동 소수점 타입(Extended) Variants 기타 이제 Clang 컴파일러는 인터페이스가 IUnknown에서 파생되지 않았을 때 경고를 표시한다. 이제 C++ Win64 디버거를 사용하여 프로세스에 연결할 수 있다. 프로젝트 일괄 컴파일이 .c 파일을 무시하던 문제가 해결되었다. View full RAD 스튜디오 버전별 신기능
  10. 험프리

    11.0 알렉산드리아 RTL과 데이터

    << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: RTL과 데이터" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - RTL과 데이터 관련 주요 업데이트 요약 플랫폼 식별자 RTL: TZipFile RTL 대용량 데이터 구조 개선 새로운 레코드 헬퍼 블루투스와 BLE 개선 추가 RTL 개선사항 제네릭 콜렉션 개선사항 RTTI PPL 스트림 날짜를 문자료 변환 인터페이스 인스턴스 생성 TNoRefCountObject 최적화 및 기타 JSON UTF8ToString 변경 사항 FireDAC Internet, HTTP 및 REST 클라이언트 라이브러리 인터넷 서버 기술 웹브로커 RAD 서버 데이터스냅 플랫폼 식별자 RTL은 macOS/Arm64 플랫폼용으로 새로운 플랫폼 식별자인 pidOSXArm64를 추가되었다. 기존 pidAndroid32Arm 및 pidAndroid64Arm 식별자는 새로운 pidAndroidArm32 및 pidAndroidArm64로 대체되었다. 모든 플랫폼 관련 식별자는 컴파일러의 동일한 형식과 순서를 사용합니다. <플랫폼 이름><아키텍처 이름><비트니스> RTL: TZipFile ZIP 파일(RTL의 TZipFile 클래스)의 품질 개선 및 최적화에 중점을 두었다. Zip64에 대한 지원과 TZipFile에서 파일을 제거하는 방법이 추가되었다. TZipHeader에서 GetFIleName 메서드를 지원하고 TZipFile.IsValid()는 스트림 매개 변수를 허용하며 System.Zip은 4GB보다 큰 파일에서도 작동한다. RTL 대용량 데이터 구조 개선 64비트 컴파일러에서 더 큰 메모리 구조에 대해 적절한 데이터 유형을 사용하도록 개선되었다. 예를 들어, 64비트의 TMemoryStream은 2GB보다 큰 데이터 구조를 지원한다. 이와 관련하여 새로운 메서드 TThread.GetTickCount64가 추가되었다(32비트 값을 반환하는 기존 TThread.GetTickCount는 호환성을 위해 RTL에 남아 있음) 새 레코드 헬퍼 추가 TDateTime을 위한 새로운 레코드 헬퍼: System.DateUtils 유닛에 “UTC Now”(실제 NowUTC를 호출) 등이 포함되었다. Currency타입을 위한 새로운 레코드 헬퍼: System.SysUtils 유닛에 TCurrencyHelper가 추가되었다 블루투스와 BLE 개선 클래식 블루투스 및 블루투스LE와 대부분의 플랫폼이 포함해 개선되었다. 특히 Windows 10 및 안드로이드(iOS 및 macOS도 포함)에 중점을 두었으며, 개선 사항에는 비콘 지원도 포함되었다. 추가 RTL 개선사항 제네릭 콜렉션 개선사항 일부 제네릭 유형에서 사용했던 TValue 심볼릭 이름이 RTL의 TValue와 혼돈되므로 다른 이름으로 변경됨.(TKey > K, TValue > V 등) 내부적인 변경으로 기존 코드에는 영향이 없다. 또한, 다음 코드와 같이 컬랙션 클래스의 추가 생성자가 없으며, array of value 형식의 파라메터로 대체되었다. procedure DoCheckStateChanged(Node: TTreeNode; CheckState: TNodeCheckState);virtual; constructor TList<T>.Create(const Values: array of T); constructor TDictionary<TKey, TValue>.Create(const AItems: array of TPair<TKey, TValue>); TDictionary는 Capacity, GrowThreshold와 해싱 구현이 개선되어 성능/메모리 사용량/충돌 최소화하며 균형잡힌 성능을 발휘한다. 내부적으로 구현에 사용된 TListHelper를 제거하고 강력한 타입인 TArray<T>를 사용해 스트리밍과 데이터 매핑 코드 관련된 모든 항목이 업데이트 되었다. RTTI RTTI에 대한 개방형 배열 지원: RTTI를 통해 개방형 배열 매개변수가 있는 메서드 호출을 허용하고 TVirtualMethodInterceptor에서 개방형 배열 인수도 지원힌다. TValue는 TDateTime에 대한 지원이 추가되며, TValue 및 Variant 유형 교환이 개선되었다. PPL (병렬 프로그래밍 라이브러리) PPL 스레드 풀 통계에 더 쉽게 액세스할 수 있도록, TThreadPoolStats.Get 메서드가 이제 공개되었다. 스트림 새로운 TPointerStream 클래스를 사용하면 포인터 위치와 크기를 표시하여 TStream 인터페이스를 사용하여 메모리 내 데이터를 읽고 쓸 수 있다. TStream.CopyFrom에는 알 수 없는 크기가 필요하지 않으며, 이 방법은 Count가 큰 경우에도 최적화되었다(최대 400% 개선). 날짜를 문자료 변환 날짜를 문자로 변환과 반대로 변환이 개선되었다. 참고로, StrToDate는 ‘to date’ 형식 문자열을 엄격히 따르고, 월과 일 이름이 있는 날짜 형식을 지원하며, 내부에 임의의 텍스트가 있는 날짜 형식도 지원한다. 또한, TFormatSettings 날짜/시간 관련 속성 초기화를 개선해 모든 플랫폼에서 표현이 통합되었다. 인터페이스 인스턴스 생성 새로운 System.Generics.Defaults._MakeInterfaceInstance 이용 인터페이스 인스턴스를 만들 수 있고, 모든 인터페이스 메소드는 익명 메소드로 표시된다. TNoRefCountObject 새로운 클래스 System.TNoRefCountObject는 참조 카운트가 IInterface 구현이다.(오래되고 모호한 TSingletonObject를 대체) 최적화 및 기타 최적화된 _FinalizeRecord 및 _FinalizeArray 레거시 TDatamodule.OldCreateOrder 속성이 제거 되고 기본값 True로 인식. 해당 속성이 폼파일에 있는 경우 무시됨(오류 미발생). 델파이 초기 버전 생성 순서 로직과 호환성을 위해 사용 된 항목 향상된 파스칼 System.Pos TArray<T>.BinarySearch 최적화 TList<T>.Sort( ..., Index, Count ) overload 추가 System.IOUtils.TFile.Size 추가 ClassParent 및 InitInstance에 대한 TObject 성능 수정 System.IOUtils.TPath에 대한 몇 가지 개선 사항 RTL에서 260자 보다 긴 시스템 경로 지원, (최신 버전의 Windows 등)운영체제에서 지원하는 경우 클래스 속성 TThread.OnSynchronize 추가 EInOutError 및 EInOutArgumentException 메시지에 경로가 포함되고 경로 필드를 갖음 성능 향상 _UInt32ToHexString 및 _UInt64ToHexString TSingleHelper 및 TDoubleHelper용 Parse 및 TryParse TGUID 데이터 구조는 이제 System.pas에서만 정의됨 JSON ParseJSONValue()를 TJSONObject에서 TJSONValue로 이동 Integer에 대해 TJSONObject.AddPair(overload) 추가 UTF8ToString 변경 사항 array of AnsiChar을 허용하는 UTF8ToString 오버로드가 제거되고 UTF8ToString(array of Byte) 지원중단 됨. 제거된 함수: UTF8ToString(const S: _PAnsiChr) 해결 방법 은 System.UTF8ToString 참조 FireDAC PostgreSQL 드라이버는 PostgreSQL v13 지원, PostgreSQL 저장 프로시저 지원 포함 Oracle 19c 및 Oracle 저장 프로시저에 대한 128자 매개변수 이름에 대한 공식 지원 TFDSortOption에 soDigitsAsNumbers 확장, System.SysUtils의 TCompareOption과 유사 FireDAC 모니터 UI 개선 /bin 하위 폴더가 아닌 VendorHome에서 드라이버를 찾도록 Firebird 드라이버를 개선(이전 버전의 Firebird에는 정확함). Internet, HTTP 및 REST 클라이언트 라이브러리 백엔드 및 EMS 클라이언트 구성 요소에 대한 타임아웃 메커니즘: TEMSProvider, TKinveyProvider, TParseProvider 클래스는 2가지 새로운 속성: ConnectTimeout, ReadTimeout TEMSApi.TConnectionInfo, TParseApi.TConnectionInfo, TKinveyApi.TConnectionInfo: ConnectTimeout 및 ReadTimeout 변수 TDSRestConnection은 ConnectionTimeOut 표시 HTTP / 2에 대한 Windows 지원 추가 THttpClient.ProtocolVersion 신규 속성 TNetHttpClient.ProtocolVersion 신규 속성 새로운 TBase64URLEncoding 인코딩 및 TNetEncoding.Base64URL 속성 모든 플랫폼에 대해 전체 RTL에서 gethostbyname를 getaddrinfo로 전환 새로운 TCertificate.PublicKey, 공개 키 모듈 포함 ContentType은 이제 문자열 유형, 열거형이 아님 . 이로서 하나의 콘텐츠 타입 문자열 사용 가능. 또한 새로운 RestRequest의 CustomContentType Windows용 TNetHTTPClient에서 TLS 1.3 지원 TSocket에 대한 여러 개선 사항 새로운 TRESTRequestDataSetAdapter 컴포넌트는 JSON을 통해 TDataSet(예: TFDMemTable) 데이터를 서버에 업로드하는 작업 단순화. 서버 측에서 TRESTResponseDataSetAdapter REST 구성 요소의 동반자 TRestClient 구성 요소는 기본 HTTPClient 구성 요소의 SecureFailureReasons 속성을 표시함 Vcl.Styles 유닛에서 이제 TCustomStyle 클래스 FCustomElements 및 FSource가 protected 섹션에 선언됨 인터넷 서버 기술 웹브로커 ISAPI DLL 스레드에는 Web.Win.ISAPIThreadPool.StackSize 변수를 사용하여 구성 가능한 StackSize 제공. 2GB(MaxInt)보다 큰 파일을 전송/스트리밍할 때 WebBroker 성능 대폭 향상 RAD 서버 RAD 서버를 위한 Multipart/form-data 지원 데이터스냅 (DataSnap) 데이터스냅: REST URI는 이제 TDSMethodMapEvent 이벤트를 기반으로 하는 새로운 메커니즘을 사용해 구성할 수 있다.
  11. << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: RTL과 데이터" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - RTL과 데이터 관련 주요 업데이트 요약 플랫폼 식별자 RTL: TZipFile RTL 대용량 데이터 구조 개선 새로운 레코드 헬퍼 블루투스와 BLE 개선 추가 RTL 개선사항 제네릭 콜렉션 개선사항 RTTI PPL 스트림 날짜를 문자료 변환 인터페이스 인스턴스 생성 TNoRefCountObject 최적화 및 기타 JSON UTF8ToString 변경 사항 FireDAC Internet, HTTP 및 REST 클라이언트 라이브러리 인터넷 서버 기술 웹브로커 RAD 서버 데이터스냅 플랫폼 식별자 RTL은 macOS/Arm64 플랫폼용으로 새로운 플랫폼 식별자인 pidOSXArm64를 추가되었다. 기존 pidAndroid32Arm 및 pidAndroid64Arm 식별자는 새로운 pidAndroidArm32 및 pidAndroidArm64로 대체되었다. 모든 플랫폼 관련 식별자는 컴파일러의 동일한 형식과 순서를 사용합니다. <플랫폼 이름><아키텍처 이름><비트니스> RTL: TZipFile ZIP 파일(RTL의 TZipFile 클래스)의 품질 개선 및 최적화에 중점을 두었다. Zip64에 대한 지원과 TZipFile에서 파일을 제거하는 방법이 추가되었다. TZipHeader에서 GetFIleName 메서드를 지원하고 TZipFile.IsValid()는 스트림 매개 변수를 허용하며 System.Zip은 4GB보다 큰 파일에서도 작동한다. RTL 대용량 데이터 구조 개선 64비트 컴파일러에서 더 큰 메모리 구조에 대해 적절한 데이터 유형을 사용하도록 개선되었다. 예를 들어, 64비트의 TMemoryStream은 2GB보다 큰 데이터 구조를 지원한다. 이와 관련하여 새로운 메서드 TThread.GetTickCount64가 추가되었다(32비트 값을 반환하는 기존 TThread.GetTickCount는 호환성을 위해 RTL에 남아 있음) 새 레코드 헬퍼 추가 TDateTime을 위한 새로운 레코드 헬퍼: System.DateUtils 유닛에 “UTC Now”(실제 NowUTC를 호출) 등이 포함되었다. Currency타입을 위한 새로운 레코드 헬퍼: System.SysUtils 유닛에 TCurrencyHelper가 추가되었다 블루투스와 BLE 개선 클래식 블루투스 및 블루투스LE와 대부분의 플랫폼이 포함해 개선되었다. 특히 Windows 10 및 안드로이드(iOS 및 macOS도 포함)에 중점을 두었으며, 개선 사항에는 비콘 지원도 포함되었다. 추가 RTL 개선사항 제네릭 콜렉션 개선사항 일부 제네릭 유형에서 사용했던 TValue 심볼릭 이름이 RTL의 TValue와 혼돈되므로 다른 이름으로 변경됨.(TKey > K, TValue > V 등) 내부적인 변경으로 기존 코드에는 영향이 없다. 또한, 다음 코드와 같이 컬랙션 클래스의 추가 생성자가 없으며, array of value 형식의 파라메터로 대체되었다. procedure DoCheckStateChanged(Node: TTreeNode; CheckState: TNodeCheckState);virtual; constructor TList<T>.Create(const Values: array of T); constructor TDictionary<TKey, TValue>.Create(const AItems: array of TPair<TKey, TValue>); TDictionary는 Capacity, GrowThreshold와 해싱 구현이 개선되어 성능/메모리 사용량/충돌 최소화하며 균형잡힌 성능을 발휘한다. 내부적으로 구현에 사용된 TListHelper를 제거하고 강력한 타입인 TArray<T>를 사용해 스트리밍과 데이터 매핑 코드 관련된 모든 항목이 업데이트 되었다. RTTI RTTI에 대한 개방형 배열 지원: RTTI를 통해 개방형 배열 매개변수가 있는 메서드 호출을 허용하고 TVirtualMethodInterceptor에서 개방형 배열 인수도 지원힌다. TValue는 TDateTime에 대한 지원이 추가되며, TValue 및 Variant 유형 교환이 개선되었다. PPL (병렬 프로그래밍 라이브러리) PPL 스레드 풀 통계에 더 쉽게 액세스할 수 있도록, TThreadPoolStats.Get 메서드가 이제 공개되었다. 스트림 새로운 TPointerStream 클래스를 사용하면 포인터 위치와 크기를 표시하여 TStream 인터페이스를 사용하여 메모리 내 데이터를 읽고 쓸 수 있다. TStream.CopyFrom에는 알 수 없는 크기가 필요하지 않으며, 이 방법은 Count가 큰 경우에도 최적화되었다(최대 400% 개선). 날짜를 문자료 변환 날짜를 문자로 변환과 반대로 변환이 개선되었다. 참고로, StrToDate는 ‘to date’ 형식 문자열을 엄격히 따르고, 월과 일 이름이 있는 날짜 형식을 지원하며, 내부에 임의의 텍스트가 있는 날짜 형식도 지원한다. 또한, TFormatSettings 날짜/시간 관련 속성 초기화를 개선해 모든 플랫폼에서 표현이 통합되었다. 인터페이스 인스턴스 생성 새로운 System.Generics.Defaults._MakeInterfaceInstance 이용 인터페이스 인스턴스를 만들 수 있고, 모든 인터페이스 메소드는 익명 메소드로 표시된다. TNoRefCountObject 새로운 클래스 System.TNoRefCountObject는 참조 카운트가 IInterface 구현이다.(오래되고 모호한 TSingletonObject를 대체) 최적화 및 기타 최적화된 _FinalizeRecord 및 _FinalizeArray 레거시 TDatamodule.OldCreateOrder 속성이 제거 되고 기본값 True로 인식. 해당 속성이 폼파일에 있는 경우 무시됨(오류 미발생). 델파이 초기 버전 생성 순서 로직과 호환성을 위해 사용 된 항목 향상된 파스칼 System.Pos TArray<T>.BinarySearch 최적화 TList<T>.Sort( ..., Index, Count ) overload 추가 System.IOUtils.TFile.Size 추가 ClassParent 및 InitInstance에 대한 TObject 성능 수정 System.IOUtils.TPath에 대한 몇 가지 개선 사항 RTL에서 260자 보다 긴 시스템 경로 지원, (최신 버전의 Windows 등)운영체제에서 지원하는 경우 클래스 속성 TThread.OnSynchronize 추가 EInOutError 및 EInOutArgumentException 메시지에 경로가 포함되고 경로 필드를 갖음 성능 향상 _UInt32ToHexString 및 _UInt64ToHexString TSingleHelper 및 TDoubleHelper용 Parse 및 TryParse TGUID 데이터 구조는 이제 System.pas에서만 정의됨 JSON ParseJSONValue()를 TJSONObject에서 TJSONValue로 이동 Integer에 대해 TJSONObject.AddPair(overload) 추가 UTF8ToString 변경 사항 array of AnsiChar을 허용하는 UTF8ToString 오버로드가 제거되고 UTF8ToString(array of Byte) 지원중단 됨. 제거된 함수: UTF8ToString(const S: _PAnsiChr) 해결 방법 은 System.UTF8ToString 참조 FireDAC PostgreSQL 드라이버는 PostgreSQL v13 지원, PostgreSQL 저장 프로시저 지원 포함 Oracle 19c 및 Oracle 저장 프로시저에 대한 128자 매개변수 이름에 대한 공식 지원 TFDSortOption에 soDigitsAsNumbers 확장, System.SysUtils의 TCompareOption과 유사 FireDAC 모니터 UI 개선 /bin 하위 폴더가 아닌 VendorHome에서 드라이버를 찾도록 Firebird 드라이버를 개선(이전 버전의 Firebird에는 정확함). Internet, HTTP 및 REST 클라이언트 라이브러리 백엔드 및 EMS 클라이언트 구성 요소에 대한 타임아웃 메커니즘: TEMSProvider, TKinveyProvider, TParseProvider 클래스는 2가지 새로운 속성: ConnectTimeout, ReadTimeout TEMSApi.TConnectionInfo, TParseApi.TConnectionInfo, TKinveyApi.TConnectionInfo: ConnectTimeout 및 ReadTimeout 변수 TDSRestConnection은 ConnectionTimeOut 표시 HTTP / 2에 대한 Windows 지원 추가 THttpClient.ProtocolVersion 신규 속성 TNetHttpClient.ProtocolVersion 신규 속성 새로운 TBase64URLEncoding 인코딩 및 TNetEncoding.Base64URL 속성 모든 플랫폼에 대해 전체 RTL에서 gethostbyname를 getaddrinfo로 전환 새로운 TCertificate.PublicKey, 공개 키 모듈 포함 ContentType은 이제 문자열 유형, 열거형이 아님 . 이로서 하나의 콘텐츠 타입 문자열 사용 가능. 또한 새로운 RestRequest의 CustomContentType Windows용 TNetHTTPClient에서 TLS 1.3 지원 TSocket에 대한 여러 개선 사항 새로운 TRESTRequestDataSetAdapter 컴포넌트는 JSON을 통해 TDataSet(예: TFDMemTable) 데이터를 서버에 업로드하는 작업 단순화. 서버 측에서 TRESTResponseDataSetAdapter REST 구성 요소의 동반자 TRestClient 구성 요소는 기본 HTTPClient 구성 요소의 SecureFailureReasons 속성을 표시함 Vcl.Styles 유닛에서 이제 TCustomStyle 클래스 FCustomElements 및 FSource가 protected 섹션에 선언됨 인터넷 서버 기술 웹브로커 ISAPI DLL 스레드에는 Web.Win.ISAPIThreadPool.StackSize 변수를 사용하여 구성 가능한 StackSize 제공. 2GB(MaxInt)보다 큰 파일을 전송/스트리밍할 때 WebBroker 성능 대폭 향상 RAD 서버 RAD 서버를 위한 Multipart/form-data 지원 데이터스냅 (DataSnap) 데이터스냅: REST URI는 이제 TDSMethodMapEvent 이벤트를 기반으로 하는 새로운 메커니즘을 사용해 구성할 수 있다. View full RAD 스튜디오 버전별 신기능
  12. 험프리

    11.0 알렉산드리아 FMX

    << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: FMX" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 파이어몽키에서 우리는 핵심 요소 리팩토링에 주력했다. 특히 데스크탑과 윈도우에 촛점을 맞추었다. 이제 macOS용과 윈도우용 플랫폼 서비스가 별도의 유닛으로 리팩토링하고, IFMXMultiDisplayService와 TDisplay를 확장했으며, 관련 서비스에 해당되는 모든 메트릭스(metrics)를 뽑아서 FMX.Platform.Metrics 안에 넣어두었다. 리팩토링 한것들: IFMXSaveStateService IFMXDeviceService IFMXVirtualKeyboardService IFMXTimerService IFMXLoggingService IFMXMenuService 11.0 알렉산드리아 - FMX 관련 주요 업데이트 요약 새로운 macOS ARM 64비트 플랫폼 지원 macOS 범용 바이너리 생성 Google Play 청구 라이브러리 버전 4 안드로이드 API 30 지원과 라이브러리 업데이트 안드로이드 앱 개발 시 "멀티덱스(multidex)" 지원 웹 브라우저 크로미엄 엣지 지원 추가 개선사항 새로운 macOS ARM 64비트 플랫폼 지원 RAD Studio 11.0은 새 Delphi 타겟 플랫폼으로 macOS ARM 64비트를 지원하므로, macOS 11를 탑재한 새 M1 Apple Silicon CPU용 네이티브 애플리케이션을 구축할 수 있다. macOS 범용 바이너리 생성 Intel 및 ARM 코드를 모두 포함하는 범용(Universal) 바이너리를 생성할 수 있다. 그렇게 하려면, 타겟 플랫폼을 macOS ARM 64-bit로 지정하고, Project > Options | Building > Delphi Compiler > Compiling | Other > Generate macOS universal binary file (x86_64 + arm64)가 True가 되도록 체크한다. 응용프로그램을 배포한 후에 OSXARM64\Debug 폴더에 새로 만든 범용 바이너리가 있는 지 확인할 수 있다. MacOS 지원 중단 RAD 스튜디오 11.0에서, Macapi.QTKit 유닛은 macOS/X64에서 더이상 사용되지 않으며, macOS/Arm64 라이브러리에서도 제거되었다. 또한, Macapi.Quicktime 유닛 역시 macOS/X64와 macOS/Arm64 라이브러리 모두에서 제거되었다. Google Play 청구 라이브러리 버전 4 RAD 스튜디오 11.0은 Google Billing API의 최신 버전을 지원한다. (이 버전은 구글이 요구하는 플레이 스토어 앱의 필수 조건이며, 2021년 11월까지 유예가 허용된다). FMX 라이브러리에 Google Billing API의 최신 버전이 반영되어서 개발자가 손쉽게 적용할 수 있다. 안드로이드 API 30 지원과 라이브러리 업데이트 안드로이드 API 30 지원에는 다음 변경이 포함된다. 안드로이드 API 30 (구글 플레이 스토어의 2021년 요구사항)을 타겟으로 지정 할 수 있다. 예전 “Support Library” 라이브러리를 새 “AndroidX” 라이브러리로 마이그레이션했다. 이전과 다른 자바 라이브러리 세트가 포함 됨에 따라 이전 버전과 호환되지 않는다. RAD 스튜디오 이전 버전에서 작성한 프로젝트를 열 때에는 다음 절차를 진행해야 한다. IDE의 Projects 창으로 간다. Android 32-bit 또는 Android 64-bit를 활성 타겟 플랫폼으로 지정한다. Libraries 노드를 마우스 오른쪽 클릭한다. Revert System Files to Default를 선택한다. 안드로이드 앱 개발 시 "멀티덱스(multidex)" 지원 멀티덱스 (MultiDex: 안드로이드 앱에서 classes.dex 파일을 여러개 생성할 수 있도록 허용하는 기능) 지원이 추가되었다. 최신 "D8" DEX 컴파일러를 사용하여 Java 바이트코드를 DEX 파일로 컴파일한다. (이전의 "DX" DEX 컴파일러를 대체함) 예전에는 다시 컴파일 하고 나서 기존의 classes.dex 파일을 수정해야 했다. 이제 그 복잡한 절차가 필요없이 프로젝트에 필요한 요구사항을 간편하게 넣을 수 있다. 웹 브라우저 크로미엄 엣지 지원 FMX의 윈도우용 TWebBrowser 는 플랫폼 WebView2 컴포넌트를 통해 크로미엄 엣지를 지원한다. (VCL TWebBrowser 유사함) WidnowsEngine 프로퍼티: 사용할 웹 브라우저 엔진을 선택할 수 있다. 추가 개선사항 파이어몽키 접근 권한 팩이 핵심 제품에 통합(별도 다운로드가 아님) 스타일과 플랫폼 컨트롤의 조합을 위한 Z-Order 관리 향상 사용하지 않는 이전의 비 범위 열거형 값 제거(즉, 2014년에 사용되지 않는 열거형을 지원하기 위해 추가되었던 FMX 도우미 클래스) 안드로이드 플랫폼용 TWebBrowser에서 파일 업로드 지원
  13. << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: FMX" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 파이어몽키에서 우리는 핵심 요소 리팩토링에 주력했다. 특히 데스크탑과 윈도우에 촛점을 맞추었다. 이제 macOS용과 윈도우용 플랫폼 서비스가 별도의 유닛으로 리팩토링하고, IFMXMultiDisplayService와 TDisplay를 확장했으며, 관련 서비스에 해당되는 모든 메트릭스(metrics)를 뽑아서 FMX.Platform.Metrics 안에 넣어두었다. 리팩토링 한것들: IFMXSaveStateService IFMXDeviceService IFMXVirtualKeyboardService IFMXTimerService IFMXLoggingService IFMXMenuService 11.0 알렉산드리아 - FMX 관련 주요 업데이트 요약 새로운 macOS ARM 64비트 플랫폼 지원 macOS 범용 바이너리 생성 Google Play 청구 라이브러리 버전 4 안드로이드 API 30 지원과 라이브러리 업데이트 안드로이드 앱 개발 시 "멀티덱스(multidex)" 지원 웹 브라우저 크로미엄 엣지 지원 추가 개선사항 새로운 macOS ARM 64비트 플랫폼 지원 RAD Studio 11.0은 새 Delphi 타겟 플랫폼으로 macOS ARM 64비트를 지원하므로, macOS 11를 탑재한 새 M1 Apple Silicon CPU용 네이티브 애플리케이션을 구축할 수 있다. macOS 범용 바이너리 생성 Intel 및 ARM 코드를 모두 포함하는 범용(Universal) 바이너리를 생성할 수 있다. 그렇게 하려면, 타겟 플랫폼을 macOS ARM 64-bit로 지정하고, Project > Options | Building > Delphi Compiler > Compiling | Other > Generate macOS universal binary file (x86_64 + arm64)가 True가 되도록 체크한다. 응용프로그램을 배포한 후에 OSXARM64\Debug 폴더에 새로 만든 범용 바이너리가 있는 지 확인할 수 있다. MacOS 지원 중단 RAD 스튜디오 11.0에서, Macapi.QTKit 유닛은 macOS/X64에서 더이상 사용되지 않으며, macOS/Arm64 라이브러리에서도 제거되었다. 또한, Macapi.Quicktime 유닛 역시 macOS/X64와 macOS/Arm64 라이브러리 모두에서 제거되었다. Google Play 청구 라이브러리 버전 4 RAD 스튜디오 11.0은 Google Billing API의 최신 버전을 지원한다. (이 버전은 구글이 요구하는 플레이 스토어 앱의 필수 조건이며, 2021년 11월까지 유예가 허용된다). FMX 라이브러리에 Google Billing API의 최신 버전이 반영되어서 개발자가 손쉽게 적용할 수 있다. 안드로이드 API 30 지원과 라이브러리 업데이트 안드로이드 API 30 지원에는 다음 변경이 포함된다. 안드로이드 API 30 (구글 플레이 스토어의 2021년 요구사항)을 타겟으로 지정 할 수 있다. 예전 “Support Library” 라이브러리를 새 “AndroidX” 라이브러리로 마이그레이션했다. 이전과 다른 자바 라이브러리 세트가 포함 됨에 따라 이전 버전과 호환되지 않는다. RAD 스튜디오 이전 버전에서 작성한 프로젝트를 열 때에는 다음 절차를 진행해야 한다. IDE의 Projects 창으로 간다. Android 32-bit 또는 Android 64-bit를 활성 타겟 플랫폼으로 지정한다. Libraries 노드를 마우스 오른쪽 클릭한다. Revert System Files to Default를 선택한다. 안드로이드 앱 개발 시 "멀티덱스(multidex)" 지원 멀티덱스 (MultiDex: 안드로이드 앱에서 classes.dex 파일을 여러개 생성할 수 있도록 허용하는 기능) 지원이 추가되었다. 최신 "D8" DEX 컴파일러를 사용하여 Java 바이트코드를 DEX 파일로 컴파일한다. (이전의 "DX" DEX 컴파일러를 대체함) 예전에는 다시 컴파일 하고 나서 기존의 classes.dex 파일을 수정해야 했다. 이제 그 복잡한 절차가 필요없이 프로젝트에 필요한 요구사항을 간편하게 넣을 수 있다. 웹 브라우저 크로미엄 엣지 지원 FMX의 윈도우용 TWebBrowser 는 플랫폼 WebView2 컴포넌트를 통해 크로미엄 엣지를 지원한다. (VCL TWebBrowser 유사함) WidnowsEngine 프로퍼티: 사용할 웹 브라우저 엔진을 선택할 수 있다. 추가 개선사항 파이어몽키 접근 권한 팩이 핵심 제품에 통합(별도 다운로드가 아님) 스타일과 플랫폼 컨트롤의 조합을 위한 Z-Order 관리 향상 사용하지 않는 이전의 비 범위 열거형 값 제거(즉, 2014년에 사용되지 않는 열거형을 지원하기 위해 추가되었던 FMX 도우미 클래스) 안드로이드 플랫폼용 TWebBrowser에서 파일 업로드 지원 View full RAD 스튜디오 버전별 신기능
  14. 험프리

    11.0 알렉산드리아 VCL

    << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: VCL" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - VCL 관련 주요 업데이트 요약 TRichEdit 컴포넌트 RichEdit 4.1로 업데이트 (MSFTEDIT.dll) VCL 현대화 작업 새로운 기본 폰트 Memo와 RichEdit에 새 프로퍼티 EditMargins 추가 그룹박스와 라디오그룹 외곽선 표시 및 해더 폰트 속성 추가 TComboBox용 DropDownWidth 프로퍼티 추가 TTreeView에 체크박스 표시 기능 추가 TWICImage 다중 프레임 지원 새로운 TLabelDBEdit 컴포넌트 에러 메시지 강화 쿨바 셰브론 지원 NumberBox 강화 쓰레드 안전성 강화 VCL StyleUtils.inc 일반 파일로 전환 그외 변경들 RAD 스튜디오는 11.0에서 VCL 라이브러리에 작은 개선을 많이 했다. 주로 윈도우 10과 일치하지 않는 몇가지 XP 잔재를 제거하기, 그리고 핵심 라이브러리 기능을 향상하기에 촛점을 맞추었다. TRichEdit 컴포넌트 RichEdit 4.1로 업데이트 (MSFTEDIT.dll) TRichEdit 컨트롤이 새로 구현되었다. 더 최신 윈도우를 지원한다. 또한 TDBRichEdit.Lines 는 이제 퍼블릭 프로퍼티이다. URL 활성화 (EnableURLs), 힌트에 URL 표시 (ShowURLHint), 선택된 텍스트를 친근한 URL로 교체(SetSelTextToFriendlyURL) 등이 URL 감지 기능에 추가되었다. Text 어트리뷰트도 일부 변경되었다. 프로퍼티에 BackColor, Disabled, Hidden, Link, Offset, RevAuthor, Subscript가 추가되었다. TParaAttributes에도 cpaAlignment, cpaNumbering, cpaFirstIndent, cpaLeftIndent, cpaRightIndent, cpaTabStops 등 새 타입이 생겼다. ConsistentAttributes 프로퍼티가 새로 생겼다 . 마지막으로, TCustomRichEdit에 새 퍼블릭 메소드 RenderRange 가 추가 되었다. VCL 현대화 작업 새 기본 폰트 VCL 애플리케이션용 기본 글꼴은 이제 "Segoe UI, 9"이다. VCL 스타일의 제목 글꼴도 같은 기본 글꼴이 적용된다. Memo와 RichEdit에 새 프로퍼티 EditMargins 추가 TCustomMemo에 새 프로퍼티가 추가됬다. EditMargins 속성을 이용해 에디터 안쪽 좌/우측 여백을 설정할 수 있다. TCustomMemo를 상속받은 TMemo, TDBMemo, TRichEdit, TDBRichEdit에 모두 퍼블리쉬(published) 된다. 그림. TMemo은 TCustomMemo를 상속받기때문에 EditMargins 프로퍼티를 이용하여 에디터 안쪽 좌/우측 여백을 지정할 수 있다. Auto를 True로 지정하면, 글꼴 크기에 맞게 여백이 반영된다. 그룹박스와 라디오그룹용 외곽선 표시 설정 및 헤더 폰트 속성 추가 ShowFrame: 외곽선 표시 여부를 결정 HeaderFont: 그룹 헤더의 폰트를 설정 DefaultHeaderFont: 그룹 헤더에 디펄드 폰트를 적용할 것인지 여부를 지정 TCustomGroupBox를 상속받은 TGroupBox와 TRadioGroup에 모두 적용된다. TComboBox용 DropDownWidth 프로퍼티 추가 DropDownWidth: 드롭 다운 항목 상자의 폭을 지정 AutoDropDownWidth: 드롭 다운 항목에 맞게 자동으로 항목 상자의 폭이 변경됨 TCustomComboBox를 상속받은 TComboBox, TDBComboBox, TDBLookupComboBox 등의 컴포넌트에 적용된다. TTreeView에 체크박스 표시 기능 추가 CheckBoxes 프로퍼티: 체크 박스 표시 여부를 지정 (더 자세한 내용: https://blogs.embarcadero.com/vcl-new-features-in-rad-studio-11/) TWICImage 다중 프레임 지원 TWICImage 타입에 새로 추가된 FrameCount 및 FrameIndex 프로퍼티를 함께 이용하면, 유효한 모든 다중 프레임 이미지 파일을 읽을 수 있다. 새 TLabelDBEdit 컴포넌트 TLabeledEdit VCL 컨트롤의 데이터 인식버전인 TDBLabeledEdit 컴포넌트가 새로 추가되었다. 이것을 구현하기 위해 관련된 컨트롤의 계층 구조가 변경되었다. TCustomLabeledEdit TCustomMaskEdit로부터 상속됨 새 프로퍼티: Align, EditMask, 등 TCustomMaskEdit에 의해 상속받게 된 것들 TDBEdit TCustomLabeledEdit로부터 상속됨 TDBLabeledEdit 새 컨트롤: TDBEdit로부터 상속됨 또한, TFlowPanel과 TGridPanel 컨테이너 안에 TLabeledEdit 컨트롤이 들어갈 수 있다. 에러 메시지 강화 스트림으로 폼을 생성하는 동안 오류가 발생하면 오류 메시지에 폼 파일 이름이 표시된다. 예외 대화창에서 오류 메시지를 클립보드로 복사할 수 있도록 "Copy" 버튼이 추가되었다. 쿨바 셰브론 지원 쿨바(TCoolbar)에 셰브론(Chevron)을 표시할 수 있는 ShowChevron 프로퍼티가 추가되었다. 쿨바의 밴드에 툴바(TToolbar)를 설정하고, Wrapable 속성을 False로 설정한 경우 툴바 아이콘이 표시되지 않는 너비인 경우 셰브론이 표시된다. NumberBox 강화 TNumberBox는 10.4.2에서 새로 추가된 컨트롤이다. 이제 여기에 새 기능이 추가되었다. CurrencyFormat 타입이 Byte에서 TNumberBoxCurrencyFormat으로 변경 ValueCurrency 프로퍼티 새로 추가 DisplayFormat 프로퍼티가 이제 퍼블리쉬(published) 이므로 오브젝트 인스펙트에 표시된다. 쓰레드 안전성 강화 일반적으로 UI 컨트롤은 메인 UI 쓰레드에서 생성되어야 한다. 만약 VCL 컨트롤을 백그라운드 쓰레드에서 생성하면, 생성 행위가 정의되지 않고 access violation 에러 즉 상당히 불분명한 에러를 유발한다. 이런 이유 때문에 새로 추가된 클래스 프로퍼티: TControl.RaiseOnNonMainThreadUsage 이 프로퍼티가 True로 지정되면, 메인 쓰레드가 아닌 쓰레드에서 TWinControl 윈도우 핸들이 생성되는 경우 VCL은 예외를 발생시켜서 실수로 인해 생길 수 있는 문제를 방지하도록 한다. COM 또는 기타 경우에는 부가(secondary) 쓰레드에서 핸들을 생성하는 것이 정당하므로 VCL 역시 마찬가지로 여전히 허용한다. VCL StyleUtils.inc 일반 유닛으로 전환 인클루드 파일인 StyleUtils.inc 이 이제 일반 유닛으로 변환되었다. 이제 개발자(및 컴포넌트 제공자)는 자신들의 코드와 VCL 스타일을 더 잘 통합할 수 있게 되었다. 예전에 인클루드 파일이었을 때에는 프라이빗 타입으로 정의되어 있어서 변형과 확장이 대체로 불가능했었지만, 이 새 유닛에서는 가능하다. 주의: 코드를 유닛으로 옮기고 일부 데이터 타입을 퍼블릭(public)으로 지정하여 접근할 수 있게 하는 데에 동의했지만, 우리는 여전히 이 스타일 API를 변경할 권리가 있으며 VCL과 RTL 라이브러리에서 일반적으로 제공하는 외부 코드와 호환성 수준을 계속 동일하게 유지한다고 보장하지는 않는다. TDateTimePicker TDateTimePicker에 Kind 프로퍼티가 추가됨 (사용자가 에서 날짜와 시간을 함께 변경 가능) 그외 변경들 TOpenTextFileDialog에 EncodingIndex와 ShowEncodingList 속성 추가되어 인코딩 드롭다운 목록을 활성화해 사용 가능 TTrackbar에 OnTracking 이벤트 추가(트랙바의 Thumb 위치 변경 시 트리거 됨) TPageControl.FindNextPage에 CheckTabEnable 파라미터가 추가되어 비활성화된 탭을 건너뛰기 가능 TButtonCategory는 VisibleGutter 속성을 갖음 TDateTimePicker와 TRichEdit 비활성화 시 정상적으로 표시 TScrollBox는 이번 릴리즈에서 마우스 휠을 자동 지원(이 변경사항은 포커스가 없는 컨트롤에 마우스 휠을 활성화해 원치않는 방식으로 기존 응용프로그램에 영향을 줄 수 있음) VCL의 ScaleImage 함수가 알파 채널을 지원 TVirtualImageList.Image가 적절한 속성 설정기(setter)를 가짐 TTreeNode는 nsDropHilted 상태를 지원 폼의 기본 크기가 더 커짐 SetSelText와 SetSelTextBuf에서 Undo 버퍼를 재설정하지 옵션을 제공한다. 이것은 CanUndoSelText 라는 새 프로퍼티에서 관리한다. 기본값은 False인데 이전(backward) 호환성을 유지하기 위해서이다. 만약 True로 지정하면 Undo를 호출하도록 (또는 UI 화면에서 Undo를 작동시킬 수 있도록) 허용하기 때문에 SetSelText 또는 SetSelTextBuf를 호출했거나 또는 SelText 프로퍼티에 값을 할당했기 때문에 발생된 변경을 취소할 수 있다. TEdgeBrowser 소폭 개선 TCustomTitleBarPanel은 TitleButtonClose, TitleButtonRestore, TitleButtonMin 속성과 OnUpdateTitlebarButtons 이벤트를 제공 TPngImage 객체는 TWICImage객체로 할당 및 할당받을(Assign to and from) 수 있음 TWinControl은 LockDrawing과 UnlockDrawing을 지원, WM_SETDRAW 윈도우 메시지 실행 시 트리거 됨 TWinControl.LockDrawing 메소드로 컨트롤 업데이트 비활성 TWinControl.UnlockDrawing 메소드로 컨트롤 업데이트 활성 TWinControl.IsDrawingLocked 속성은 LockDrawing이 호출된 경우 True 반환(그리고 UnlockDrawing이 호출되지 않은 경우) TWinControl.RedrawDisabled 속성은 Win32 컨트롤 드로윙이 비활성화 된 경우 True 반환
  15. << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: VCL" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - VCL 관련 주요 업데이트 요약 TRichEdit 컴포넌트 RichEdit 4.1로 업데이트 (MSFTEDIT.dll) VCL 현대화 작업 새로운 기본 폰트 Memo와 RichEdit에 새 프로퍼티 EditMargins 추가 그룹박스와 라디오그룹 외곽선 표시 및 해더 폰트 속성 추가 TComboBox용 DropDownWidth 프로퍼티 추가 TTreeView에 체크박스 표시 기능 추가 TWICImage 다중 프레임 지원 새로운 TLabelDBEdit 컴포넌트 에러 메시지 강화 쿨바 셰브론 지원 NumberBox 강화 쓰레드 안전성 강화 VCL StyleUtils.inc 일반 파일로 전환 그외 변경들 RAD 스튜디오는 11.0에서 VCL 라이브러리에 작은 개선을 많이 했다. 주로 윈도우 10과 일치하지 않는 몇가지 XP 잔재를 제거하기, 그리고 핵심 라이브러리 기능을 향상하기에 촛점을 맞추었다. TRichEdit 컴포넌트 RichEdit 4.1로 업데이트 (MSFTEDIT.dll) TRichEdit 컨트롤이 새로 구현되었다. 더 최신 윈도우를 지원한다. 또한 TDBRichEdit.Lines 는 이제 퍼블릭 프로퍼티이다. URL 활성화 (EnableURLs), 힌트에 URL 표시 (ShowURLHint), 선택된 텍스트를 친근한 URL로 교체(SetSelTextToFriendlyURL) 등이 URL 감지 기능에 추가되었다. Text 어트리뷰트도 일부 변경되었다. 프로퍼티에 BackColor, Disabled, Hidden, Link, Offset, RevAuthor, Subscript가 추가되었다. TParaAttributes에도 cpaAlignment, cpaNumbering, cpaFirstIndent, cpaLeftIndent, cpaRightIndent, cpaTabStops 등 새 타입이 생겼다. ConsistentAttributes 프로퍼티가 새로 생겼다 . 마지막으로, TCustomRichEdit에 새 퍼블릭 메소드 RenderRange 가 추가 되었다. VCL 현대화 작업 새 기본 폰트 VCL 애플리케이션용 기본 글꼴은 이제 "Segoe UI, 9"이다. VCL 스타일의 제목 글꼴도 같은 기본 글꼴이 적용된다. Memo와 RichEdit에 새 프로퍼티 EditMargins 추가 TCustomMemo에 새 프로퍼티가 추가됬다. EditMargins 속성을 이용해 에디터 안쪽 좌/우측 여백을 설정할 수 있다. TCustomMemo를 상속받은 TMemo, TDBMemo, TRichEdit, TDBRichEdit에 모두 퍼블리쉬(published) 된다. 그림. TMemo은 TCustomMemo를 상속받기때문에 EditMargins 프로퍼티를 이용하여 에디터 안쪽 좌/우측 여백을 지정할 수 있다. Auto를 True로 지정하면, 글꼴 크기에 맞게 여백이 반영된다. 그룹박스와 라디오그룹용 외곽선 표시 설정 및 헤더 폰트 속성 추가 ShowFrame: 외곽선 표시 여부를 결정 HeaderFont: 그룹 헤더의 폰트를 설정 DefaultHeaderFont: 그룹 헤더에 디펄드 폰트를 적용할 것인지 여부를 지정 TCustomGroupBox를 상속받은 TGroupBox와 TRadioGroup에 모두 적용된다. TComboBox용 DropDownWidth 프로퍼티 추가 DropDownWidth: 드롭 다운 항목 상자의 폭을 지정 AutoDropDownWidth: 드롭 다운 항목에 맞게 자동으로 항목 상자의 폭이 변경됨 TCustomComboBox를 상속받은 TComboBox, TDBComboBox, TDBLookupComboBox 등의 컴포넌트에 적용된다. TTreeView에 체크박스 표시 기능 추가 CheckBoxes 프로퍼티: 체크 박스 표시 여부를 지정 (더 자세한 내용: https://blogs.embarcadero.com/vcl-new-features-in-rad-studio-11/) TWICImage 다중 프레임 지원 TWICImage 타입에 새로 추가된 FrameCount 및 FrameIndex 프로퍼티를 함께 이용하면, 유효한 모든 다중 프레임 이미지 파일을 읽을 수 있다. 새 TLabelDBEdit 컴포넌트 TLabeledEdit VCL 컨트롤의 데이터 인식버전인 TDBLabeledEdit 컴포넌트가 새로 추가되었다. 이것을 구현하기 위해 관련된 컨트롤의 계층 구조가 변경되었다. TCustomLabeledEdit TCustomMaskEdit로부터 상속됨 새 프로퍼티: Align, EditMask, 등 TCustomMaskEdit에 의해 상속받게 된 것들 TDBEdit TCustomLabeledEdit로부터 상속됨 TDBLabeledEdit 새 컨트롤: TDBEdit로부터 상속됨 또한, TFlowPanel과 TGridPanel 컨테이너 안에 TLabeledEdit 컨트롤이 들어갈 수 있다. 에러 메시지 강화 스트림으로 폼을 생성하는 동안 오류가 발생하면 오류 메시지에 폼 파일 이름이 표시된다. 예외 대화창에서 오류 메시지를 클립보드로 복사할 수 있도록 "Copy" 버튼이 추가되었다. 쿨바 셰브론 지원 쿨바(TCoolbar)에 셰브론(Chevron)을 표시할 수 있는 ShowChevron 프로퍼티가 추가되었다. 쿨바의 밴드에 툴바(TToolbar)를 설정하고, Wrapable 속성을 False로 설정한 경우 툴바 아이콘이 표시되지 않는 너비인 경우 셰브론이 표시된다. NumberBox 강화 TNumberBox는 10.4.2에서 새로 추가된 컨트롤이다. 이제 여기에 새 기능이 추가되었다. CurrencyFormat 타입이 Byte에서 TNumberBoxCurrencyFormat으로 변경 ValueCurrency 프로퍼티 새로 추가 DisplayFormat 프로퍼티가 이제 퍼블리쉬(published) 이므로 오브젝트 인스펙트에 표시된다. 쓰레드 안전성 강화 일반적으로 UI 컨트롤은 메인 UI 쓰레드에서 생성되어야 한다. 만약 VCL 컨트롤을 백그라운드 쓰레드에서 생성하면, 생성 행위가 정의되지 않고 access violation 에러 즉 상당히 불분명한 에러를 유발한다. 이런 이유 때문에 새로 추가된 클래스 프로퍼티: TControl.RaiseOnNonMainThreadUsage 이 프로퍼티가 True로 지정되면, 메인 쓰레드가 아닌 쓰레드에서 TWinControl 윈도우 핸들이 생성되는 경우 VCL은 예외를 발생시켜서 실수로 인해 생길 수 있는 문제를 방지하도록 한다. COM 또는 기타 경우에는 부가(secondary) 쓰레드에서 핸들을 생성하는 것이 정당하므로 VCL 역시 마찬가지로 여전히 허용한다. VCL StyleUtils.inc 일반 유닛으로 전환 인클루드 파일인 StyleUtils.inc 이 이제 일반 유닛으로 변환되었다. 이제 개발자(및 컴포넌트 제공자)는 자신들의 코드와 VCL 스타일을 더 잘 통합할 수 있게 되었다. 예전에 인클루드 파일이었을 때에는 프라이빗 타입으로 정의되어 있어서 변형과 확장이 대체로 불가능했었지만, 이 새 유닛에서는 가능하다. 주의: 코드를 유닛으로 옮기고 일부 데이터 타입을 퍼블릭(public)으로 지정하여 접근할 수 있게 하는 데에 동의했지만, 우리는 여전히 이 스타일 API를 변경할 권리가 있으며 VCL과 RTL 라이브러리에서 일반적으로 제공하는 외부 코드와 호환성 수준을 계속 동일하게 유지한다고 보장하지는 않는다. TDateTimePicker TDateTimePicker에 Kind 프로퍼티가 추가됨 (사용자가 에서 날짜와 시간을 함께 변경 가능) 그외 변경들 TOpenTextFileDialog에 EncodingIndex와 ShowEncodingList 속성 추가되어 인코딩 드롭다운 목록을 활성화해 사용 가능 TTrackbar에 OnTracking 이벤트 추가(트랙바의 Thumb 위치 변경 시 트리거 됨) TPageControl.FindNextPage에 CheckTabEnable 파라미터가 추가되어 비활성화된 탭을 건너뛰기 가능 TButtonCategory는 VisibleGutter 속성을 갖음 TDateTimePicker와 TRichEdit 비활성화 시 정상적으로 표시 TScrollBox는 이번 릴리즈에서 마우스 휠을 자동 지원(이 변경사항은 포커스가 없는 컨트롤에 마우스 휠을 활성화해 원치않는 방식으로 기존 응용프로그램에 영향을 줄 수 있음) VCL의 ScaleImage 함수가 알파 채널을 지원 TVirtualImageList.Image가 적절한 속성 설정기(setter)를 가짐 TTreeNode는 nsDropHilted 상태를 지원 폼의 기본 크기가 더 커짐 SetSelText와 SetSelTextBuf에서 Undo 버퍼를 재설정하지 옵션을 제공한다. 이것은 CanUndoSelText 라는 새 프로퍼티에서 관리한다. 기본값은 False인데 이전(backward) 호환성을 유지하기 위해서이다. 만약 True로 지정하면 Undo를 호출하도록 (또는 UI 화면에서 Undo를 작동시킬 수 있도록) 허용하기 때문에 SetSelText 또는 SetSelTextBuf를 호출했거나 또는 SelText 프로퍼티에 값을 할당했기 때문에 발생된 변경을 취소할 수 있다. TEdgeBrowser 소폭 개선 TCustomTitleBarPanel은 TitleButtonClose, TitleButtonRestore, TitleButtonMin 속성과 OnUpdateTitlebarButtons 이벤트를 제공 TPngImage 객체는 TWICImage객체로 할당 및 할당받을(Assign to and from) 수 있음 TWinControl은 LockDrawing과 UnlockDrawing을 지원, WM_SETDRAW 윈도우 메시지 실행 시 트리거 됨 TWinControl.LockDrawing 메소드로 컨트롤 업데이트 비활성 TWinControl.UnlockDrawing 메소드로 컨트롤 업데이트 활성 TWinControl.IsDrawingLocked 속성은 LockDrawing이 호출된 경우 True 반환(그리고 UnlockDrawing이 호출되지 않은 경우) TWinControl.RedrawDisabled 속성은 Win32 컨트롤 드로윙이 비활성화 된 경우 True 반환 View full RAD 스튜디오 버전별 신기능
  16. 험프리

    11.0 알렉산드리아 IDE

    << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: IDE" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - IDE 관련 주요 업데이트 요약 IDE에 고해상도(High DPI)가 반영됨 VCL용 High DPI 폼 디자이너 FMX용 High DPI 폼 디자이너 Welcome 페이지 Open Tools API 변경 디자인 시점에 VCL 스타일 미리보기 폼 디자인과 코드 수정 옵션 대화창 성능 파이어몽키 디자인 화면의 지시선과 마진(Margins) 델파이 코드 인사이트(DelphiLSP) 개선 DelphiLSP 클래식 코드 완성 기능 제거 Visual Studio Code 및 기타 에디터 용 DelphiLSP 빌드 이벤트에 대한 경고 기타 IDE 변경 폰트 변경 기타 IDE에 고해상도(High DPI)가 반영됨 델파이,C++빌더, RAD 스튜디오의 IDE에서는 high DPI가 활성화되어 있다. IDE에 high DPI를 활성화하여 실행하기는 실행 옵션이다. IDE의 모든 창에서 high DPI를 지원한다. 화면 배율 변경, 다른 모니터로 창을 드래그하여 옮기기 등의 행위에도 모두 적용된다. 이 IDE 기능이 적용되는 대상은 다음과 같다. 메인 창 모든 도킹되는 창 (오브젝트 인스펙터 창, 프로젝트 창, 스트럭처 창, 메시지 창 등등). 오브젝트 인스펙터의 프로퍼티 에디터 역시 모두 포함 모든 대화 창 (새 항목 창, IDE 옵션 창, 프로젝트 옵션 창, About 창 등등) 모든 컨텐츠 창 (코드 에디터 창, 폼 디자이너 창, 히스토리 창 등등) IDE 스타일 (라이크, 다크, 마운틴 미스트) 역시 high DPI를 지원하도록 업데이트 됨 VCL용 High DPI 폼 디자이너 RAD 스튜디오 11.0에서 화면 배율을 다루는 방법은 3가지이다. Tools > Options > User Interface > Form Designer > High DPI 에서 맞춤 설정을 할 수 있다. Automatic(스크린 PPI 자동 적용), Low DPI (96 PPI), User Editable (직접 PPI 값 지정) 중 한가지 옵션을 지정할 수 있다. FMX용 High DPI 폼 디자이너 파이어몽키 디자이너 화면 배율은 FMX 폼이 실행될 때 반영하는 방식이 그대로 적용된다. 좌표는 동일하게 유지된다. 즉, 버튼이 (20,20)에 배치되어 있다면, FMX 디자이너가 표현되는 모니터의 high DPI 배율과 관계 없이 (20,20)에 위치한다. 시각적 배율 조정만 가능하다. Welcome 페이지 VCL을 사용하여 완전히 재구축되었다. 아래 목적을 위해 고안되었다. 프레임 여러개를 가진다. 프레임 추가, 삭제, 위치 변경, 크기 조정 등을 원하는 대로 할 수 있다. high DPI에서 화면 배율 조정이 잘된다. 엠바카데로 자체 기술을 사용한다. Open Tools API 변경 스플래시 화면, About 박스, IDE 인사이트 및 기타 영역 등 이미지를 전달하는 모든 API에서 HighDPI 이미지를 지원한다. 동일한 아이콘을 여러 해상도로 전달할 수 있다. 이 이미지들을 내부에 있는 이미지 컬렉션에 추가하고 버추얼 이미지 리스트를 사용한다. 해당 메소드에서 모든 TGraphic 배열을 받을 수 있지만, PNG 이미지를 권장한다. 디자인 시점에 VCL 스타일 미리보기 폼 디자이너 안에서 스타일을 사용하여 VCL 컨트롤을 렌더링할 수 있다. StyleName 프로퍼티 에디터에는 해당 프로젝트에서 사용할 수 있는 모든 스타일이 반영되고 (버튼이 어떻게 보이게 되는 지) 미리 볼 수 있다. 스타일 항목 중에서 “Windows”를 선택하면 플랫폼 스타일을 사용하겠다는 의미이며, 이 프로퍼티를 비워두면 부모 컨트롤 (또는 부모 폼)의 스타일을 사용하겠다는 의미라는 점을 명심하자. 현재 VCL 폼 디자이너는 커스텀 윈도우 10-스타일 타일틀 바와 프레임으로 되어 있으며 클래식 윈도우 프레임을 사용하지 않는다. 만약 픔에 스타일이 지정되지 않으면, 윈도우 10 스타일이 사용된다. 만약 폼에서 VCL 스타일을 사용하면 폼에서 선택한 그 스타일이 프레임에 반영된다는 점을 알아두자. 멋진 화면을 가진 프로토타입을 훨씬 더 빠르게 작성할 수 있게 되었다. 스타일이 적용된 폼과 컨트롤이 개발환경에서 보이는 모습 그대로 실행 시에 표현된다. 경고: 기본 설정에서는 이 기능이 켜져있지 않다. 이기능을 켜려면 다음 옵션으로 가서 활성화 하면 된다. Tools > Options | User Interface > Form designer | Enable VCL Styles 콘트롤 별 스타일 적용 시 더 효과적이다. 폼 디자인과 코드 수정 10.4.2까지는 해당 폼이 표현되고 있는 폼 디자이너에 창이 열려있는 상태에서 다른 창에서 해당 폼에 대한 코드 에디터를 열면 Design 탭이 비활성화 되어 있었다. 이제는 Design 탭이 항상 활성화되어 있다. 하지만, 만약 다른 창에서 이미 폼이 열려있다는 메시지가 표시된다; 이 때 [Move Designer] 버튼을 클릭하면 현재 창으로 폼 디자이너를 가져올 수 있다. 다중 모니터를 사용 중이라면 개발 생산성이 더욱 높아진다. 옵션 대화창 성능 옵션 대화창 (IDE 옵션과 프로젝트 옵션 모두)이 이전 버전보다 훨씬 빠르게 열린다. 예전에는 대화창이 열릴 때 모든 페이지가 로딩되었지만; 이제는 화면에 보이는 페이지 하나만 로딩되고 해당 컨트롤만 생성된다. 써드 파티 제공사는 이 변화가 써드 파티에서 제공하는 설정 프레임에 영향을 끼칠 수 있음을 알아두어야 한다. 파이어몽키 디자인 화면의 지시선과 마진(Margins) 파이어몽키 폼 디자이너는 11.0에서 지시선 등 VCL 폼 디자이너에 있던 기타 기능들을 도입했다 (구현 방식은 다르다). 컨트롤의 위치를 옮기거나 크기를 변경할 때 힌트가 표시된다. 또한 컨트롤을 정렬하기 쉽게 지시선이 표시되고, 표준 마진(Margin) 간격이 숫자로 나타된다. 델파이 코드 인사이트(DelphiLSP) 개선 DelphiLSP RAD 스튜디오 11.0에서 LSP는 품질에 집중했으며 클래식 코드 인사이트를 훌륭하게 대체할 수 있는 수준으로 개선했다. 인클루드 파일({$I '파일명'}, *.inc) 구문 분석 LSP 서버 재시작시 성능 향상 LSP 서버가 이해할 수 있는 구문 항목 개선 클래식 코드 완성 기능 제거 델파이 클래식 코드 완성 기능은 IDE에서 제거되었다. 이제는 델파이 코드 인사이트에서 DelphiLSP 만 사용된다. Visual Studio Code 및 기타 에디터 용 DelphiLSP RAD 스튜디오 11.0에서 DelphiLSP는 다른 에디터에서도 사용할 수 있다. 그 일환으로, DelphiLSP를 사용하는 비주얼 스튜디오 코드 확장팩을 만들었다. 더 자세한 내용: 여기를 참조 빌드 이벤트에 대한 경고 빌드 이벤트는 임의의 명령을 시스템에서 실행할 수 있다. 써드 파티에서 받은 프로젝트에 빌드 이벤트가 포함되어 있는 경우는 흔하다. 이제 RAD 스튜디오는 이제 (현재 빌드하는 대상이 아닌 구성까지 포함하여) 어떤 프로젝트 구성 안에든 빌드 이벤트가 설정된 프로젝트를 빌드할 때 경고를 한다. 경고: 빌드 이벤트인 경우 "Always trust this project" 옵션을 선택하면, 새로 변경된 버전을 받아오고, 예전에 없던 빌드 이벤트가 새 버전에 반영되어 있어도, 더이상 경고를 하지 않은다. 이것은 보안이 약해지는 것을 알면서도 개발자를 편하게 하기 위한 옵션이다. 따라서 이 옵션이 모든 상황에서 완전히 예방할 수 있는 옵션이라고 받아들여서는 안된다. 기타 IDE 변경 폰트 변경 코드 에디터에서 Consolas가 기본 폰트가 되었다. (Consolas는 거의 모든 컴퓨터에 들어있는 널리 사용되는 폰트이다). Fira Code 등 기타 여러 개발용 폰트들이 IDE와 함께 설치된다. 코드 에디터에서 합자(ligature)를 지원하지 않지만, 이 새 폰트들은 high DPI에서 텍스트를 선명하게 표현한다. 기타 'View Messages' 가 코드 에디터의 컨텍스트 메뉴에 다시 들어갔다. 코드 인사이트 진행 막대는 작업이 완료되면 숨는다.
  17. << 위로 이동 (최신 버전 포함 모든 버전) RAD 스튜디오 11.0 알렉산드리아 "새 기능 한글 요약본: IDE" 입니다. 11.0 알렉산드리아의 모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다. 11.0 알렉산드리아 - IDE 관련 주요 업데이트 요약 IDE에 고해상도(High DPI)가 반영됨 VCL용 High DPI 폼 디자이너 FMX용 High DPI 폼 디자이너 Welcome 페이지 Open Tools API 변경 디자인 시점에 VCL 스타일 미리보기 폼 디자인과 코드 수정 옵션 대화창 성능 파이어몽키 디자인 화면의 지시선과 마진(Margins) 델파이 코드 인사이트(DelphiLSP) 개선 DelphiLSP 클래식 코드 완성 기능 제거 Visual Studio Code 및 기타 에디터 용 DelphiLSP 빌드 이벤트에 대한 경고 기타 IDE 변경 폰트 변경 기타 IDE에 고해상도(High DPI)가 반영됨 델파이,C++빌더, RAD 스튜디오의 IDE에서는 high DPI가 활성화되어 있다. IDE에 high DPI를 활성화하여 실행하기는 실행 옵션이다. IDE의 모든 창에서 high DPI를 지원한다. 화면 배율 변경, 다른 모니터로 창을 드래그하여 옮기기 등의 행위에도 모두 적용된다. 이 IDE 기능이 적용되는 대상은 다음과 같다. 메인 창 모든 도킹되는 창 (오브젝트 인스펙터 창, 프로젝트 창, 스트럭처 창, 메시지 창 등등). 오브젝트 인스펙터의 프로퍼티 에디터 역시 모두 포함 모든 대화 창 (새 항목 창, IDE 옵션 창, 프로젝트 옵션 창, About 창 등등) 모든 컨텐츠 창 (코드 에디터 창, 폼 디자이너 창, 히스토리 창 등등) IDE 스타일 (라이크, 다크, 마운틴 미스트) 역시 high DPI를 지원하도록 업데이트 됨 VCL용 High DPI 폼 디자이너 RAD 스튜디오 11.0에서 화면 배율을 다루는 방법은 3가지이다. Tools > Options > User Interface > Form Designer > High DPI 에서 맞춤 설정을 할 수 있다. Automatic(스크린 PPI 자동 적용), Low DPI (96 PPI), User Editable (직접 PPI 값 지정) 중 한가지 옵션을 지정할 수 있다. FMX용 High DPI 폼 디자이너 파이어몽키 디자이너 화면 배율은 FMX 폼이 실행될 때 반영하는 방식이 그대로 적용된다. 좌표는 동일하게 유지된다. 즉, 버튼이 (20,20)에 배치되어 있다면, FMX 디자이너가 표현되는 모니터의 high DPI 배율과 관계 없이 (20,20)에 위치한다. 시각적 배율 조정만 가능하다. Welcome 페이지 VCL을 사용하여 완전히 재구축되었다. 아래 목적을 위해 고안되었다. 프레임 여러개를 가진다. 프레임 추가, 삭제, 위치 변경, 크기 조정 등을 원하는 대로 할 수 있다. high DPI에서 화면 배율 조정이 잘된다. 엠바카데로 자체 기술을 사용한다. Open Tools API 변경 스플래시 화면, About 박스, IDE 인사이트 및 기타 영역 등 이미지를 전달하는 모든 API에서 HighDPI 이미지를 지원한다. 동일한 아이콘을 여러 해상도로 전달할 수 있다. 이 이미지들을 내부에 있는 이미지 컬렉션에 추가하고 버추얼 이미지 리스트를 사용한다. 해당 메소드에서 모든 TGraphic 배열을 받을 수 있지만, PNG 이미지를 권장한다. 디자인 시점에 VCL 스타일 미리보기 폼 디자이너 안에서 스타일을 사용하여 VCL 컨트롤을 렌더링할 수 있다. StyleName 프로퍼티 에디터에는 해당 프로젝트에서 사용할 수 있는 모든 스타일이 반영되고 (버튼이 어떻게 보이게 되는 지) 미리 볼 수 있다. 스타일 항목 중에서 “Windows”를 선택하면 플랫폼 스타일을 사용하겠다는 의미이며, 이 프로퍼티를 비워두면 부모 컨트롤 (또는 부모 폼)의 스타일을 사용하겠다는 의미라는 점을 명심하자. 현재 VCL 폼 디자이너는 커스텀 윈도우 10-스타일 타일틀 바와 프레임으로 되어 있으며 클래식 윈도우 프레임을 사용하지 않는다. 만약 픔에 스타일이 지정되지 않으면, 윈도우 10 스타일이 사용된다. 만약 폼에서 VCL 스타일을 사용하면 폼에서 선택한 그 스타일이 프레임에 반영된다는 점을 알아두자. 멋진 화면을 가진 프로토타입을 훨씬 더 빠르게 작성할 수 있게 되었다. 스타일이 적용된 폼과 컨트롤이 개발환경에서 보이는 모습 그대로 실행 시에 표현된다. 경고: 기본 설정에서는 이 기능이 켜져있지 않다. 이기능을 켜려면 다음 옵션으로 가서 활성화 하면 된다. Tools > Options | User Interface > Form designer | Enable VCL Styles 콘트롤 별 스타일 적용 시 더 효과적이다. 폼 디자인과 코드 수정 10.4.2까지는 해당 폼이 표현되고 있는 폼 디자이너에 창이 열려있는 상태에서 다른 창에서 해당 폼에 대한 코드 에디터를 열면 Design 탭이 비활성화 되어 있었다. 이제는 Design 탭이 항상 활성화되어 있다. 하지만, 만약 다른 창에서 이미 폼이 열려있다는 메시지가 표시된다; 이 때 [Move Designer] 버튼을 클릭하면 현재 창으로 폼 디자이너를 가져올 수 있다. 다중 모니터를 사용 중이라면 개발 생산성이 더욱 높아진다. 옵션 대화창 성능 옵션 대화창 (IDE 옵션과 프로젝트 옵션 모두)이 이전 버전보다 훨씬 빠르게 열린다. 예전에는 대화창이 열릴 때 모든 페이지가 로딩되었지만; 이제는 화면에 보이는 페이지 하나만 로딩되고 해당 컨트롤만 생성된다. 써드 파티 제공사는 이 변화가 써드 파티에서 제공하는 설정 프레임에 영향을 끼칠 수 있음을 알아두어야 한다. 파이어몽키 디자인 화면의 지시선과 마진(Margins) 파이어몽키 폼 디자이너는 11.0에서 지시선 등 VCL 폼 디자이너에 있던 기타 기능들을 도입했다 (구현 방식은 다르다). 컨트롤의 위치를 옮기거나 크기를 변경할 때 힌트가 표시된다. 또한 컨트롤을 정렬하기 쉽게 지시선이 표시되고, 표준 마진(Margin) 간격이 숫자로 나타된다. 델파이 코드 인사이트(DelphiLSP) 개선 DelphiLSP RAD 스튜디오 11.0에서 LSP는 품질에 집중했으며 클래식 코드 인사이트를 훌륭하게 대체할 수 있는 수준으로 개선했다. 인클루드 파일({$I '파일명'}, *.inc) 구문 분석 LSP 서버 재시작시 성능 향상 LSP 서버가 이해할 수 있는 구문 항목 개선 클래식 코드 완성 기능 제거 델파이 클래식 코드 완성 기능은 IDE에서 제거되었다. 이제는 델파이 코드 인사이트에서 DelphiLSP 만 사용된다. Visual Studio Code 및 기타 에디터 용 DelphiLSP RAD 스튜디오 11.0에서 DelphiLSP는 다른 에디터에서도 사용할 수 있다. 그 일환으로, DelphiLSP를 사용하는 비주얼 스튜디오 코드 확장팩을 만들었다. 더 자세한 내용: 여기를 참조 빌드 이벤트에 대한 경고 빌드 이벤트는 임의의 명령을 시스템에서 실행할 수 있다. 써드 파티에서 받은 프로젝트에 빌드 이벤트가 포함되어 있는 경우는 흔하다. 이제 RAD 스튜디오는 이제 (현재 빌드하는 대상이 아닌 구성까지 포함하여) 어떤 프로젝트 구성 안에든 빌드 이벤트가 설정된 프로젝트를 빌드할 때 경고를 한다. 경고: 빌드 이벤트인 경우 "Always trust this project" 옵션을 선택하면, 새로 변경된 버전을 받아오고, 예전에 없던 빌드 이벤트가 새 버전에 반영되어 있어도, 더이상 경고를 하지 않은다. 이것은 보안이 약해지는 것을 알면서도 개발자를 편하게 하기 위한 옵션이다. 따라서 이 옵션이 모든 상황에서 완전히 예방할 수 있는 옵션이라고 받아들여서는 안된다. 기타 IDE 변경 폰트 변경 코드 에디터에서 Consolas가 기본 폰트가 되었다. (Consolas는 거의 모든 컴퓨터에 들어있는 널리 사용되는 폰트이다). Fira Code 등 기타 여러 개발용 폰트들이 IDE와 함께 설치된다. 코드 에디터에서 합자(ligature)를 지원하지 않지만, 이 새 폰트들은 high DPI에서 텍스트를 선명하게 표현한다. 기타 'View Messages' 가 코드 에디터의 컨텍스트 메뉴에 다시 들어갔다. 코드 인사이트 진행 막대는 작업이 완료되면 숨는다. View full RAD 스튜디오 버전별 신기능
×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.