대화 상자 편집기의 콘트롤에 대한 프로그래밍 예

Contents

# Programming Examples for Controls in the Dialog Editor

다음은 "Dialog1"이라는 새 대화 상자에 대한 예입니다. 대화 상자 편집기의 도구 상자 모음에 있는 도구를 사용하여 대화 상자를 만들고 "CheckBox1"이라는 확인란, "Label1"이라는 레이블 필드, "CommandButton1"이라는 버튼, "ListBox1"이라는 목록 상자 등의 콘트롤을 추가합니다.

콘트롤을 개체 변수에 추가할 때 대문자와 소문자가 정확하게 일치하도록 해야 합니다.

### 대화 상자 로드를 위한 전역 함수

    Function LoadDialog(Libname as String, DialogName as String, Optional oLibContainer)
    Dim oLib as Object ' com.sun.star.script.XLibraryContainer
    Dim oLibDialog as Object
    Dim oRuntimeDialog as Object
        If IsMissing(oLibContainer) Then
            oLibContainer = DialogLibraries
        End If
        oLibContainer.LoadLibrary(LibName)
        oLib = oLibContainer.GetByName(Libname)
        oLibDialog = oLib.GetByName(DialogName)
        oRuntimeDialog = CreateUnoDialog(oLibDialog)
        LoadDialog() = oRuntimeDialog
    End Function

LoadDialog function is stored in Tools.ModuleControls available from Application Macros and Dialogs.

### 대화 상자 표시

    REM 전역 변수 정의
    Dim oDialog1 AS Object
    Sub StartDialog1
        With GlobalScope.BasicLibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = Tools.ModuleControls.LoadDialog("Standard", "Dialog1")
        oDialog1.Execute()
    End Sub

### 프로그램에서 콘트롤의 속성 읽기 또는 편집

    Sub Sample1
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = Tools.LoadDialog("Standard", "Dialog1")
        REM get dialog model
        oDialog1Model = oDialog1.Model
        REM display text of Label1
        oLabel1 = oDialog1.GetControl("Label1")
        MsgBox oLabel1.Text
        REM set new text for control Label1
        oLabel1.Text = "New Files"
        REM display model properties for the control CheckBox1
        oCheckBox1Model = oDialog1Model.CheckBox1
        MsgBox oCheckBox1Model.Dbg_Properties
        REM set new state for CheckBox1 for model of control
        oCheckBox1Model.State = 1
        REM display model properties for control CommandButton1
        oCMD1Model = oDialog1Model.CommandButton1
        MsgBox oCMD1Model.Dbg_Properties
        REM display properties of control CommandButton1
        oCMD1 = oDialog1.GetControl("CommandButton1")
        MsgBox oCMD1.Dbg_Properties
        REM execute dialog
        oDialog1.Execute()
    End Sub

### ListBox에 항목 추가

    Sub AddEntry
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = ModuleControls.LoadDialog("Standard", "Dialog1")
        REM adds a new entry to the ListBox
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        Dim iCount as integer
        iCount = oListbox.ItemCount
        oListbox.additem("New Item" & iCount,0)
    End Sub

### ListBox에서 항목 제거

    Sub RemoveEntry
        With GlobalScope.Basiclibraries
           If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")
        End With
        oDialog1 = Tools.ModuleControls.LoadDialogLoadDialog("Standard", "Dialog1")
        REM remove the first entry from the ListBox
        oDialog1Model = oDialog1.Model
        oListBox = oDialog1.GetControl("ListBox1")
        oListbox.removeitems(0,1)
    End Sub

관련 주제

대화 상자 편집기에서 콘트롤의 속성 변경

Basic 대화 상자 만들기

대화 상자 편집기에서 콘트롤 만들기

Opening a Dialog With Basic