Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

Problème de sauvegarde : ralentissement de l'atelier

power_settings_newSe connecter pour répondre
3 participants

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai une piste...
Je corrige et j'essaye de proposer rapidement une correction.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai déposé une version 2.1 alpha 3 :
http://langagelinotte.free.fr/wordpress/

Il faut également mettre à jour le greffon Image.

Peux-tu me dire si tu as moins de problèmes ?

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Dsl, le problème est toujours là.

Le problème semble venir du l'utilisation de xtoile.
Si j'affiche mon quadrillage dans la toile et non dans le xtoile, je n'ai plus de problème.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Wam a écrit:

Dsl, le problème est toujours là.

Le problème semble venir du l'utilisation de xtoile.
Si j'affiche mon quadrillage dans la toile et non dans le xtoile, je n'ai plus de problème.


Tu peux relancer ton programme sans soucis si tu utilises la toile ?

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Oui ^^

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Tu as bien la version 0.91 du greffon image ?

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Je l'ai mis à jour avec le manageur de greffon.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Afin de trouver une piste, je vais te demander un procédure un peu plus longue mais qui me donnera plus d'informations.

1 - Installer le greffon Debug attaché au poste
2 - Lancer l'Atelier et activer l'audit (rien ne va s'afficher, c'est normal !)
3 - Lancer ce programme :

Code:


principale :

trace:
:
debug
début
évoque trace.
inspecter()

4 - Lancer 3 ou 4 fois ton programme qui fait planter l'Atelier.
5 - Relancer le programme donné précédemment.
6 - Quitter l'Atelier
7 - M'envoyer le fichier c:\temp\thread.txt par mail ou message privé sur le forum.
Merci !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai installé le fichier Debug.zgl dans le fichier Program files/Linotte/Greffons et/ou dans le dossier .Linotte/Greffons :
dans tous les cas, lorsque je lance le programme :

[php]
principale :
trace::debug
début
évoque trace.inspecter()
[/php]

Ça m'indique "Erreur" sur le tableau.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Si ça se trouve tu dois créer avant le répertoire c:\temp

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
C'était bien ça :;
):
C'est envoyé.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Je vais regarder ça.
Par contre, je te conseille de supprimer le greffon car il risque de ralentir encore plus ton Atelier !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
ok x)

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Je ne trouve pas de comportement étrange. Tu as eu les problèmes de ralentissement ?

Peux-tu essayer avec cette nouvelle version du greffon Debug ?

Les fuites de mémoire, c'est ce qu'il y a de plus dur à déboguer en programmation !

Merci !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
admincpc a écrit:


Les fuites de mémoire, c'est ce qu'il y a de plus dur à déboguer en programmation !



Pareil en médecine...

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Si je trouve la fuite mémoire, je change de métier pour la médecine !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai bien le problème de fuite mémoire.
Néanmoins, je ne relance mon livre que 3 fois, le ralentissement étant tout de même bien visible.
Car si je le relance une 4ème fois, l'atelier va planter et je ne pourrais alors pas relancer ton programme.

(Lors de l'exécution de mon livre, j'affiche du texte sur le tableau : sa ne nuit pas à l'exécution de l'audit ou de ton programme ?)

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai découvert un nouveau bogue très bizarre dans mon programme.
Voici un extrait de mon code que vous pouvez exécuter :

[php]
globale
// Fenêtre principale
Fenêtre_principale :: formulaire, titre vaut "Editeur de cartes", hauteur vaut 800, largeur vaut 1400
popup :: popup

// Toile
fond :: toile, x vaut 0, y vaut 35, hauteur vaut 740, largeur vaut 1400, couleur vaut "blanc", pointeur vaut "flèche"
xtoile :: xtoile, x vaut 0, y vaut 35
bordure_gauche :: rectangle, x vaut 0, y vaut 0, position vaut 1, hauteur vaut hauteur de fond, largeur vaut 150, plein vaut "oui", couleur vaut "blanc"

// Menus
menu1 :: menu, texte vaut "Carte"
menu1s1 :: sousmenu, texte vaut "Nouveau quadrillage"
menu2 :: menu, texte vaut "Edition"
menu2s1 :: sousmenu, texte vaut "Activer/désactiver la grille"

// Barre d'outils
barre1 :: barre, hauteur vaut 40, largeur vaut largeur de Fenêtre_principale, x vaut 0, y vaut 5
bouton1 :: bouton, icône vaut "Icônes\table_borders_16x16.gif", texte vaut "", infobulle vaut "Activer/désactiver la grille"

// Fenêtre nouveau quadrillage
Fenêtre_nouveau_quadrillage :: formulaire, hauteur vaut 140, largeur vaut 300, titre vaut "Nouveau quadrillage", visible vaut "non", x vaut 450, y vaut 255
txt_Fnq1 :: étiquette, texte vaut "Nombre de cases en largeur :", x vaut 10, y vaut 12
txt_Fnq2 :: étiquette, texte vaut "Nombre de cases en hauteur :", x vaut 10, y vaut 32
txt_Fnq3 :: étiquette, texte vaut "Largeur des cases :", x vaut 10, y vaut 52
txt_Fnq4 :: étiquette, texte vaut "Hauteur des cases :", x vaut 10, y vaut 72
choix_case_largeur :: champ, x vaut 200, y vaut 10, taille vaut 3
choix_case_hauteur :: champ, x vaut 200, y vaut 30, taille vaut 3
choix_taille_largeur_case :: champ, x vaut 200, y vaut 50, taille vaut 3
choix_taille_hauteur_case :: champ, x vaut 200, y vaut 70, taille vaut 3
bouton_valider_Fnq :: bouton, texte vaut "Valider", x vaut 70, y vaut 110
bouton_annuler_Fnq :: bouton, texte vaut "Annuler", x vaut 160, y vaut 110

// Quadrillage
taille_largeur_case :: nombre
taille_hauteur_case :: nombre
nombre_case_largeur :: nombre
nombre_case_hauteur :: nombre
nombre_case_largeur_effectif :: nombre
nombre_case_hauteur_effectif :: nombre
nombre_case :: nombre
nombre_case_total :: nombre
copie_index_carte :: nombre

grille4 :: casier de rectangle
grille5 :: casier de rectangle

grille_off :: drapeau

Fenêtre_principale :
début
// Construction des fenêtres

Ajoute txt_Fnq1 & txt_Fnq2 & txt_Fnq3 & txt_Fnq4 & choix_case_largeur & choix_case_hauteur & choix_taille_largeur_case & choix_taille_hauteur_case & bouton_valider_Fnq & bouton_annuler_Fnq dans Fenêtre_nouveau_quadrillage
Fais réagir Fenêtre_nouveau_quadrillage à "clic souris" pour Fermer_fenêtre_nouveau_quadrillage
Fais réagir bouton_annuler_Fnq à "clic souris" pour Fermer_fenêtre_nouveau_quadrillage
Fais réagir bouton_valider_Fnq à "clic souris" pour Générer_quadrillage

// Début du programme

Ajoute xtoile dans Fenêtre_principale
visible de Fenêtre_principale vaut "oui"
Ajoute menu1 dans Fenêtre_principale
Ajoute menu1s1 dans menu1
Ajoute menu2 dans Fenêtre_principale
Ajoute menu2s1 dans menu2
Fais réagir Fenêtre_principale à "clic souris" pour Fermer_fenêtre_principale
Fais réagir menu1s1 à "clic souris" pour Fenêtre_nouveau_quadrillage
Fais réagir menu2s1 à "clic souris" pour Désactiver_grille

Ajoute barre1 dans Fenêtre_principale
Ajoute bouton1 dans barre1
Fais réagir bouton1 à "clic souris" pour Désactiver_grille

Tant que 1 != 2, lis
Temporise
ferme

Fermer_fenêtre_principale :
*f :: formulaire
début
Efface toile
Termine

Fenêtre_nouveau_quadrillage :
début
visible de Fenêtre_nouveau_quadrillage vaut "oui"
Reviens

Fermer_fenêtre_nouveau_quadrillage :
début
visible de Fenêtre_nouveau_quadrillage vaut "non"
Reviens

Générer_quadrillage :
valeur1 & valeur2 & valeur3 & valeur4 :: texte
début
Essaie lis
valeur1 = texte de choix_case_largeur
Convertis valeur1 en nombre_case_largeur
valeur2 = texte de choix_case_hauteur
Convertis valeur2 en nombre_case_hauteur
valeur3 = texte de choix_taille_largeur_case
Convertis valeur3 en taille_largeur_case
valeur4 = texte de choix_taille_hauteur_case
Convertis valeur4 en taille_hauteur_case

// on calcule le nombre de cases à afficher en fonction des dimensions de la fenêtre de scrolling
nombre_case_largeur_effectif = entier (largeur de fond / taille_largeur_case)
nombre_case_hauteur_effectif = entier (hauteur de fond / taille_hauteur_case)
Si nombre_case_largeur_effectif >
nombre_case_largeur, nombre_case_largeur_effectif = nombre_case_largeur
Si nombre_case_hauteur_effectif >
nombre_case_hauteur, nombre_case_hauteur_effectif = nombre_case_hauteur
nombre_case = nombre_case_hauteur_effectif*nombre_case_largeur_effectif
nombre_case_total = nombre_case_hauteur*nombre_case_largeur
ferme

// on vérifie que les données des champs sont valides
Si nombre_case_total == 0, évoque popup.message("Le nombre et/ou la taille des cases ne sont pas valides.")
Sinon lis
visible de Fenêtre_nouveau_quadrillage vaut "non"
Parcours Création_quadrillage
ferme
Reviens

Création_quadrillage :
case :: rectangle, couleur vaut "blanc", hauteur vaut taille_hauteur_case, largeur vaut taille_largeur_case, position vaut 1, plein vaut "oui"
contour_case :: rectangle, couleur vaut "noir", hauteur vaut taille_hauteur_case, largeur vaut taille_largeur_case, position vaut 100, plein vaut "non"
xx :: nombre <
- (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy :: nombre <
- (hauteur de fond - (nombre_case_hauteur_effectif * taille_hauteur_case))/2
début
// ici on dessine des cases pleines
pour chaque nombre_case, lis
ajoute #case dans grille4
déplace grille4{joker} vers xx et yy
projette grille4{joker}

xx = xx + taille_largeur_case
si xx >
(largeur de bordure_gauche + (nombre_case_largeur_effectif * taille_largeur_case) + (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) - taille_largeur_case), lis
xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = yy + taille_hauteur_case
ferme
ferme

xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = (hauteur de fond - (nombre_case_hauteur_effectif * taille_hauteur_case))/2

// ici on dessine le contour des cases
pour chaque nombre_case, lis
ajoute #contour_case dans grille5
déplace grille5{joker} vers xx et yy
Projette grille5{joker}
xx = xx + taille_largeur_case
si xx >
(largeur de bordure_gauche + (nombre_case_largeur_effectif * taille_largeur_case) + (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) - taille_largeur_case), lis
xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = yy + taille_hauteur_case
ferme
ferme

Reviens

Désactiver_grille :
indice est un nombre
début
Mesure grille5 dans indice
Si indice != 0, lis
Si grille_off == faux, lis
grille_off = vrai
Pour chaque indice, efface grille5{joker}
ferme
Sinon lis
grille_off = faux
Pour chaque indice, projette grille5{joker}
ferme
ferme
Reviens

[/php]

Dans ce code, je créer un quadrillage.
Le menu "Activer/Désactiver la grille" sert à effacer le quadrillage de la toile.
Le bouton1 est un raccourci de ce menu et fait donc la même chose.
Bien que ce code fonctionne correctement, j'ai exactement la même chose dans le code de mon programme.
Or, dans ce dernier, seul le bouton1 fonctionne.
Le menu "Activer/Désactiver la grille" ne fonctionne pas.
Pourtant tous les autres menus, disposant également de raccourcis dans la barre d'outils de mon programme, fonctionnent correctement.

Et là encore, si je retire de mon programme la ligne de code suivante :

[php]
Ajoute xtoile dans Fenêtre_principale
[/php]

Le problème disparait !
Mon menu fonctionne de nouveau correctement !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Wam a écrit:

J'ai bien le problème de fuite mémoire.
Néanmoins, je ne relance mon livre que 3 fois, le ralentissement étant tout de même bien visible.
Car si je le relance une 4ème fois, l'atelier va planter et je ne pourrais alors pas relancer ton programme.

(Lors de l'exécution de mon livre, j'affiche du texte sur le tableau : sa ne nuit pas à l'exécution de l'audit ou de ton programme ?)


non, je n'ai pas encore trouvé la fuite... je cherche encore !

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Dans mon précédent post, j'ai évoqué un problème avec mon menu pour activer/désactiver l'affichage de mon quadrillage.

J'ai constaté qu'en supprimant tous les autres boutons de ma barre d'outils, le problème disparaissait.

Néanmoins, si j'ajoute des boutons dans l'exemple simple que j'ai fournit, le problème n'apparaît toujours pas...

Dans mon programme j'ai réussit à résoudre le problème en remplaçant ceci :

[php]
Ajoute menu1 dans Fenêtre_principale
Ajoute menu1s1 & menu1s2 dans menu1
Ajoute menu2 dans Fenêtre_principale
Ajoute menu2s1 & menu2s2 & menu2s3 & menu2s4 dans menu2
Ajoute menu3 dans Fenêtre_principale
Ajoute menu3s1 & menu3s2 & menu3s3 & menu3s4 dans menu3
[/php]

Par ceci :

[php]
Ajoute menu1 & menu2 & menu3 dans Fenêtre_principale
Ajoute menu1s1 & menu1s2 dans menu1
Ajoute menu2s1 & menu2s2 & menu2s3 & menu2s4 dans menu2
Ajoute menu3s1 & menu3s2 & menu3s3 & menu3s4 dans menu3
[/php]

Pourtant, de temps en temps, le menu bogue encore...

Il semble donc qu'il y ait un problème lors de l'initialisation des fenêtres...

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Pour l'instant, je n'arrive pas à reproduire le problème ou comprendre l'origine de ce comportement anormale. Je continue l'investigation...

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
J'ai encore un autre problème lié aux IHM dans mon programme.

Voici un exemple :

[php]
globale
// Fenêtre principale
Fenêtre_principale :: formulaire, titre vaut "Editeur de cartes", hauteur vaut 800, largeur vaut 1400
popup :: popup

// Toile
fond :: toile, x vaut 0, y vaut 35, hauteur vaut 740, largeur vaut 1400, couleur vaut "blanc", pointeur vaut "flèche"
xtoile :: xtoile, x vaut 0, y vaut 35
bordure_gauche :: rectangle, x vaut 0, y vaut 0, position vaut 1, hauteur vaut hauteur de fond, largeur vaut 150, plein vaut "oui", couleur vaut "blanc"

// Menus
menu1 :: menu, texte vaut "Carte"
menu1s1 :: sousmenu, texte vaut "Nouveau quadrillage"

// Fenêtre nouveau quadrillage
Fenêtre_nouveau_quadrillage :: formulaire, hauteur vaut 140, largeur vaut 300, titre vaut "Nouveau quadrillage", visible vaut "non", x vaut 450, y vaut 255
txt_Fnq1 :: étiquette, texte vaut "Nombre de cases en largeur :", x vaut 10, y vaut 12
txt_Fnq2 :: étiquette, texte vaut "Nombre de cases en hauteur :", x vaut 10, y vaut 32
txt_Fnq3 :: étiquette, texte vaut "Largeur des cases :", x vaut 10, y vaut 52
txt_Fnq4 :: étiquette, texte vaut "Hauteur des cases :", x vaut 10, y vaut 72
choix_case_largeur :: champ, x vaut 200, y vaut 10, taille vaut 3
choix_case_hauteur :: champ, x vaut 200, y vaut 30, taille vaut 3
choix_taille_largeur_case :: champ, x vaut 200, y vaut 50, taille vaut 3
choix_taille_hauteur_case :: champ, x vaut 200, y vaut 70, taille vaut 3
bouton_valider_Fnq :: bouton, texte vaut "Valider", x vaut 70, y vaut 110
bouton_annuler_Fnq :: bouton, texte vaut "Annuler", x vaut 160, y vaut 110

// Quadrillage
taille_largeur_case :: nombre
taille_hauteur_case :: nombre
nombre_case_largeur :: nombre
nombre_case_hauteur :: nombre
nombre_case_largeur_effectif :: nombre
nombre_case_hauteur_effectif :: nombre
nombre_case :: nombre
nombre_case_total :: nombre
copie_index_carte :: nombre

grille4 :: casier de rectangle
grille5 :: casier de rectangle

grille_off :: drapeau

Fenêtre_principale :
début
// Construction des fenêtres

Ajoute txt_Fnq1 & txt_Fnq2 & txt_Fnq3 & txt_Fnq4 & choix_case_largeur & choix_case_hauteur & choix_taille_largeur_case & choix_taille_hauteur_case & bouton_valider_Fnq & bouton_annuler_Fnq dans Fenêtre_nouveau_quadrillage
Fais réagir Fenêtre_nouveau_quadrillage à "clic souris" pour Fermer_fenêtre_nouveau_quadrillage
Fais réagir bouton_annuler_Fnq à "clic souris" pour Fermer_fenêtre_nouveau_quadrillage
Fais réagir bouton_valider_Fnq à "clic souris" pour Générer_quadrillage

// Début du programme

Ajoute xtoile dans Fenêtre_principale
visible de Fenêtre_principale vaut "oui"
Ajoute menu1 dans Fenêtre_principale
Ajoute menu1s1 dans menu1
Fais réagir Fenêtre_principale à "clic souris" pour Fermer_fenêtre_principale
Fais réagir menu1s1 à "clic souris" pour Fenêtre_nouveau_quadrillage

Tant que 1 != 2, lis
Temporise
ferme

Fermer_fenêtre_principale :
*f :: formulaire
début
Efface toile
Termine

Fenêtre_nouveau_quadrillage :
début
visible de Fenêtre_nouveau_quadrillage vaut "oui"
Reviens

Fermer_fenêtre_nouveau_quadrillage :
début
visible de Fenêtre_nouveau_quadrillage vaut "non"
Reviens

Générer_quadrillage :
valeur1 & valeur2 & valeur3 & valeur4 :: texte
début
Essaie lis
valeur1 = texte de choix_case_largeur
Convertis valeur1 en nombre_case_largeur
valeur2 = texte de choix_case_hauteur
Convertis valeur2 en nombre_case_hauteur
valeur3 = texte de choix_taille_largeur_case
Convertis valeur3 en taille_largeur_case
valeur4 = texte de choix_taille_hauteur_case
Convertis valeur4 en taille_hauteur_case

// on calcule le nombre de cases à afficher en fonction des dimensions de la fenêtre de scrolling
nombre_case_largeur_effectif = entier (largeur de fond / taille_largeur_case)
nombre_case_hauteur_effectif = entier (hauteur de fond / taille_hauteur_case)
Si nombre_case_largeur_effectif >
nombre_case_largeur, nombre_case_largeur_effectif = nombre_case_largeur
Si nombre_case_hauteur_effectif >
nombre_case_hauteur, nombre_case_hauteur_effectif = nombre_case_hauteur
nombre_case = nombre_case_hauteur_effectif*nombre_case_largeur_effectif
nombre_case_total = nombre_case_hauteur*nombre_case_largeur
ferme
Sinon lis
évoque popup.message("Le nombre et/ou la taille des cases ne sont pas valides.")
Reviens
ferme

Si nombre_case_total == 0, lis
évoque popup.message("Erreur : veuillez recommencer.")
ferme
Sinon lis
visible de Fenêtre_nouveau_quadrillage vaut "non"
Parcours Création_quadrillage
ferme
Reviens

Création_quadrillage :
case :: rectangle, couleur vaut "blanc", hauteur vaut taille_hauteur_case, largeur vaut taille_largeur_case, position vaut 1, plein vaut "oui"
contour_case :: rectangle, couleur vaut "noir", hauteur vaut taille_hauteur_case, largeur vaut taille_largeur_case, position vaut 100, plein vaut "non"
xx :: nombre <
- (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy :: nombre <
- (hauteur de fond - (nombre_case_hauteur_effectif * taille_hauteur_case))/2
début
// ici on dessine des cases pleines
pour chaque nombre_case, lis
ajoute #case dans grille4
déplace grille4{joker} vers xx et yy
projette grille4{joker}

xx = xx + taille_largeur_case
si xx >
(largeur de bordure_gauche + (nombre_case_largeur_effectif * taille_largeur_case) + (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) - taille_largeur_case), lis
xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = yy + taille_hauteur_case
ferme
ferme

xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = (hauteur de fond - (nombre_case_hauteur_effectif * taille_hauteur_case))/2

// ici on dessine le contour des cases
pour chaque nombre_case, lis
ajoute #contour_case dans grille5
déplace grille5{joker} vers xx et yy
Projette grille5{joker}
xx = xx + taille_largeur_case
si xx >
(largeur de bordure_gauche + (nombre_case_largeur_effectif * taille_largeur_case) + (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) - taille_largeur_case), lis
xx = (((largeur de fond - largeur de bordure_gauche) - (nombre_case_largeur_effectif * taille_largeur_case))/2) + largeur de bordure_gauche
yy = yy + taille_hauteur_case
ferme
ferme

Reviens
[/php]

Dans ma fonction Générer_quadrillage, j'essaie tout d'abord de récupérer et de convertir les valeurs de mes champs.
Si sa ne fonctionne pas, l'utilisateur ayant indiquer des lettres par exemple, j'affiche ce message d'erreur :
"Le nombre et/ou la taille des cases ne sont pas valides."

Mais j'ai dû ajouter un autre message d'erreur à mon code :
En effet, parfois les valeurs de mes deux premiers champs ne sont pas récupérées.
Du coup, nombre_case_total est à 0 et j'affiche l'erreur suivante :
"Erreur : veuillez recommencer."

Bien entendu, dans cet exemple simple, cette erreur ne se produit jamais.
En revanche, elle est très fréquente dans mon programme, comme pour le bogue de mon menu "Activer/Désactiver le quadrillage".

J'ai donc l'impression que plus on utilise d'éléments d'IHM dans son programme, et plus il y a de bogues...

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Je dois savoir pourquoi il plante et que tu es obligé d'afficher :

évoque popup.message("Le nombre et/ou la taille des cases ne sont pas valides.")

Pour cela, il faut que tu supprimer l'utilisation du verbe "essayer" dans la fonction "Générer_quadrillage" que tu utilises, soit le greffon Debug ou alors tu lances Linotte en ligne de commandes java -jar Linotte.jar.

Et me retourner les erreurs affichées.

Merci

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Une beta 5 est cours de construction et devrait arriver sur le site.
Elle corrige un bogue mais je doute que ça corrige tes problèmes.

Dur dur de corriger car je n'arrive pas à reproduire ton problème.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRE: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
Tu veux que je te donne mon code par mail ?
Ce sera sans doute plus simple.

descriptionProblème de sauvegarde : ralentissement de l'atelier - Page 2 EmptyRe: Problème de sauvegarde : ralentissement de l'atelier

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
power_settings_newSe connecter pour répondre