Aller au contenu

\"MsgBox Input\" en lisp


DenisHen

Messages recommandés

Bonsoir à tous,

 

Je cherche à faire en Lisp une fenêtre se saisi de texte du même style que le MsgBox dans VBA...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Piqué à Patrick_35 :

 

;;; MsgBox Ouvre une boite de dialogue pour récupérer la réponse à une question
;;;
;;; Val Button
;;; 0   OK
;;; 1   OK Annuler
;;; 2   Abandonner Recommencer Ignorer
;;; 3   Oui Non Annuler
;;; 4   Oui Non
;;; 5   Recommencer Annuler
;;; 16  Alerte critque
;;; 32  Question
;;; 48  Exclamation
;;; 64  Information
;;;
;;; Val Réponse
;;; 1   OK
;;; 2   Annuler
;;; 3   Abandonner
;;; 4   Recommencer
;;; 5   Ignorer
;;; 6   Oui
;;; 7   Non

(defun MsgBox (Titre Boutons Message Time / Reponse WshShell)
 (setq WshShell (vlax-create-object "WScript.Shell"))
 (setq	Reponse	(vlax-invoke
	  WshShell
	  'Popup
	  Message
	  Time
	  Titre
	  (itoa Boutons)
	)
 )
 (vlax-release-object WshShell)
 Reponse
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Le msgbox et le inputbox séparé ou en un seul ?

Et comme j'allais proposé ce type de routine et que l'opportunité est offerte, tu trouveras un peu plus que demandé

 

@+

 

(defun MsgBox (Titre Bouttons Message / Reponse WshShell)
; Valeur de Bouttons
;     0	= vbOKOnly		Affiche le bouton OK uniquement.
;     1	= vbOKCancel		Affiche les boutons OK et Annuler.
;     2	= vbAbortRetryIgnore	Affiche le bouton Abandonner, Réessayer et Ignorer.
;     3	= vbYesNoCancel		Affiche les boutons Oui, Non et Annuler.
;     4	= vbYesNo		Affiche les boutons Oui et Non.
;     5	= vbRetryCancel		Affiche les boutons Réessayer et Annuler. 
;    16	= vbCritical		Affiche l'icône Message critique. 
;    32	= vbQuestion		Affiche l'icône Requête d'avertissement.
;    48	= vbExclamation		Affiche l'icône Message d'avertissement.
;    64	= vbInformation		Affiche l'icône Message d'information.
;     0	= vbDefaultButton1	Le premier bouton est le bouton par défaut.
;   256	= vbDefaultButton2	Le deuxième bouton est le bouton par défaut.
;   512	= vbDefaultButton3	Le troisième bouton est le bouton par défaut.
;   768	= vbDefaultButton4	Le quatrième bouton est le bouton par défaut.
;     0 = vbApplicationModal	Boîte de dialogue modale. L'utilisateur doit répondre au message affiché dans la zone de message avant de pouvoir continuer de travailler dans l'application en cours.
;  4096	= vbSystemModal		Modal système. Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde au message affiché dans la zone de message.

; Valeur renvoyé
;     1	= vbOK		OK
;     2	= vbCancel	Annuler
;     3	= vbAbort	Abandonner
;     4	= vbRetry	Réessayer
;     5	= vbIgnore	Ignorer
;     6	= vbYes		Oui
;     7	= vbNo		Non

 (setq WshShell (vlax-create-object "WScript.Shell"))
 (setq Reponse (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons)))
 (vlax-release-object WshShell)
 Reponse
)

 

(defun InputBox (Titre Message Defaut / *acad* users1 valeur)
 (setq *acad* (vlax-get-acad-object) users1 (getvar "users1"))
 (acad-push-dbmod)
 (vla-eval *acad* (strcat "ThisDrawing.SetVariable \"USERS1\"," "InputBox (\"" Message "\", \"" Titre "\", \"" Defaut "\")"))
 (setq valeur (getvar "users1"))
 (setvar "users1" users1)
 (acad-pop-dbmod)
 valeur
)

 

(defun FileBox(/ cdl f)
;OFN_READONLY		&H1		      1	La case 'Lecture seule' est cochée à la création de la fenêtre.
;OFN_OVERWRITEPROMPT	&H2		      2	Afficher un message de confirmation d'écrasement de fichier si celui-ci existe déjà.
;OFN_HIDEREADONLY	&H4		      4	Case à cocher 'Lecture seule' invisible.
;OFN_NOCHANGEDIR	&H8		      8	Conserve le répertoire d'origine à la fermeture de la fenêtre.
;OFN_SHOWHELP		&H10		     16	Afficher le bouton 'Aide' dans la boîte de dialogue.
;OFN_NOVALIDATE		&H100		    256	Ne vérifie pas la validité de la saisie (validité du nom de fichier).
;OFN_ALLOWMULTISELECT	&H200		    512	Autoriser la sélection multiple de fichiers.
;OFN_EXTENSIONDIFFERENT	&H400		   1024	Indique que l'utilisateur a choisi une extension différente de celle par défaut.
;OFN_PATHMUSTEXIST	&H800		   2048	Les chemins et fichiers saisis doivent exister.
;OFN_FILEMUSTEXIST	&H1000		   4096	Seuls des fichiers existants peuvent être saisis.
;OFN_CREATEPROMPT	&H2000		   8192	Afficher une fenêtre de confirmation de création de fichier.
;OFN_SHAREAWARE		&H4000		  16384	Ignorer les erreurs de partage réseau.
;OFN_NOREADONLYRETURN	&H8000 		  32768	Ne sélectionne pas la case à cocher 'Lecture seule'.
;OFN_NOTESTFILECREATE	&H10000		  65536	Le fichier ne sera pas créé avant la fermeture de la fenêtre.
;OFN_NONETWORKBUTTON	&H20000		 131072	Cache (désactive) le bouton 'Réseau'.
;OFN_NOLONGNAMES	&H40000		 262144	Utilise les noms courts de fichier (sans effet dans le cas des fenêtres du type 'Explorer').

;OFN_EXPLORER		&H80000		 524288	Donne un style 'Explorer' à la boîte de dialogue (par défaut).
; Qui ne fonctionne apparement pas sous XP

;OFN_LONGNAMES		&H200000	2097152 Gestion des noms longs pour les boîtes de dialogue n'ayant pas le style 'Explorer'.
;OFN_NODEREFERENCELINKS	&H100000	1048576	La boîte de dialogue prendra le nom et le chemin du raccourci sélectionné.

 (setq cdl (vlax-create-object "userAccounts.CommonDialog"))
 (vlax-put-property cdl 'filter (vlax-make-variant "Fichiers dessins (*.dwg)| *.dwg |Fichiers DXF (*.dxf) |Tous les fichiers (*.*)|*.*"))
 (vlax-put-property cdl 'filterindex 1)
 (vlax-put-property cdl 'flags (+ 4 8 512 2048 4096 131072 2097152))
 (vlax-put-property cdl 'initialdir (getvar "dwgprefix"))
 (if (eq (vlax-invoke cdl 'showopen) -1)
   (setq f (vlax-get-property cdl 'filename))
   (setq f nil)
 )
 (vlax-release-object she)
 f
)

 

(defun DirBox(Message Chemin Drapeau / rep sh)
; Valeur du Drapeau
;     0	= Valeur par défaut
;     1	= BIF_RETURNONLYFSDIRS		= Seulement les fichiers système
;     2	= BIF_DONTGOBELOWDOMAIN		= Interdit d'explorer en dehors du domaine
;     4	= BIF_STATUSTEXT		= Inclure un secteur de statut. La fonction de rappel de service peut placer le texte de statut en envoyant des messages à la zone de dialogue. Ce drapeau n'est pas soutenu quand BIF_NEWDIALOGSTYLE est indiqué.
;     8	= BIF_RETURNFSANCESTORS		= Seulement les sous Dossiers
;    16	= BIF_EDITBOX			= Inclure une commande d'édition dans la zone de dialogue
;    32	= BIF_VALIDATE			= Verifie si l'utilisateur dactylographie un nom inadmissible dans la boîte d'édition
;   512	= BIF_NONEWFOLDERBUTTON		= Ne pas inclure le bouton Créer un nouveau dossier
;  4096	= BIF_BROWSEFORCOMPUTER		= Autorise à parcourir le réseau
;  8192	= BIF_BROWSEFORPRINTER		= Seulement le choix d'une imprimante
; 16384	= BIF_BROWSEINCLUDEFILES	= Montre tout
; 	= BIF_BROWSEINCLUDEURLS		= Montrer les raccourcis, Les drapeaux BIF_USENEWUI et de BIF_BROWSEINCLUDEFILES doivent également être placés
;	= BIF_NEWDIALOGSTYLE		= Employer la nouvelle interface utilisateur
;	= BIF_NOTRANSLATETARGETS	= Quand l'article choisi est un raccourci, renvoyer le PIDL du raccourci lui-même plutôt que sa cible.
;	= BIF_SHAREABLE			= Peut montrer les ressources en commun sur les systèmes à distance. Le drapeau de BIF_NEWDIALOGSTYLE doit également être placé.
;	= BIF_UAHINT			= Une fois combiné avec BIF_NEWDIALOGSTYLE, ajoute un conseil d'utilisation à la zone de dialogue au lieu de la boîte d'édition. BIF_EDITBOX dépasse ce drapeau.
;	= BIF_USENEWUI			= Employer la nouvelle interface utilisateur, y compris une boîte d'édition

 (setq sh (vlax-create-object "Shell.Application"))
 (if (setq rep (vlax-invoke sh 'browseforfolder 0 Message Drapeau Chemin))
   (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
   (setq rep nil)
 )
 (vlax-release-object sh)
 rep
)

 

Lucky est de retour ;)

 

ps : et avec ça, si vous ne passez pas pour des pros :cool:

 

[Edité le 27/10/2006 par Patrick_35]

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Une fois de plus, mon sauveur, (gile)...

 

Au fait, je vais poser cette question souvent dans les prochains jours. J'ai un site web et donc, je souhaite aider ceux qui m'ont aidé... As-tu un site ou autre truc dans ce genre (à part "le Monde")... Voir même, puis-je citer "(gile)" dans mon site (sans jamais en dire du mal, bien entendu) pour expliquer ce que je fais et ce dont je parle...

 

Mais tu peut y faire un tour... Il n'est pas à jour... J'attend une réponse de quelqu'un pour "poster" une de ses routines...

 

Mais mon site ce veux "utile" et "rapide", pas d'images de 12Mo avec des animations Coperfieldiennes... Du texte... Des liens... C'est tout... Non, et une pub, mais je ne sais pas encore...

 

Je vais peut-être mettre une pub de google pour rentabiliser le truc... Mais pas plus... Un peut comme notre chère webmaster... Qui ne nous polu jamais avec ça...( Merci M. Patrick ;) )

 

Et en plus, il ne le fait que légèrement et seulement aux "non membres"... Et ça, je trouve ça super intègre et très...honête...

 

J'aime vraiment beaucoup ce site...Vive CadXP ! !

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Waaa ou ou ou w w w w ww wwwww ! ! !

E nmême pas 10 minutes... 3 réponses ! ! !

 

Bon, en fait, 2 réponses...

 

Et avec juste ces deux là, j'ai de quoi bosser pendant des heures et des heures...

 

Encore une fois.... Et encore et encore....

 

MERCI ! ! !

 

C'est une joie d'^tre épaulé de la sorte...

 

Patrick_35... Mon dernire poste est aussi pour toi...

 

Merci encore,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Tu peux faire un lien vers cette page

 

Excellente idée ! ! ! En plus, j'ai TOUT télécharger...

 

Merci...

 

Je là pose dans mon site, même si le bandeau "CadXP" est déjà dessus... ;)

 

Merci...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Sais-tu comment utiliser le code

[ url ] Texte ? Adresse.com [/ url ] ? ?

 

Car je ne fais que [ url ] Adresse [ /url ]

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

 

(acet-ui-message "The body text" "Header" 64 )

Base types
0 = Acet:OK
1 = Acet:OKCANCEL
2 = Acet:ABORTRETRYIGNORE
3 = Acet:YESNOCANCEL
4 = Acet:YESNO
5 = Acet:RETRYCANCEL

Icons
16 = Acet:ICONSTOP
32 = Acet:ICONQUESTION
48 = Acet:ICONWARNING
64 = Acet:ICONINFORMATION

Default buttons
0 = Acet:DEFBUTTON1
256 = Acet:DEFBUTTON2
512 = Acet:DEFBUTTON3
768 = Acet:DEFBUTTON4

Return Values
1 = Acet:IDOK
2 = Acet:IDCANCEL
3 = Acet:IDABORT
4 = Acet:IDRETRY
5 = Acet:IDIGNORE
6 = Acet:IDYES
7 = Acet:IDNO
8 = Acet:IDCLOSE
9 = Acet:IDHELP

Evgeniy

Lien vers le commentaire
Partager sur d’autres sites

Sais-tu comment utiliser le code

[ url ] Texte ? Adresse.com [/ url ] ? ?

 

C'est expliqué dans Menu principal > Support > CADxp, le site > rubrique bbcode.

À savoir ici.

 

Sinon, si tu utilises Firefox, tu trouveras un applicatif bien pratique ici, il s'agit d'un menu contextuel accessible avec un clic droit qui permet d'utiliser aisément la plupart des bbcodes, y compris "URL avec un nom" quand l'adresse est dans le presse papier.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é