' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Capitolo_4__Il_vostro_primo_programma_Rapid-Q ****** 4. Il vostro primo programma Rapid-Q ****** Passiamo direttamente a scrivere programmi Windows in Rapid-Q! Questa è una semplice guida passo passo, completa di codice sorgente alla fine del capitolo. 4. 1 Decidere cosa scrivere Non scriveremo una semplice demo 'Hello World!', ma nemmeno un Web browser; partiremo da qualcosa di significativo, ma al tempo stesso semplice. Scriveremo un semplice programma di database basato su un form. Fra i concetti di cui parleremo ci saranno la gestione dei form, degli eventi e l'utilizzo dei componenti QEDIT, QBUTTON, QFORM, QLABEL, e QLISTBOX. Ecco come dovrebbe apparire la nostra applicazione una volta completata, potete modificare l'interfaccia a vostro piacimento (se vi sentite abbastanza sicuri). [http://www.rapidq.it/public/hell_editor/homepages/images/chap4d1.gif] Potrà sembrare molto, ma in realtà il codice è meno di 100 righe! La maggior parte del tempo è impiegato nel disegno della grafica. 4. 2 Disegnare il form Potete praticamente vedere i componenti di cui avremo bisogno. Un QFORM, 2 QBUTTON, 4 QEDIT, 4 QLABEL, ed infine 1 QLISTBOX. Prima di tutto, serve una finestra (il nostro form). Digitare: DIM MainForm AS QFORM MainForm.Center MainForm.Caption = 'My First Application' MainForm.Height = 340 MainForm.Width = 350 MainForm.ShowModal '-- Visualizza il form Se avete digitato tutto questo correttamente, dovreste vedere una finestra vuota con la stessa geometria del diagramma sopra indicato. Una cosa che va rilevata è che non stiamo usando MainForm.Left o MainForm.Top in quanto quando il form principale è centrato, vengono automaticamente calcolati per noi. Quello che ci serve realmente è di fornire la larghezza e l'altezza della nostra finestra. Bene, ora che abbiamo la nostra finestra dovremo aggiungervi dei controlli. Il codice che segue dovrà essere sistemato PRIMA della riga MainForm.ShowModal. Tanto per cominciare, aggiungiamo alcune etichette alla nostra finestra. DIM NameLabel AS QLABEL, AddrLabel AS QLABEL DIM CityLabel AS QLABEL, PhLabel AS QLABEL NameLabel.Parent = MainForm NameLabel.Caption = 'Name:' NameLabel.Top = 13 NameLabel.Left = 25 AddrLabel.Parent = MainForm AddrLabel.Caption = 'Address:' AddrLabel.Top = 38 AddrLabel.Left = 25 CityLabel.Parent = MainForm CityLabel.Caption = 'City:' CityLabel.Top = 63 CityLabel.Left = 25 PhLabel.Parent = MainForm PhLabel.Caption = 'Phone #:' PhLabel.Top = 88 PhLabel.Left = 25 Stiamo creando quattro componenti etichetta, ed useremo MainForm come contenitore per questi componenti, da cui l'associazione Parent = MainForm. Se ad esempio avessero creato un QPANEL nel nostro form, esso potrebbe fare da contenitore per i nostri controlli. Ci arriveremo più avanti. Per il momento, prendetevi un po' di tempo per assimilare il codice ed aggiungerlo a quello precedente. Ora abbiamo la nostra finestra e le nostre quattro etichette. Aggiungiamo i quattro controlli casella di testo al nostro programma. DIM NameEdit AS QEDIT, AddrEdit AS QEDIT DIM CityEdit AS QEDIT, PhEdit AS QEDIT NameEdit.Parent = MainForm NameEdit.Left = 70 NameEdit.Top = 10 NameEdit.Width = 230 AddrEdit.Parent = MainForm AddrEdit.Left = NameEdit.Left AddrEdit.Width = NameEdit.Width AddrEdit.Top = 35 CityEdit.Parent = MainForm CityEdit.Left = NameEdit.Left CityEdit.Width = NameEdit.Width CityEdit.Top = 60 PhEdit.Parent = MainForm PhEdit.Left = NameEdit.Left PhEdit.Width = NameEdit.Width PhEdit.Top = 85 Non vi sembra familiare? Funziona come le nostre QLABEL, la cosa più difficile è posizionarli correttamente nel form. Nell'esempio di cui sopra, abbiamo allineato tutti i controlli QEDIT subito dopo i QLABEL. Ancora, prendetevi un po' di tempo per assimilare il codice ed aggiungerlo a quello precedente. Ci resta solo da aggiungere i nostri due bottoni ed il nostro controllo listbox. Ecco come fare: DIM AddButton AS QBUTTON, ClearButton AS QBUTTON DIM ListBox AS QLISTBOX AddButton.Parent = MainForm AddButton.Left = 70 AddButton.Top = 115 AddButton.Width = 110 AddButton.Caption = '&Add to Database' ClearButton.Parent = MainForm ClearButton.Left = 190 ClearButton.Top = 115 ClearButton.Width = 110 ClearButton.Caption = '&Clear Database' ListBox.Parent = MainForm ListBox.Top = 150 ListBox.Left = 70 ListBox.Width = 230 ListBox.Height = 150 Copia e incolla, ed ecco fatto! Wow, ora abbiamo un form esattamente come il diagramma illustrato in precedenza (sezione 4. 1). Eseguitelo, osservatelo bene per un po' e poi riprendete la lettura, ci sono ancora due cose da inserire. 4. 3 Gestione degli eventi Come avete visto, il codice sopra indicato formsce un'interfaccia utente, ma nulla più. Se avete provato a premere i pulsanti, non fanno niente. Dovrete scrivere il gestore dell'evento relativo al clic sul bottone. Ecco come fare: AddButton.OnClick = AddButtonClick Tutto qui? Bene, solo in parte: il gestore dell'evento OnClick trasferirà l'esecuzione alla subroutine che abbiamo denominato AddButtonClick. A questo punto dovremo scrivere la nostra subroutine. Assicuratevi di avere incluso la subroutine sopraindicata, prima di aggiungere il codice di cui sopra. SUB AddButtonClick IF ListBox.ItemCount > 0 THEN '-- Aggiungiamo un bel separatore ListBox.AddItems '--------------------------' END IF ListBox.AddItems NameEdit.Text, AddrEdit.Text, _ CityEdit.Text, PhEdit.Text END SUB Bene, cominciamo a vedere qualche risultato. Quando l'utente preme il pulsante add (aggiungi), il codice sopraindicato viene eseguito. Come potete vedere, aggiunge semplicemente i campi testo alla nostra listbox. In caso non lo sapeste già , il carattere underscore '_' può essere utilizzato in Rapid-Q per suddividere righe lunghe. Abbiamo quasi finito, ora aggiungeremo un gestore di evento per l'altro pulsante. SUB ClearButtonClick ListBox.Clear END SUB ClearButton.OnClick = ClearButtonClick OK, se avete contato tutte le righe, sono ben meno di 100! Il nostro programma è completo, potete giocarci, aggiungerci qualcosa, e comunque imparare qualcosa. 4.4 Codice sorgente completo DIM MainForm AS QFORM DIM NameEdit AS QEDIT, AddrEdit AS QEDIT, _ CityEdit AS QEDIT, PhEdit AS QEDIT DIM NameLabel AS QLABEL, AddrLabel AS QLABEL, _ CityLabel AS QLABEL, PhLabel AS QLABEL DIM ListBox AS QLISTBOX DIM AddButton AS QBUTTON, ClearButton AS QBUTTON SUB AddButtonClick IF ListBox.ItemCount > 0 THEN '-- Aggiungere un bel separatore ListBox.AddItems '--------------------------------' END IF ListBox.AddItems NameEdit.Text, AddrEdit.Text, _ CityEdit.Text, PhEdit.Text END SUB SUB ClearButtonClick ListBox.Clear END SUB NameLabel.Parent = MainForm NameLabel.Caption = 'Name:' NameLabel.Top = 13 NameLabel.Left = 25 AddrLabel.Parent = MainForm AddrLabel.Caption = 'Address:' AddrLabel.Top = 38 AddrLabel.Left = 25 CityLabel.Parent = MainForm CityLabel.Caption = 'City:' CityLabel.Top = 63 CityLabel.Left = 25 PhLabel.Parent = MainForm PhLabel.Caption = 'Phone #:' PhLabel.Top = 88 PhLabel.Left = 25 NameEdit.Parent = MainForm NameEdit.Left = 70 NameEdit.Top = 10 NameEdit.Width = 230 AddrEdit.Parent = MainForm AddrEdit.Left = NameEdit.Left AddrEdit.Width = NameEdit.Width AddrEdit.Top = 35 CityEdit.Parent = MainForm CityEdit.Left = NameEdit.Left CityEdit.Width = NameEdit.Width CityEdit.Top = 60 PhEdit.Parent = MainForm PhEdit.Left = NameEdit.Left PhEdit.Width = NameEdit.Width PhEdit.Top = 85 AddButton.Parent = MainForm AddButton.Left = 70 AddButton.Top = 115 AddButton.Width = 110 AddButton.Caption = '&Add to Database' AddButton.OnClick = AddButtonClick ClearButton.Parent = MainForm ClearButton.Left = 190 ClearButton.Top = 115 ClearButton.Width = 110 ClearButton.Caption = '&Clear Database' ClearButton.OnClick = ClearButtonClick ListBox.Parent = MainForm ListBox.Top = 150 ListBox.Left = 70 ListBox.Width = 230 ListBox.Height = 150 MainForm.Center MainForm.Caption = 'My First Application' MainForm.Height = 340 MainForm.Width = 350 MainForm.ShowModal ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb