03 에디트(Edit)

Estimated reading: 2 minutes 19 views

이 문서에서는 AutoHotkey의 Edit 컨트롤 생성 및 제어에 대해 학습합니다. 다양한 수준의 예제를 통해 Edit 컨트롤 추가, 입력 값 제어, 동적 제어, 이벤트 처리 등의 고급 기능을 다룹니다.

  • 초급: 기본 Edit 컨트롤 생성, 크기 설정, 기본 입력 기능을 학습합니다.
  • 중급: 읽기 전용(Edit Disabled), 스크롤 추가, 여러 줄 입력 기능을 학습합니다.
  • 고급: 입력 값을 제어하고, 이벤트를 활용하여 실시간으로 입력된 값을 처리합니다.

초급 (기본 사용법)

목표: 기본적인 Edit 컨트롤 생성 및 기본 입력, 크기 조정 방법을 학습합니다.

기본 Edit 컨트롤 생성

기본 Edit 컨트롤을 생성합니다.

MyGui := Gui()
MyGui.Add(Edit, w200, 기본 입력값)
MyGui.Show(w300 h150)

설명

  • MyGui.Add(“Edit”, “w200”, “기본 입력값”): 너비 200px의 Edit 컨트롤을 추가하고 “기본 입력값”을 미리 입력된 상태로 표시합니다.

Edit 컨트롤에 초기 입력값 추가

Edit 컨트롤에 초기 입력값을 추가합니다.

MyGui := Gui()
MyGui.Add(Edit, w200, 초기값 입력됨)
MyGui.Show(w300 h150)

설명

  • MyGui.Add(“Edit”, “w200”, “초기값 입력됨”): “초기값 입력됨”을 기본 입력값으로 표시합니다.

Edit 컨트롤 크기 조정

Edit 컨트롤의 너비와 높이를 조정합니다.

MyGui := Gui()
MyGui.Add(Edit, w300 h50, 크기가 커진 Edit)
MyGui.Show(w400 h200)

설명

  • w300, h50: 너비 300px, 높이 50px로 컨트롤 크기를 설정합니다.

중급 (Edit 컨트롤 스타일 설정)

목표: Edit 컨트롤의 스타일을 변경하고, 여러 줄 입력, 스크롤 추가 등을 학습합니다.

읽기 전용 Edit 컨트롤 생성

입력 불가능한 읽기 전용 Edit 컨트롤을 생성합니다.

MyGui := Gui()
MyGui.Add(Edit, ReadOnly w200, 읽기 전용 입력창)
MyGui.Show(w300 h150)

설명

  • ReadOnly: 사용자가 편집할 수 없도록 설정합니다.
  • w200: 너비 200px로 컨트롤 크기를 설정합니다.

여러 줄 입력 가능한 Edit 컨트롤 생성

여러 줄 입력이 가능한 Edit 컨트롤을 생성합니다.

MyGui := Gui()
MyGui.Add(Edit, w300 r5, 여러 줄 입력이 가능합니다.)
MyGui.Show(w400 h250)

설명

  • r5: 5줄의 텍스트를 입력할 수 있는 높이로 설정합니다.
  • 여러 줄의 입력을 위해 자동으로 스크롤바가 추가됩니다.

수직 스크롤 추가된 Edit 컨트롤 생성

수직 스크롤이 가능한 Edit 컨트롤을 생성합니다.

MyGui := Gui()
MyGui.Add(Edit, vMyEdit w200 r5 vScroll, 스크롤 추가된 텍스트)
MyGui.Show(w300 h200)

설명

  • r5: 5줄의 텍스트를 입력할 수 있는 높이로 설정합니다.
  • vScroll: 수직 스크롤을 추가하여 스크롤 가능한 Edit 컨트롤을 생성합니다.

고급 (Edit 컨트롤 제어 및 이벤트 추가)

목표: Edit 컨트롤에 입력된 값을 제어하고, 이벤트와 함께 동적으로 입력값을 처리합니다.

실시간 입력 값 감지

Edit 컨트롤에 입력된 값을 실시간으로 감지하고 표시합니다.

MyGui := Gui()
MyGui.Add(Edit, vMyEdit gOnEditChange w200, )
MyGui.Add(Text, vOutput, 입력한 내용이 여기에 표시됩니다.)
MyGui.Show(w400 h200)

OnEditChange() {
    GuiControlGet, InputValue,, MyEdit
    GuiControl,, Output, 입력값:  InputValue
}

설명

  • gOnEditChange: 사용자가 입력할 때마다 OnEditChange 함수를 호출합니다.
  • GuiControlGet: Edit 컨트롤의 입력 값을 가져옵니다.
  • GuiControl: 가져온 입력 값을 Output 컨트롤에 표시합니다.

버튼 클릭 시 입력값 가져오기

버튼 클릭 시 Edit 컨트롤에 입력된 값을 가져옵니다.

MyGui := Gui()
MyGui.Add(Edit, vMyInput w200, )
MyGui.Add(Button, gOnButtonClick, 확인)
MyGui.Show(w300 h150)

OnButtonClick() {
    GuiControlGet, InputValue,, MyInput
    MsgBox 입력된 값:  InputValue
}

설명

  • vMyInput: 입력 필드에 MyInput이라는 변수명을 부여합니다.
  • gOnButtonClick: 버튼 클릭 시 OnButtonClick 함수를 호출합니다.
  • GuiControlGet: Edit 컨트롤의 입력 값을 가져와 MsgBox로 표시합니다.

Edit 컨트롤에 입력값 설정하기

Edit 컨트롤에 값을 동적으로 설정합니다.

MyGui := Gui()
MyGui.Add(Edit, vMyInput w200, )
MyGui.Add(Button, gSetInputValue, 입력값 설정)
MyGui.Show(w300 h150)

SetInputValue() {
    GuiControl,, MyInput, 동적으로 추가된 텍스트
}

설명

  • GuiControl,, MyInput, “동적으로 추가된 텍스트”: MyInput 컨트롤에 새로운 값을 설정합니다.

타이머로 실시간 입력 제어

입력된 값이 정해진 조건을 충족하지 않으면 경고 메시지를 표시합니다.

MyGui := Gui()
MyGui.Add(Edit, vMyInput w200, )
MyGui.Show(w300 h150)
SetTimer, CheckInput, 500

CheckInput() {
    GuiControlGet, InputValue,, MyInput
    If (StrLen(InputValue) > 10) {
        MsgBox 입력값이 10자를 초과했습니다.
        GuiControl,, MyInput,  ; 입력값을 초기화합니다.
    }
}

설명

  • SetTimer: 500ms마다 CheckInput 함수를 실행합니다.
  • StrLen(InputValue): 입력된 값의 길이가 10자를 초과하면 경고 메시지를 표시하고 입력값을 초기화합니다.

Edit 컨트롤의 내용을 파일에 저장

입력한 내용을 파일에 저장하는 기능을 구현합니다.

MyGui := Gui()
MyGui.Add(Edit, vMyInput w300 r5, )
MyGui.Add(Button, gSaveToFile, 파일에 저장)
MyGui.Show(w400 h250)

SaveToFile() {
    GuiControlGet, InputValue,, MyInput
    FileAppend, %InputValue%, 입력내용.txt
    MsgBox 입력 내용을 '입력내용.txt' 파일에 저장했습니다.
}

설명

  • FileAppend: 입력된 내용을 입력내용.txt 파일에 저장합니다.
  • GuiControlGet: 입력된 내용을 가져옵니다.

향후 추가예정

  • Edit 컨트롤에 실시간 유효성 검사 추가: 숫자만 입력 가능, 최대 글자 수 제한 등 유효성 검사를 추가합니다.
  • 동적 생성된 Edit 컨트롤의 제어 방법 학습: 사용자의 요청에 따라 동적 Edit 컨트롤을 추가하는 기능을 구현합니다.
  • 입력 내용 자동 저장 기능 추가: 타이머와 파일 시스템을 결합하여 입력 내용을 자동 저장하는 기능을 구현합니다.
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments