Fraid Posté(e) le 30 avril 2020 Posté(e) le 30 avril 2020 Bonjour, Je cherche à insérer un edit_box en cliquant sur un bouton (autant de fois que je veux). Je ne trouve pas d'exemple. Doit on réécrire le DCL, et le décharger puis le recharger sachant que l'on perd les éventuels choix déjà fait?Le lisp lui, peut s'adapter au nombre de d'edit_box présent dans le dcl. Ou existe t'il une solution moins sauvage...? https://github.com/Fraiddd
Luna Posté(e) le 30 avril 2020 Posté(e) le 30 avril 2020 Salut, La question est intéressante, malheureusement je doute que l'on puisse conserver la fenêtre de saisie ouverte en même temps que l'on ajoute des edit_box. Après tout, dans le fichier .lsp, on a dans l'ordre :1. Création d'un fichier .dcl2. Ouverture du fichier créé3. Edition du fichier .dcl4. Fermeture du fichier .dcl5. Chargement du fichier .dcl6. Définition des actions et paramètres par défaut de la bdl7. Ouverture de la bdl8. Récupération des donnés à traiter9. Suppression de la bdl de la mémoire10. Suppression du fichier .dcl Donc au final, une fois la bdl active et ouverte, elle est définie par le fichier .dcl chargé. Donc je ne vois pas comment réécrire le fichier .dcl, le charger de nouveau et ainsi modifier l'apparence de la bdl sans fermer la bdl initiale... Après on peut toujours faire comme tu proposes, c'est-à-dire que l'on ferme la boîte de dialogue en récupérant les données pré-rentrées, modification du fichier .dcl et rechargement de la bdl avec les données définies. Mais en terme de programmation ça me paraît quelque peu complexe (faisable mais avec de nombreuses conditions et vérifications + création de variables à nom variable). Bisous,Luna
Fraid Posté(e) le 30 avril 2020 Auteur Posté(e) le 30 avril 2020 Merci de te pencher sur mon problème, on arrive au même conclusions. ça va tourné à l'usine à gaz clignotante. Je vais plutôt prendre la direction des tuiles paragraph et concatenation. l'aide DCL https://github.com/Fraiddd
Luna Posté(e) le 30 avril 2020 Posté(e) le 30 avril 2020 Je m'étais déjà cassée le nez sur un problème similaire mais par manque de temps et de connaissances, je n'ai pas étudié la question de manière très poussée malheureusement. Donc heureuse de voir que je ne suis pas la seule à me poser ce genre de problème :3 Autrement, mais je ne connais pas du tout, peut être regarder du côté de ObjectDCL... Même si je doute que l'on puisse créer une boîte de dialogue dynamique. Pour moi ObjectDCL permet de faciliter l'écriture d'une boîte de dialogue en la rendant implicite (création d'une boîte de dialogue similaire à l'éditeur VBA sur Excel). Cependant, si je comprend bien, les paragraph{} ne permettent pas la saisie d'informations, uniquement des concaténation de textes en dur (donc différent d'une edit_box). Bisous,Luna
Fraid Posté(e) le 30 avril 2020 Auteur Posté(e) le 30 avril 2020 ObjectDCL Il me semble que c'est payant et que cela n'est pas si terrible que cela. les paragraph{} ne permettent pas la saisie d'informations, uniquement des concaténation de textes en dur (donc différent d'une edit_box) Je compte tester d’insérer autre chose dans concatenation, ... demain matin. Mais c'est une fausse route. Je vais plutôt revoir mon algo. , en 2 dcl par exemple :blink: https://github.com/Fraiddd
Luna Posté(e) le 30 avril 2020 Posté(e) le 30 avril 2020 pour l'écriture d'un nombre n d'edit_box, je pense que l'on peut utiliser (apply 'strcat) sur une liste d'edit_box du genre : (repeat n (setq lst (cons (strcat ":edit_box{label=" msg ";key=eb" (itoa (setq n (1- n))) ";}") lst)) ) (...) (write-line ... (apply 'strcat lst) ...) (...) tu combines ça avec un action_tile pour le bouton d'ajout qui ferme la bdl, save les valeurs existantes (check de la valeur actuelle de n pour déterminer la liste des key existantes et sauver tout le monde dans une liste), rouvrir le fichier et réécrire par dessus en incrémentant la valeur de n de 1, puis charger de nouveau le fichier et rouvrir la bdl en restaurant les valeurs sauvegardées... ça me semble jouable mais à voir si du point de vue de l'utilisation, c'est pas une perte de temps monstre avec le chargement/déchargement de la fenêtre... Peut-être qu'une simple edit_box pour entrer directement le nombre d'edit_box souhaitée serait plus simple... (pour éviter d'appuyer 15 fois sur le bouton ^^") Bisous,Luna
(gile) Posté(e) le 30 avril 2020 Posté(e) le 30 avril 2020 Salut, Je ne vais pas enfoncer une porte ouverte en disant que le langage DCL est (très) limité. Mais, il me semble que, quelque soit la technique utilisée (ObjectDCL, OpenDCL, Windows Forms, WPF, ...), une fois l'interface affichée, on ne peut pas ajouter ou supprimer de composants.Par contre avec Windows Forms, WPF et probablement Object/OpenDCL on peut modifier l'apparence de la boite de dialogue : afficher ou masquer des composants, modifier sa taille, etc. PS: contrairement à ObjectDCL, OpenDCL est gratuit. Les deux projets sont issus du même projet (l'ancien ObjectDCL) et on évolué chacun de leur côté depuis. D'après ce dont je me souvient de l'époque où je les avais un peu utilisé, il s'agit plus que d'une simple facilité pour créer des boites de dialogue par glisser/déposer (ce qui reste vrai) mais les deux offrent la possibilité de de faire des interfaces utilisateur plus riche et pas uniquement modales comme des palettes.Si Tramber passe par là, il pourra confirmer ou infirmer. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Fraid Posté(e) le 1 mai 2020 Auteur Posté(e) le 1 mai 2020 Merci Gile, pour l'info Je vais tester OpenDCL. Je reste persuadé que si j'ai besoin de modifier une boite de dialogue, c'est que mon programme est mal conçu. Je vais quand même fouiller, ça passe le temps... https://github.com/Fraiddd
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant