' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Come_creo_oggetti_propri_ L'atto di creare un oggetto personalizzato in Rapid-Q è più di una semplice personalizzazione e meno della creazione ex-novo. Non c'è un modo per creare un componente completamente nuovo, ma ci sono modi per potenziare o estendere i componenti esistenti per farli lavorare nel modo che ci serve . EXTENDere un Componente La creazione dei componenti personalizzabili è molto simile alla creazione dei tipi definiti dall'utente (UDT) con la parola chiave riservataEXTENDS per riferirsi ad un oggetto impiegato come la base per il nuovo componente da creare. La sintassi per creare un nuovo componente è la seguente: TYPE nuovoComponente EXTENDS esistenteComponente opzioni personalizzate END TYPE Questa nuova estensione eredita tutte le proprietà , i metodi e gli eventi che sono contenuti nel componente di base. Proprietà aggiuntive in un Componente Il punto di avere un componente personalizzabile è la capacità di personalizzarlo. La personalizzazione più facile è l'aggiunta di nuove proprietà al componente. La sintassi per aggiungere nuove proprietà al componente è la seguente: TYPE nuovoComponente EXTENDS esistenteComponente nuovaPropriertà 1 AS dataType nuovaPropriertà 2 AS dataType END TYPE L'aggiunta di nuove proprietà ad un componente personalizzato è esattamente la stessa cosa dell'aggiunta di elementi negli UDT. Aggiungere o Sovrascrivere i metodi del componente L'aggiunta di un nuovo metodo in un componente personalizzato è semplicemente la creazione di una procedura ( SUB or FUNCTION ) all'interno del componente. The syntax for adding new methods to a component is as follows: TYPE nuovoComponente EXTENDS esistenteComponente SUB nuovoMetodo1 codice tche definisce il metodo END SUB FUNCTION nuovoMetodo2 AS dataType codice che definisce il metodo END FUNCTION END TYPE Sovrascrivere il metodo sovraesistente (o proprietà ), usare solo l'esatto stesso nome per una nuova definizione. IL nuovo metodo (o proprietà ) prenderà il posto di quello vecchio. Inizializzare i Componenti con CONSTRUCTOR Il metodo CONSTRUCTOR...END CONSTRUCTOR viene usato all'interno del blocco TYPE...END TYPE che definisce un componente al fine di essere certi che alcune proprietà vengano inizializzate con valori specificati. La sintassi del metodo CONSTRUCTOR è la seguente: TYPE nuovoComponente EXTENDS esistenteComponente opzioni personalizzate CONSTRUCTOR propriertà = valore di inizializzazione END CONSTRUCTOR END TYPE Qualsiasi proprietà impiegata all'interno del metodo CONSTRUCTOR può essere considerata come se avesse un valore "default" con cui viene inizializzata. Accedere al nuovo Componente Proprio come per i componenti predefiniti, i componenti personalizzati non sono direttamente accessibili. Prima deve essere creata una versione oggetto del componente. Il modo più semplice di fare questo è con la dichiarazione DIM. La sintassi è la seguente: DIM nomesimbolicoAS nuovoComponente Un modo alternativo di rendere il componente disponibile è con il costrutto CREATE...END CREATE. La sintassi è la seguente: CREATE nomesimbolicoAS nuovoComponente [ codice che si riferisce al nuovo componente] END CREATE Iniziare con un componente vuoto Rapid-Q contiene un componente vuoto chiamato QOBJECT che può essere usato come base per il programmatore per creare nuovi componenti che non devono avere le stesse estensioni di qualsiasi componente esistente. Un esempio di estensione del componente vuoto QOBJECT : TYPE MyObject EXTENDS QOBJECT PUBLIC: NameOnly AS BYTE PRIVATE: MyName AS STRING PUBLIC: SUB ChangeName ( newname AS STRING ) IF newname = "" THEN newname = "no name" END IF MyObject.MyName = newname END SUB SUB PrintName If MyObject.NameOnly = 0 then Print "My name is "; End If Print MyObject.MyName END SUB CONSTRUCTOR NameOnly = 0 MyName = "no name" END CONSTRUCTOR END TYPE Ora abbiamo creato un componente personalizzato chiamato MyObject. Se vogliamo accedere ad esso dobbiamo prima creare una variabile del suo tipo: Dim MyN as MyObject Se chiamamo il metodo PRINTNAME del nostro componente: MyN.PrintName otterremo il risultato "no name". chiamiamo prima il metodo CHANGENAME : MyN.ChangeName("Steven") MyN.PrintName ed ora ottieniamo come risultato"Steven". Se il metodo ChangeName è chiamato con una stringa vuota ( "" ), il metodo la sostituisce on la stringa "no name". Se viene fatto un tentativo di accedere alla proprietà privata MyName, viene generato un errore di compilazione. ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb