14 슬라이더(Slider)

Estimated reading: 2 minutes 21 views

이 문서에서는 AutoHotkey v2의 Slider 컨트롤 생성 및 제어에 대해 학습합니다. 초보부터 고급 사용자까지 다양한 수준의 예제를 통해 Slider 컨트롤 추가, 값 제어, 동적 제어, 이벤트 처리 등의 고급 기능을 다룹니다.

  • 초급: 기본 Slider 컨트롤 생성, 슬라이더 값 변경 및 크기 조정 방법을 학습합니다.
  • 중급: Slider의 스타일 변경, 동적 생성, 최소/최대 값 설정 및 이벤트 처리를 학습합니다.
  • 고급: Slider의 파일 저장, 조건에 따른 Slider 상태 제어, 동적 작업 실행 등의 고급 기능을 학습합니다.

초급 (기본 사용법)

목표: 기본적인 Slider 컨트롤 생성 및 값 변경, 크기 조정 방법을 학습합니다.

기본 Slider 컨트롤 생성

기본 Slider 컨트롤을 생성하여 슬라이더 값을 표시합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MySlider.Value := 50
MyGui.Show(w300 h150)

설명

  • MyGui.Add(“Slider”, “w200 h30”): 너비 200px, 높이 30px의 Slider 컨트롤을 추가합니다.
  • MySlider.Value := 50: 슬라이더의 기본 값을 50으로 설정합니다.

Slider의 크기 및 위치 조정

Slider 컨트롤의 위치와 크기를 설정합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, x20 y20 w150 h30)
MySlider.Value := 70
MyGui.Show(w300 h150)

설명

  • x20 y20: X=20, Y=20 좌표에 Slider 컨트롤을 배치합니다.
  • w150 h30: 너비 150px, 높이 30px로 컨트롤 크기를 설정합니다.
  • MySlider.Value := 70: 슬라이더의 기본 값을 70으로 설정합니다.

Slider의 기본 값 설정

Slider의 기본 값을 100으로 설정합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MySlider.Value := 100
MyGui.Show(w300 h150)

설명

  • MySlider.Value := 100: 슬라이더의 기본 값을 100으로 설정합니다.

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

목표: Slider의 스타일을 변경하고, 동적 생성, 최소/최대 값 설정 및 이벤트 처리를 학습합니다.

수직 Slider 생성

수직 방향의 Slider 컨트롤을 생성합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, Vertical x20 y20 w30 h200)
MySlider.Value := 50
MyGui.Show(w150 h250)

설명

  • Vertical: 슬라이더를 수직으로 표시합니다.
  • w30 h200: 너비 30px, 높이 200px로 설정합니다.

Slider의 최소/최대 값 설정

Slider의 최소/최대 값을 설정합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, Range0-200 w200 h30)
MySlider.Value := 150
MyGui.Show(w300 h150)

설명

  • Range0-200: 슬라이더의 최소값을 0, 최대값을 200으로 설정합니다.
  • MySlider.Value := 150: 슬라이더의 초기 값을 150으로 설정합니다.

동적 Slider 추가

버튼 클릭으로 동적 Slider 컨트롤을 추가합니다.

MyGui := Gui()
MyGui.Add(Button, gAddSlider, 슬라이더 추가)
MyGui.Show(w400 h400)

AddSlider() {
    Static SliderCount := 1
    SliderCount++
    MyGui.Add(Slider, x20 y (40 + SliderCount * 30)  w200 h30)
    MyGui.Show()
}

설명

  • Static SliderCount: 버튼 클릭할 때마다 Slider의 개수를 증가시킵니다.
  • MyGui.Add(“Slider”): 동적으로 새로운 Slider를 추가합니다.

Slider의 값 변경

버튼 클릭으로 슬라이더의 값을 동적으로 변경합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MyGui.Add(Button, gIncreaseSlider, 값 증가)
MyGui.Show(w300 h150)

IncreaseSlider() {
    MySlider.Value += 10
    If (MySlider.Value > 100) 
        MySlider.Value := 0
}

설명

  • MySlider.Value += 10: 슬라이더의 값을 10씩 증가시킵니다.
  • If (MySlider.Value > 100): 슬라이더의 값이 100을 초과하면 0으로 초기화합니다.

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

목표: Slider 컨트롤의 상태를 동적으로 제어하고, 조건에 따라 동적 작업을 수행합니다.

Slider 값 파일에 저장

현재의 Slider 값을 파일에 저장합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, vSliderValue w200 h30)
MyGui.Add(Button, gSaveSliderValue, 파일에 저장)
MyGui.Show(w300 h150)

SaveSliderValue() {
    Gui, Submit, NoHide
    FileAppend, 슬라이더 값: %SliderValue%, 슬라이더값.txt
    MsgBox 슬라이더 값이 '슬라이더값.txt' 파일에 저장되었습니다.
}

설명

  • FileAppend: 현재의 슬라이더 값을 슬라이더값.txt 파일에 저장합니다.
  • SliderValue: Slider 컨트롤의 현재 값을 반환합니다.

조건에 따른 Slider 값 변경

조건에 따라 Slider의 값을 변경합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MyGui.Add(Button, gChangeSliderValue, 조건에 따라 변경)
MyGui.Show(w300 h150)

ChangeSliderValue() {
    Random, SliderValue, 0, 100
    MySlider.Value := SliderValue
}

설명

  • Random, SliderValue, 0, 100: 0~100 사이의 임의의 값을 생성합니다.
  • MySlider.Value := SliderValue: Slider의 값을 랜덤 값으로 변경합니다.

Slider 값의 실시간 변경 감지

Slider의 값이 변경될 때마다 실시간으로 감지합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30 vSliderValue)
MySlider.OnEvent(Change, () => MsgBox(슬라이더 값이  MySlider.Value 로 변경되었습니다.))
MyGui.Show(w300 h150)

설명

  • OnEvent(“Change”): Slider의 값이 변경될 때 MsgBox를 표시합니다.

Slider의 값으로 백그라운드 작업 수행

Slider의 값에 따라 작업을 수행합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MyGui.Add(Button, gRunTask, 작업 실행)
MyGui.Show(w300 h150)

RunTask() {
    Loop % MySlider.Value {
        Sleep 50  ; 백그라운드 작업 속도 시뮬레이션
    }
    MsgBox 작업 완료!
}

설명

  • Loop % MySlider.Value: 슬라이더의 값에 따라 작업을 반복합니다.

1초마다 Slider 값 업데이트

1초마다 Slider의 값을 자동으로 업데이트합니다.

MyGui := Gui()
MySlider := MyGui.Add(Slider, w200 h30)
MyGui.Show(w300 h150)
SetTimer(() => {
    MySlider.Value += 5
    If (MySlider.Value > 100) 
        MySlider.Value := 0
}, 1000)

설명

  • SetTimer: 1초마다 Slider의 값을 5씩 증가시킵니다.

향후 추가 예정

  • Slider의 동적 생성 및 제어
  • Slider 상태를 파일로 저장 및 복원
  • Slider 값에 따른 조건부 작업 실행
Subscribe
Notify of
guest
0 댓글
Inline Feedbacks
View all comments