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

이 사이트 검색

검색 태그: '생산성 팁'.

  • 태그로 검색

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

콘텐츠 유형


게시판

  • 엠바카데로 (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. << DelphiCon 2020 목록으로 이동 DelphiCon 의 2020 시리즈 중, Code Faster in Delphi - Alister Christie 의 한글 요약본입니다. 델파이 코딩 속도를 높여주는 신간 ‘Code Faster in Delphi’ 에 수록된 유용한 팁 중 몇가지를 데모와 함께 알려줍니다. 발표자 (Alister Christie)는 델파이를 배우려는 개발자에게 도움이 되는 LearnDelphi.tv를 운영하고 있습니다. 원본 비디오 시청을 권합니다. Alister의 비디오는 학습하기 좋게 편집되어서 제공됩니다. 이 글의 유용한 단축키가 손에 익고 나면, 더 많은 것도 활용해 보세요: 델파이와 RAD 스튜디오에서 활용할 수 있는 더 많은 단축키가 정리된 파일 다운로드 목차 코드 에디터 단축키 폼 디자이너에서 빠르게 작업하기 최신 RTL의 새 언어 기능을 이용하여, 오래된 코드를 현대화하기 정규식을 활용하여 웹페이지에 있는 모든 이미지의 url을 뽑아서 델파이로 가져오기 코드 에디터 단축키 (비디오 보기) 아래 단축키 중 혹시 사용하고 있지 않는 것이 있는 지 보고 이제부터라도 사용해보자. F12 (폼 디자이너와 코드 에디터 전환): 매주 자주하는 작업이다. 즉, 단축키를 쓰면 하루에도 엄청난 시간이 절약된다. Ctrl+Space와 방향키 (키워드를 빠르고 정확하게 입력하기): 키워드 앞글자 몇 자만 타이핑하고 Ctrl+Space를 사용하면 해당 키워드 목록이 표시된다. 이때, 방향키를 이용하여 원하는 키워드를 선택하면 자동 완성된다. Ctrl+왼쪽 방향키 (현재 줄에서 코드의 가장 앞쪽으로 커서를 이동) Ctrl+Shift+v (지역 변수 선언): 일단 변수명 부터 타이핑한다. 그리고 나서 Ctrl+Shift+v를 사용하면, 변수 선언을 바로 할 수 있다. Ctrl+y (현재 코드 줄을 한번에 삭제): 커서가 있는 곳의 코드 한 줄이 삭제된다. Ctrl+j (for 루프 코드를 빠르게 작성): 일단 for를 타이핑한다. 그리고 나서 Ctrl+j를 사용한다. Ctrl+Shift+c (구현부 코드 골격 자동 생성): 프로시저, 함수, 프로퍼티를 새로 만들 때는, 일단 선언부를 작성하고, Ctrl+Shift+c를 사용하면, 구현부 코드 골격이 자동 생성된다. 프로퍼티의 경우 선언된 Field와 Setter도 자동 생성된다. Ctrl+Shift+Alt+p (매개변수 동기화): 프로시저, 함수, 프로퍼티에서 매개 변수를 선언부( 또는 구현부에서) 변경하고, 그 자리에서 Ctrl+Shift+Alt+p를 사용하면 대응되는 구현부 (또는 선언부)의 매개 변수에도 똑 같이 반영되어 일치하게 된다. Ctrl+Shift+위/아래 방향키 (프로시저나 함수의 구현부와 선언부를 왔다갔다 하기) Ctrl+프로시저(또는 함수) 이름 클릭 (해당 프로시저나 함수의 내용으로 이동) Alt+좌/우 방향키 (뒤로 가기와 앞으로 가기: 이전 작업 위치로 가기 또는 다시 원래 위치로 되돌아 오기) Ctrl+Shif+1˜9 (코드에 북마크를 달기): 커서가 있는 줄에 해당 숫자가 지정된 북마크가 생긴다. 원하는 북마크로 이동하려면, Ctrl+1˜9를 사용한다. 참고: 겟잇 패키지 매니저에서 "bookmark"를 타이핑하고 검색하면, 보다 향상된 북마크를 설치할 수도 있다. 화면에서 코드를 한줄이라도 더 볼 수 있다: 단축키에 익숙해지면 툴바에서 해당 단축 아이콘 빼자. 툴바가 차지하는 영역을 줄일 수 있다. 예를 들어, 뒤로 가기와 앞으로 가기 아이콘을 드래그하여 툴바 바깥으로 꺼내면 툴바에서 없어진다 자주 쓰는 단축 아이콘으로 툴바를 구성하려면, 툴바에서 오른쪽 클릭 > Customize Ctrl+Shift+좌/우 방향키(코드 블록 지정) 후 시작하는 괄호 (선택된 곳의 앞뒤를 괄호로 감싸기): 대/중/소 괄호 모두 적용된다. 참고: 블록 선택 팁: And/Or 로 연결된 곳에서 Ctrl+w를 사용하면 선택되는 코드 블록이 한단위씩 늘어난다. Ctrl+/ (주석 처리): 해당 줄 앞에 //가 추가되어 주석으로 처리된다. (이미 //가 있는 주석에서 사용하면, //가 제거되어, 일반 코드가 된다) 여러 줄을 한번에 주석으로 바꾸려면, 해당 줄을 모두 선택한 상태에서 { 를 사용하여 감싸도 된다. 하지만, 각 줄 앞에 // 두는 주석 처리 방식이 더 일반적이다 Ctrl+q+b (선택 영역의 가장 앞으로 커서 이동) 후 Shift+위방향키 (앞에 있는 코드도 선택 영역에 넣기) Ctrl+q+k (선택 영역의 가장 뒤로 커서 이동) 후 Shift+아래 방향키 (뒤에 있는 코드도 선택 영역에 넣기) Shift+위/아래 방향키 (각 줄의 처음부터 끝까지를 모두 선택) Shift+Alt+위/아래 방향키 (각 줄에서 한칸만 선택): 예를 들어 모든 줄에서 한자씩 왼쪽으로 당기고 싶으며, 이 방법으로 선택하고 Delete키를 누른다 Ctrl+o+k (시작점에서 커서까지 사각형으로 코드 영역을 선택하기와 해당 줄 전체 선택하기를 선택하는 토글): 사각형으로 선택하기로 설정된 경에서는 Shift+위/아래/좌/우 방향키를 사용하여 코드의 일부 영역을 사각형으로 선택할 수 있다. 여러줄을 선택하고 Tab 또는 Shift+Tab (여러줄을 한번에 들여쓰기 또는 내어쓰기) Ctrl+Shift+I (또는 U)도 같은 기능 Ctrl+D (uses 절에 나열된 모든 유닛들을 한줄에 하나씩 배치) 주의! 이 단축키를 사용하려면, 먼저 Tools > Options > Language > Formatter > Delphi > Line Breaks 에서 Line Breaks in Uses clauses를 Yes로 설정해야 한다. 만약, Uses 절의 모든 유닛이 아니라, 일부 유닛 만 한 줄에 하나씩 배치하려면, 원하는 코드 영역을 선택한 후에 Ctrl+D를 사용한다. 폼 디자이너에서 빠르게 작업하기 (비디오 12분 15초부터 보기) TMemo를 폼에 추가할 때 바로 크기를 설정하기 툴 팔레트에서 TMemo를 클릭한다. 그리고 나서, 폼 위에서 TMemo가 위치할 왼쪽 위 지점에서 마우스 왼쪽 버튼을 누르고 그 상태에서 드래그하여 원하는 크기가 될 때까지 끌고 간 후에 마우스 버튼을 놓는다. TEdit 여러개를 폼에 한번에 추가하기 툴 팔레트에서 Shift+원하는 컴포넌트(TEdit)를 클릭하여 툴 팔레트에서 TEdit가 강조 표시되도록 한다. 그리고 나서, 폼 위에 원하는 갯수 만큼 마우스 왼쪽 버튼을 클릭한다. (툴 팔레트에 강조 표시된 컴포넌트를 풀려면, ESC를 클릭하거나 툴 팔레트에서 다른 컴포넌트를 선택한다.) 툴 팔레트 검색창에서 원하는 컨트롤을 타이핑하고 엔터키를 쳐서 바로 폼 위에 추가하기 툴 팔레트에서 Ctrl+Alt+p 설정을 한다 (툴 팔레트 > 오른쪽 클릭 > Properties > Persistent Search Filter 옵션을 활성화 하는 것과 같은 효과) TEdit를 폼 위에 추가하면, 해당 오브젝트 명이 Text 프로퍼티에 자동으로 들어간다. 이것을 지우기 해당 TEdit에서 오른쪽 클릭 > Clear Text (오브젝트 인스펙터에서 Text 프로퍼티를 찾아서 지우는 것과 같은 효과) 컨트롤의 Name, Text, Align 등을 변경하기 해당 컨트롤에서 오른쪽 클릭 > Quick Edit 뒤쪽에 가려져서 마우스로 선택하기 힘든 컨트롤의 위치/크기를 변경하기 스트럭처 창을 이용하여 해당 컨트롤을 선택 Ctrl+방향키 (위치 변경) 또는 Shift+방향키 (크기 변경) 팁! 덮고 있는 컨트롤에서 마우스 왼쪽 버튼을 누른 상태에서 ESC키를 사용한다 (그러면, 아래에 가려진 컨트롤이 선택된다). 그 상태에서 마우스를 드래그하여 뒤에 있는 컨트롤을 이동할 수 있다. 컨트롤 여러개의 위치를 한번에 정렬하기 스트럭처 창 또는 폼 에서 Shift+클릭으로 여러 컨트롤을 동시 선택하고 나서, 기준이 될 컨트롤을 마지막으로 한번 더 클릭한다 (기준 컨트롤만 모서리가 검게 표시되고, 나머지는 모소리가 회색이다). 그 상태에서, 오른쪽 클릭 > Position > Align에서 원하는 정렬을 선택한다. 컨트롤을 움직이지 않고 정렬션을 보기 컨트롤을 마우스 왼쪽 버튼으로 누른 채로 잠깐 기다린다. (또는 Shift키를 누른다) 참고로, VCL 폼 디자이너의 정렬선은,파랑색이 컨트롤 테두리 기준선이고, 핑크색은 컨트롤 안의 텍스트 기준선이다. 컨트롤을 다른 컨트롤 안에 넣기 스트럭처 창에서 컨트롤을 드래그하여 컨테이너가 될 컨트롤 안에 끌어 넣는다. 또는, 폼 위에서 컨트롤을 Ctrl+x하고 컨테이너가 될 컨트롤을 마우스로 선택한 후 Ctrl+v를 한다. TSpeedButton을 사용해야하는데 "실수로" TButton을 사용했다면 폼 화면에서 Alt+F12를 사용하여 폼 코드로 이동한다. (폼 디자니어 > 오른쪽 클릭 > View As Text 와 같은 효과) 폼 코드에서 해당 컨트롤 이름을 검색한 후, "TButton"을 "TSpeedButton"으로 변경한다. 경고 창이 나타나서 SpeedButton 은 Tab Order 프로퍼티가 없다고 해도 Ignore 버튼을 클릭한다. 오브젝트 인스펙터를 보면 TButton이 TSpeedButton으로 변경되었을 것이다. 하지만, 소스 코드에는 여전히 TButton으로 남아 있다. 따라서 컴파일을 시도한다. 그러면, 오류 창이 뜨면서 바꿀 것인지를 묻는 창이 뜬다. 이때, Yes를 클릭하면 소스 코드 역시 TSpeedButton으로 변경되고 컴파일이 진행된다. 이미 설정한 컨트롤을 기준으로 비슷한 것들을 추가하기 폼 디자이너에서 원하는 컨트롤을 선택하고 Ctrl+c 한 후에 메모장에서 Ctrl+v를 하면 해당 컨트롤을 구현하는 코드가 메모장에 복사되어 붙는다. (예를 들어, TButton을 TSpeedButton으로 변경하거나, Caption 프로퍼티의 값을 변경하는 등) 메모장에서 원하는 대로 코드를 바꾸고 나서, Ctrl+c 한다. 다시 폼 위에서 Ctrl+v를 하면 메모장에서 변경한 코드 대로 컨트롤이 추가된다. Ctrl+v를 3번 하면 해당 컨트롤 3개가 추가되므로,컨트롤 여러개를 추가할 때도 유용하다. 컨트롤 여러개에 공통으로 있는 프로퍼티를 한번에 변경하기 폼 디자이너에서 여러 컨트롤을 선택한 후 오브젝트 인스펙터의 검색창에서 원하는 프로퍼티를 타이핑하면, 해당하는 프로퍼티만 창에 표시되므로 해당는 프로퍼티의 값을 한번에 변경한다. 프로퍼티가 여러개 나타나는 경우, 화살표를 이용하여 원하는 프로퍼티를 선택한다. 최신 RTL의 새 언어 기능을 이용하여, 오래된 코드를 현대화하기 (비디오 20분 27초부터 보기) 오래전 부터 사용하던 아래의 코드를 보다 간결 명확한 현대식 코드로 바꿔보자. // 기존에 있던 코드 procedure TForm1.btnGetFileClick(Sender: Object); var F: TSearchRec; begin if FindFirst(‘c:\temp\*.*’, faAnyFile - faDirectory, F) = 0 then repeat Listbox1.Items.Add(F.Name); until FindNext(F) <> 0; end; 1단계: (TDirectory, TPath 등) System.IOUtils 유닛 을 사용하자. 보다 읽기 쉬운 코드가 된다 // [변경 1단계] IOUtils 유닛을 사용 // 개선된 점: 코드를 이해하기가 더 쉬워졌다 (더 짧아지지는 않았지만, 훨씬 읽기 쉬워졌다) uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); var FilesNames: TArray; FilesName: string; begin FileNames: TArray := TDirectory.GetFiles(‘c:\temp’); for FileName in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 2단계: 인라인 변수를 사용하자. 현대식 문법이며, 읽기도 쉽고, 실행 효율성도 더 높다. // [변경 2단계] 인라인 변수를 사용 // 개선된 점1: 코드가 더 간결해졌다 // 개선된 점2: 인라인 변수는 해당 영역에서만 유효하다. // (코드에서 변수의 범위는 작을수록 더 좋다. 아래의 새 코드에서는 FileName 변수가 for 루프 안에서만 유효하므로, 바깥에서 사용하면 컴파일러 오류 발생) uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); begin var FileNames: TArray<string> := TDirectory.GetFiles(‘c:\temp’); for var FileName: string in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 3단계: 타입 레퍼런스 기능(10.3버전에 추가됨)을 사용하자. 컴파일러가 이해할 수 있는 타입이라면, 이제 굳이 적지 않아도 된다. // [변경 3단계] 인라인 변수 선언 시 타입 지정 생략 // 개선된 점: 코드가 더 간결해졌다 uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); begin var FileNames := TDirectory.GetFiles(‘c:\temp’); for var FileName in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 정규식을 활용하여 웹페이지에 있는 모든 이미지의 url을 뽑아서 델파이로 가져오기 (비디오 24분 30초부터 보기) 웹페이지에서 jpg 이미지 100개를 가져오는 작업을 해야하는 상황이라면? 각 이미지 경로를 웹브라우저에서 일일이 찾아서 메모장에 붙이는 수작업을 하지 말자. 아래와 같이 짧은 코드를 만들어서 TListBox에 표시하면, 훨씬 빠르고 정확히 가져올 수 있고, 다음에 또 쓸 수도 있다. // 아래의 버튼 클릭 이벤트 코드 // 단, 이 코드가 작동하려면, 먼저 NetHTTPRequest와 NetHTTPClient 컴포넌트를 폼 디자이너에 올리고 서로 연결을 해두어야 한다 uses System.RegularExpressions; procedure TForm1.Button1Click(Sender: Object); begin var Response := NetHTTPClient1.Get(‘….’); // ...에는 목표 웹페이지 주소 (예) https://www.trademe.co.nz/a/marketplace/gaming/nintendo-wii-u var WebText := Response.ContentAsString; var Matches := TRegEx.Matches(WebText, ‘https://[ˆ/\s]+/\S+?\.jpg'); for var Match in Matches do ListBox1.Items.Add(Match.Value); end; << DelphiCon 2020 목록으로 이동
  2. PDF와 XLSX 파일 첨부 합니다. (엑셀 파일에는 탭 2개 즉 [단축키(일반)]과 [단축키(코드에디터)]가 있습니다. 필요에 따라 원하는 대로 편집하여 사용하세요) 영문 원본: http://docwiki.embarcadero.com/RADStudio/en/Default_Keyboard_Shortcuts RAD 스튜디오 단축키 (원본 DocWiki).pdf RAD 스튜디오 단축키 (원본 DocWiki).xlsx "[도서] 한 번에 개발하는 안드로이드 iOS앱 with 델파이. 2편: 고급활용 DB. 클라우드. 3D"의 부록 PDF의 183~188쪽에도 있습니다. 2편 부록 PDF 다운로드: https://drive.google.com/file/d/1BHnQCnFLyRg1FOf5SAkaO8JT79qJyhdN/ [DelphiCon 요약] 델파이 코딩을 더 빠르게 하는 방법 (Code Faster in Delphi) 에서는 특히 유용한 단축키를 잘 정리되어 있습니다. 단축키 관련 더 좋은 자료나 팁이 있으면 의견을 달아주세요.
  3. << DelphiCon 2020 목록으로 이동 DelphiCon 의 2020 시리즈 중, Code Faster in Delphi - Alister Christie 의 한글 요약본입니다. 델파이 코딩 속도를 높여주는 신간 ‘Code Faster in Delphi’ 에 수록된 유용한 팁 중 몇가지를 데모와 함께 알려줍니다. 발표자 (Alister Christie)는 델파이를 배우려는 개발자에게 도움이 되는 LearnDelphi.tv를 운영하고 있습니다. 원본 비디오 시청을 권합니다. Alister의 비디오는 학습하기 좋게 편집되어서 제공됩니다. 이 글의 유용한 단축키가 손에 익고 나면, 더 많은 것도 활용해 보세요: 델파이와 RAD 스튜디오에서 활용할 수 있는 더 많은 단축키가 정리된 파일 다운로드 목차 코드 에디터 단축키 폼 디자이너에서 빠르게 작업하기 최신 RTL의 새 언어 기능을 이용하여, 오래된 코드를 현대화하기 정규식을 활용하여 웹페이지에 있는 모든 이미지의 url을 뽑아서 델파이로 가져오기 코드 에디터 단축키 (비디오 보기) 아래 단축키 중 혹시 사용하고 있지 않는 것이 있는 지 보고 이제부터라도 사용해보자. F12 (폼 디자이너와 코드 에디터 전환): 매주 자주하는 작업이다. 즉, 단축키를 쓰면 하루에도 엄청난 시간이 절약된다. Ctrl+Space와 방향키 (키워드를 빠르고 정확하게 입력하기): 키워드 앞글자 몇 자만 타이핑하고 Ctrl+Space를 사용하면 해당 키워드 목록이 표시된다. 이때, 방향키를 이용하여 원하는 키워드를 선택하면 자동 완성된다. Ctrl+왼쪽 방향키 (현재 줄에서 코드의 가장 앞쪽으로 커서를 이동) Ctrl+Shift+v (지역 변수 선언): 일단 변수명 부터 타이핑한다. 그리고 나서 Ctrl+Shift+v를 사용하면, 변수 선언을 바로 할 수 있다. Ctrl+y (현재 코드 줄을 한번에 삭제): 커서가 있는 곳의 코드 한 줄이 삭제된다. Ctrl+j (for 루프 코드를 빠르게 작성): 일단 for를 타이핑한다. 그리고 나서 Ctrl+j를 사용한다. Ctrl+Shift+c (구현부 코드 골격 자동 생성): 프로시저, 함수, 프로퍼티를 새로 만들 때는, 일단 선언부를 작성하고, Ctrl+Shift+c를 사용하면, 구현부 코드 골격이 자동 생성된다. 프로퍼티의 경우 선언된 Field와 Setter도 자동 생성된다. Ctrl+Shift+Alt+p (매개변수 동기화): 프로시저, 함수, 프로퍼티에서 매개 변수를 선언부( 또는 구현부에서) 변경하고, 그 자리에서 Ctrl+Shift+Alt+p를 사용하면 대응되는 구현부 (또는 선언부)의 매개 변수에도 똑 같이 반영되어 일치하게 된다. Ctrl+Shift+위/아래 방향키 (프로시저나 함수의 구현부와 선언부를 왔다갔다 하기) Ctrl+프로시저(또는 함수) 이름 클릭 (해당 프로시저나 함수의 내용으로 이동) Alt+좌/우 방향키 (뒤로 가기와 앞으로 가기: 이전 작업 위치로 가기 또는 다시 원래 위치로 되돌아 오기) Ctrl+Shif+1˜9 (코드에 북마크를 달기): 커서가 있는 줄에 해당 숫자가 지정된 북마크가 생긴다. 원하는 북마크로 이동하려면, Ctrl+1˜9를 사용한다. 참고: 겟잇 패키지 매니저에서 "bookmark"를 타이핑하고 검색하면, 보다 향상된 북마크를 설치할 수도 있다. 화면에서 코드를 한줄이라도 더 볼 수 있다: 단축키에 익숙해지면 툴바에서 해당 단축 아이콘 빼자. 툴바가 차지하는 영역을 줄일 수 있다. 예를 들어, 뒤로 가기와 앞으로 가기 아이콘을 드래그하여 툴바 바깥으로 꺼내면 툴바에서 없어진다 자주 쓰는 단축 아이콘으로 툴바를 구성하려면, 툴바에서 오른쪽 클릭 > Customize Ctrl+Shift+좌/우 방향키(코드 블록 지정) 후 시작하는 괄호 (선택된 곳의 앞뒤를 괄호로 감싸기): 대/중/소 괄호 모두 적용된다. 참고: 블록 선택 팁: And/Or 로 연결된 곳에서 Ctrl+w를 사용하면 선택되는 코드 블록이 한단위씩 늘어난다. Ctrl+/ (주석 처리): 해당 줄 앞에 //가 추가되어 주석으로 처리된다. (이미 //가 있는 주석에서 사용하면, //가 제거되어, 일반 코드가 된다) 여러 줄을 한번에 주석으로 바꾸려면, 해당 줄을 모두 선택한 상태에서 { 를 사용하여 감싸도 된다. 하지만, 각 줄 앞에 // 두는 주석 처리 방식이 더 일반적이다 Ctrl+q+b (선택 영역의 가장 앞으로 커서 이동) 후 Shift+위방향키 (앞에 있는 코드도 선택 영역에 넣기) Ctrl+q+k (선택 영역의 가장 뒤로 커서 이동) 후 Shift+아래 방향키 (뒤에 있는 코드도 선택 영역에 넣기) Shift+위/아래 방향키 (각 줄의 처음부터 끝까지를 모두 선택) Shift+Alt+위/아래 방향키 (각 줄에서 한칸만 선택): 예를 들어 모든 줄에서 한자씩 왼쪽으로 당기고 싶으며, 이 방법으로 선택하고 Delete키를 누른다 Ctrl+o+k (시작점에서 커서까지 사각형으로 코드 영역을 선택하기와 해당 줄 전체 선택하기를 선택하는 토글): 사각형으로 선택하기로 설정된 경에서는 Shift+위/아래/좌/우 방향키를 사용하여 코드의 일부 영역을 사각형으로 선택할 수 있다. 여러줄을 선택하고 Tab 또는 Shift+Tab (여러줄을 한번에 들여쓰기 또는 내어쓰기) Ctrl+Shift+I (또는 U)도 같은 기능 Ctrl+D (uses 절에 나열된 모든 유닛들을 한줄에 하나씩 배치) 주의! 이 단축키를 사용하려면, 먼저 Tools > Options > Language > Formatter > Delphi > Line Breaks 에서 Line Breaks in Uses clauses를 Yes로 설정해야 한다. 만약, Uses 절의 모든 유닛이 아니라, 일부 유닛 만 한 줄에 하나씩 배치하려면, 원하는 코드 영역을 선택한 후에 Ctrl+D를 사용한다. 폼 디자이너에서 빠르게 작업하기 (비디오 12분 15초부터 보기) TMemo를 폼에 추가할 때 바로 크기를 설정하기 툴 팔레트에서 TMemo를 클릭한다. 그리고 나서, 폼 위에서 TMemo가 위치할 왼쪽 위 지점에서 마우스 왼쪽 버튼을 누르고 그 상태에서 드래그하여 원하는 크기가 될 때까지 끌고 간 후에 마우스 버튼을 놓는다. TEdit 여러개를 폼에 한번에 추가하기 툴 팔레트에서 Shift+원하는 컴포넌트(TEdit)를 클릭하여 툴 팔레트에서 TEdit가 강조 표시되도록 한다. 그리고 나서, 폼 위에 원하는 갯수 만큼 마우스 왼쪽 버튼을 클릭한다. (툴 팔레트에 강조 표시된 컴포넌트를 풀려면, ESC를 클릭하거나 툴 팔레트에서 다른 컴포넌트를 선택한다.) 툴 팔레트 검색창에서 원하는 컨트롤을 타이핑하고 엔터키를 쳐서 바로 폼 위에 추가하기 툴 팔레트에서 Ctrl+Alt+p 설정을 한다 (툴 팔레트 > 오른쪽 클릭 > Properties > Persistent Search Filter 옵션을 활성화 하는 것과 같은 효과) TEdit를 폼 위에 추가하면, 해당 오브젝트 명이 Text 프로퍼티에 자동으로 들어간다. 이것을 지우기 해당 TEdit에서 오른쪽 클릭 > Clear Text (오브젝트 인스펙터에서 Text 프로퍼티를 찾아서 지우는 것과 같은 효과) 컨트롤의 Name, Text, Align 등을 변경하기 해당 컨트롤에서 오른쪽 클릭 > Quick Edit 뒤쪽에 가려져서 마우스로 선택하기 힘든 컨트롤의 위치/크기를 변경하기 스트럭처 창을 이용하여 해당 컨트롤을 선택 Ctrl+방향키 (위치 변경) 또는 Shift+방향키 (크기 변경) 팁! 덮고 있는 컨트롤에서 마우스 왼쪽 버튼을 누른 상태에서 ESC키를 사용한다 (그러면, 아래에 가려진 컨트롤이 선택된다). 그 상태에서 마우스를 드래그하여 뒤에 있는 컨트롤을 이동할 수 있다. 컨트롤 여러개의 위치를 한번에 정렬하기 스트럭처 창 또는 폼 에서 Shift+클릭으로 여러 컨트롤을 동시 선택하고 나서, 기준이 될 컨트롤을 마지막으로 한번 더 클릭한다 (기준 컨트롤만 모서리가 검게 표시되고, 나머지는 모소리가 회색이다). 그 상태에서, 오른쪽 클릭 > Position > Align에서 원하는 정렬을 선택한다. 컨트롤을 움직이지 않고 정렬션을 보기 컨트롤을 마우스 왼쪽 버튼으로 누른 채로 잠깐 기다린다. (또는 Shift키를 누른다) 참고로, VCL 폼 디자이너의 정렬선은,파랑색이 컨트롤 테두리 기준선이고, 핑크색은 컨트롤 안의 텍스트 기준선이다. 컨트롤을 다른 컨트롤 안에 넣기 스트럭처 창에서 컨트롤을 드래그하여 컨테이너가 될 컨트롤 안에 끌어 넣는다. 또는, 폼 위에서 컨트롤을 Ctrl+x하고 컨테이너가 될 컨트롤을 마우스로 선택한 후 Ctrl+v를 한다. TSpeedButton을 사용해야하는데 "실수로" TButton을 사용했다면 폼 화면에서 Alt+F12를 사용하여 폼 코드로 이동한다. (폼 디자니어 > 오른쪽 클릭 > View As Text 와 같은 효과) 폼 코드에서 해당 컨트롤 이름을 검색한 후, "TButton"을 "TSpeedButton"으로 변경한다. 경고 창이 나타나서 SpeedButton 은 Tab Order 프로퍼티가 없다고 해도 Ignore 버튼을 클릭한다. 오브젝트 인스펙터를 보면 TButton이 TSpeedButton으로 변경되었을 것이다. 하지만, 소스 코드에는 여전히 TButton으로 남아 있다. 따라서 컴파일을 시도한다. 그러면, 오류 창이 뜨면서 바꿀 것인지를 묻는 창이 뜬다. 이때, Yes를 클릭하면 소스 코드 역시 TSpeedButton으로 변경되고 컴파일이 진행된다. 이미 설정한 컨트롤을 기준으로 비슷한 것들을 추가하기 폼 디자이너에서 원하는 컨트롤을 선택하고 Ctrl+c 한 후에 메모장에서 Ctrl+v를 하면 해당 컨트롤을 구현하는 코드가 메모장에 복사되어 붙는다. (예를 들어, TButton을 TSpeedButton으로 변경하거나, Caption 프로퍼티의 값을 변경하는 등) 메모장에서 원하는 대로 코드를 바꾸고 나서, Ctrl+c 한다. 다시 폼 위에서 Ctrl+v를 하면 메모장에서 변경한 코드 대로 컨트롤이 추가된다. Ctrl+v를 3번 하면 해당 컨트롤 3개가 추가되므로,컨트롤 여러개를 추가할 때도 유용하다. 컨트롤 여러개에 공통으로 있는 프로퍼티를 한번에 변경하기 폼 디자이너에서 여러 컨트롤을 선택한 후 오브젝트 인스펙터의 검색창에서 원하는 프로퍼티를 타이핑하면, 해당하는 프로퍼티만 창에 표시되므로 해당는 프로퍼티의 값을 한번에 변경한다. 프로퍼티가 여러개 나타나는 경우, 화살표를 이용하여 원하는 프로퍼티를 선택한다. 최신 RTL의 새 언어 기능을 이용하여, 오래된 코드를 현대화하기 (비디오 20분 27초부터 보기) 오래전 부터 사용하던 아래의 코드를 보다 간결 명확한 현대식 코드로 바꿔보자. // 기존에 있던 코드 procedure TForm1.btnGetFileClick(Sender: Object); var F: TSearchRec; begin if FindFirst(‘c:\temp\*.*’, faAnyFile - faDirectory, F) = 0 then repeat Listbox1.Items.Add(F.Name); until FindNext(F) <> 0; end; 1단계: (TDirectory, TPath 등) System.IOUtils 유닛 을 사용하자. 보다 읽기 쉬운 코드가 된다 // [변경 1단계] IOUtils 유닛을 사용 // 개선된 점: 코드를 이해하기가 더 쉬워졌다 (더 짧아지지는 않았지만, 훨씬 읽기 쉬워졌다) uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); var FilesNames: TArray; FilesName: string; begin FileNames: TArray := TDirectory.GetFiles(‘c:\temp’); for FileName in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 2단계: 인라인 변수를 사용하자. 현대식 문법이며, 읽기도 쉽고, 실행 효율성도 더 높다. // [변경 2단계] 인라인 변수를 사용 // 개선된 점1: 코드가 더 간결해졌다 // 개선된 점2: 인라인 변수는 해당 영역에서만 유효하다. // (코드에서 변수의 범위는 작을수록 더 좋다. 아래의 새 코드에서는 FileName 변수가 for 루프 안에서만 유효하므로, 바깥에서 사용하면 컴파일러 오류 발생) uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); begin var FileNames: TArray<string> := TDirectory.GetFiles(‘c:\temp’); for var FileName: string in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 3단계: 타입 레퍼런스 기능(10.3버전에 추가됨)을 사용하자. 컴파일러가 이해할 수 있는 타입이라면, 이제 굳이 적지 않아도 된다. // [변경 3단계] 인라인 변수 선언 시 타입 지정 생략 // 개선된 점: 코드가 더 간결해졌다 uses System.IOUtils; procedure TForm1.btnGetFileClick(Sender: Object); begin var FileNames := TDirectory.GetFiles(‘c:\temp’); for var FileName in FilesNames do Listbox1.Items.Add(TPath.GetFileName(FileName)); end; 정규식을 활용하여 웹페이지에 있는 모든 이미지의 url을 뽑아서 델파이로 가져오기 (비디오 24분 30초부터 보기) 웹페이지에서 jpg 이미지 100개를 가져오는 작업을 해야하는 상황이라면? 각 이미지 경로를 웹브라우저에서 일일이 찾아서 메모장에 붙이는 수작업을 하지 말자. 아래와 같이 짧은 코드를 만들어서 TListBox에 표시하면, 훨씬 빠르고 정확히 가져올 수 있고, 다음에 또 쓸 수도 있다. // 아래의 버튼 클릭 이벤트 코드 // 단, 이 코드가 작동하려면, 먼저 NetHTTPRequest와 NetHTTPClient 컴포넌트를 폼 디자이너에 올리고 서로 연결을 해두어야 한다 uses System.RegularExpressions; procedure TForm1.Button1Click(Sender: Object); begin var Response := NetHTTPClient1.Get(‘….’); // ...에는 목표 웹페이지 주소 (예) https://www.trademe.co.nz/a/marketplace/gaming/nintendo-wii-u var WebText := Response.ContentAsString; var Matches := TRegEx.Matches(WebText, ‘https://[ˆ/\s]+/\S+?\.jpg'); for var Match in Matches do ListBox1.Items.Add(Match.Value); end; << DelphiCon 2020 목록으로 이동 View full 엠바카데로 기술자료
×
×
  • Create New...

중요한 정보

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