Aller au contenu

DCL: Ajouter une tuile avec un bouton


Fraid

Messages recommandés

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...?

Lien vers le commentaire
Partager sur d’autres sites

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 .dcl

2. Ouverture du fichier créé

3. Edition du fichier .dcl

4. Fermeture du fichier .dcl

5. Chargement du fichier .dcl

6. Définition des actions et paramètres par défaut de la bdl

7. Ouverture de la bdl

8. Récupération des donnés à traiter

9. Suppression de la bdl de la mémoire

10. 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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité