디자인 길이와 실행시 내용이 다를때 자동 조정


var
    i, ItemWidth: Integer;
begin
    ItemWidth := 0;
    // 최대 pixel수를 구한다
    for i := 0 to (Sender as ComboBox).Items.Count - 1 do
    if GetTextWidth((Sender as ComboBox).Items[i]) > ItemWidth then
    ItemWidth := GetTextWidth((Sender as ComboBox).Items[i]) + 8;

// ComboBox 의 Drop-Down list 의 width를 변경하는 것은 단지
// pixel를 파라미터로 하여 CB_SETDROPPEDWIDTH 메시지를
// ComboBox 보내면 된다
(Sender as ComboBox).Perform(CB_SETDROPPEDWIDTH, ItemWidth, 0);


end;

< 델파이 단축키 모음 >

[찾기]

Ctrl + F Find

Ctrl + R Find and Replace

F3 Search Again


[화면이동]

F11 View Object Inspector

F12 Toggle Form/Unit

Alt + 0 View Window List

Ctrl + F12 View Unit

Shift + F12 View Form

Ctrl + PgUp/PgDown CodeEditor에서 현재페이지의 첫줄(PgUp), 마지막줄(PgDown)로 이동


[컴파일/실행]

Ctrl + F9 Compile

F9 Run

F7 Trace Into

F8 Trace Over

F5 Set Breakpoint

Ctrl + F5 Add Watch

Ctrl + F7 Evaluate/Modify


[블록관련]

Ctrl + Shift + U Unindent

Ctrl + Shift + I Indent

Ctrl + O, C Column Block Mode (또는 Alt키를 누른상태에서 Mouse를 드래그 해
도 컬럼블럭 설정이 가능, Shift + Alt + Arrow Key 를 사용해도 컬럼블럭 설정)

Ctrl + O, K Line Block Mode


[키 매크로]

Ctrl + Shift + R Record

* 키매크로 작성순서 : -> <원하는키> ->

Ctrl + Shift + P Play


[Object Inpector]

Ctrl + Down Object Inpector 상단의 Object List ComboBox 열기
이 상태에서 Component Name을 키보드로 치면 Incremental Search 기
능Tab Property 와 Property Value 부분을 전환가능하며,
Property 쪽에 Cursor 가 위치한 상태에서 키보드를 치면
Incremental Search


[Code Insight]

Ctrl + Space Code Completion 기능

Ctrl + J Code Template 기능

Ctrl + Shift + Up/Down Object 의 Member function/procedure 의 선언부와 구현부를 이동

Ctrl + Shift + C Object 의 Member function/procedure 의 선언부와 구현부중
의 한가지를 코딩 한후 누르게 되면 나머지 선언부 또는 구현부를 완성시켜줌


[기타]
Alt + F10 현재 위치에서 Popup-Menu 띄우기

Ctrl + Enter Code Editor 에서 현재위치의 단어로 File Open을 시도(기본 확장자
는 .pas) 하고 현재 Path 에서 그 파일을 찾지 못하면 File Open Dialog를 띄움.

Alt + { or } Find Matching Brace( ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘, ‘]’ )

#2에디터에서 Ctrl + E 를 하면 increment Search 가 됩니다. Ctrl+E 를 눌루고 문자열을 입력해 보세요
Ctrl+L 을 해도 다시 찾기 또는 다시 바꾸기를 할수 있습니다.

Alt+F11 은 유닛을 Uses 할때 사용하면 됩니다.

Ctrl+K+W 를 하면 선택한 블럭을 저장할수 있습니다.
Ctrl+K+R 을 하면 캐럿위치에 파일을 읽어서 붙일수 있습니다.

Ctrl+Alt+B 를 하면 현재 프로젝트에 설정된 BreakPoint 를 편집할수 있구 그 라인으로 이동할수 있습니다.


다시찾기 단축키
ctrl+f로 찾은후, F3을 누르면 다시 찾기가 됩니다.

 

토큰으로 찾기 단축키
커서가 토큰에 위치시키고는 ctrl + alt + 화살표 위로 또는
아래로 하면 커서위치의 토큰과 가장 가까이에 있는 토큰을 찾아갑니다.

ctrl + 마우스 왼쪽 클릭 단축키
ctrl + 화살표 위메소드 선언부바로가기
메소드선언부에서 ctrl+shift+화살표아래

 

메소드 구현부바로가기

메소드구현부에서 ctrl+shift+화살표위

 

컬럼블럭 선택 해제
선택: shift + alt + 화살표키하시면 컬럼열을 복사하실 수 있습니다.
해제: 그냥 편집창에서 마우스를 클릭하시면 해제됩니다.
또는 Ctrl+O+K를 하시면 해제됩니다.(이건 많은 분들이 모르시고 있더군요)

컴포넌트 이름은 알고 어떤 팔레트에 있는지 모를때
Alt + V + C를 하시고 컴포넌트 이름을 입력하셔서 찾으시면 됩니다.

델파이환경에서 unit을 제거했는데 dcu를 찾지 못할때..
델파이는 보통 컴파일시 변경된 파일만 체크하기 때문에 이런 문제가 나타날 수 있습니다.
그때는 Alt + P + B를 하시면 모두 빌드해서 에러를 잡으세요.

Project Group에서 여러 프로젝트를 한번에 빌드하기.
하나하나씩 컴파일 하지 마시고, Alt + P + E를 하시면 프로젝트 그룹내의 모든 프로젝트를 빌드하게 됩니다.

 


폼 디자이너
Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동
Shift + Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동(빠르게)
Shift + 방향키(←↑→↓) : 컴포넌트 크기 변경
선택 후 ESC : Parent컴포넌트로 이동

오브젝트 인스펙터
Ctrl + ↓ : 컴포넌트 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Alt + ↓ : Property Combo 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Ctrl + Enter : 열거형 Property값을 다음 값으로 변경
+선택 후, ←,→ : 하위 Property펼치기,접기
Ctrl + Tab : Properties,Events탭 전환
..선택 + Ctrl + Enter : Property Editor 열기
Tab : Property Name/Value토글

 

소스코드 에디터
Ctrl + Enter : 현재위치의 단어로 File Open 시도
현재 Path 에서 찾지 못하면 Dialog
Ctrl + S : 파일 저장
Ctrl + F4 : 파일 닫기
Ctrl + Shift + C : Method/Procedure/Property자동생성
Ctrl + Shift + ↑(↓) : 선언부,구현부 상호간 이동
Ctrl + Shift + R : 키 매크로 레코딩
Ctrl + Shift + P : 키 매크로 실행
Ctrl + ←,→ : 이전 단어, 다음 단어
Ctrl + Shift + ←,→ : 이전 단어, 다음 단어까지 블럭
Ctrl + Home : 소스코드 맨 앞으로 이동
Ctrl + End : 소스코드 맨 뒤로 이동
Shift + Home : 현재 라인 맨 앞까지 블럭
Shift + End : 현재 라인 맨 뒤까지 블럭
Ctrl + PageUp : 현재 화면의 맨 윗줄로 이동
Ctrl + PageDown : 현재 화면의 맨 아랫줄로 이동
Ctrl + Shift + I(U) : 현재 라인에 들여쓰기(내어쓰기)
Shift + Alt + 방향키(←↑→↓) : 블록 사각형 지정         -> Ctrl + Backspace : 해제
Ctrl + KL : 캐럿이 Line Home에 있을 때, Line 블럭
Ctrl + T : 현재 위치에서 마지막 단어까지 삭제
Ctrl + I : 블럭 지정된 문자를 공백으로 변환
Alt + {, } : '{'괄호 앞,뒤에서 사용. 짝 찾기.
Ctrl + N : 다음 Line 맨 앞으로 줄바꿈
Ctrl + M : 줄바꿈
Alt + BackSpace : 실행 취소
Ctrl + E : 한 글자 찾기
Ctrl + ↑(↓) : 캐럿 고정 스크롤
Ctrl + F : 찾기
Ctrl + R : 바꾸기

 

코드탐색기
F2 : 이름 변경하기(Uses제외)
DoubleClick : 소스코드 탐색기의 해당 코드로 이동
Ctrl + Shift + E : 탐색기<->에디터 창 이동

코드 인사이트(Code Insight)
Ctrl + Space : 코드완성 마법사
Ctrl + Shift : 메소드 파라미터 팁
Ctrl + J : 코드 템플릿 사용

 

기타 기능
Alt + F10 : 현재 위치에서 Popup-Menu 띄우기
F11 : View Object Inspector
F12 : Toggle Form/Unit
Alt + 0 : View Window List
Ctrl + F12 : View Unit
Shift + F12 : View Form 
 

1. App


1.1. Activity


1.1.1. Animation

- 화면전환을 애니메이션으로 처리한다.

Fade in/out

Zoom in/out

slide bottom to top

slide top to bottom

slide left / slide right

* android.app.Activity.overridePendingTransition

1.1.2. Custom Dialog

화면에 메시지를 보여준다. 확인/취소 등의 버튼은 없다.

1.1.3. Dialog

- 화면에 메시지를 보여준다. 확인/취소 등의 버튼은 없다.

- activity title 에 left icon을 추가할 수 있다.

* android.app.Activity.requestWindowFeature(Window.FEATURE_LEFT_ICON);

* getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.drawable.ic_dialog_alert);

1.1.4. Forwarding

- activity stack에서 임의의 activity를 제거한다.

back button을 눌러도 제거된 activity는 나타나지 않고, 이전 activity가 나타난다.

다른 activity를 호출하고(startActivity), 제거하고자 하는 activity의 finish 메소드를 호출한다.

* startActivity / finish

1.1.5. HelloWorld

- 아주 기본적이고 전통적인 "안녕 세상아!"


1.1.6. PersistentState

- Activity의 onResume(), onPause() lifecycle 메소드에서 SharedPreferences에 설정값을 꺼내거나 보관한다.

* Activity.getPreferences(int mode)

* android.content.SharedPreferences

1.1.7. QuickContentsDemo

- 주소록의 연락처 데이타 목록을 보여준다.

* android.app.ListActivity

* android.widget.ResourceCursorAdapter

* android.content.ContentProvider

* android.content.ContentResolver

* android.app.Activity.getContentResolver()


1.1.8. Receive Result

- 다른 activity를 호출하고, 선택/결과값을 받는다.

- 결과값을 전달하는 activity에서는 setResult 메소드를 호출한 후 finish 처리를 한다.

* startActivityForResult

* onActivityResult(int requestCode, int resultCode, Intent data)

* setResult

* 참고

서로다른 앱간에 데이타를 주고받을 경우 startActivity 메소드를 사용할 수 있다.

이런 경우 startActivity 메소드를 호출하고 finish 메소드를 사용하여 해당 앱을 종료한다.

(단 AndroidManifast.xml 파일에 호출하는/호출당하는 url 을 명시해야 한다.)

호출을 당하는 앱에서는 onCreate 메소드에서 getIntent 메소드로 호출된 데이타를 얻을 수 있다.

결과값을 받을 때도 onCreate 메소드에서 getIntent 메소드로 결과 데이타를 얻을 수 있다.

앱에서 ISPMobile 과 같은 결제처리를 하는 경우 이와 같은 방식을 사용하고 있다.

아이폰/아이패드는 이와 비슷한 형태로 앱간에는 URL로만 호출할 수 있다.

(iOS에서는 Info.plist xml 파일에 해당 url 정보를 설정한다.)


1.1.9. Redirection

- SharedPreferences에 설정된 값에 따라 activity를 분기한다.

* SharedPreferences

* Intent

* startActivity / startActivityForResult


1.1.10. Reorder Activities

- activity history stack의 첫번째로 가져온다.

* Intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)

* Intent.FLAG_ACTIVITY_REORDER_TO_FRONT


1.1.11. Save & Restore State

- 입력값/상태값을 저장한다.

어떤 과정을 거쳐서 구현되는 것인지 잘 파악이 안된다.

* layout.xml의 android:freezesText="true"


1.1.12. SetWallpaper

- 메인 바탕화면의 이미지를 가져오기/변경하기

* android.view.WindowManager.getInstance(this)

1.1.13. Translucent

- 배경을 반투명 처리한다.

* activity에 style/theme를 사용하여 적용한다. (AndroidManifest.xml, styles.xml)

<style name="Theme.Translucent" parent="android:style/Theme.Translucent">

...

1.1.14. Translucent Blur

- 배경을 반투명/흐릿하게 처리한다.

* style/theme를 사용 및 window flag를 설정하여 적용한다.

Activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

1.1.15. Wallpaper

- 배경을 메인 바탕화면으로 적용한다.

* activity에 style/theme를 사용하여 적용한다. (AndroidManifest.xml, styles.xml)

<style name="Theme.Wallpaper" parent="android:style/Theme.Wallpaper">

...


1.2. Alarm

1.2.1. Alarm Controller

- 알람을 일시/주기적으로 발생시킨다. (short term)

BroadcastReceiver에서 알람 표출

* (android.app.AlarmManager)getSystemService(ALARM_SERVICE)

* android.app.PendingIntent.getBroadcast

* android.content.BroadcastReceiver interface

1.2.2. Alarm Service

- 알람을 일시/주기적으로 발생시킨다. (long term)

android.app.Service 에서 알람 표출

* (android.app.AlarmManager)getSystemService(ALARM_SERVICE)

* android.app.PendingIntent.getService

* android.app.Service interface


1.3. Dialog (AlertDialogSamples.java)

- OK/Cancel dialog with a message

- OK/Cancel dialog with a long message

- List dialog

- Progress dialog

- Single choice list

- Repeat alarm (multi choice list)

- Text Entry dialog

* android.app.Activity.showDialog(int id)

* android.app.AlertDialog.Builder

* android.app.Dialog

* android.app.ProgressDialog

* android.content.DialogInterface

 

1.4. Intents

- launch activity, service, broadcast

* android.content.Intent

 

1.5. Launcher Shortcuts

- home screen에 shortcut을 생성할 때, 특정 activity가 나오도록 shortcut을 만들 수 있다.

* Intent.ACTION_CREATE_SHORTCU


 

1.6. Menu

1.6.1. Inflate from XML

 

1.7. Notification

1.7.1. IncomingMessage

1.7.2. Notifying Service Controller

1.7.3. NotifyWithText

1.7.4. Status Bar

 

1.8. Preferences

1.8.1. Preferences from XML

1.8.2. Launching preferences

1.8.3. Preference dependencies

1.8.4. Default values

1.8.5. Preference from code

1.8.6. Advanced preferences


1.9. Search

1.9.1. Invoke Search

1.9.2. Query Search Results


1.10. Service

1.10.1. Foreground Service Controller

1.10.2. Local Service Binding

1.10.3. Local Service Controller

1.10.4. Remote Service Binding

1.10.5. Remote Service Controller

1.10.6. Service Start Arguments Controller


1.11. Text-To-Speech


1.12. Voice Recognition


2. Content

2.1. Assets

2.2. Resources

 

3. Graphics

3.1. AlphaBitmap

3.2. AnimateDrawables

3.3. Arcs

3.4. BitmapDecode

3.5. BitmapMesh

3.6. BitmapPixels

3.7. CameraPreview

3.8. Clipping

3.9. ColorFilters

3.10. ColorMatrix

3.11. Compass

3.12. CreateBitmap

3.13. Density

3.14. Drawable

3.15. FingerPaint

3.16. Layers

3.17. MeasureText

3.18. OpenGL ES

3.19. PathEffects

3.20. PathFillTypes

3.21. Patterns

3.22. Pictures

3.23. Points

3.24. PurgeableBitmap

3.25. Regions

3.26. RoundRects

3.27. ScaleToFit

3.28. SensorTest

3.29. SurfaceView Overlay

3.30. Sweep

3.31. Text Align

3.32. Touch Paint

3.33. Typefaces

3.34. UnicodeChart

3.35. Vertices

3.36. Xfermodes

 

4. Media

4.1. Media Player

4.2. VideoView

 

5. OS

5.1. Morse Code

5.2.Sensors

 

6. Text

6.1. Linkify

6.2. LogTextBox

6.3. Marquee

 

7. Views

7.1. Animation

7.2. Auto Complete

7.3. Buttons

7.4. Chronometer

7.5. Controls

7.6. Custom

7.7. Date Widgets

7.8. Expandable Lists

7.9. Focus

7.10. Gallery

7.11. Grid

7.12. ImageButton

7.13. ImageSwitcher

7.14. ImageView

7.15. Logout Animation

7.16. Layouts

7.17. Lists

7.18. Progress Bar

7.19. Radio Group

7.20. Rating Bar

7.21. ScrollBars

7.22. Seek Bar

7.23. Spinner

7.24. Tabs

7.25. TextSwitcher

7.26. Visibility

7.27. WebView

 

'Android' 카테고리의 다른 글

[Android] 키보드 숨기기/보이기  (0) 2012.07.19
[Android]안드로이드 라이프 사이클  (0) 2012.06.21
[Android]D-day 계산기 만들어보기.  (0) 2012.05.29
[Android]키보드 입력 종류  (0) 2012.05.29
[Android]형변환 종류  (0) 2012.05.29