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
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 TimerOpenDialogMainMenuTimerButtonEditMemo
Oba typy komponentów pojawiają się w czasie projektowania, ale komponenty niewizualne nie są widoczne w czasie wykonywania. Komponenty z
- Właściwości
- Zdarzenia
- Metody
A Visible
Zdarzenie
A
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
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
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*.vbs*.vbs*.dfm
Podczas pracy z formularzem skryptowym i jego komponentami dostęp do jego właściwości oraz ich modyfikacja są możliwe za pomocą Caption
Tworzenie nowego formularza skryptowego
Po otwarciu projektu skryptowego kliknij prawym przyciskiem myszy na projekt w EditScript1.vbs *.PrjPCB
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 ShowModalVisibleShowModal
Przykład ShowModal
Sub RunDialog DialogForm.ShowModal End Sub
Powyższy ShowModalRunDialogDialogFormDialogForm.ShowModal
Przedstawiony ModalResultmrOkmrCancelShowModal
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 ModalResultmrOkmrCancelCloseModalResult
Należy pamiętać, że aby ustawić opcję ModalResultSender.Cancel := TrueCancelButtonClick
Przyjmowanie danych wprowadzanych przez użytkownika
Jednym z powszechnie stosowanych komponentów, które mogą przyjmować dane wprowadzane przez użytkownika, jest EditBoxEditBox
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
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
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 (OnEnterOnExit
Właściwości elementów
Aby wyświetlić listę właściwości komponentu, należy zaznaczyć komponent i aktywować
Zdarzenia komponentu
Aby wyświetlić listę zdarzeń, na które komponent może reagować, wybierz komponent i otwórz kartę
Na przykład wybierz Button1OnClickCloseCloseClickClose
Podsumowując, procedurę obsługi zdarzenia tworzy się w skrypcie poprzez zaznaczenie komponentu na formularzu lub za pomocą
Alternatywnie, po dwukrotnym kliknięciu przycisku system skryptowy doda procedurę obsługi dla OnClick
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
Na przykład TOpenDialogTSaveDialog