' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Compatibilità_tra_le_versioni Tempo permettendo, ho aggiunto tutte le caratteristiche di compatibilità alla documentazione, ma siccome Rapid-Q è ancora in fase di sviluppo (specialmente il lato Linux/Unix), è duro dire se saranno risolti i problemi di incompatibilità , quindi ho stilato questo documento. Distinguere tra le applicazioni CONSOLE e quelle GUI Sotto Windows una applicazione CONSOLE è una applicazione che può effettuare sia azioni grafiche sia leggere e scrivere in modo standard (modalità testo). Questo significa che qualsiasi GUI può essere compilata come applicazione CONSOLE senza alcuna consequenza. Non è vero l'inverso. Compilare una applicazione CONSOLE come fosse una applicazione GUI determina la perdita di alcuni dati da mandare all'output standard, e potrebbe determinare alla fine il crash del tuo programma. Sotto Linux/Unix si verifica una cosa molto bizzarra. Questo perchè prevalentemente non volli rifare tutto daccapo. Per esempio, una applicazione GUI in Linux/Unix può scrivere sul standard output, e leggere dallo standard output, anche se il programmatore non ha implementato alcuna istruzione specifica per il terminale quali LOCATE o COLOR. Se l'utente include codice specifico per il terminale nel suo programma, quello allora diventa una applicazione CONSOLE. Una applicazione CONSOLE può anche fare standard in/out as well come la grafica con poche consequenze, lo schermo terminale è ripulito per default, e non puoi eseguire una applicazione CONSOLE in background ( sarà automaticamente terminata). Il form Main (principale) Non c'è differenza tra due forms che stanno lavorando sotto Windows. Tuttavia , sotto Linux/Unix, il primo form che tu dichiari con DIM per ultimo diventa il tuo form principale ( persino se non è il primo form che tu mostri con SHOW). Questo significa che se tu chiudi il form principale, questo determina che la tua applicazione sarà chiusa. Quando il form principale viene chiuso, il tuo programma termina, questo significa che tutto il codice che hai scritto dopo quel punto non sarà mai eseguito. Questo si applica solo alla versione Linux/Unix di Rapid-Q. Redimensionare i Componenti Con la versione di Windows, tu devi dimensionare manualmente tutti i tuoi componenti quando il tuo form viene ridimensionato. Tu fai questo gestendo l'evento OnResize. Sotto Linux/Unix, i componenti sul tuo form vengono automaticamente ridimensionati quando il tuo form viene ridimensionato. Inoltre sii sicuro di definire le dimensioni del tuo form prima di aggiungervi qualsiasi componente.Questo è molto importante per la versione Linux/Unix . Se non lofai, i toi componenti possono apparire troppo grandi/piccoli. Creare Menus Un Menu in Windows è una lista di item di tipo attacati ad un componente QMainMenu. Per non confondere le persone ulteriormente, ma la versione per Linux/Unix non ha esattamente lo stesso componente QMainMenu. Una barra menu è un singolo con items agganciati sopra. Questo significa che tu puoi solo aggiungere alla barra menu, e non agli items del menu. Rapid-Q proprio raggruppa le barre menu insieme nella parte alta dello schermo, e fornisce una lista agganciata (che scende quando gli clikki sopra). Questo significa che tu devi creare la tua prima barra menu, poi puoi aggiungere gli altri ad essa. iccome so di avervi confuso dicendo quessto, fornirò un esempio: CREATE Form AS QForm CREATE MainMenu AS QMainMenu CREATE FileMenuBar AS QMenuItem Caption = "File" END CREATE CREATE EditMenuBar AS QMenuItem Caption = "Edit" END CREATE CREATE SearchMenuBar AS QMenuItem Caption = "Search" END CREATE END CREATE END CREATE DIM OpenItem AS QMenuItem OpenItem.Caption = "Open" FileMenuBar.AddItems OpenItem Non è differente da quello che hai fatto per la versione per Windows, ma nota che tu non aggiungi direttamente alla MenuBar fino a quando non la hai creata. FileMenuBar è considerata una MenuBar,a cui puoi aggiungere, OpenItem è considerato solo un item, a cui non puoi aggiungere niente. Il gestore dell'evento OnClick non si applica a MenuBar, solo all' item. Ancora, questo si applica solo alla versione Linux/Unix , sei libero di fare come vuoi nella versione per Windows. Nota che la versione GTK è meno limitante. Supporto di INKEY$ Il completo supporto di INKEY$ è fornito nelle versioni per Windows e per Linux/Unix. Ci sono alcune cose che vi voglio far sapere su tale funzione, la prima è che un tasto esteso occupa 2-bytes (niente di nuovo qui), tuttavia, il primo byte non è NULL (ie. CHR$(0)). Attualmente il primo byte è un carattere escape, CHR$(27). Il carattere successivo può essere analizzato come un carattere normale. A$ = INKEY$ IF A$ = CHR$(27) + "H" THEN PRINT "Up Arrow Key Pressed." END IF La versione Windows può intrappolare pochi caratteri estesi in più rispetto alla versione per Linux/Unix, ma questi tasti estesi non sono processati per default. Vedi il capitolo 3 della documentazione su Rapid-Q per sapere di più sulla direttiva $OPTION INKEY$. QSocket ReadLine & WriteLine QSocket nora ha esattamente la stessa funzionalità nelle due versioni. ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb