Korzystanie z komponentów formularzy w języku VBScript

Korzystanie z komponentów w formularzach VBScript

Chociaż formularze i komponenty opierają się na bibliotece Visual Component Library (VCL) firmy Embarcadero Delphi™, w programie Altium Designer nadal wykorzystuje się środowisko oparte na języku Delphi Tool Palette służy do umieszczania elementów sterujących na formularzu podczas korzystania z języka VBScript. Ponadto procedury obsługi zdarzeń są generowane, a kod pisany jest w języku VBScript, niezależnie od tego, czy formularz lub komponent w programie Altium Designer ma swoje korzenie w Delphi.

Przegląd komponentów

System skryptowy obsługuje dwa typy komponentów: komponenty wizualne i niewizualne. Komponenty wizualne służą do tworzenia interfejsu użytkownika, natomiast komponenty niewizualne są wykorzystywane do różnych zadań, takich jak funkcje udostępniane przez Timer, OpenDialog i MainMenu . Na przykład niewizualny Timer służą do uruchamiania określonego kodu w zaplanowanych odstępach czasu i nigdy nie są widoczne dla użytkownika. Komponent Button, Edit oraz Memo są komponentami wizualnymi — są widoczne dla użytkownika.

Oba typy komponentów pojawiają się w czasie projektowania, ale komponenty niewizualne nie są widoczne w czasie wykonywania. Komponenty z Tool Palette są zorientowane obiektowo i zawierają trzy następujące elementy:

  • Właściwości
  • Zdarzenia
  • Metody

A property to cecha obiektu, która wpływa albo na widoczne zachowanie, albo na operacje tego obiektu. Na przykład właściwość Visible określa, czy obiekt ten jest widoczny w formularzu skryptowym.

Zdarzenie event to akcja lub zdarzenie wykryte przez skrypt. W skrypcie programista pisze kod dla każdego procedora obsługi zdarzeń, który ma za zadanie przechwycić konkretne zdarzenie, takie jak kliknięcie myszą.

A method to procedura, która jest zawsze powiązana z obiektem i określa zachowanie tego obiektu.

Wszystkie formularze skryptowe zawierają co najmniej jeden komponent. Komponenty zazwyczaj wyświetlają informacje lub umożliwiają użytkownikowi wykonanie jakiejś czynności. Na przykład etykieta (Label) służy do wyświetlania tekstu statycznego, pole edycji (Edit) pozwala użytkownikowi wprowadzić dane, a przycisk (Button) może służyć do inicjowania działań.

Na formularzu można umieścić dowolną kombinację komponentów, umożliwiając użytkownikowi interakcję z nimi podczas działania skryptu (w czasie wykonywania). Zadaniem programisty skryptów jest określenie, co się stanie, gdy użytkownik kliknie przycisk lub zmieni tekst w polu edycji.

System skryptowy udostępnia szereg komponentów do tworzenia prostych lub złożonych interfejsów użytkownika dla skryptów. Wszystkie komponenty, które można umieścić na formularzu, znajdują się w panelu Paleta narzędzi.

Aby umieścić komponent w formularzu, należy zlokalizować jego ikonę w Tool Palette i kliknij ją dwukrotnie. Ta czynność umieszcza komponent na aktywnym formularzu w jego domyślnej pozycji, z domyślną szerokością i wysokością. Wygląd większości komponentów zależy od zestawu powiązanych z nimi właściwości.

Umieszczony komponent, znajdujący się w domyślnej pozycji oraz o domyślnej szerokości i wysokości, można skalować lub zmienić jego położenie za pomocą myszy lub poprzez Object Inspector . Po upuszczeniu komponentu na formularz system skryptowy automatycznie generuje podstawowy kod niezbędny do korzystania z komponentu oraz aktualizuje formularz skryptowy. Aby komponent na formularzu działał, wystarczy ustawić właściwości, umieścić kod w procedurach obsługi zdarzeń oraz korzystać z metod w razie potrzeby.

Projektowanie formularzy skryptowych

Formularz skryptowy służy do interakcji z użytkownikiem w środowisku Altium Designer. Projektowanie formularzy skryptowych stanowi podstawę programowania wizualnego w programie Altium Designer.

Każdy komponent umieszczony na formularzu skryptowym oraz każda ustawiona właściwość są przechowywane w pliku opisującym formularz ( *.dfm plik) i jest powiązany z odpowiednim kodem skryptu ( *.vbs ). Tak więc dla każdego formularza skryptowego istnieje plik *.vbs plik oraz odpowiadający mu *.dfm plik.

Podczas pracy z formularzem skryptowym i jego komponentami dostęp do jego właściwości oraz ich modyfikacja są możliwe za pomocą Object Inspector panel. Można zaznaczyć więcej niż jeden element, klikając je z wciśniętym klawiszem Shift lub przeciągając prostokąt zaznaczenia wokół elementów na formularzu skryptu. Formularz skryptu ma tytuł przypisany do właściwości Caption w Object Inspector .

Tworzenie nowego formularza skryptowego

Po otwarciu projektu skryptowego kliknij prawym przyciskiem myszy na projekt w Projects i wybierz opcję Add New to Project , a następnie VB Script Form pozycje z menu kontekstowego. Zostanie utworzony nowy formularz skryptu o domyślnej EditScript1.vbs nazwą. Alternatywnie, w *.PrjPCB wybierz File » New » Script Files » VB Script Form polecenie.

Wyświetlanie formularza skryptu

Skrypt musi zawierać procedurę, która wyświetla formularz po uruchomieniu formularza skryptu w programie Altium Designer. W ramach tej procedury wywoływana jest metoda ShowModal wywoływana jest metoda dla formularza. Właściwość formularza Visible musi być ustawiona na false (niezaznaczona), aby metoda formularza skryptowego ShowModal działała poprawnie.

Przykład ShowModal

Sub RunDialog
  DialogForm.ShowModal
End Sub

Powyższy ShowModal przykład przedstawia prosty sposób wyświetlenia formularza skryptowego po RunDialog wywołane zostanie okno dialogowe ze skryptu. Należy pamiętać, że wartości można przypisać do elementów DialogForm obiektu przed DialogForm.ShowModal wywołania metody.

Przedstawiony ModalResult Poniższy przykład jest bardziej złożony. Jego dalsze metody są wykorzystywane dla przycisków w formularzu skryptowym. Metody skryptowe powodują zamknięcie okna dialogowego, gdy użytkownik kliknie przycisk OK lub Cancel , co spowoduje zwrot wartości mrOk lub mrCancel odpowiednio z ShowModal .

ModalResult Example

sub bOKButtonClick(Sender)
  ModalResult := mrOK
end sub
 
sub bCancelButtonClick(Sender)
  ModalResult := mrCancel
end sub
 
sub RunShowModalExample
  'Form Visible property must be false for ShowModal to work properly.
  If Form.ShowModal = mrOk     Then ShowMessage("mrOk")
  If Form.ShowModal = mrCancel Then ShowMessage("mrCancel")
end sub

To samo, co powyżej, można osiągnąć poprzez ustawienie ModalResult wartość na mrOk dla przycisku OK przycisku oraz na mrCancel dla Cancel przycisk w ich procedurach obsługi zdarzeń. Gdy użytkownik kliknie którykolwiek z przycisków, okno dialogowe zostanie zamknięte. Nie ma potrzeby wywoływania metody Close , ponieważ po ustawieniu metody ModalResult została ustawiona, silnik skryptowy automatycznie zamyka formularz skryptowy.

Należy pamiętać, że aby ustawić opcję ModalResult na „anuluj” w przypadku naciśnięcia przez użytkownika przycisku Esc klawisz, należy ustawić Cancel właściwość „Anuluj” przycisku na wartość „true” (zaznaczone) w Object Inspector lub wstaw Sender.Cancel := True w procedurze obsługi zdarzenia przycisku CancelButtonClick .

Przyjmowanie danych wprowadzanych przez użytkownika

Jednym z powszechnie stosowanych komponentów, które mogą przyjmować dane wprowadzane przez użytkownika, jest EditBox komponent. Ten EditBox komponent posiada pole tekstowe, w którym użytkownik może wpisać ciąg znaków. Istnieją również inne komponenty, które mogą przyjmować tekst, takie jak komponent edycji z maską, który jest komponentem edycji wyposażonym w maskę wprowadzania danych w polu tekstowym. Maska kontroluje lub filtruje wprowadzane dane i jest przechowywana w ciągu znaków parametru.

Poniższy przykład ilustruje, co się dzieje, gdy użytkownik kliknie przycisk po wpisaniu tekstu w polu edycji. Należy zauważyć, że jeśli użytkownik nie wpisał żadnego tekstu w komponencie edycji, procedurka obsługi zdarzenia wyświetla komunikat ostrzegawczy

sub TScriptForm.ButtonClick(Sender)
  If Edit1.Text = "" Then
  ShowMessage("Warning - empty input!")
  Exit
  End
  ' do something else for the input
End sub

Należy pamiętać, że użytkownik może przenieść fokus na formularzu za pomocą klawisza Tab lub klikając inny element formularza

Reagowanie na zdarzenia

Gdy użytkownik zaznaczy formularz lub komponent, program Altium Designer wysyła komunikat do systemu skryptowego, który reaguje na powiadomienie o zdarzeniu, wywołując odpowiednią metodę procedury obsługi zdarzeń.

Pisanie procedur obsługi zdarzeń

Skrypt może wymagać reagowania na zdarzenia, które mogą wystąpić w komponencie w czasie wykonywania. Zdarzenie to powiązanie między zdarzeniem w programie Altium Designer, takim jak kliknięcie przycisku, a fragmentem kodu, który reaguje na to zdarzenie. Kod reagujący to procedura obsługi zdarzenia, która modyfikuje wartości właściwości i wywołuje metody.

Oprócz właściwości komponentu każdy z nich posiada zestaw nazw zdarzeń. Programista skryptów decyduje, w jaki sposób skrypt będzie reagował na działania użytkownika w programie Altium Designer. Na przykład, gdy użytkownik kliknie przycisk w formularzu, program Altium Designer wysyła komunikat do skryptu, a skrypt reaguje na to nowe zdarzenie — jeśli OnClick zdefiniowano zdarzenie dla przycisku, kod ten zostanie wykonany.

Wszystkie takie komponenty posiadają również zdarzenia związane z uzyskaniem i utratą fokusu. Jeśli jednak kod dla zdarzeń OnEnter i OnExit nie został określony (OnEnter - kontrolka ma fokus; OnExit – kontrolka traci fokus), zdarzenie to zostanie zignorowane przez skrypt.

Właściwości elementów

Aby wyświetlić listę właściwości komponentu, należy zaznaczyć komponent i aktywować Properties kartę w Object Inspector panelu.

Zdarzenia komponentu

Aby wyświetlić listę zdarzeń, na które komponent może reagować, wybierz komponent i otwórz kartę Events w Object Inspector panelu. Aby utworzyć procedurę obsługi zdarzenia, na które ma reagować komponent, wybierz odpowiednie zdarzenie i kliknij dwukrotnie jego nazwę.

Na przykład wybierz Button1 komponent z Tool Palette panelu, upuść go na formularz skryptu i kliknij dwukrotnie obok OnClick nazwy zdarzenia. System skryptowy ponownie przeniesie fokus do edytora kodu, gdzie zostanie utworzony szkielet kodu dla OnClick został już utworzony. Jeśli przycisk posiada Close metodę w swojej CloseClick obsługę zdarzeń, po kliknięciu przycisku jego procedura obsługi przechwytuje zdarzenie kliknięcia, a kod znajdujący się wewnątrz tej procedury zostaje wykonany. Oznacza to, że Close metoda zamyka formularz skryptu.

Podsumowując, procedurę obsługi zdarzenia tworzy się w skrypcie poprzez zaznaczenie komponentu na formularzu lub za pomocą Object Inspector panelu, a następnie dwukrotne kliknięcie po prawej stronie żądanego zdarzenia (np. OnClick) w zakładce Events — w skrypcie pojawi się odpowiedni szkielet kodu.

Alternatywnie, po dwukrotnym kliknięciu przycisku system skryptowy doda procedurę obsługi dla OnClick zdarzenie. Inne typy komponentów będą miały zupełnie inne domyślne działania.

Metody komponentów

Listę metod danego komponentu można znaleźć w „Kompendium komponentów”, a bardziej szczegółowe informacje — w dokumentacji Embarcadero Delphi.

Tworzenie komponentów w czasie wykonywania

Komponenty można bezpośrednio tworzyć i usuwać w skrypcie. Zazwyczaj nie ma potrzeby przekazywania uchwytu formularza, ponieważ skrypt formularza zajmuje się tym automatycznie — zamiast tego należy przekazać Nil do konstruktora komponentu.

Na przykład Open i Save okna dialogowe mogą być tworzone i niszczone ( TOpenDialog i TSaveDialog jako część biblioteki RTL języka Delphi).

AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Dostępność funkcji

Dostępne funkcje zależą od tego, z którego rozwiązania Altium korzystasz – Altium Develop, Altium Agile Teams, Altium Agile Enterprise lub Altium Designer (w ramach aktywnej subskrypcji terminowej).

Jeśli opisana funkcja nie jest widoczna w Twoim oprogramowaniu, skontaktuj się z działem sprzedaży Altium, aby dowiedzieć się więcej.

Starsza dokumentacja

Dokumentacja Altium Designer nie jest już wersjonowana. Jeśli potrzebujesz dostępu do dokumentacji dla starszych wersji Altium Designer, odwiedź sekcję Starsza dokumentacja na stronie Inne instalatory.

Content