그래픽 컴포넌트 스크립팅

 

이 참조 문서는 스크립팅에서 지원되는 그래픽 구성요소와 그 주요 속성 및 메서드를 개괄합니다.

Altium Designer 스크립트에서 사용할 수 있는 시각적 폼 구성요소는 대부분 Embarcadero의 Visual Component Library(VCL)에서 파생되며, VCL은 Delphi 및 C++ 언어로 Windows 애플리케이션을 개발하기 위한 정의된 시각적 구성요소들의 모음입니다.

시각적 클래스 라이브러리로 개발된 VCL 클래스는 선형 객체 계층에서 TComponent 객체(자체가 TObject 루트 객체의 하위)로부터 파생됩니다. 따라서 TButton 객체와 같은 일반적인 스크립트 구성요소는 상위 객체로부터 속성, 메서드, 이벤트를 상속받습니다. 이 경우 클래스 계층은 다음과 같습니다: TObject → TPersistent → TComponent → TControl → TWinControl → TButtonControl → TButton.

TControl 객체에서 파생되는 구성요소는 일반적으로 시각적 구성요소(컨트롤)이며, TWinControl에서 파생되는 일반 구성요소는 대부분 Windows API를 감싸는 래퍼(wrapper)라는 점에 유의하십시오.

► VCL 아키텍처와 구성요소 개요는 Embarcadero RAD Studio VCL을 참조하십시오.

Altium Designer Script Editor에서 Form을 만들 때 구성요소는 Tool Palette 패널에서 접근합니다. Script Form에는 폼의 구성, 구성요소 위치 및 기타 속성의 세부 정보를 포함하는 연관 *.DFM 파일이 있으며, 이 파일은 스크립트 프로젝트의 호스트 폴더에서 찾을 수 있습니다. Altium Designer는 Script Form을 설계할 때 DelphiScript 또는 VBScript 중 하나로 구성요소를 사용할 수 있도록 허용합니다.

VBScript 언어는 레거시로 간주되며 기본으로는 사용할 수 없지만, Advanced PreferencesLegacy.Scripts.SupportOldLanguages 설정으로 활성화할 수 있습니다.

Tool Palette Panel에는 스크립트 Form에 드롭할 수 있는 분류된 시각적 컨트롤이 포함되어 있습니다.
Tool Palette Panel에는 스크립트 Form에 드롭할 수 있는 분류된 시각적 컨트롤이 포함되어 있습니다.

Tool Palette panel에는 Script Form에 배치할 수 있는 구성요소의 분류된 선택 항목이 포함되어 있습니다. 사용 가능한 구성요소는 Tool Palette 패널의 확장 가능한 섹션으로 구성되며, Standard, Additional, Win32, System, Dialogs, Altium Standard, Instrument Controls로 분류됩니다.

패널의 모양과 동작은 우클릭 컨텍스트 메뉴에서 변경할 수 있습니다.

Palette에서 사용할 수 있는 구성요소(또는 ‘컨트롤’)는 스크립트 폼에서 사용될 때 시각적 구성요소이며, 즉 사용자가 컨트롤을 보고 런타임에 상호작용할 수도 있음을 의미합니다. 모든 컨트롤에는 외형의 측면을 설명하는 속성, 메서드, 이벤트가 있으며, 예를 들어 컨트롤의 위치 속성, 컨트롤을 그리거나 이동하는 메서드, 사용자 동작에 반응하는 이벤트 등이 있습니다.

속성과 이벤트는 현재 선택된 폼 구성요소(폼 자체 포함)에 대해 Object Inspector panel에서 사용할 수 있습니다. 메서드는 해당 구성요소가 지원하는 프로시저와 함수입니다.

Script Forms 개요

Script Forms

Script Form은 스크립트에서 기본 사용자 인터페이스이지만, 대화상자, 보조 창 등 다른 폼도 있습니다. 새 Script Form을 만들려면 Altium Designer에서 프로젝트를 연 상태로 File » New » Script » Script Form를 선택하거나, Script 프로젝트 이름을 우클릭하고 Add New to Project » Script Form를 선택하십시오. VBScript 언어가 활성화되어 있으면 이 명령은 VB Script와 Delphi Script 모두에서 사용할 수 있습니다.

새 Script Form은 기본값으로 Form1 폼 이름으로 나타나며, Object Inspector 패널에서 Misc 아래의 Name 속성을 통해 변경할 수 있습니다. Script form 이름은 프로젝트 내에서 고유해야 합니다.

스크립트 Form을 설계할 때는 하단 상태 표시줄의 Script button에서 Object Inspector Panel을 여십시오.스크립트 Form을 설계할 때는 하단 상태 표시줄의 Script button에서 Object Inspector Panel을 여십시오.

빈 폼은 기본적으로 컨트롤을 추가할 수 있는 시각적 창입니다. 다이얼로그와 패널은 서로 다른 유형의 폼이며, 기본적으로 폼에는 다음과 같은 표준 창 기능이 포함됩니다:

  • Controls
  • 최소화 및 최대화 버튼
  • 제목 표시줄
  • 테두리 드래그로 크기 조절 가능

이러한 기능과 기타 사용 가능한 폼 속성은 설계 시점에 Object Inspector 패널을 사용하여 변경할 수 있습니다. Script Form은 VCL 구성요소이므로 다음 세 가지 항목을 가집니다:

  • Properties – 객체의 가시적 동작 또는 동작 방식에 영향을 주는 특성. 예를 들어 Visible property는 객체가 스크립트 폼에서 보일 수 있는지 여부를 결정합니다.
  • Events – 스크립트가 감지하는 동작 또는 발생. 스크립트는 각 이벤트 핸들러에 대한 코드를 포함해야 하며, 이는 마우스 클릭과 같은 특정 이벤트를 포착하도록 설계됩니다.
  • Methods – 객체(이 경우 구성요소 객체)와 연관된 스크립트 프로시저로, 그 동작을 정의합니다.

► 폼 기반 스크립트 개발의 기본 가이드는 Writing Scripts를 참조하십시오.

폼 속성, 메서드 및 이벤트

Tool Palette 패널의 컨트롤은 Embarcadero Visual Component Library(VCL)를 기반으로 합니다. Form 구성요소(TForm)의 메서드, 속성, 이벤트에 대한 전체 세부 정보는 Embarcadero VCL 문서를 참조하십시오.

Embarcadero TForm reference

를 참조하십시오.위 링크는 VCL 라이브러리의 Embarcadero RAD Studio XE6 참조를 가리킨다는 점에 유의하십시오. 이전 릴리스(2010 버전까지)의 문서도 제공됩니다.

TForm 속성

기본 스크립트 폼인 TForm 구성요소 객체에 대해 사용 가능한 Properties는 다음 방법으로 볼 수 있습니다:

  • Object Inspector Panel을 통해 – 편집기의 Form 보기(Form tab 선택)에서 폼 본문을 클릭하고 Object Inspector's Properties tab을 선택합니다.

시각적 구성요소 객체만 패널에 표시된다는 점에 유의하십시오. 백그라운드에서 동작하는 비시각적 객체는 폼에 표시되지 않습니다.

  • 코드 자동 완성 기능 사용 – 편집기의 Code 보기(Code tab 선택)에서 컨텍스트에 민감한 Code Completion 창이 객체 이름에 대한 모든 코드 옵션을 표시합니다.

Form 객체의 경우 TForm.를 입력(마침표 포함)하여 창을 활성화합니다. 원하는 속성의 첫 몇 글자를 입력해 검색 범위를 좁히십시오. 속성과 메서드가 모두 표시됩니다.

TForm 메서드

TForm 구성요소 객체에 대해 사용 가능한 Methods는 다음 방법으로 볼 수 있습니다:

  • 코드 자동 완성 기능 사용 – 편집기의 Code 보기에서 구성요소 이름 뒤에 마침표를 입력합니다. Code Completion 창이 열리며 객체 이름에 대한 코드 메서드(및 속성)를 표시합니다. 코드 창은 Crtl+Space 단축키로 수동 활성화할 수도 있습니다.

  • TForm Methods reference page의 Embarcadero 참조 문서를 참조하십시오. 이는 상속된 모든 Methods를 보여주지만, 해당 옵션은 해제할 수 있습니다.

TForm 이벤트

TForm 구성요소 객체에 대해 사용 가능한 Events는 다음 방법으로 볼 수 있습니다:

  • Object Inspector Panel – 편집기의 Form 보기에서 폼 본문을 클릭하고 Object Inspector의 Events tab을 선택합니다.

구성요소 속성, 이벤트 및 메서드

Tool Palette 패널의 컨트롤은 Embarcadero Visual Component Library(VCL)를 기반으로 합니다. 대부분의 구성요소에 대한 메서드, 속성, 이벤트의 전체 세부 정보는 Embarcadero VCL 문서의 구성요소 카테고리를 참조하십시오. Tool Palette의 일부 구성요소 유형, 특히 Altium Instrument Controls는 Altium Designer 전용이며 Embarcadero 참조 문서에는 포함되지 않습니다.

Embarcadero VCL Components Categories Index

를 참조하십시오.
위 링크는 VCL 라이브러리에 대한 Embarcadero RAD Studio XE6 참조를 가리킨다는 점에 유의하십시오. 이전 릴리스(2010 버전까지)의 문서도 제공됩니다.

구성요소 속성

구성요소의 Properties 목록을 보려면:

  • 폼에서 구성요소를 선택하고 Object Inspector 패널의 Properties tab을 활성화합니다 – 위의 TForm 구성요소 객체 예시와 같습니다.
  • Embarcadero reference documentation에서 해당 구성요소 참조 페이지 상단의 Properties 링크를 선택합니다. 예를 들어 TButton 컨트롤의 경우 Standard Component 카테고리에서 TButton 페이지를 선택한 다음 Properties 보기를 선택합니다.

구성요소 이벤트

구성요소가 반응할 수 있는 Events 목록을 보려면:

  • 폼에서 구성요소를 선택하고 Object Inspector 패널의 Events tab을 활성화합니다 – 위의 TForm 구성요소 객체 예시와 같습니다.
  • 적절한 구성요소 참조 페이지를 선택한 다음 Embarcadero reference documentation에서 Events 링크를 선택합니다. 이는 구성요소에서 사용 가능한 이벤트에 대한 가이드로 유용하지만, Altium Designer 스크립팅 구성요소에서 사용 가능한 이벤트와 완전히 일치하지 않을 수 있습니다.

이벤트 처리 프로시저를 만들려면 Object Inspector Events tab에서 구성요소가 반응해야 하는 이벤트를 선택하고 Event 항목 필드를 더블 클릭합니다. 그러면 구성요소와 이벤트 동작에서 이름이 만들어진 이벤트 핸들러 프로시저가 스크립트에 자동으로 생성됩니다. Object Inspector 패널에서 이벤트 이름을 변경하면 해당 코드 프로시저도 그에 맞게 이름이 변경됩니다.

구성요소 메서드

Tool Palette 구성요소에 대해 사용 가능한 Methods 정보는 Component Categories 문서를 참조하십시오.

여기에는 다음 컨트롤 객체 카테고리에 대한 참조가 포함됩니다.

  • Standard
  • Additional
  • Win32
  • System
  • Dialog
  • Altium Standard
  • Instrument Controls

대부분의 경우 이러한 카테고리는 표준 Delphi 유형의 VCL 구성요소를 기반으로 한 시각적 폼 컨트롤 유형을 모아 둔 것입니다. Altium Standard 및 Instrument Controls 카테고리는 예외로, Altium Designer 스크립팅 시스템 전용 구성요소를 제공합니다.

Tool Palette Component Categories를 참조하십시오.

폼 및 구성요소 작업

Script Forms 사용자 지정

  • 예를 들어 폼이 다른 열려 있는 패널 위에 항상 표시되도록 하려면 FormStyle 속성을 fsStayOnTop(으)로 설정합니다.
  • 폼의 기본 동작을 정의하려면 FormKind을(를) 다음 값 중 하나로 설정합니다. fkNone, fkNormal, fkServerPanel 또는 fkModal.
    • fkModal을(를) 선택하면 폼은 모달(Modal) 폼이 됩니다. 즉, 폼을 닫는 것과 같은 동작을 진행하기 전에 사용자 입력을 기다리는 폼입니다.
    • fkServerPanel을(를) 선택하면 폼이 Server 패널로 표시됩니다.
    • fkNormal을(를) 선택하면 폼은 일반적인 비모달(Non-Modal) 폼처럼 동작합니다.
  • 폼의 스크롤 바를 추가/제거하려면 HorzScrollBarVertScrollBar 속성 값을 변경합니다.
  • 폼을 MDI(Multiple Document Interface) 프레임 또는 자식으로 만들려면 FormStyle 속성을 사용합니다.
  • 폼의 테두리 스타일을 변경하려면 BorderIconsBorderStyle 속성을 사용합니다. (결과는 런타임에 표시됩니다.)
  • 최소화된 폼의 아이콘을 변경하려면 Icon 속성을 사용합니다.
  • 애플리케이션 창에서 폼의 초기 위치를 지정하려면 Position 속성을 사용합니다.
  • 폼의 초기 상태(예: 최소화, 최대화 또는 일반)를 지정하려면 WindowState 속성을 사용합니다.
  • 런타임에서 폼의 작업 영역을 정의하려면 ClientHeightClientWidth 속성을 사용합니다. ClientHeightClientWidth은(는) 폼 테두리 내부의 영역을 나타내는 반면, HeightWidth은(는) 폼의 전체 영역을 나타냅니다.
  • 런타임에서 폼에서 어떤 컨트롤이 초기 포커스를 갖는지 지정하려면 ActiveControl 속성을 사용하여 사용 가능한 컴포넌트 중에서 선택합니다.
  • 선택된 컨트롤과 관계없이 모든 키보드 이벤트를 폼으로 전달하려면 KeyPreview 속성을 사용합니다.
  • 폼에 메뉴가 둘 이상 포함된 경우 특정 메뉴를 지정하려면 Menu 속성을 사용합니다.

폼 및 컴포넌트 새로 고침

경우에 따라 스크립트 폼의 시각적 상태가 최신이 아닐 수 있습니다. 예를 들어 스크립트의 과도한 백그라운드 처리로 인해 컨트롤이 업데이트되거나 다시 그려지지 않아, 멈춘 것처럼 보이거나 깨진 것처럼 보일 수 있습니다.

스크립트 폼의 Update 메서드는 폼 또는 특정 컨트롤의 그래픽 내용을 프로그래밍 방식으로 새로 고칠 수 있는 방법을 제공합니다. 아래 코드 예제에서는 Update 메서드 코드 줄이 회색으로 강조 표시되어 있습니다.

Using the Update method to refresh the Status Bar:

Procedure TConverterForm.loadbuttonClick(Sender: TObject);
Var
   I, J : Integer;
Begin
    If OpenPictureDialog1.Execute then
    Begin
        XPProgressBar1.Position := 0;
        XStatusBar1.SimpleText  := '  Loading...';
        XStatusBar1.Update;

        // loading a monochrome bitmap only
        Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);

        // Check if image is monochrome, otherwise prompt a warning
        If Image1.Picture.Bitmap.PixelFormat <> pf1bit Then
        Begin
            For J := 0 to Image1.Picture.Height – 1 Do
                For I := 0 to Image1.Picture.Height – 1 Do
            Begin
                If Image1.Canvas.Pixels[I,J] <> clWhite Then
                    Image1.Canvas.Pixels[I,J] := clBlack;
            End;
        End;

        ScalingFactorChange(Nil);

        convertbutton.Enabled  := True;
        LoadButton.Enabled     := False;
        XStatusBar1.SimpleText := '  Ready...';
        XStatusBar1.Update;
    End;
End;

다운로드 가능한 스크립트 컬렉션의 Scripts\Delphiscript Scripts\PCB\PCB Logo Creator 폴더에 있는 PCB Logo Creator 스크립트 프로젝트를 참조하십시오.

AI-LocalizedAI로 번역됨
만약 문제가 있으시다면, 텍스트/이미지를 선택하신 상태에서 Ctrl + Enter를 누르셔서 저희에게 피드백을 보내주세요.
기능 제공 여부

사용 가능한 기능은 보유하고 계시는 Altium 솔루션에 따라 달라집니다. 해당 솔루션은 Altium Develop, Altium Agile의 에디션(Agile Teams 또는 Agile Enterprise), 또는 활성기간 내의 Altium Designer 중 하나입니다.

안내된 기능이 고객님의 소프트웨어에서 보이지 않는 경우, 보다 자세한 내용을 위해 Altium 영업팀 에 문의해 주세요.

구버전 문서

Altium Designer 문서는 더 이상 버전별로 제공되지 않습니다. 이전 버전의 Altium Designer 문서가 필요하신 경우, Other Installers 페이지의 Legacy Documentation 섹션을 방문해 주세요.

콘텐츠