Autore:Richard B. Lam
Data:02/02/2002
Revisione:2.0
Progetto Italiano Documentazione eCS - OS/2(PIDO/2)
Oggetto:VREXX/2 - Visual REXX per Presentation Manager
Traduttore:Mentore Siesto

IBM VREXX/2

Versione 1.00

IBM T.J. Watson Research Center
Route 134 POB 218
Yorktown Heights, NY 10598
© IBM Corporation, 1992


Indice dei contenuti

1. Introduzione
1.1. Note di rilascio
1.2. Requisiti di sistema
2. Installazione di VREXX
3. Uso del VREXX
4. Elenco dei comandi
5. Guida di riferimento ai comandi VREXX
6. Procedure REXX di esempio
7. Dati tecnici

1. Introduzione

VREXX (Visual REXX) è una libreria che permette agli utenti OS/2 di sviluppare applicazioni per Presentation Manager tramite il REXX. VREXX fornisce un insieme di funzioni che possono essere chiamate da procedure REXX.

Queste funzioni permettono di aprire e chiudere finestre di PM, controllandone posizione e dimensioni. Funzioni di Dialog box permettono la selezione di files, la stampa di messaggi, l'inserimento di numeri o stringhe di testo e di effettuare selezioni singole o multiple tramite controlli radiobutton, checkbox o listbox. Sono inoltre disponibili dialog di selezione dei colori o dei font, insieme a dialog box più complessi.
Ancora, sono disponibili funzioni grafiche per l'accensione di pixel, il tracciamento di linee e marcatori, poligoni, spline, archi, cerchi e testo in più font.

Tramite il VREXX le procedure OS/2 REXX possono usare tutte le caratteristiche standard del REXX di OS/2, rimpiazzando le normali routine di ingresso/uscita con finestre e dialog di PM. Non è richiesta una precedente esperienza di programmazione PM, non è richiesto il toolkit di OS/2: l'unica cosa da fare è scrivere un programma REXX che effettui chiamate alle funzioni VREXX.

Caratteristiche del VREXX:


1.1. Note di rilascio

La prima versione rilasciata è del 9/9/1992, versione 1.0. Questa versione non permette la realizzazione di menu nelle finestre PM.

1.2. Requisiti di sistema

VREXX gira sotto qualsiasi versione di OS/2 dalla 2.0 o eCommerceStation, con supporto REXX installato.

2. Installazione

Per installare VREXX sul proprio sistema, dopo aver decompresso il pacchetto ZIP prelevato, si otterranno due DLL, un file VREXX.EXE e un fle VREXX.INF, e tre programmi REXX di esempio.
Si copi VREXX.INF in una directory elencata nella direttiva BOOKSHELF del file CONFIG.SYS, e i file VREXX.EXE (che richiama l'help) e i file di esempio in una directory di utilità inclusa nella direttiva PATH di CONFIG.SYS. Si copino poi le DLL VREXX.DLL e DEVBASE.DLL in una directory specificata nella direttiva LIBPATH di CONFIG.SYS.

Vediamo un esempio. Nel mio sistema ho posto una directory C:\TOOLS in cui mantengo alcune utilità, citata nelle direttive LIBPATH e PATH del mio CONFIG.SYS. Io ho posto le due DLL del VREXX nella directory TOOLS assieme a VREXX.EXE: il file VREXX.INF invece è stato posto direttamente tra le guide in linea fornite nella distribuzione di OS/2 che uso.

In sede di distribuzione di un'applicazione VREXX, le uniche cose che servono effettivamente sono le due DLL, il resto è inutile.

3 . Uso del VREXX

Una procedura REXX che usa il VREXX può essere lanciata come qualsiasi altro programma di OS/2, tramite la linea di comando, con il comando START del processore di comandi CMD.EXE oppure tramite un opportuno oggetto programma sulla WorkPlace Shell. Per esempio, volendo lanciare il programma example.cmd basta aprire una finestra comandi di OS/2 e da lì scrivere

example.cmd
oppure
start example.cmd

La procedura partirà normalmente, facendo però uso delle funzioni VREXX. per accedere all'help in linea (se correttamente installato) si può usare il comando
view vrexx.inf
oppure
vrexx

dalla finestra comandi di OS/2.

Prima di chiamare le funzioni VREXX nelle proprie procedure REXX, è necessario caricare e inizializzare le funzioni tramite la funzione VInit. Allo stesso modo bisogna chiamare la funzione VExit alla fine della procedura REXX per deallocare le risorse di sistema allocate durante l'inizializzazione. L'approccio raccomandato per questo scopo è una struttura simile alla seguente:


/*Esempio.cmd - struttura per l'inizializzazione e la */
/* terminazione di un programma VREXX*/

/* Inizializzazione VREXX */
'@echo off'
call RxFuncAdd 'VInit', 'VREXX', 'VINIT'
initcode = VInit()
if initcode = 'ERROR' then
signal CLEANUP

signal on failure name CLEANUP
signal on halt name CLEANUP
signal on syntax name CLEANUP

/* Comandi e altro relativi al vero programma REXX */
/* ----------------------------------------------- */

/* Terminazione del VREXX */
/* Qui vanno tutte le procedure precedenti */
/* l' interruzione del programma REXX */

CLEANUP:
call VExit

exit

I comandi signal assicurano la chiamata a VExit se la procedura contiene un errore qualsiasi: è possibile aggiungere comandi del tipo signal on 'nome errore' CLEANUP, a seconda che si voglia sviluppare un diverso gestore di errori per condizioni non fatali.

Dopo l'inizializzazione, il VREXX permette di creare più finestre, con ogni finestra che ritorna un id specifico con cui riferirsi a quella finestra per le operazioni che la riguarderanno.

Nota per programmatori PM:

I files REXX sono procedurali e non event-driven come un programma esplicitamente pensato per PM. Per questo la procedura REXX generata verrà eseguita dall'inizio alla fine esattamente come un normale programma REXX. Però in ogni momento, specialmente quando vengono create dialog box, le finestre create con VREXX possono essere manipolate come normali finestre PM - ridotte a icona, ridimensionate, spostate ecc.
I contenuti delle finestre sono mantenuti internamente: non è necessario, per esempio, ridisegnare la finestra ogni volta che viene spostata o ridimensionata (i messaggi vengono gestiti da VREXX).
Le finestre vengono distrutte chiamando una funzione specifica, a cui viene passato l'id della finestra da chiudere. Proprio per la natura procedurale del REXX, anche se vengono create più finestre solo una dialog box per volta può essere processata.

Le coordinate sullo schermo delle finestre vanno da 0 a 1000 in entrambe le direzioni x e y, con l'origine all'angolo basso a sinistra dello schermo. Il colore e il tipo corrente per le linee sono validi per tutte le finestre.

Le funzioni di posizionamento delle finestre e delle dialog operano sempre con numeri che rappresentano una percentuale dello schermo. In questo modo, per centrare sullo schermo una finestra che riempie metà dell'area del desktop, gli angoli sinistro e inferiore della finestra vanno impostati a 25, mentre quelli destro e superiore vanno posti a 75. Si consulti la sezione di riferimento comandi per alcuni esempi sulla grafica e sul posizionamento delle finestre.

Nella distribuzione sono presenti tre programmi REXX di esempio, chiamati TESTWIN.CMD, TESTDLGS.CMD e TESTDRAW.CMD, che dimostrano la sintassi delle funzioni VREXX. Le successive sezioni di questa documentazione forniscono un sommario e un riferimento alle funzioni VREXX, includendo note sulla sintassi e gli argomenti delle stesse.


4. Comandi VREXX

Vediamo un sommario rapido delle funzioni utilizzabili dalla libreria VREXX. Per una spiegazione completa delle funzioni si consulti la pagina Riferimento per i comandi VREXX, e la sezione Esempi per alcuni esempi di programmazione VREXX.


Avviamento, terminazione e informazioni sulla versione

VEXIT
Dealloca le risorse di sistema correntemente occupate dal VREXX
VGETVERSION
Restituisce la versione della libreria VREXX usata
VINIT
Inizializza le funzioni VREXX e alloca le risorse di PM allo scopo

Funzioni di gestione delle finestre

VBACKCOLOR
Imposta il colore di sfondo di una finestra
VCLEARWINDOW
Cancella i contenuti di una finestra
VCLOSEWINDOW
Chiude una finestra
VFORECOLOR
Imposta il colore di primo piano di una finestra
VOPENWINDOW
Apre una nuova finestra
VRESIZE
Ridimensiona e riposiziona una finestra sullo schermo
VSETTITLE
Imposta la barra del titolo di una finestra

Funzioni per la gestione delle dialog box

VCHECKBOX
Crea una dialog contenente checkbox per la selezione multipla di elementi da una lista
VCOLORBOX
Consente la selezione dei colori di sfondo e di primo piano da una dialog box
VDIALOGPOS
Controlla il posizionamento delle dialog sullo schermo
VFILEBOX
Permette la selezione di un percorso completo di un file da una dialog standard Open File...
VFONTBOX
Permette di selezionare il tipo e le dimensioni dei caratteri da usare per il testo nelle finestre
VINPUTBOX
Genera una dialog con campi in cui inserire testo o numeri
VLISTBOX
Crea una listbox dialog per la selezione di un elemento da una lista
VMSGBOX
Crea una message box dialog per stampare fino a 10 stringhe di messaggi
VMULTBOX
Crea una dialog con più campi di inserimento testi, contenente fino a 10 campi e una stringa di prompt per ogni campo con opzionalmente l'eco dei caratteri inseriti (per esempio per l'inserimento di una password)
VRADIOBOX
Crea una radiobutton box per la selezione di un solo elemento da una lista
VTABLEBOX
Costruisce una dialog contenente una listbox tabellare con più colonne di ampiezza programmabile

Funzioni grafiche

VARC
Traccia un arco di cerchio o un cerchio completo, che può essere riempito con il corrente stile di riempimento
VDRAW
Traccia pixel, marcatori, linee, poligoni o spline usando gli attributi correnti
VDRAWPARAMS
Seleziona il tipo di marcatore, gli attributi delle linee e gli stili di riempimento da usare per tutte le successive operazioni di tracciamento
VSAY
Stampa una stringa di testo nel font correntemente valido all'interno della finestra selezionata
VSETFONT
Imposta il font da usare per le stampe a video
Prossima sezione: Riferimento per i comandi

Sezione successiva:Esempi VREXX