Lập trình script cho các thành phần đồ họa

 

Tài liệu tham khảo này trình bày các thành phần đồ họa được hỗ trợ cho scripting cùng với các thuộc tính và phương thức chính của chúng.

Các thành phần biểu mẫu trực quan có thể dùng trong script của Altium Designer phần lớn được dẫn xuất từ Visual Component Library (VCL) của Embarcadero, là một tập hợp các thành phần trực quan được định nghĩa sẵn để phát triển ứng dụng Windows bằng ngôn ngữ Delphi và C++.

Được phát triển như một thư viện lớp trực quan, các lớp VCL được kế thừa từ đối tượng TComponent (bản thân nó cũng là hậu duệ của đối tượng gốc TObject) trong một hệ phân cấp đối tượng tuyến tính. Vì vậy, một thành phần script thông dụng, chẳng hạn như đối tượng TButton, sẽ kế thừa các thuộc tính, phương thức và sự kiện từ các đối tượng cấp trên của nó. Trong trường hợp này, hệ phân cấp lớp là: TObject → TPersistent → TComponent → TControl → TWinControl → TButtonControl → TButton.

Lưu ý rằng các thành phần được dẫn xuất từ đối tượng TControl nhìn chung là các thành phần trực quan (controls), còn các thành phần thông dụng được dẫn xuất từ TWinControl chủ yếu là các lớp bao quanh Windows API.

► Xem Embarcadero RAD Studio VCL để có cái nhìn tổng quan về kiến trúc và các thành phần VCL.

Khi tạo một Form trong Altium Designer Script Editor, các thành phần được truy cập từ bảng Tool Palette. Script Forms có một tệp *.DFM liên kết, bao gồm chi tiết về cấu hình của form, vị trí các thành phần và các thuộc tính khác – tệp này có thể được tìm thấy trong thư mục chứa của dự án script. Altium Designer cho phép sử dụng các thành phần này bằng cả DelphiScript hoặc VBScript khi thiết kế Script Forms.

Ngôn ngữ VBScript được xem là dạng cũ và không được bật mặc định, nhưng có thể được kích hoạt bằng thiết lập Legacy.Scripts.SupportOldLanguages trong Advanced Preferences.

Bảng Tool Palette chứa các điều khiển trực quan được phân loại, có thể kéo thả lên một script Form.
Bảng Tool Palette chứa các điều khiển trực quan được phân loại, có thể kéo thả lên một script Form.

Bảng Tool Palette panel chứa các nhóm thành phần được phân loại có thể đặt lên một Script Form. Các thành phần khả dụng được sắp xếp thành các mục có thể mở rộng trong bảng Tool Palette, được phân loại thành Standard, Additional, Win32, System, Dialogs, Altium Standard và Instrument Controls.

Giao diện và cách hoạt động của bảng có thể được thay đổi từ menu ngữ cảnh khi nhấp chuột phải.

Các thành phần (hay “controls”) có trong Palette là các thành phần trực quan khi được dùng trên script form, nghĩa là người dùng có thể nhìn thấy một control và có thể tương tác với nó trong lúc chạy. Mọi control đều có các thuộc tính, phương thức và sự kiện mô tả các khía cạnh về hình thức hiển thị của chúng, chẳng hạn như thuộc tính vị trí của control, các phương thức để vẽ hoặc di chuyển control, và các sự kiện phản hồi thao tác của người dùng.

Các thuộc tính và sự kiện có sẵn trong bảng Object Inspector panel đối với thành phần form hiện đang được chọn, bao gồm cả chính form đó. Các phương thức là các procedure và function được thành phần đó hỗ trợ.

Tổng quan về Script Forms

Script Forms

Một Script Form là giao diện người dùng chính trong script, mặc dù vẫn còn các dạng khác như hộp thoại, cửa sổ phụ, v.v. Để tạo một Script Form mới khi đang mở một dự án trong Altium Designer, hãy chọn File » New » Script » Script Form hoặc nhấp chuột phải vào tên dự án Script và chọn Add New to Project » Script Form. Nếu ngôn ngữ VBScript được bật, lệnh này sẽ khả dụng cho cả VB Script và Delphi Script.

Một Script Form mới sẽ xuất hiện với tên mặc định là Form1, có thể thay đổi thông qua thuộc tính Name (trong mục Misc) ở bảng Object Inspector. Tên của script form phải là duy nhất trong một dự án.

Khi thiết kế một script Form, hãy mở bảng Object Inspector từ nút Script  ở thanh trạng thái phía dưới.Khi thiết kế một script Form, hãy mở bảng Object Inspector từ nút Script ở thanh trạng thái phía dưới.

Một form trống về cơ bản là một cửa sổ trực quan mà bạn có thể thêm các control vào. Hộp thoại và panel là các loại form khác nhau, và theo mặc định, một form bao gồm chức năng cửa sổ tiêu chuẩn như:

  • Controls
  • Các nút Minimize và Maximize
  • Thanh tiêu đề
  • Có thể thay đổi kích thước bằng cách kéo viền

Những tính năng này, cùng với mọi thuộc tính form khác có sẵn, có thể được thay đổi tại thời điểm thiết kế bằng bảng Object Inspector. Vì Script Form là một thành phần VCL nên nó có ba mục sau:

  • Properties – Các đặc tính của một đối tượng ảnh hưởng đến hành vi hiển thị hoặc hoạt động của nó. Ví dụ, thuộc tính Visible xác định một đối tượng có thể được nhìn thấy trên script form hay không.
  • Events – Các hành động hoặc sự kiện xảy ra được script phát hiện. Script phải bao gồm mã cho từng trình xử lý Event, được thiết kế để bắt một sự kiện cụ thể như nhấp chuột.
  • Methods – Các procedure script được gắn với các đối tượng (trong trường hợp này là các đối tượng thành phần) và xác định hành vi của chúng.

► Xem Writing Scripts để có hướng dẫn cơ bản về phát triển script dựa trên form.

Thuộc tính, Phương thức và Sự kiện của Form

Các control trong bảng Tool Palette dựa trên Embarcadero Visual Component Library (VCL). Để biết đầy đủ chi tiết về các phương thức, thuộc tính và sự kiện cho thành phần Form (TForm), hãy tham khảo tài liệu VCL của Embarcadero.

► Xem Embarcadero TForm referenceLưu ý rằng liên kết trên dẫn đến tài liệu tham chiếu Embarcadero RAD Studio XE6 dành cho thư viện VCL. Tài liệu cho các bản phát hành trước đó (xuống đến phiên bản 2010) cũng có sẵn.

Thuộc tính TForm

Các Properties khả dụng cho đối tượng thành phần TForm, tức script form cơ sở, có thể được xem theo các cách sau:

  • Thông qua bảng Object Inspector – Trong Form view của trình biên tập (đã chọn thẻ Form ), nhấp vào phần thân của chính form và chọn thẻ Object Inspector's Properties .

Lưu ý rằng chỉ các đối tượng thành phần trực quan mới xuất hiện trong bảng. Các đối tượng không trực quan, hoạt động như các điều khiển ngầm phía sau, sẽ không được hiển thị trên form.

  • Bằng cách sử dụng tính năng Code Completion – Trong Code view của trình biên tập (đã chọn thẻ Code ), cửa sổ Code Completion theo ngữ cảnh sẽ hiển thị tất cả các tùy chọn mã cho tên một đối tượng.

Đối với đối tượng Form, nhập TForm. (lưu ý dấu chấm) để kích hoạt cửa sổ. Thu hẹp tìm kiếm bằng cách gõ vài chữ cái đầu của thuộc tính mong muốn – lưu ý rằng cả thuộc tính và phương thức đều được hiển thị.

Phương thức TForm

Các Methods khả dụng cho đối tượng thành phần TForm có thể được xem theo các cách sau:

  • Sử dụng tính năng Code Completion – Trong Code view của trình biên tập, nhập tên một thành phần theo sau bởi dấu chấm. Cửa sổ Code Completion sẽ mở ra để hiển thị các phương thức mã (và thuộc tính) của một tên đối tượng. Lưu ý rằng cửa sổ mã có thể được kích hoạt thủ công bằng phím tắt Crtl+Space.

  • Tham khảo tài liệu của Embarcadero tại trang TForm Methods reference page. Lưu ý rằng trang này hiển thị tất cả các Methods được kế thừa, tuy nhiên tùy chọn này có thể được bỏ chọn.

Sự kiện TForm

Các Events khả dụng cho đối tượng thành phần TForm có thể được xem theo các cách sau:

  • Bảng Object Inspector – Trong Form view của trình biên tập, nhấp vào phần thân của chính form và chọn thẻ Events của Object Inspector.

Thuộc tính, Sự kiện và Phương thức của Thành phần

Các control trong bảng Tool Palette dựa trên Embarcadero Visual Component Library (VCL). Để biết đầy đủ chi tiết về các phương thức, thuộc tính và sự kiện của phần lớn các thành phần, hãy tham khảo các danh mục thành phần trong tài liệu VCL của Embarcadero. Một số loại Component trong Tool Palette, đặc biệt là Altium Instrument Controls, là riêng của Altium Designer và không có trong tài liệu tham chiếu của Embarcadero.

► Xem Embarcadero VCL Components Categories IndexLưu ý rằng liên kết trên dẫn đến tài liệu tham chiếu Embarcadero RAD Studio XE6 cho thư viện VCL. Tài liệu cho các bản phát hành trước đó (xuống đến phiên bản 2010) cũng có sẵn.

Thuộc tính Thành phần

Để xem danh sách các Properties của một thành phần:

  • Chọn một thành phần trên Form và kích hoạt thẻ Properties trong bảng Object Inspector – như được minh họa ở trên cho đối tượng thành phần TForm.
  • Chọn liên kết Properties (ở phía trên) trên trang tham chiếu của thành phần tương ứng trong tài liệu tham chiếu Embarcadero. Ví dụ, trong trường hợp control TButton, hãy chọn danh mục Standard Component, trang TButton rồi đến chế độ xem Properties.

Sự kiện Thành phần

Để xem danh sách các Events mà một thành phần có thể phản ứng với:

  • Chọn một thành phần trên Form và kích hoạt thẻ Events trong bảng Object Inspector – như được minh họa ở trên cho đối tượng thành phần TForm.
  • Chọn trang tham chiếu thành phần phù hợp rồi chọn liên kết Events của nó trong tài liệu tham chiếu Embarcadero. Lưu ý rằng điều này hữu ích như một hướng dẫn về các sự kiện khả dụng cho một thành phần và có thể không hoàn toàn khớp với các sự kiện có sẵn cho các thành phần scripting của Altium Designer.

Để tạo một procedure xử lý sự kiện, hãy chọn sự kiện mà thành phần cần phản ứng với trong thẻ Object Inspector Events rồi nhấp đúp vào trường nhập Event. Procedure xử lý sự kiện, được đặt tên theo thành phần và hành động sự kiện, sau đó sẽ được tự động tạo trong script. Nếu sự kiện được đổi tên trong bảng Object Inspector thì procedure mã tương ứng cũng sẽ được đổi tên theo.

Phương thức Thành phần

Tham khảo tài liệu Component Categories để biết thông tin về các Methods khả dụng cho một thành phần Tool Palette.

Tài liệu này bao gồm tham chiếu cho các danh mục đối tượng điều khiển sau.

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

Phần lớn các danh mục này tập hợp các loại điều khiển form trực quan dựa trên các thành phần VCL chuẩn kiểu Delphi. Hai danh mục Altium Standard và Instrument Controls là ngoại lệ, vì chúng cung cấp các thành phần chỉ có trong hệ thống scripting của Altium Designer.

► Xem Tool Palette Component Categories.

Làm việc với Forms và Components

Tùy biến Script Forms

  • Để làm cho một biểu mẫu luôn nằm trên các panel đang mở khác, ví dụ, hãy đặt thuộc tính FormStyle thành fsStayOnTop.
  • Để xác định hành vi mặc định của một biểu mẫu, hãy đặt FormKind thành một trong các giá trị sau; fkNone, fkNormal, fkServerPanel hoặc fkModal.
    • Nếu chọn fkModal thì biểu mẫu sẽ là biểu mẫu modal. Nghĩa là biểu mẫu sẽ chờ người dùng nhập liệu trước khi tiếp tục các thao tác như đóng biểu mẫu.
    • Nếu chọn fkServerPanel thì biểu mẫu sẽ được hiển thị dưới dạng panel Server.
    • Nếu chọn fkNormal thì biểu mẫu hoạt động như một biểu mẫu không modal thông thường.
  • Để thêm/xóa thanh cuộn của biểu mẫu, hãy thay đổi giá trị của các thuộc tính HorzScrollBarVertScrollBar.
  • Để biến biểu mẫu thành khung hoặc phần tử con MDI (Multiple Document Interface), hãy dùng thuộc tính FormStyle.
  • Để thay đổi kiểu đường viền của biểu mẫu, hãy dùng các thuộc tính BorderIconsBorderStyle. (Kết quả sẽ hiển thị khi chạy.)
  • Để thay đổi biểu tượng cho biểu mẫu khi thu nhỏ, hãy dùng thuộc tính Icon.
  • Để chỉ định vị trí ban đầu của biểu mẫu trong cửa sổ ứng dụng, hãy dùng thuộc tính Position.
  • Để chỉ định trạng thái ban đầu của biểu mẫu, (ví dụ: thu nhỏ, phóng to hoặc bình thường) hãy dùng thuộc tính WindowState.
  • Để xác định vùng làm việc của biểu mẫu khi chạy, hãy dùng các thuộc tính ClientHeightClientWidth. Lưu ý rằng ClientHeightClientWidth biểu thị vùng bên trong đường viền của biểu mẫu, trong khi HeightWidth biểu thị toàn bộ vùng của biểu mẫu.
  • Để chỉ định điều khiển nào có tiêu điểm ban đầu trong biểu mẫu khi chạy, hãy dùng thuộc tính ActiveControl để chọn từ các thành phần hiện có.
  • Để chuyển tất cả sự kiện bàn phím đến biểu mẫu, bất kể điều khiển nào đang được chọn, hãy dùng thuộc tính KeyPreview.
  • Để chỉ định một menu cụ thể, nếu biểu mẫu chứa nhiều hơn một menu, hãy dùng thuộc tính Menu.

Làm mới Biểu mẫu và Thành phần

Trong một số trường hợp, phần hiển thị trực quan của biểu mẫu script có thể không còn cập nhật, ví dụ nếu quá trình xử lý nền chuyên sâu từ script khiến các điều khiển không được cập nhật hoặc vẽ lại, làm chúng có vẻ bị treo hoặc lỗi hiển thị.

Phương thức Update của biểu mẫu script cung cấp một cách lập trình để làm mới nội dung đồ họa của biểu mẫu hoặc (các) điều khiển cụ thể. Trong ví dụ mã bên dưới, các dòng mã của phương thức Update được tô xám để làm nổi bật.

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;

Tham khảo dự án script PCB Logo Creator nằm trong thư mục Scripts\Delphiscript Scripts\PCB\PCB Logo Creator của bộ sưu tập scripts có thể tải xuống .

AI-LocalizedBản địa hóa bằng AI
Nếu bạn phát hiện vấn đề, hãy chọn văn bản/hình ảnh và nhấnCtrl + Enterđể gửi phản hồi cho chúng tôi.
Tính khả dụng của tính năng

Các tính năng có sẵn cho bạn phụ thuộc vào giải pháp Altium mà bạn đang sử dụng – Altium Develop, một phiên bản của Altium Agile (Agile Teams hoặc Agile Enterprise), hoặc Altium Designer (đang còn hiệu lực).

Nếu bạn không thấy tính năng được đề cập trong phần mềm của mình, liên hệ Bộ phận Kinh doanh của Altium để tìm hiểu thêm.

Tài liệu cũ

Tài liệu Altium Designer không còn được phân phiên bản. Nếu bạn cần truy cập tài liệu cho các phiên bản cũ hơn của Altium Designer, hãy truy cập mục Tài liệu cũ trên trang Trình cài đặt khác.

Nội dung