Gambas-it
Gambas3 => Segnalazione bug => Topic aperto da: giob1642 - 01 Ottobre 2014, 12:02:07
-
Uso l'ultima versione di gambas .
V'e un bug nell'editor di menù:
se utilizzo menu1 menu2 menu 3 funziona
se metto menu1 menu2 utility il prog si blocca
ciò è dovuto al fatto che l'editor di menù non riconosce alcuni caratteri in particolare "y"
giorgio
-
A me, invece, sembra che funzioni :-\ sia se la lettera "y" è presente nella voce principale del Menu, sia se è presente in una sotto-voce, nonché in entrambi i casi sia se è presente nel campo "Name" che in quello "Caption".
Dovresti allegare una copia di un semplice sorgente.
-
Ho sviluppato un prog. con una decina di form, tale numero elevato è dovuto principalmente ad evitare l'uso di pannelli hide/show o controlli tabstrip che producono programmi molto lunghi e come tale poco agevoli.
In tal senso ho preferito gestire il tutto con più form su una stessa videata ,di cui uno fisso e e altri montabili alla bisogna con un sistema di questo tipo: formB.hide, formB'.show;
viene fuori un video come in fig1, patricolarmente semplice da gesire.
Attualmente stavo provando a creare un menu legato alla forn A della fig allegata da poter utilizzare anche per cambiare i vari form.
Il form A porta un menu: menu1 menu2 menu3 menu4 (in una fase successiva pongo height di A=0 ossa il form a contiene solo il menu ma ciò non influenza quello che vado a dire:
menu1 menu2 menu3 menu4 attivato con le seguenti specifiche
nome,caption ,visible, emnable e translate
funziona
menu1 menu2 menu3 Utility con le stesse specifiche da il seguente errore:
stato dello stack (/codice nativo) ...........ed il prog si blocca
sostituendo il menu con menu1 menu2 menu3 Utiliti funziona di nuovo
Aggiungendo una sottovoce di utiliti setup (voce con cui cerco di sostituire il form B con FSetup) Fsetup non tiene conto di width ed height W.x e W.y assegnategli e disegna il nuovo form fuori schermo.
Spero che ora sia sufficenteme chiaro se non lo è t'invio su prog ad hoc.
giorgio
-
Non si tratta semplicemente di codice...... :hard: allega un programma molto ridotto, ma che riproduca tutti gli errori da te evidenziati.
-
Ok, l'avevo previsto e preparato
giorgio
-
Confermo il problema da te segnalato.
Ho notato, però, che non è la lettera "y" in sé a generare il problema, bensì proprio la parola "utility" o "Utility".
Infatti, scrivendo - ad esempio - "Uility" oppure "Utily" l'errore non viene sollevato.
Forse la parola "Utility" va in conflitto con qualcosa che porta lo stesso nome nei sorgenti dell'IDE... :-\
La cosa strana è che se io creo un progetto analogo (con il solo Form principale), ed uso la parola "Utility" in una voce del Menu, non viene solevato alcun errore.
-
............................................ e allora
giorgio
-
La questione è alquanto strana.
Ho trasmesso il tuo progetto alla Mailing List ufficiale per una eventuale loro opinione al riguardo.
Restiamo in attesa, dunque, se qualcuno risponderà.
-
Ero certo del tuo interessamento e ti sono grato.
A seguito di questo bug mi piacerebbe passare un po di tempo a guardare i sorgenti di Gambas; non è agevole però muoversi tra i numerosi programmi,librerie ecc. che compongono la realese. Sai se per caso c'è una lista che spiega la cronologia dei vari passaggi di make?
grazie giorgio
-
Ti riporto di seguito fedelmente le varie risposte al quesito posto nella M.L.:
" This is because the menu name is "Utility" and the project options say that
"form controls are public".
So what happens is: the compiler creates public variables in the form which
have the name of the controls in the form (I guess), so that the programmer
can write FMain.myMenu to access their menu control. But Utility is actually
a boolean property of the Form class already from which FMain inherits, so
the not-so-strange "incorrectly overridden" error is raised.
Our friend did two things wrong here: normally, you shouldn't tick the "form
controls are public" checkbox. Indeed the program seems to not need it at
all. It's the same as having everything be a global variable -- it nullifies
the principle of encapsulation.
The second thing is to violate the Gambas naming conventions :-) Calling a
thing "Utility" asks for trouble, "mnuUtility" would be fine.
Regards,
Tobi "
" Apropos Gambas naming conventions - is it written any place? I see
people using h, $ frequently and also i, s and b for integer, string and
boolean.Most of these are OK, but I do not fully understand where you
normally put the $?
Jørn "
" They are here: http://gambaswiki.org/wiki/doc/naming .
There is a note at the end of the page which is quite
important. The Gambas IDE is the single definitive reference if you really
want to have an overview of all (or some) of the prefixes for graphical
controls. I tend to forget these prefixes regularly and use slightly
different ones (whatever sounds right). I guess nobody is expected to dive
into the IDE to look up the correct prefix for a control :-)
Tobi "
" Actually it would be quite nice if the IDE were to default control names to the "acceptable" prefixes rather than the control name. For example "grd1" rather than "GridView1" etc.
(hint! :-) )
regards
Bruce "
" Not necessarily good idea as default, but good idea as option. Since some
people use Gambas also for quick prototyping and then names like
"GridView1" are much handier, than trying to remember what the official
prefix was.
Jussi "
-
Prima di tutto grazie.
il problema è risolto per metà; infatti sostituendo utility con myutility ill programma non si blocca al premere myutility.
Come sottovoce di myUtility ho setup ; e la chiamata seguente non funziona ne se al menù c'è setup o mysetup.
Public Sub mysetup_Click()
BB.cForm.Close
BB.cForm = New FSetup(Me)
BB.cForm.show
End
............................ nella mia precedente ti chiedevo anche un altra cosa .....
giorgio
-
Sai se per caso c'è una lista che spiega la cronologia dei vari passaggi di make?
Non sono il più adatto, purtroppo, a dare una risposta a questa domanda. :-\
-
Torno sul problema iniziale, secondo me c'è ancora un bug che si evidenzia con sui puntatori dei vari form (vd. prog. allegato provando col menu a montare le varie finestre ) ,il secondo form viene montato in posizione errata.
Su l'altro problema che ti accennavo, l'ho risolto tramite un articolo trovato in rete ed è talmente interessante che lo pubblicherò su "programmazione in generale"
giorgio
-
.... un articolo trovato in rete ed è talmente interessante che lo pubblicherò su "programmazione in generale"
Molto bene.