Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: dex - 26 Dicembre 2009, 21:15:29

Titolo: [Ceskho Risolto]posizione dei message
Inserito da: dex - 26 Dicembre 2009, 21:15:29
ciao raga

ho attivato il doppio schermo e nel mio progetto i message vanno a finire sul secondo schermo.

esiste la possibilità di impostare x e y per i message?
Titolo: Re: posizione dei message
Inserito da: Ceskho - 27 Dicembre 2009, 01:22:05
Penso proprio di no....però puoi ovviare al problema creando un form di tipo message tu stesso e impostando x e y come sei solito fare...
Titolo: Re: posizione dei message
Inserito da: dex - 31 Dicembre 2009, 01:33:42
@ Ceskho

Non sono solo i message, anche i dialog e l'apertura di programmi esterni.
é un difetto di gambas in quanto tutti gli altri programmi installati nel pc non presentano questo problema.

ho provato anche a compilare il mio progetto ed a installarlo ma niente da fare.

non è che si tratta di un bug della 2.18 o qualche componente?

a nessuno è capitato un problema simile?
Titolo: Re: posizione dei message
Inserito da: Ceskho - 31 Dicembre 2009, 01:40:24
In realtà non è un bug ma è una funzione che proprio manca....

Sei sicuro che gli altri programmi GNU/linux abbiano i form messaggi centrati? Se programmi direttamente con le gtk non mi esiste un parametro per posizionare queste finestre...poi nelle qt non so, non le conosco...
Titolo: Re: posizione dei message
Inserito da: Ceskho - 31 Dicembre 2009, 02:17:19
una precisazione per me: ma per doppio schermo intendi proprio due monitor affiancati? o ti riferisci ai desktop multipli?
Titolo: Re: posizione dei message
Inserito da: dex - 31 Dicembre 2009, 11:02:38
mi riferisco a due monitor affiancati, i quali hanno in comune solo il mouse. mi servono per far visualizzare sul secondo monitor delle informazioni alla clientela, mentre il primo resta libero per l'operatore.

non mi riferivo a un bug di gambas la mancanza di poter centrare i message, ma al fatto che mi sposta tutte le form (non aperte a pieno schermo), i dialog e i message sull'altro monitor.

secondo me il bug di gambas è il non vedere i due monitor, interagisce come se ne fosse uno solo, infatti i message e i form che ti dicevo li mette sull'altro  monitor al bordo sinistro e non al centro.
Titolo: Re: posizione dei message
Inserito da: fsurfing - 31 Dicembre 2009, 11:36:33
come ha suggerito ceskho l' unica tua possibilità è crearti una tua classe message che fa apparire il form dove tu vuoi, stessa cosa dicasi per i dialog ecc ecc.
 normalmente queste finestre appaiono centrati al monitor che nel tuo caso vorrebbe dire metà in uno e metà nell' altro , molto strano invece che ti appaiano nel monitor di sinistra
Titolo: Re: posizione dei message
Inserito da: dex - 31 Dicembre 2009, 18:26:22
@fsurfing
in effetti prima con i due monitor impostati alla stessa risoluzione, si centravano fra i 2 schermi, poi ho abbassato la risoluzione del 2 schermo e si posizionano o a destra (raro) del monitor principale, oppure a sinistra del secondo monitor.

per i form ho risolto con la lettura di x e y del form main, con i message potrei anche crearmeli, è con i dialog che non so da che parte cominciare per creare la classe.

hai qualche esempio di codice da postarmi?
Titolo: Re: posizione dei message
Inserito da: fsurfing - 31 Dicembre 2009, 18:31:09
esempi pronti no,

cosa intendi esattamente per dialog?
Titolo: Re: posizione dei message
Inserito da: Ceskho - 31 Dicembre 2009, 18:49:03
@ desadex

se mi dai tempo domani sera ti posto una classe dei message...ti chiedo solo di avere pazienza fino a domani sera...
Titolo: Re: posizione dei message
Inserito da: dex - 31 Dicembre 2009, 19:22:19
@ceskho

tempo fino a domani sera a capodanno?
ma tu sei troppo buono, di tempo ne puoi prendere quando ne vuoi.

anzi ti ringrazio in anticipo per il tuo interessamento e ti auguro buon anno.
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 05:16:29
@ desadex

Ho creato una classe che simula un message form. In realtà essa non è ancora completa perchè per ora hai un form non ridimensionabile, un solo button, a differenza dei tre classici che propone il message di gambas, e c'è il solo form warning per ora!!

HO chiamato questa classe extramessage...:-)

Per importarla usa:

Codice: [Seleziona]
extramessage AS NEW estramessage


Da usare e semplicissima...dove vorresti che apparisse il message classico usa la mia classe con la sintassi

Codice: [Seleziona]
extramessage.warning(messaggio, button, x, y)


ricordando che:

messaggio è una stringa per impostare il messaggio da visualizzare;

button è il testo che vuoi che appaia nel button sul form;

x e y sono opzionali e sono due interi che indicano la posizione del form nel desktop. Se non specifichi questi due parametri il form sarà centrato automaticamente.

Spero che il mio lavoro sino a cui ti torni utile. Se la cosa è buona allora continuo lo sviluppo. Ora devo fermarmi perchè come vedi sono le 5 del mattino e vado a dormire un pò....

Fammi sapere....

Auguri anche a te..
Titolo: Re: posizione dei message
Inserito da: dex - 01 Gennaio 2010, 15:47:04
@ ceskho

sul tuo avatar c'è scritto super, è vero sei grande.

funziona a meraviglia, manca solo il secondo button.
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 16:34:50
Se il lavoro per te va bene abilito anche il secondo e il terzo e poi mi dedico al ridimensionamento..ok?
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 18:56:33
Ho aggiunto i due button che mancavano...

Ora infatti è possibile identificare anche il secondo e terzo button...

Codice: [Seleziona]
extramessage.warning(messaggio, button1, button2, button3 x, y)


I parametri di prima restano uguali...ora hai anche button2 e button3 che sono opzionali e sono il testo che vuoi che appaia nei rispettivi button.

Ovviamente se non indichi button2 o button3 essi non appaiono ma appare solo button1 o solo button1 e button2.

Spero di essere stato chiaro...

Per ora hai solo il form warning e non è ridimensionabile..per queste cose vedremo dopo...

DIMENTICAVO: ho aggiunto una funzione leggi in modo che tu sappia quale è stato l'ultimo button premuto.

La puoi leggere con

extramessage.leggi()

In questo modo in base alla scelta del'utente fai ciò che devi fare. Essa restituisce:

0 -> primo button
1 -> secondo button
2 -> terzo button
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 19:22:58
Vabbè visto che ti voglio bene e visto che ho appena passato il mio 20esimo capodanno sulla faccia della terra, ti ho creato anche i restanti messagge.

Ora hai a disposizione:

Warning
Info
Delete
Error
Question


In pratica tutti quelli che avresti normalmente.

EDIT: Cancello i vecchi file allegati poichè non servono.
Titolo: Re: posizione dei message
Inserito da: dex - 01 Gennaio 2010, 20:21:44
@ ceskho

va alla grande.

volevo chiederti:
per le icone non è possibile inserire ad esempio:
Codice: [Seleziona]
extramessage.warning(messaggio, button1, button2, button3,icona, x, y)


in modo da richiamare varie immagini?

per extramessage.leggi()

ho visto che mi ritorna il valore del button, ma per fare una cosa simile come si fà?

Codice: [Seleziona]
if message.warning(testo,button1,button2) = 1 then
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 20:27:38
Le icone sono le stesse che usa gambas di default per i messagge..se inserisco la possibilità di specificare l'icona allora non ha più senso la distinzione tra i vari tipi di message.

per usare leggi puoi fare ad esempio

Codice: [Seleziona]
extramessage.info("vuoi chiudere il programma?" , "Si", "No")

IF extramessage.leggi() = 0 THEN Form.Close
Titolo: Re: posizione dei message
Inserito da: dex - 01 Gennaio 2010, 20:34:13
ma con
Codice: [Seleziona]
extramessage.info("vuoi chiudere il programma?" , "Si", "No") 


va in errore
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 20:36:29
che errore?
Titolo: Re: posizione dei message
Inserito da: dex - 01 Gennaio 2010, 20:52:29
unknown symbol 'info' in class 'extramessage'
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 20:54:07
hai scaricato l'ultimo allegato che ho inserito?sarebbe extramessage3..controlla...
Titolo: Re: posizione dei message
Inserito da: dex - 01 Gennaio 2010, 21:00:14
scusa non avevo visto il 3 allegato

auguri per il tuo compleanno.
Titolo: Re: posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 21:02:51
no no..non è il mio compleanno...era una constatazione....:-)
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: dex - 01 Gennaio 2010, 23:05:42
un'ultima domanda.

volendo applicarlo a:
CATCH  
   Message.error(Error.text)?
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: Ceskho - 01 Gennaio 2010, 23:13:32
Codice: [Seleziona]
TRY operazione_da_fare

IF ERROR THEN extramessage.error(error.text, "Ok")
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: dex - 01 Gennaio 2010, 23:55:27
mi da:

'extramessage.error 'is not static
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: dex - 02 Gennaio 2010, 00:37:54
@ceskho

il codice seguente non mi entra nella struttura if

Codice: [Seleziona]
PUBLIC SUB Button1_Click()
 
   extramessage.Delete(M1.MyNamA & " Vuoi eliminare questo Record?", "Annulla", "Elimina")
   
   IF extramessage.leggi() = 1 THEN
      codice da eseguire
   END IF
   
END


in pratica nella sub essendo sequenziale il result è 0 di default e non entra nell if
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: Ceskho - 02 Gennaio 2010, 00:42:46
non ho capito...
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: dex - 02 Gennaio 2010, 01:05:30
che nella sub button1_click anche se premo il secondo button non entra nella struttura if e non esegue il codice

prova ad inserire questo codice in un form e noterai che non entra nell'if

Codice: [Seleziona]
PUBLIC SUB Button1_Click()
 
   extramessage.Delete("Vuoi eliminare questo Record?", "Annulla", "Elimina")
   
   IF extramessage.leggi() = 1 THEN
      message.info("codice eseguito")
   END IF
   
END
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: Ceskho - 02 Gennaio 2010, 01:19:25
Purtroppo mi risulta difficile ora fare delle prove perchè con gambas 2.17 appena chiudo una finestra si chiude tutto...
Titolo: Re: [Ceskho Risolto]posizione dei message
Inserito da: dex - 02 Gennaio 2010, 02:36:11
@ceskho

ci aggiungo un'altra richiesta, per i message normali il programma si blocca fino alla chiusura del message.

in extramessage dovremmo fare una cosa simile