Biểu mẫu & Linh kiện

Tổng quan về các thành phần đồ họa

Hệ thống kịch bản xử lý hai loại thành phần: thành phần trực quan và thành phần không trực quan.

Các thành phần trực quan được sử dụng để xây dựng giao diện người dùng, còn các thành phần không trực quan được sử dụng cho các tác vụ khác nhau, chẳng hạn như Timer, OpenDialogMainMenu thành phần.

  • Thành phần Timer thành phần phi trực quan có thể được sử dụng để kích hoạt mã cụ thể theo các khoảng thời gian đã lên lịch, và người dùng không bao giờ nhìn thấy thành phần này.
  • Thành phần Button, EditMemo là các thành phần trực quan.

Cả hai loại thành phần đều xuất hiện trong giai đoạn thiết kế, nhưng các thành phần không hiển thị sẽ không hiển thị trong giai đoạn chạy chương trình. Các thành phần từ Tool Palette có tính hướng đối tượng và có ba mục sau đây:

  • Thuộc tính
  • Sự kiện
  • Phương thức

Một Property là một đặc tính của một đối tượng, ảnh hưởng đến hành vi hiển thị hoặc các thao tác của đối tượng đó. Ví dụ, thuộc tính Visible quyết định liệu đối tượng này có thể được nhìn thấy hay không trên biểu mẫu kịch bản.

Một Event là một hành động hoặc sự kiện được kịch bản phát hiện. Trong một kịch bản, lập trình viên viết mã cho từng trình xử lý sự kiện được thiết kế để bắt một sự kiện cụ thể, chẳng hạn như nhấp chuột.

Một Method là một thủ tục luôn được liên kết với một đối tượng và xác định hành vi của đối tượng đó.

Tất cả các biểu mẫu kịch bản đều có một hoặc nhiều thành phần. Các thành phần thường hiển thị thông tin hoặc cho phép người dùng thực hiện một hành động. Ví dụ, một Label được sử dụng để hiển thị văn bản tĩnh, một Edit hộp được dùng để cho phép người dùng nhập dữ liệu, một Button có thể được dùng để khởi tạo các hành động.

Bất kỳ sự kết hợp nào của các thành phần đều có thể được đặt trên một biểu mẫu, và trong khi kịch bản đang chạy, người dùng có thể tương tác với bất kỳ thành phần nào trên biểu mẫu. Nhiệm vụ của lập trình viên là quyết định điều gì sẽ xảy ra khi người dùng nhấp vào một nút hoặc thay đổi văn bản trong một Edit hộp.

Hệ thống Scripting cung cấp một số thành phần có thể được sử dụng để tạo giao diện người dùng phức tạp cho các tập lệnh. Để đặt một thành phần vào biểu mẫu, hãy tìm biểu tượng của thành phần đó trênbảng Công cụ và nhấp đúp vào biểu tượng đó. Thao tác này sẽ đặt thành phần vào biểu mẫu đang hoạt động. Hình thức hiển thị của hầu hết các thành phần được thiết lập thông qua các thuộc tính của chúng. Ban đầu, một thành phần được đặt ở vị trí mặc định trên biểu mẫu nhưng có thể được di chuyển (kéo) và thay đổi kích thước (kéo giãn) theo yêu cầu. Bạn cũng có thể thay đổi kích thước và vị trí sau này bằng cách sử dụng Object Inspector bảng điều khiển.

Khi một thành phần được thả vào biểu mẫu, hệ thống Tạo tập lệnh sẽ tự động tạo mã cần thiết để sử dụng thành phần đó và cập nhật biểu mẫu tập lệnh. Chỉ cần thiết lập các thuộc tính và triển khai mã xử lý sự kiện để sử dụng các phương thức mong muốn nhằm làm cho thành phần trên biểu mẫu hoạt động.

Thiết kế biểu mẫu kịch bản

Một biểu mẫu kịch bản được thiết kế để tương tác với người dùng trong môi trường. Thiết kế biểu mẫu kịch bản là cốt lõi của phát triển trực quan.

Trong thực tế, tất cả các thành phần đều được đặt trên một biểu mẫu kịch bản, và mỗi thuộc tính được thiết lập đều được lưu trữ trong một tệp mô tả biểu mẫu (một *.DFM tệp) có mối liên hệ với mã kịch bản liên quan (tệp *.PAS tệp). Đối với mỗi biểu mẫu kịch bản, đều có tệp .PAS tệp và tệp .DFM tệp.

Khi làm việc với một biểu mẫu kịch bản và các thành phần của nó, tất cả các thuộc tính của phần tử đều có thể được kiểm tra và sửa đổi bằng cách sử dụng Object Inspector bảng điều khiển. Bạn có thể chọn nhiều thành phần bằng cách nhấp chuột phải vào các thành phần đó, hoặc bằng cách kéo một hình chữ nhật chọn bao quanh các thành phần trên biểu mẫu. Một biểu mẫu kịch bản có tiêu đề (thuộc tính Caption thuộc tính trên Object Inspector bảng điều khiển).

Tạo biểu mẫu kịch bản mới

Khi dự án kịch bản đang mở, nhấp chuột phải vào một dự án trong Projects bảng điều khiển, nhấp vào mục Add New to Project mục trong menu ngữ cảnh bật lên, rồi chọn một Delphi Script Form mục. Một biểu mẫu kịch bản mới sẽ mở ra với tên mặc định là EditScript1.pas.

Hiển thị biểu mẫu kịch bản

Một kịch bản cần có một thủ tục để hiển thị biểu mẫu khi biểu mẫu kịch bản được thực thi. Trong thủ tục này, phương thức ShowModal phương thức có thể được gọi cho biểu mẫu. Thuộc tính Visible thuộc tính của biểu mẫu phải được đặt thành false để ShowModal phương thức của biểu mẫu kịch bản hoạt động chính xác.

ShowModal example:

Procedure RunDialog;
Begin
  DialogForm.ShowModal;
End;

Ví dụ ShowModal Ví dụ này là một cách tiếp cận rất đơn giản để hiển thị biểu mẫu kịch bản khi RunDialog thủ tục được gọi. Lưu ý rằng các giá trị có thể được gán cho các thành phần của DialogForm trước khi DialogForm.ShowModal phương thức được gọi.

ModalResult thuộc tính được trình bày dưới đây phức tạp hơn một chút. Các phương thức sau đây trong tập lệnh được sử dụng cho các nút trên biểu mẫu tập lệnh. Các phương thức này sẽ khiến hộp thoại đóng lại khi người dùng nhấp vào nút OK hoặc Cancel , phương thức này sẽ trả về mrOk hoặc mrCancel từ ShowModal phương thức tương ứng.

ModalResult Example:

Procedure TForm.OKButtonClick(Sender: TObject);
Begin
  ModalResult := mrOK;
End;

Procedure TForm.CancelButtonClick(Sender: TObject);
Begin
  ModalResult := mrCancel;
End;

Procedure RunShowModalExample;
Begin
  // Form's Visible property must be false for ShowModal to work correctly.
  If Form.ShowModal = mrOk Then ShowMessage('mrOk');
  If Form.ShowModal = mrCancel Then ShowMessage('mrCancel');
End;
Bạn cũng có thể đặt giá trị ModalResult giá trị thành mrOk cho OK nút và mrCancel cho Cancel để đạt được kết quả tương tự như trên.

Khi người dùng nhấp vào một trong hai nút trên biểu mẫu tập lệnh này, hộp thoại sẽ đóng lại. Không cần phải gọi phương thức Close phương thức này, vì khi phương thức ModalResult phương thức này được thiết lập, trình chạy kịch bản sẽ tự động đóng biểu mẫu kịch bản.

Lưu ý rằng nếu bạn muốn thiết lập thuộc tính ModalResult thành Cancel khi người dùng nhấn phím Esc , hãy sử dụng Object Inspector để thiết lập thuộc tính Cancel thành True, hoặc chèn Sender.Cancel := True vào trình xử lý sự kiện CancelButtonClick .

Chấp nhận đầu vào từ người dùng

Một trong những thành phần phổ biến có thể nhận đầu vào từ người dùng là thành phần TEdit . Thành phần này có một trường cho phép người dùng nhập một chuỗi ký tự. Lưu ý rằng còn có các thành phần Delphi khác như TMaskEdit, đây là một thành phần chỉnh sửa có mặt nạ nhập liệu được lưu trữ dưới dạng chuỗi — thành phần này kiểm soát hoặc lọc dữ liệu nhập vào.

Ví dụ dưới đây minh họa quy trình khi người dùng nhấp vào nút sau khi nhập nội dung vào hộp chỉnh sửa. Nếu người dùng không nhập gì vào thành phần chỉnh sửa (trống), trình xử lý sự kiện sẽ phản hồi bằng một thông báo cảnh báo.

Procedure TScriptForm.ButtonClick(Sender : TObject);
Begin
  If Edit1.Text = '' Then
  Begin
    ShowMessage('Warning - empty input!');
    Exit;
  End;
  // do something else for the input
End;

Lưu ý rằng người dùng có thể chuyển tiêu điểm nhập liệu của hộp thoại bằng cách nhấn phím Tab hoặc bằng cách nhấp vào một điều khiển khác trong biểu mẫu.

Phản hồi sự kiện

Khi nhấp vào một nút trên biểu mẫu hoặc thành phần, Hệ thống kịch bản sẽ phản hồi bằng cách nhận thông báo sự kiện từ Altium Designer và gọi phương thức xử lý sự kiện thích hợp.

See also
Dự án HelloWorld từ Scripts\DelphiScript Scripts\General\ thư mục của bộ sưu tập tập lệnh.
Tập lệnh ví dụ ShowModal từ Scripts\DelphiScript Scripts\General\ thư mục của bộ sưu tập tập lệnh.

Viết trình xử lý sự kiện

Mỗi thành phần trong tập lệnh biểu mẫu có một tập hợp các tên sự kiện, và chúng được sử dụng bởi các trình xử lý sự kiện tập lệnh để xác định cách tập lệnh sẽ phản ứng với các hành động của người dùng trong Altium Designer. Ví dụ: khi người dùng nhấp vào một nút trên biểu mẫu, Altium Designer sẽ gửi một thông báo đến tập lệnh và tập lệnh sẽ phản ứng với sự kiện mới này. Nếu OnClick sự kiện cho nút đó được chỉ định, nó sẽ được thực thi.

Mã để phản hồi các sự kiện thường được chứa trong các trình xử lý sự kiện DelphiScript, và tất cả các thành phần đều có một tập hợp các sự kiện mà chúng có thể phản ứng. Ví dụ, tất cả các thành phần có thể nhấp đều có một OnClick sự kiện được kích hoạt khi người dùng nhấp vào thành phần đó. Tất cả các thành phần như vậy cũng có sự kiện để nhận và mất tiêu điểm. Tuy nhiên, nếu mã cho OnEnterOnExit chưa được chỉ định (OnEnter - điều khiển đã nhận được tiêu điểm; OnExit - thành phần đã mất tiêu điểm), sự kiện đó sẽ bị kịch bản bỏ qua.

Tóm lại, sự kiện là mối liên kết giữa một hành động trong Altium Designer, chẳng hạn như nhấp vào một nút, và một đoạn mã phản hồi lại hành động đó. Đoạn mã phản hồi này được gọi là trình xử lý sự kiện. Đoạn mã này thay đổi các giá trị thuộc tính và gọi các phương thức.

Thuộc tính của thành phần

Để xem danh sách các thuộc tính của một thành phần, hãy chọn thành phần đó và mở Properties trong Object Inspector bảng điều khiển.

Sự kiện của thành phần

Để xem danh sách các sự kiện mà một thành phần có thể phản ứng, hãy chọn thành phần đó và mở Events trong Object Inspector bảng điều khiển. Để tạo thủ tục xử lý sự kiện, hãy chọn sự kiện mà bạn muốn thành phần phản ứng và nhấp đúp vào tên sự kiện — hệ thống kịch bản sẽ tự động chèn mã khung xử lý sự kiện.

Ví dụ: chọn TButton thành phần từ Tool Palette bảng điều khiển và thả nó vào biểu mẫu kịch bản, sau đó nhấp đúp vào bên cạnh OnClick tên sự kiện trong Object Inspector bảng điều khiển. Hệ thống kịch bản sẽ chuyển trọng tâm sang Trình soạn thảo mã và mã khung cho OnClick sự kiện sẽ được tạo ra.

Nếu một nút có Close phương thức trong CloseClick trình xử lý sự kiện, ví dụ: khi nút được nhấp, trình xử lý sự kiện của nút sẽ bắt sự kiện OnClick sự kiện, khiến mã bên trong trình xử lý sự kiện được thực thi. Do đó, Close phương thức này sẽ đóng biểu mẫu tập lệnh.

Tóm lại, hãy chọn một thành phần nút trên biểu mẫu hoặc bằng cách sử dụng Object Inspector bảng điều khiển, chọn Events trang, rồi nhấp đúp vào phía bên phải của OnClick sự kiện và một trình xử lý sự kiện mới sẽ xuất hiện trong tập lệnh. Ngoài ra, bạn có thể nhấp đúp vào chính nút đó, và hệ thống tập lệnh sẽ thêm một trình xử lý cho OnClick sự kiện này. Lưu ý rằng các loại thành phần khác sẽ có các hành động mặc định khác nhau.

Các phương thức của thành phần

Để xem danh sách các phương thức của một thành phần, hãy tham khảo tài liệu Tham chiếu thành phần.

Thả thành phần vào biểu mẫu tập lệnh

Để sử dụng các thành phần từ bảng Công cụ trong một tập lệnh, cần phải có sẵn một biểu mẫu tập lệnh trước khi có thể thả các thành phần vào biểu mẫu đó. Thông thường, khi các thành phần được thả vào biểu mẫu tập lệnh, các đối tượng này không cần phải được tạo hoặc hủy — biểu mẫu tập lệnh sẽ tự động thực hiện việc này.

Hệ thống kịch bản cũng tự động tạo mã cần thiết để sử dụng thành phần và cập nhật biểu mẫu kịch bản. Sau đó, bạn chỉ cần thiết lập các thuộc tính, đặt mã vào trình xử lý sự kiện và sử dụng các phương thức cần thiết để triển khai một biểu mẫu kịch bản hoạt động.

Tạo thành phần trong tập lệnh

Các thành phần có thể được tạo hoặc hủy trực tiếp trong một tập lệnh bằng cách truyền tham số Nil tham số vào Constructor của thành phần. Thông thường, bạn không cần truyền handle của biểu mẫu vì biểu mẫu kịch bản sẽ tự động xử lý việc này. Ví dụ, bạn có thể tạo và hủy OpenSave các hộp thoại (TOpenDialogTSaveDialog từ Embarcadero Delphi RTL).

Tùy chỉnh các biểu mẫu kịch bản

Các điểm chính để tùy chỉnh biểu mẫu kịch bản là:

  • Để buộc một biểu mẫu luôn hiển thị ở trên cùng so với các bảng điều khiển đang mở khác, hãy đặt thuộc tính FormStyle thuộc tính thành fsStayOnTop.
  • Để xác định hành vi mặc định của 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 fkModal được đóng lại, thì biểu mẫu sẽ là biểu mẫu dạng modal — tức là, sẽ chờ người dùng nhập liệu trước khi tiếp tục, chẳng hạn như đóng biểu mẫu. Nếu fkServerPanel thì biểu mẫu sẽ được hiển thị dưới dạng bảng điều khiển máy chủ. Nếu fkNormal thì biểu mẫu sẽ hoạt động như một biểu mẫu thông thường không phải dạng modal.
  • Để loại bỏ thanh cuộn mặc định của biểu mẫu, hãy thay đổi giá trị của thuộc tính HorzScrollBarVertScrollBar .
  • Để biến biểu mẫu thành khung MDI hoặc thành phần con MDI, hãy sử dụng thuộc tính FormStyle .
  • Để thay đổi kiểu viền của biểu mẫu, hãy sử dụng thuộc tính BorderIconsBorderStyle (kết quả sẽ hiển thị trong thời gian chạy).
  • Để thay đổi biểu tượng của biểu mẫu khi thu nhỏ, hãy sử dụng thuộc tính Icon thuộc tính.
  • Để chỉ định vị trí ban đầu của biểu mẫu trong cửa sổ ứng dụng, hãy sử dụng thuộc tính Position thuộc tính này.
  • Để chỉ định trạng thái ban đầu của biểu mẫu (ví dụ: thu nhỏ, mở rộng hoặc bình thường), hãy sử dụng thuộc tính WindowState thuộc tính này.
  • Để xác định vùng làm việc của biểu mẫu trong thời gian chạy, hãy sử dụng thuộc tính ClientHeightClientWidth (lưu ý rằng ClientHeightClientWidth đại diện cho khu vực bên trong đường viền của biểu mẫu; Height còn Width đại diện cho toàn bộ khu vực của biểu mẫu).
  • Để chỉ định điều khiển nào sẽ có tiêu điểm ban đầu trong biểu mẫu tại thời điểm chạy, hãy sử dụng thuộc tính ActiveControl thuộc tính này.
  • Để chuyển tất cả các sự kiện bàn phím đến biểu mẫu, bất kể điều khiển nào được chọn, hãy sử dụng thuộc tính KeyPreview thuộc tính này.
  • Để chỉ định một menu cụ thể, nếu biểu mẫu chứa nhiều hơn một menu, hãy sử dụng thuộc tính Menu thuộc tính.

Làm mới biểu mẫu và thành phần kịch bản

Khi giao diện của biểu mẫu kịch bản trở nên lỗi thời, ví dụ như các điều khiển không được cập nhật hoặc vẽ lại, thì các điều khiển có thể trông như bị đóng băng hoặc bị hỏng — điều này có thể do quá trình xử lý nền nặng nề từ kịch bản đó gây ra.

Phương thức Update phương thức của biểu mẫu kịch bản, cùng với nhiều thành phần kịch bản từ Tool Palette bảng điều khiển, cung cấp cách thức để 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ể. Các dòng chứa phương thức Update được tô sáng màu xám trong ví dụ dưới đây.

StatusBar component and its Update method Example:

Procedure TConverterForm.loadbuttonClick(Sender: TObject);
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
 ShowWarning('The image is not a monochrome!');
 Close;
 End;
 
 lImageSize.Caption := IntToStr(Image1.Picture.Width) + ' x ' +
 IntToStr(Image1.Picture.Height) + ' mils';
 
 convertbutton.Enabled  := True;
 LoadButton.Enabled     := False;
 XStatusBar1.SimpleText := '  Ready...';
 XStatusBar1.Update;
 End;
End;

Đoạn mã trên được trích từ PCB Logo Creator dự án tập lệnh, có thể tìm thấy trong Scripts\Delphiscript Scripts\Pcb\PCB Logo Creator thư mục của bộ sưu tập tập lệnh 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 bạn có thể sử dụng phụ thuộc vào giải pháp Altium mà bạn đang có – Altium Develop, Altium Agile Teams, Altium Agile Enterprise, hoặc Altium Designer (đang trong thời hạn hiệu lực).

Nếu bạn không thấy một tính năng được nêu trong tài liệu có trong phần mềm thực tế 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