Utilizzo dei componenti dei moduli in VBScript

Utilizzo dei componenti nei moduli VBScript

Sebbene i moduli e i componenti siano basati sulla Visual Component Library (VCL) di Embarcadero Delphi™, Altium Designer, basato su Delphi, Tool Palette viene comunque utilizzato per inserire i controlli in un modulo quando si utilizza VBScript. Inoltre, i gestori di eventi vengono generati e il codice viene scritto utilizzando il linguaggio VBScript, indipendentemente dalle origini Delphi del modulo o del componente in Altium Designer.

Panoramica dei componenti

Il sistema di scripting gestisce due tipi di componenti: componenti visivi e non visivi. I componenti visivi vengono utilizzati per costruire l’interfaccia utente, mentre quelli non visivi sono impiegati per diverse attività, come le funzioni fornite dal Timer, OpenDialog e MainMenu . Ad esempio, il componente non visivo Timer viene utilizzato per attivare codice specifico a intervalli prestabiliti e non è mai visibile all’utente. Il Button, Edit e Memo sono componenti visivi: sono visibili all’utente.

Entrambe le tipologie di componenti compaiono in fase di progettazione, ma i componenti non visivi non sono visibili in fase di esecuzione. I componenti del Tool Palette sono orientati agli oggetti e presentano le tre voci seguenti:

  • Proprietà
  • Eventi
  • Metodi

Una property è una caratteristica di un oggetto che influenza il comportamento visibile o le operazioni di tale oggetto. Ad esempio, la Visible proprietà determina se l’oggetto è visibile in un modulo script.

Un event è un'azione o un avvenimento rilevato dallo script. In uno script, il programmatore scrive il codice per ciascun gestore di eventi, progettato per intercettare un evento specifico, come ad esempio un clic del mouse.

Una method è una procedura sempre associata a un oggetto e definisce il comportamento di tale oggetto.

Tutti i moduli di script hanno uno o più componenti. I componenti solitamente visualizzano informazioni o consentono all’utente di eseguire un’azione. Ad esempio, un’etichetta (Label) viene utilizzata per visualizzare testo statico, una casella di modifica (Edit box) consente all’utente di inserire dati, mentre un pulsante (Button) può essere utilizzato per avviare azioni.

Su un modulo è possibile inserire qualsiasi combinazione di componenti, consentendo all’utente di interagire con essi durante l’esecuzione dello script (runtime). Spetta al programmatore dello script decidere cosa succede quando un utente fa clic su un pulsante o modifica il testo in una casella di modifica.

Il sistema di scripting fornisce una serie di componenti per la creazione di interfacce utente semplici o complesse per gli script. Tutti i componenti che possono essere inseriti in un modulo si trovano nel pannello "Tavolozza degli strumenti".

Per inserire un componente in un modulo, individuare la relativa icona nel Tool Palette pannello e fare doppio clic su di essa. Questa azione inserisce un componente nel modulo attivo nella sua posizione predefinita, con larghezza e altezza predefinite. La rappresentazione visiva della maggior parte dei componenti è determinata dall’insieme delle proprietà ad essi associate.

Un componente inserito, nella sua posizione predefinita e con larghezza e altezza predefinite, può essere ridimensionato o riposizionato utilizzando il mouse o tramite il Object Inspector pannello. Quando un componente viene trascinato su un modulo, il sistema di scripting genera automaticamente il codice di base necessario per utilizzare il componente e aggiorna il modulo di script. Per far funzionare il componente sul modulo, non resta che impostare le proprietà, inserire il codice nei gestori di eventi e utilizzare i metodi secondo necessità.

Progettazione dei moduli di script

Un modulo di script è progettato per interagire con l’utente all’interno dell’ambiente di Altium Designer. La progettazione dei moduli di script costituisce il fulcro dello sviluppo visivo in Altium Designer.

Ogni componente posizionato su un modulo di script e ogni proprietà impostata vengono memorizzati in un file che descrive il modulo (un *.dfm file) ed è collegata al codice di script associato (il *.vbs file). Pertanto, per ogni modulo script esiste il *.vbs file e il corrispondente *.dfm file.

Quando si lavora con un modulo di script e i suoi componenti, è possibile accedere alle relative proprietà e modificarle utilizzando il Object Inspector pannello. È possibile selezionare più di un componente facendo clic sui componenti tenendo premuto il tasto Maiusc, oppure trascinando un rettangolo di selezione attorno ai componenti presenti nel modulo di script. Un modulo di script ha un titolo associato alla Caption proprietà nel Object Inspector pannello.

Creazione di un nuovo modulo di script

Con un progetto di script aperto, fare clic con il tasto destro del mouse sul progetto nel Projects pannello e selezionare l’opzione Add New to Project e poi le VB Script Form voci dai menu contestuali. Verrà creato un nuovo modulo di script con il EditScript1.vbs . In alternativa, in un *.PrjPCB progetto, selezionare File » New » Script Files » VB Script Form comando.

Visualizzazione di un modulo di script

Uno script deve contenere una routine che visualizzi il modulo quando lo script viene eseguito in Altium Designer. All’interno di questa routine, per il modulo viene richiamato il ShowModal viene richiamato il metodo relativo al modulo. La Visible deve essere impostata su false (deselezionata) affinché il ShowModal funzioni correttamente.

Esempio di ShowModal

Sub RunDialog
  DialogForm.ShowModal
End Sub

L'esempio sopra riportato ShowModal è un modo semplice per visualizzare il modulo dello script quando viene RunDialog viene richiamata la finestra di dialogo dallo script. Si noti che è possibile assegnare valori ai componenti dell’ DialogForm oggetto prima che venga DialogForm.ShowModal venga richiamato il metodo.

L’ ModalResult esempio riportato di seguito è più complesso. I suoi metodi successivi vengono utilizzati per i pulsanti presenti nel modulo di script. I metodi di script provocano la chiusura della finestra di dialogo quando un utente fa clic sul OK o Cancel , il quale restituirà mrOk o mrCancel rispettivamente dal 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

Lo stesso risultato di cui sopra potrebbe essere ottenuto impostando il ModalResult valore a mrOk per il OK pulsante e a mrCancel per il Cancel pulsante nei rispettivi gestori di eventi. Quando un utente fa clic su uno dei due pulsanti, la finestra di dialogo si chiude. Non è necessario chiamare il Close metodo, poiché quando il ModalResult metodo è stato impostato, il motore di script chiude automaticamente il modulo di script.

Si noti che per impostare il ModalResult per l’annullamento quando un utente preme il Esc tasto, è necessario impostare la Cancel proprietà Cancel del pulsante su true (selezionata) nel Object Inspector pannello, oppure inserire Sender.Cancel := True nell'handler di evento del pulsante CancelButtonClick del modulo.

Accettazione dell'input dell'utente

Uno dei componenti più comuni in grado di accettare input da un utente è il EditBox componente. Questo EditBox componente dispone di un campo di testo in cui l’utente può digitare una stringa di caratteri. Esistono anche altri componenti in grado di accettare testo, come il componente di modifica con maschera, che è un componente di modifica dotato di una maschera di immissione per il campo di testo. La maschera controlla, o filtra, l’input ed è memorizzata in una stringa di parametro.

L’esempio riportato di seguito illustra cosa accade quando un utente fa clic sul pulsante dopo aver digitato del testo nella casella di modifica. Si noti che se un utente non ha digitato alcun testo nel componente di modifica, il gestore di eventi risponde con un messaggio di avviso

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

Si noti che l’utente può spostare il focus di input sul modulo utilizzando il Tab o facendo clic su un altro controllo del modulo.

Risposta agli eventi

Quando un utente seleziona un modulo o un componente, Altium Designer invia un messaggio al sistema di scripting, il quale risponde alla notifica dell’evento richiamando il metodo di gestione dell’evento appropriato.

Scrittura dei gestori di eventi

Uno script potrebbe dover rispondere agli eventi che potrebbero verificarsi su un componente durante l’esecuzione. Un evento è un collegamento tra un’azione in Altium Designer, come il clic su un pulsante, e un frammento di codice che risponde a tale azione. Il codice di risposta è un gestore di eventi, che modifica i valori delle proprietà e chiama i metodi.

Oltre alle proprietà di un componente, ciascuno dispone di un insieme di nomi di eventi. Un programmatore di script decide come reagire alle azioni dell’utente in Altium Designer. Ad esempio, quando un utente fa clic su un pulsante in un modulo, Altium Designer invia un messaggio allo script e lo script reagisce a questo nuovo evento: se è specificato l’ OnClick evento relativo a un pulsante è specificato, questo viene eseguito.

Tutti questi componenti dispongono inoltre di un evento per l’acquisizione e la perdita del focus. Tuttavia, se il codice per OnEnter e OnExit non è specificato (OnEnter - il controllo ha il focus; OnExit - il controllo perde il focus), l’evento verrà ignorato dallo script.

Proprietà dei componenti

Per visualizzare un elenco delle proprietà di un componente, selezionare il componente e attivare la Properties scheda nel Object Inspector pannello.

Eventi del componente

Per visualizzare l'elenco degli eventi a cui un componente può reagire, selezionare un componente e attivare la Events scheda nel Object Inspector pannello. Per creare una procedura di gestione degli eventi a cui un componente deve reagire, scegli un evento adatto e fai doppio clic sul suo nome.

Ad esempio, selezionare il Button1 componente dal Tool Palette pannello, trascinalo nel modulo di script e fai doppio clic accanto al OnClick nome dell’evento. Il sistema di scripting riporterà il focus sull’Editor di codice, dove sarà stato creato il codice di base per l’ OnClick evento sarà stato creato. Se un pulsante dispone di un Close metodo nel proprio CloseClick gestore di eventi, quando si fa clic sul pulsante il gestore di eventi intercetta l’evento on-click e viene eseguito il codice all’interno del gestore stesso. In altre parole, il Close metodo chiude il modulo di script.

In sintesi, un gestore di eventi viene creato in uno script selezionando un componente nel modulo, oppure tramite il Object Inspector pannello, e quindi facendo doppio clic a destra dell’evento desiderato (ad esempio, OnClick) nella scheda dell’Inspector Events — nel codice apparirà la struttura appropriata.

In alternativa, facendo doppio clic su un pulsante, il sistema di scripting aggiungerà un gestore per un OnClick evento. Altri tipi di componenti avranno azioni predefinite completamente diverse.

Metodi dei componenti

Consultare il Riferimento ai componenti per un elenco dei metodi di un componente e fare riferimento alla documentazione di Embarcadero Delphi per informazioni più dettagliate.

Creazione di componenti in fase di esecuzione

I componenti possono essere creati e distrutti direttamente in uno script. Normalmente non è necessario passare l’handle del modulo, poiché lo script se ne occupa automaticamente; occorre invece passare un Nil parametro al costruttore del componente.

Ad esempio, il Open e Save finestre di dialogo possono essere create e distrutte (il TOpenDialog e TSaveDialog , come parte dell'RTL di Delphi).

AI-LocalizedLocalizzato tramite A
Se trovi un problema, seleziona il testo/l’immagine e premi Ctrl + Invio per inviarci il tuo feedback.
Disponibilità delle funzionalità

Le funzionalità a tua disposizione dipendono dalla soluzione Altium di cui disponi: Altium Develop, Altium Agile Teams, Altium Agile Enterprise oppure Altium Designer (con abbonamento attivo).

Se non vedi una funzionalità documentata nel software che stai effettivamente utilizzando, contatta il reparto vendite di Altium per saperne di più.

Documentazione legacy

La documentazione di Altium Designer non è più suddivisa per versione. Se è necessario accedere alla documentazione delle versioni precedenti di Altium Designer, visitare la sezione Documentazione legacy della pagina Altri programmi di installazione.

Contenuto