Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: vuott - 19 Giugno 2010, 17:23:10

Titolo: [ RISOLTO ] Carattere sul Form nella posizione x , y
Inserito da: vuott - 19 Giugno 2010, 17:23:10
Salve,

vorrei sapere se è possibile far comparire (scrivere) un qualsiasi carattere (ad esempio la lettera: a ) all'interno del Form in una data posizione x , y .
Tale carattere dovrebbe comparire, diciamo, "puro" nel Form, ossia non contenuto in una Label o altro strumento adatto a contenere testo.
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: ealmuno - 19 Giugno 2010, 17:32:43
http://gambasdoc.org/help/comp/gb.qt/form (http://gambasdoc.org/help/comp/gb.qt/form)
non credo sia possibile, mi sa che devi proprio utilizzare una label grande come il form
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: leo72 - 19 Giugno 2010, 23:16:00
Non credo neanch'io.
L'unica è aggirare il problema piazzando sul form una drawing area che copra per intero il form stesso.
Nella drawing area puoi scrivere in qualunque punto tu voglia, specificando le coordinate X,Y del testo che vuoi far apparire.

Codice: gambas [Seleziona]
Draw.Begin(DrawingArea1)
Draw.Text("testo",X,Y)
Draw.End

Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: vuott - 20 Giugno 2010, 11:09:28
Non credo neanch'io.
L'unica è aggirare il problema piazzando sul form una drawing area che copra per intero il form stesso.
Nella drawing area puoi scrivere in qualunque punto tu voglia, specificando le coordinate X,Y del testo che vuoi far apparire.

Codice: gambas [Seleziona]
Draw.Begin(DrawingArea1)
Draw.Text("testo",X,Y)
Draw.End




Effettivamente sembra che Drawing Area sia l'unico strumento per piazzare dei caratteri a determinate coordinate x, y .

E sta bene.

Ho quindi usato, appunto, Drawing Area, ma ho riscontrato uno stranissimo ed inaspettato problema (non so se causato da un bug della mia versione di Gambas):   :(

Se faccio scrivere uno o più caratteri sulla Drawing Area, e successivamente su questi caratteri compare - anche solo temporaneamente - qualcos'altro (ad esempio la finestra a cascata in alto a sinistra del Menu creata nel programma), il carattere viene - almeno apparentemente - cancellato. Più precisamente, diventa invisibile quella parte del carattere che è stata temporaneamente ricoperta dall'oggetto   :-X
Avviene la medesima cosa se cambio desktop e poi torno in quello dove ancora funziona il programma di Drawing Area: i caratteri non si vedono proprio più !  Scomparsi !  :-[

Potete darmi eventualmente conferma di questo comportamento ? (anche se a me continua a sembrare molto strano)  :-X
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: ealmuno - 20 Giugno 2010, 11:32:47
confermo il comportamento, ma non so come porre soluzione, in gambas3 dovrebbe essere stato migliorato di molto...
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: leo72 - 20 Giugno 2010, 11:47:00
Prova ad attivare la proprietà Cached.
Riprendo dalla documentazione (http://gambasdoc.org/help/comp/gb.qt/drawingarea/cached):
DrawingArea.Cached (gb.qt)

PROPERTY Cached AS Boolean

Returns or sets if the DrawingArea contents are cached into a internal Picture object.

When set, the DrawingArea will not be erased when it's obscured by another window. It will only be cleared through explicit use of the Clear method.
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: ealmuno - 20 Giugno 2010, 11:54:21
confermo che settandola a true non viene eliminata, ma non potrebbe essere a true di default?
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: leo72 - 20 Giugno 2010, 14:56:12
No, perché la proprietà Cached rallenta di molto la gestione della drawing area per cui viene messa su false per motivi di velocità. Se poi qualcuno necessita che l'immagine sia "persistente", allora se la imposta su True.
Titolo: Re: Carattere sul Form nella posizione x , y
Inserito da: vuott - 20 Giugno 2010, 19:24:22
Anch'io, dopo fatto le prove, posso confermare che settando la proprietà Cache Drawing Area a True i caratteri presenti sull'area non vengono eliminati.
Pertanto, essendo stati risolti entrambi i problemi da me posti in questo messaggio, posso considerarlo senz'altro risolto.