' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Come_disegno_testo_sulla_form_ Come spiegato nel precedente paragrago dedicato alla grafica semplice, un disegno essendo direttamente disegnato sul form affinchè sia mostrato richiede un evento refresh. Persino il testo che non è considerato normalmente essere un elemento grafico, quando viene posto sul form deve essere chiamato un evento refresh per mostrarlo. Nel seguente esempio il codice continua ad usare l'evento OnPaint. Determinare le dimensioni della stringa di testo Il componente QForm contiene due metodi, chiamati TextWidth e TextHeight, che calcolano le dimensioni dei caratteri di una stringa di testo come apppaiono se mostrati sul form. Questo permette alla applicazione di riaggiustare le dimensioni del font se la stringa fosse troppo piccola o troppo grande. Le seguenti due linee di codice sono esempi dell'uso dei due metodi: CalcWidth = MyForm.TextWidth ( 'This is a test.' ) CalcHeight = MyForm.TextHeight ( 'This is a test.' ) Nell'esempio suesposto, CalcWidth contiene la altezza attuale, in pixels, che la stringa 'This is a test.' dovrebbe avere sul form per essere completamente visibile. CalcHeight contiene la attuale altezza, in pixels, che la stringa dovrebbe avere per essere completamente visibile. Disegnare il testo sul Form Il componente QForm contiene un metodo, chiamato TextOut, che disegnerà una stringa di caratteri sull'area client del form. Esso porrà la stringa nella posizione specificata con i colori di sfondo e primo piano specificati. Il seguente codice di esempio mostra come usare TextWidth, TextHeight, e TextOut per centrare una stringa di caratteri sul form: DECLARE SUB MyDrawSub CONST MyString = 'This is a test.' CREATE MyForm AS QFORM OnPaint = MyDrawSub ShowModal END CREATE SUB MyDrawSub DIM PlotX AS WORD DIM PlotY AS WORD DIM CalcWidth AS WORD DIM CalcHeight AS WORD CalcWidth = MyForm.TextWidth ( MyString ) CalcHeight = MyForm.TextHeight ( MyString ) PlotX = ( MyForm.ClientWidth / 2 ) - ( CalcWidth / 2 ) PlotY = ( MyForm.ClientHeight / 2 ) - ( CalcHeight / 2 ) MyForm.TextOut ( PlotX, PlotY, MyString, &H000000, &HFFFFFF ) END SUB L'esempio suesposto ha usato i metodi TextHeight e TextWidth per calcolare la posizione per disegnare la stringa di testo affinchè sia centrata. E' usato il metodo TextOut per porre la stringa sul form. Produrrà il seguente risultato sul desktop: [TextWidth/Height Example] Contenere del testo all'interno di margini Il componente QForm contiene un metodo chiamato TextRect che disegna una stringa di caratteri sul form permettendo che essa cada all'interno di limiti/margini specificati. Il codice seguente è lo stesso dell'esempio di sopra, eccetto ceh susa il componente QRect per definire l'area visibile e il metodo TextRect per disegnare la stringa di caratteri sul form: DECLARE SUB MyDrawSub CONST MyString = 'This is a test.' CREATE MyArea AS QRECT Left = 140 Top = 10 Right = 180 Bottom = 180 END CREATE CREATE MyForm AS QFORM OnPaint = MyDrawSub ShowModal END CREATE SUB MyDrawSub DIM PlotX AS WORD DIM PlotY AS WORD DIM CalcWidth AS WORD DIM CalcHeight AS WORD CalcWidth = MyForm.TextWidth ( MyString ) CalcHeight = MyForm.TextHeight ( MyString ) PlotX = ( MyForm.ClientWidth / 2 ) - ( CalcWidth / 2 ) PlotY = ( MyForm.ClientHeight / 2 ) - ( CalcHeight / 2 ) MyForm.TextRect ( MyArea, PlotX, PlotY, MyString, &H000000, &HFFFFFF ) END SUB Il codice suesposto produce la seguente immagine sul desktop: [TextRect Example] ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb