|
| Module Bloc-Notes | |
| | |
Auteur | Message |
---|
Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Dim 14 Nov 2021 - 11:50 | |
| Salut Kitai ! Je rencontre un petit problème avec ton module, qui par ailleurs est très pratique !! Je crée un BlocNotes avec la couleur du texte blanche et le fond transparent. Quand je sélectionne du texte dans ce bloc notes, la sélection est un rectangle noir, et le texte dedans reste blanc. Mais lorsque je relâche le bouton de la souris (donc quand je finis de sélectionner), le rectangle de sélection noir masque totalement le texte sélectionné. Ou alors, le texte sélectionné devient noir ? Bizarre... Par ailleurs, après sélection du texte, si je réécris (ce qui efface la sélection et la remplace par le texte nouveau), le texte du bloc notes devient noir. Mais si je clique sur le bloc notes, le texte redevient blanc ! (et en fait, pas vraiment blanc : une sorte de blanc/gris). C'est pas un énorme problème, mais j'imagine que c'est un petit souci dans ton code majestueux Une idée ? EDIT : Je me rends compte que le truc du rectangle de sélection qui masque tout le texte, c'est si la souris, toujours en train de sélectionner du texte (donc bouton toujours enfoncé) sort du Bloc Notes. Sinon le texte est bien de la bonne couleur dans la sélection. Et après être sorti du bloc notes, la sélection est donc toute noire (on voit plus le texte), et si alors on réécrit, le nouveau texte devient noir ! Jusqu'à ce qu'on clique sur le bloc notes, ce qui rétablit la couleur voulue. |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Module Bloc-Notes Lun 15 Nov 2021 - 17:57 | |
| J'ai plus trop moyen de lancer AGS ces jours-ci, mais si je regarde le code (version 2.0 bêta) je vois que y'a un repeatedly_execute en bas du script, et que y'a une condition sur IsButtonDown, c'est de ce côté là qu'il faudrait regarder. J'ai survolé rapidement et rien vu d'évident qui pourrait expliquer le problème que tu décris, il faudrait tester et déboguer par itérations, si t'es motivé |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Dim 21 Nov 2021 - 11:19 | |
| Salut Kitai ! J'ai un peu regardé, mais c'est très dur de comprendre ce qu'il se passe dans ton code. Je ne maîtrise pas encore assez AGS et certaines formulations de ton code me sont assez étrangères (mais m'intéressent car je ne savais pas qu'on pouvait formuler du code comme cela !). J'ai aussi eu un petit "souci" où je sélectionnais un texte, puis cliquait sur un autre "bloc notes" et la sélection du texte (rectangle noir) restait sur l'autre bloc notes. ça aurait été cool que lorsqu'on sélectionne un autre bloc-notes (ou qu'on déselctionne tous les bloc notes, genre en cliquant dans le "vide") cela annule les sélections dans les bloc notes. J'ai aussi eu des soucis bizarres où en faisant apparaître/disparaître certains bloc notes, leur texte changeait de couleur (couleur voulue blanche, mais lorsque je faisait BlocNotes.Activebutton=null et ben certains blocnotes sur lesquels j'avais pu cliquer auparavant avaient leur texte en noir... ?). Aucune idée d'où ça peut venir ! Si à l'occasion tu arrives à fouiller ton module, tiens-moi au jus En tous les cas merci pour ton travail et ton partage ! |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Mer 19 Jan 2022 - 20:27 | |
| Salut Kitai ! Je sais pas si tu as le temps de te plonger dans AGS ces tyemps-ci, mais j'ai toujours pas trouvé le problème dans ton module (cf messages ci-dessus). Aussi j'ai remarqué que le module a une tendance à changer la couleur des textes des blocnotes de manière un peu spéciale. J'ai mis tous mes bloc notes en blanc, mais une fois qu'on les a utilisés une fois, ça passe en noir. Parfois ça revient en blanc, bon c'est un peu spécial quoi Aussi, j'ai l'impression que le blanc n'est pas le même. Il semble être un blanc un peu grisé, une fois qu'on a cliqué pour la première fois sur un bloc note. Si jamais t'as des idées... ! |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Module Bloc-Notes Mer 19 Jan 2022 - 23:15 | |
| Pour être honnête je pense pas m'y replonger tout de suite, étant donné que j'arrive plus à faire tourner l'éditeur d'AGS sous ubuntu. Et malheureusement, comme ça, je vois pas où est la cause des problèmes que tu décris dans mon code
Si quelqu'un d'autre a la patience de déboguer mon code... _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Ven 29 Avr 2022 - 14:07 | |
| Salut Kitai ! à tout hasard, tu peux désormais te replonger dans AGS ? J'ai toujours des soucis avec le module (texte qui change de couleur de manière intempestive, mais aussi le rectangle de sélection qui disparaît pas toujours). J'essaye de corriger, mais j'avoue que j'y comprends pas grand chose, j'y vais en apprenti sorcier |
| | | Kitai Délégué de la tasse bleue
Nombre de messages : 2907
Date d'inscription : 01/08/2006
| Sujet: Re: Module Bloc-Notes Ven 29 Avr 2022 - 20:13 | |
| Pour être encore plus honnête, je suis pas sûr de m'y replonger un jour. Ça demanderait d'y consacrer un certain temps que je suis pas prêt à dégager, désolé
Mais si t'as des pistes et des questions spécifiques hésite pas à les poser, et j'y répondrai si je peux _________________ Ga is Ga Vous pouvez consulter l' aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit ! |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Sam 25 Juin 2022 - 10:06 | |
| Trop dommage Mais je comprends J'essaye de corriger du coup ce problème. Je n'arrive pas à comprendre l'endroit du script qui gère la "sélection" du texte (l'apparition du cadre de sélection lorsqu'on maintient le bouton de la souris). Tu aurais un coup de pouce à me donner là-dessus ? Voici le code du "repeatedly execute" : - Code:
-
function repeatedly_execute() { // Gestion du clignotement du curseur (tous les 20 cycles) if ((Bouton != null) && (!(a % 20))) { if (affcur) { DrawingSurface* surf = Bloc.GetDrawingSurface(); surf.DrawSurface(surf_buffer); surf.DrawingColor = Bouton.TextColor; surf.DrawLine(x_curs-Decal_x, y_curs-Decal_y, x_curs-Decal_x, y_curs+Font_Height-Decal_y); surf.Release(); Bouton.NormalGraphic = Bloc.Graphic; } else { DrawingSurface* surf = Bloc.GetDrawingSurface(); surf.DrawSurface(surf_buffer); surf.Release(); Bouton.NormalGraphic = Bloc.Graphic; } affcur = true - affcur; a = 1; // Retour à 1 } else if (Bouton != null) a++; // On récupère le contrôle survolé GUIControl* control = GUIControl.GetAtScreenXY(mouse.x, mouse.y); // Et on regarde si c'est un bloc bool survolebloc = (control!=null)&&(control.AsButton!=null)&&(control.AsButton.InArray(buttons,buttons_size)>-1);
// Si l'utilisateur a spécifié un curseur particulier if (MODE_CURSEUR > 0) { if (survolebloc) mouse.UseModeGraphic(MODE_CURSEUR); else mouse.UseDefaultGraphic(); } // Si besoin, on redimensionne le bloc à la bonne taille if ((Bouton != null) && ((Bloc.Width != Bouton.Width) || (Bloc.Height != Bouton.Height))) { Bloc.Resize(Bouton.Width, Bouton.Height); DrawingSurface* surf = Bloc.GetDrawingSurface(); surf.RemplitCadre(BlocTexte, Bouton.Font); surf.Ecrit(curs, Bouton.Font); Bouton.NormalGraphic = Bloc.Graphic; }
// Gestion des clics // Si on ne clique sur rien if (!Mouse.IsButtonDown(eMouseLeft)) { // Si CLIQUE ne valait pas NULL, on relance le clignotement if (Clique != null) { a = 0; affcur = true; } Clique = null; // CLIQUE vaut NULL CliqueHorsBloc = false; // On n'a pas cliqué hors d'un bloc } // Sinon, si on clique effectivement else { // Si on ne maintient pas un clic sur un bloc if ((Clique == null) || (Clique != Bouton)) { // Si on maintient un clic hors bloc ou si on ne survole aucun bloc if ((!survolebloc) || CliqueHorsBloc) { // On enlève l'éventuel focus if (Bouton != null) BlocNotes.set_ActiveButton(null); // On dit qu'on a cliqué hors d'un bloc CliqueHorsBloc = true; // Et on s'en va return; } // Si on clique sur un nouveau bloc : on convertit else if (survolebloc && control.AsButton != Bouton) BlocNotes.Convert(control.AsButton); } CursorDeterminesOffset = true; // On dit qu'on a cliqué sur un bloc CliqueHorsBloc = false; // On calcule la position X relative de la souris et le # de ligne où elle se trouve x_curs = mouse.x-(Bouton.OwningGUI.X+Bouton.X)+Decal_x; y_curs = (mouse.y-(Bouton.OwningGUI.Y+Bouton.Y)+Decal_y); // Puis on cherche le caractère le plus proche de cette position curs = CaractereProx(y_curs); // Si on ne maintient pas le clic : sel = curs if ((Clique == null) || (Clique.AsButton != Bouton)) sel = curs; // On affiche le cadre DrawingSurface* surf = Bloc.GetDrawingSurface(); surf.Ecrit(curs, Bouton.Font); Bouton.NormalGraphic = Bloc.Graphic; if (Clique != Bouton) Clique = control; // CLIQUE vaut le contrôle si on a changé de contrôle } }
|
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Sam 25 Juin 2022 - 13:36 | |
| Ah, Kitai tu vas être fier de moi J'ai réussi à corriger quelques petits bugs ! J'ai déjà corrigé un crash qui arrivait si on sélectionnait du texte et qu'on faisait passer la souris au-dessus de la zone de saisie. J'ai rajouté une ligne au début de la fonction suivante : - Code:
-
function CaractereProx(int y) { int li = y/Font_Height; if (li >= LineCount) li = LineCount-1; ///////// J'ai rajouté ceci if (li < 0) li=0; ///////// int c = 0; String ligne = Cadre[li], tmp = ligne.Substring(0, c);
//etc... J'ai corrigé le bug qui faisait que si on sélectionnait un texte dans la zone de saisie, puis qu'on cliquait sur un autre Bloc Notes, le rectangle de sélection restait dans la première zone de saisie (ce qui fait qu'on a plusieurs rectangles de sélection à l'écran). J'ai rajouté deux lignes dans le repeatedly execute, là où tu gères les clics : - Code:
-
// Gestion des clics // Si on ne clique sur rien if (!Mouse.IsButtonDown(eMouseLeft)) { // Si CLIQUE ne valait pas NULL, on relance le clignotement if (Clique != null) { a = 0; affcur = true; } Clique = null; // CLIQUE vaut NULL CliqueHorsBloc = false; // On n'a pas cliqué hors d'un bloc } // Sinon, si on clique effectivement else { // Si on ne maintient pas un clic sur un bloc if ((Clique == null) || (Clique != Bouton)) { // Si on maintient un clic hors bloc ou si on ne survole aucun bloc if ((!survolebloc) || CliqueHorsBloc) { // On enlève l'éventuel focus if (Bouton != null) BlocNotes.set_ActiveButton(null); // On dit qu'on a cliqué hors d'un bloc CliqueHorsBloc = true; // Et on s'en va return; } // Si on clique sur un nouveau bloc : on convertit else if (survolebloc && control.AsButton != Bouton) { /////// CES DEUX-là sel=0; curs=0; //////// ça permet d'annuler la sélection lorsqu'on rappelle la fonction "Ecrit" BlocNotes.Convert(control.AsButton); } } CursorDeterminesOffset = true;
// etc... Le problème des textes qui changeaient de couleur, c'est de mon côté, ça vient pas de ton module Là j'ai juste un problème, le curseur apparaît mais ne clignote pas (pourtant, le décompte de la variable a fonctionne comme il faut). Du coup, je sais pas trop ce qu'il se passe...
Dernière édition par Kitai le Mar 28 Juin 2022 - 13:28, édité 1 fois (Raison : ajout d'espaces pour pas perturber le colorisateur synaxique) |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Sam 5 Aoû 2023 - 10:33 | |
| Coucou ! Je suis repassé par ici, et j'ai retravaillé un peu sur AGS. J'ai corrigé un petit truc dans ce module : sélectionner du texte et appuyer sur Ctrl, Alt ou Shift déselectionnait le texte. Ce qui est un problème, car quand on veut remplacer la sélection par une lettre majuscule (shift + lettre), ben on appuie d'abord sur shift, ce qui déselectionne, puis on appuie sur la lettre, ce qui ajoute la lettre au niveau du curseur, mais on a pas supprimé le texte sélectionné. Là j'ai corrigé de sorte que Ctrl, Shift ou Alt (gauche ou droite) appuyés tout seul ne font rien. Par contre, pas encore réussi à rétablir le clignotement du curseur, ça marche quand on sélectionne du texte, mais sinon, ça marche pas... Si jamais Kitai repasse par là...? |
| | | Baguettator Cliqueur Amateur
Nombre de messages : 232
Date d'inscription : 21/05/2020
| Sujet: Re: Module Bloc-Notes Lun 1 Avr 2024 - 20:38 | |
| Bonjour par ici ! Le forum semble peu actif, mais je me devais de repasser ! J'ai à nouveau affiné le module de Kitai, et je l'ai amélioré à nouveau ! Auparavant, il n'affichait pas les caractères des touches numérotées du haut du clavier ([|èçéà etc...) et ne permettait pas certaines combinaisons de touches. Aujourd'hui AGS a de nouvelles fonctions, de sorte que c'est compatible avec n'importe quel clavier, n'importe quel language. Donc tant que le clavier envoie un caractère, AGS le comprend. Désormais, tout est possible ! Il me reste encore le problème du clignotement du curseur, dernier bug... Mais rien de grave ! je me demandais, si ce module intéresse, est-ce autorisé de le partager (avec crédit bien sûr !). La communauté anglophone étant encore très active, peut-être que ça peut intéresser quelqu'un là-bas ?Je ne le ferais qu'avec authorisation bien sûr Encore merci Kitai pour ce module ! |
| | | Contenu sponsorisé
| Sujet: Re: Module Bloc-Notes | |
| |
| | | | Module Bloc-Notes | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |