Gambas France BETA


Pas de compte ? Incription

Appli GB2 vers GB3 => TROP DE CONSTANTE dans le form

12
AuteurMessages
Pablodetaix#1 Posté le 28/6/2010 à 08:17:00
Bonjour à vous,

débutant total en GB3
les petites applis ont l'air de bien tourner aprés les qq modifs dont "drawingarea.forcelolor" et "backcolor" ainsi que "dim sMaString as string[4]" qu'il refuse en static. Logique avec ce qui est dit . OK. vu et corrigé.
je suis bien passer par "outils / mettre à jour les formulaires" comme dit dans le forum.

mais une appli qui tourne en GB2 sans pb
me répond 'trop de constantes" ... une piste ?
car il n'y a pas bcp de var.(elles sont en plusieurs modules) mais bcp de form appelés et de boutons/combo etc... cela oui il y en bcp
et le form principal a un "tabstrip" avec 10 onglets et treeview


voilà je vais voir peut être a utiliser le "WorkSpace" pour restructurer tous les appels de "sous" Form ?

Merci d'avance,
Pablo
gambix#2 Posté le 28/6/2010 à 16:00:00
Faire simple !:) c'est pablo ou eric ?
Moins de texte dans une signature c'est agrandir son espace.
gambix#3 Posté le 28/6/2010 à 16:01:00
Faire simple !perso ça ne m'es encore jamais arrivé... mais je n'ai jamais eu le cas d'avoir bcp de constantes
Moins de texte dans une signature c'est agrandir son espace.
Pablodetaix#4 Posté le 28/6/2010 à 20:19:00
il fallait faire la cuisine, et c'est pas mon fort...
quelqu'un a dit "ben tiens on envoi eric à la cuisine, il fera conchita..." et l'ami de répondre.... non surtout pas la cuisine pour lui, j'ai faim ! ... le jardin ok mais pas la cuisine...
et ce jour là j'ai été surnommé Pablo.
donc kif kif !

gambix#5 Posté le 29/6/2010 à 13:09:00
Faire simple !ok :)
Moins de texte dans une signature c'est agrandir son espace.
Pablodetaix#6 Posté le 29/6/2010 à 17:56:00
Je viens de "détruire l'appli GB2" pour la faire tourner en GB3...

il y a cela aussi a modifier dans les sources

DataBrowser1.GridView.Columns[0].Text = "Code pays"
DataBrowser1.GridView.Columns[1].Text = "Nom du pays"
DataBrowser1.GridView.Columns[0].Width = 85
DataBrowser1.GridView.Columns[1].Width = 175

GB3 ne connait plus l'objet Gridview dans DataBrowser...


Mais bon pas grave.... Je suis maintenant, presque persuadé, qu'il y a qq chose d'autre qui le coinçait...
que j'ai effacé pas mon ménage sauvage....
Car il a fallu pour qu'il ne dise plus "TROP DE CONSTANTES" Que je détruise 80 % du contenu des onglets.... (objet de l'IDE et sub associées => il ne me reste qu'un seul onlget avec qq trucs dedans...
le Form n'a donc plus bcp de variables ni d'objets !

Il faut que je fouille il y a autre chose...

Et puis j'ai repris l'appli, je l'ai mise sur GB2 (meme PC que GB3) le GB2 actuel est un 2.20 (écrite sous 2.17) => ça tourne NICKEL....en debug mode et en mode compiler puis executer
J'ai comme un sentiment que l'on ch en GB3 un BUG.... qu'il n'a peut être pas... je veux dire un truc "foireux" qui ne serait pas détecté par GB2

Je vais voir à demander à Benoit si une autre cause peut déclencher "trop de variables !"

Pablo

gambix#7 Posté le 29/6/2010 à 20:19:00
Faire simple !ce qu'il faut que tu fasse c'est envoyer un petit projet en gb3 avec le formulaire qui plante a benoit pour quil puisse tester
Moins de texte dans une signature c'est agrandir son espace.
riri#8 Posté le 3/10/2010 à 08:53:00
Pour résoudre les problèmes, je charge le programme en gb2 et s'il tourne bien je le REFAIS en gb3, ainsi en compilant régulièrement je vois ce qui passe ou ce qui ne passe pas. Pour certains problèmes c'est pas grave en général ceux-là peuvent être compiler après avec lancer l'outil refaire le formulaire ensuite nettoyer l'apli et compiler.
C'est long mais ça l'avantage d'enseigner beaucoup de chose sur gambas
Pablodetaix#9 Posté le 3/10/2010 à 12:39:00
Bonjour à tous,

J'ai réussi a avoir le PB sous UB 8.04 et GB 2.19 depuis j'ai changé l'OS de mes pc de dév. qui sont passés sous UB 10.04 GB2 2.21 et donc chgt des lib ...

Ayant le pb en GB2 maintenant je suis sur et c'est normal, que Benoit à raison : trop de variables. Il est vrai que l'appli est "sérieuse" (humour, surtout pas prétention !) mais en effet trop d'onglets avec bpc de boutons,etc....
donc je me penche depuis des semaines sur une réorg. pour l'instant pas d'idée assez claires pour être efficace.

pour prévenir les pb l'un a vu la 10.04 par install directe, l'autre par Upgrade depuis 8.04

Ils ont pour l'instant le meme comportement sous GB !

Benoit doit(?) être innondé de messages ! je le recontacterais quand je pourrais le mettre le plus clairement possible sur la voie.

Bon travail à tous,
Pablo
Prokopy#10 Posté le 3/10/2010 à 17:35:00
Kinder PinguiSalut à tous,

En fait si vous faites une application avec plein d'onglets et beaucoup de contenu, il faut séparer le tout en plusieurs formulaires, un par onglet. Ensuite, vous pouvez utiliser le contrôle Workspace (disponible dans gb.form.mdi), qui est en fait un TabStrip qui peut contenir plusieurs onglets, et qui dispose d'un petit bouton fermer sur le côté.

Par exemple, si j'ai un formulaire Dans lequel je mets un Workspace que j'appelle Workspace1, et que je veux ajouter un onglet avec un Form2, je devrai utiliser se méthode Add() :

1
Workspace1.Add(Form2)


Comme ça, tous vos contrôles seront répartis sur plusieurs formulaires, mais à la fin on aura l'impression qu'il n'y en a qu'un seul dans plusieurs onglets. :)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
Pablodetaix#11 Posté le 28/10/2010 à 20:16:00
Bonsoir à tous,

donc j'ai suivi les conseils, je prend une appli qui tourne trés bien sous GB2 en 2 ecrans principaux (pas de pb memoire ni de crash quelconque)
le 1er ecran donne accès aux param et autres trucs classiques, le 2° au dessin DrawingAREA opengl. ok

en version GB2.14 / Ub 8.04 no problem
voici le probleme observé depuis que je teste les deux forms dans un Workspace. (sous GB2.21 / Ub 10.04)
le programme tourne bien mais si je met une fenetre (d'un prog quelconque autre) par exemple le "monitor systeme" je le déplace dans la zone ou le DrawArea est affiché => j'ai droit a stack overflow ou #11 selon le cas.

Ce qui semble c'est que le Drawing area se regénère lors de la modif due au passage par dessus lui de l'autre programme (en l'occurence la fenetre du monitor system que je fais glisser dessus)
Le drawArea se remet a jour à une telle fréquence que plouf plouf perdu ! ce qui veut dire (avec vérif du debug ) que le drawarea_draw() se relance avant meme d'avoir fini son cycle d'avant...

Bien evidemment, sinon ce ne serait pas drole le phénomène n'a absolument pas lieu sur l'ancienne version. (2 form indépendants, pas de workspace)
Est ce que la modif de l'image du WorkSpace déclenche une mise a jour "incontrolee" du drawingarea ?

je contourne le probleme pour bloquer les appels du regenere dessin tant qu'il a pas fini ? ou il y a une ruse plus élegante ? ou j'ai raté une énormité dans mon test Workspace ?

ah oui je voulais tester les workspace en GB2 avant de passer l'appli sous GB3 !!!

d'avance merci à ceux qui ont une idée à transmettre !
Pablo
Prokopy#12 Posté le 28/10/2010 à 21:07:00
Kinder PinguiSalut Pablo,

Tu peux empêcher le rafraîchissement automatique en mettant la propriété Cached à True.
L'inconvénient c'est que quand tu voudras rafraîchir il faudra appeler la méthode Clear(). :|
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
Pablodetaix#13 Posté le 29/10/2010 à 04:54:00
merci Prokopy

mais j'ai confondu en écrivant j'utilise pas le drawingArea mais le GlArea !
j'ai réglé le pb en gérant par un flag la fin de régen du dessin/image mais je n'en avais pas besoin dans l'autre version.
par contre j'ai fait le test 2 forms séparés (comme l'ancien prog) et gb2.21 / Ub 10.04 et j'ai bien le meme problème si j'intercepte pas la vraie fin de régen du dessin

Bonne journée a tous,

Bon maintenant je vais tester en GB3...

Pablo
gambix#14 Posté le 29/10/2010 à 07:33:00
Faire simple !je ne sais pas si il y a une solution la ... le flag me semble la meilleur pour l'instant. Draw est redondant... mais c'est vrai que c'est une fonction qui mériterait d'attendre la fin de son exécution avant un rappel... essais en gb3 et tien nous au courant
Moins de texte dans une signature c'est agrandir son espace.
Pablodetaix#15 Posté le 31/10/2010 à 19:04:00
Bonjour à tous,

donc ok ça marche avec un flag spécif pour ne pas réactualiser le GLArea, j'ai essayé de mettre "enable" à FALSE pour le GLArea => ça suffit pas.

J'ai mis cela en Worksapce... donc petit boulot pour mes activations de form qui ne sont plus les mêmes. et autre chgt avec les databrowsers.VIEW.... que je dois corriger
et dès que ça se lance sous GB3 je vous le dit !
il faudra juste que j'arrive a controler "la non fermeture intempestive" des forms par la "X" du Workspace, mais à part ça , c'est bon.

Pablo

12