Sirocooo
Messages postés412Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention 7 avril 2008
-
21 mai 2003 à 17:25
cs_michel67650
Messages postés3Date d'inscriptionsamedi 16 janvier 2010StatutMembreDernière intervention17 octobre 2012
-
27 août 2011 à 17:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_michel67650
Messages postés3Date d'inscriptionsamedi 16 janvier 2010StatutMembreDernière intervention17 octobre 2012 27 août 2011 à 17:48
Bonjour,
J'aimerai modifier le contenu d'un msgbox suivant la langue choisie.
Dans le projet executable, le message est ----> MsgBox "Pas de base de données", vbCritical, "Francais"
Si la langue est en Anglais, j'aimerai avoir le message suivant ---> MsgBox "No database", vbCritical, "French"
et tout ceci en passant par un fichier.
Les objects dans le mode Controls sont déjà modifier suivant la langue choisie.
Merci d'avance à Vous
Michel
Email : johanmichel_147@hotmail.fr
cs_kitkit
Messages postés3Date d'inscriptionvendredi 17 novembre 2000StatutMembreDernière intervention22 juin 2005 22 juin 2005 à 00:31
Je vois que ca lair pationnant mais moi je cherche quelque chose pour enregistrer mes conversations msn jai trouver quelque chose mais cest tres facile cest deja sur msn en tout cas si vous trouver quelque chose de mieux un programme ou quelque chose du genre qui peu pas ce voir que par moi allez viens me dire comment stp
bye bye
merci beaucoup
kitkit
jasoso_14@hotmail.com
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 9 sept. 2004 à 17:32
=> Philippe734
dim window as form
set window = new form1
window.show true 'fenêtre modale
il faut cacher la fenetre modale pour continuer à utiliser le reste du programme
Philippe734
Messages postés308Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 juin 20151 9 sept. 2004 à 17:18
ce qui m'interesse, c'est de mettre une form en focus constant, au premier plan. qd une msbox s'ouvre, on ne peut pas cliquer sur une autre fenetre du meme prog, et ca fait beep. et c'est ce que je cherche à faire pour une form, bloquer le focus sur elle, et faire beep qd l'utilisateur clique sur une autre fenetre en arriere plan (du meme prog).
si vous avez pas compris, faite apparaitre la boite de dialogue a propos de votre navigateur internet, et essayé de cliquer ailleur ds la fenetre mère, vous ne pourrez pas et ca fera beep. la boite à propos n'est pas une message box et à le meme comportement et c'est ce que je cherche à faire.
comment faire ?
luko007
Messages postés31Date d'inscriptionmercredi 20 novembre 2002StatutMembreDernière intervention 9 septembre 2003 4 févr. 2004 à 13:41
Drgn13 a une idee judicieuse car ainsi on peut recreer une fonction qui s'utilise de manière analogue au msgbox de VB.
J'irais meme plus loin car l'API MessageBoxIndirect permet de reproduire quasi-complètement le comportement de msgbox.
> Voici la fonction que j'ai faite avec :
NB: j'ai pas tout testé mais ca doit marcher en gros (à part qq trucs exotiques). On pourrait aller plus loin encore en exploitant les autres membres de MSGBOXPARAMS (props etendues).
Public Function MsgBoxEx(Prompt, Optional Buttons As VbMsgBoxStyle = vbOKOnly, Optional Title, Optional HelpFile, Optional Context, Optional hWnd, Optional BeepType As Integer) As VbMsgBoxResult
Dim tAttr As MSGBOXPARAMS
If BeepType = -1 Then
MessageBeep Buttons
ElseIf BeepType Then
MessageBeep BeepType
End If
'If IsMissing(hWnd) Then hWnd=Me.hwnd
With tAttr
.cbSize = Len(tAttr)
.hwndOwner = CLng(hWnd) ' ou Me.hwnd
'------------------------- prop classiques
.lpszCaption = Title
.lpszText = Prompt
If Not IsMissing(Context) Then .dwContextHelpId = CLng(Context)
.dwStyle = Buttons
'------------------------- prop étendues
.dwLanguageId = (&HC * 1024) Or &H1 '= Fr (marche po ?)
'.lpszIcon = 101 ' id d'une ressource (Icone)
'.hInstance = App.hInstance
.lpfnMsgBoxCallback = 0 ' Adresse d'une fonction
'HelpFile ? à creuser
End With
MsgBoxEx MessageBoxIndirect(tAttr) ' ou gmpMsgBoxMessageBox(hWnd, Prompt, Title, ButtonsAndIcon)
End Function
pas besoin d'utiliser les constantes d'API du genre MB_ICONEXCLAMATION, MB_OKCANCEL..., ... car les constantes de VbMsgBoxStyle sont visiblement les même.
L'argument beep permet soit d'associer le beep qui va avec les icones/boutons (critical+yes/cancel }=> son du genre "t'a comme un ptit pb") ou d'y mettre directement le son qu'on veut. (vbInformation, ...)
Ca paraitr pas super-utile à 1ere vue, mais ca permet :
- de standardiser les msgbox ds tout un logiciel
- de resoudre les pb avec Excel notamment : les messagebox de Excel ne peuvent se liberer du logiciel et on doit souvent cliquer sur excel pour les afficher ensuite (excel clignote ds la barre des taches)
- avec hWnd, e lancer un msgbox à l'intérieur d'une application exterieure (magik!). Avec vbApplicationModal c'est radical.
' -------- DECLARATIONS ----------------------------------
Type MSGBOXPARAMS
cbSize As Long
hwndOwner As Long
hInstance As Long
lpszText As String
lpszCaption As String
dwStyle As Long
lpszIcon As String
dwContextHelpId As Long
lpfnMsgBoxCallback As Long
dwLanguageId As Long
End Type
Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long
Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
vincentescalade
Messages postés87Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention 9 juin 2005 29 août 2003 à 13:53
Salut a tous jsuis débutant et je voudrais savoir qu'est ce que et à quoi servent les constantes ????
Drgn13
Messages postés86Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention26 mars 2007 29 juin 2003 à 19:29
je viens de voir cette source et je me suis rappelé que j'avait fait quelque chose du genre en regardant la visionneuse d'api :
'il faut metre ça dans un module:
Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Public Function MyMsgBox(Prompt, ButtonsAndIcon As VbMsgBoxStyle, Title, Optional Sound As MySounds)
MessageBeep Sound
MessageBox hwnd, Prompt, Title, ButtonsAndIcon
End Function
'et dans la pocédure :
MyMsgBox "Texte", vbCritical, "Texte", vbExclamation
Cela permet par exemple de mettre un icone critical avec un bruit de Exclamation.J'ai WindowsXp et je ne sais plus si les bruit sont différents les uns des autres dans les autres Windows.
Comme dit Alain Proviste c'est pas tres utile...
cs_Alain Proviste
Messages postés908Date d'inscriptionjeudi 26 juillet 2001StatutModérateurDernière intervention 1 février 20152 22 mai 2003 à 19:27
c'est pas utile bande de cake, mais c'est interessant
cs_greg13
Messages postés22Date d'inscriptionlundi 13 mai 2002StatutMembreDernière intervention10 mars 2005 22 mai 2003 à 18:13
Yoman, tu peux surtout tenir compte du commentaire de Warny
yoman64
Messages postés962Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 2 août 20102 22 mai 2003 à 18:08
Je trouve pas sa tres utile...Qu'est-ce que sa fait de plus que msgbox?
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 22 mai 2003 à 10:36
Pour les agnostiques de ce genre de méthode.
Quand vous bidouillez un peu le vb, vous pouvez enlever les références au dll du vb6 et du vb5 (c'est plus facile en vb 5 il suffit de décocher les dll en début de projet, en vb6 il faut carrement aller modifier le fichier vbp avec votre notepad favori)
Mais là, malheur à vous, vous ne disposez plus d'aucune commande sympa (dont le msgbox). D'où la nécessité de le récuperer dans les api.
A ceux qui me demandent : a quoi ça sert de supprimer ces réferences. Je répondrais simplement : A faire des exe et des composants ocx de moins d'1 ko.
cs_greg13
Messages postés22Date d'inscriptionlundi 13 mai 2002StatutMembreDernière intervention10 mars 2005 21 mai 2003 à 21:54
Ouais mais je vous rapelle que ca permet d'illustrer l'utilisation des APIs
cs_greg13
Messages postés22Date d'inscriptionlundi 13 mai 2002StatutMembreDernière intervention10 mars 2005 21 mai 2003 à 21:54
Ouais mais je vous rapelle que ca permet d'illustrer l'utilisation des APIs
sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005 21 mai 2003 à 20:42
Pourquoi faire simple quand on peut faire compliqué...
cs_greg13
Messages postés22Date d'inscriptionlundi 13 mai 2002StatutMembreDernière intervention10 mars 2005 21 mai 2003 à 19:26
Je pense qu'il y a moyen de balancer les message box sur n'importe qu'elle fenètre qui tourne sur windows à condition de conaitre son handle. Sinon de toute facon lorsqu'on utilise la fonction MSGBOX, on utilise l'API sans le savoir.
Sirocooo
Messages postés412Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention 7 avril 20081 21 mai 2003 à 17:25
27 août 2011 à 17:48
J'aimerai modifier le contenu d'un msgbox suivant la langue choisie.
Dans le projet executable, le message est ----> MsgBox "Pas de base de données", vbCritical, "Francais"
Si la langue est en Anglais, j'aimerai avoir le message suivant ---> MsgBox "No database", vbCritical, "French"
et tout ceci en passant par un fichier.
Les objects dans le mode Controls sont déjà modifier suivant la langue choisie.
Merci d'avance à Vous
Michel
Email : johanmichel_147@hotmail.fr
22 juin 2005 à 00:31
bye bye
merci beaucoup
kitkit
jasoso_14@hotmail.com
9 sept. 2004 à 17:32
dim window as form
set window = new form1
window.show true 'fenêtre modale
il faut cacher la fenetre modale pour continuer à utiliser le reste du programme
9 sept. 2004 à 17:18
si vous avez pas compris, faite apparaitre la boite de dialogue a propos de votre navigateur internet, et essayé de cliquer ailleur ds la fenetre mère, vous ne pourrez pas et ca fera beep. la boite à propos n'est pas une message box et à le meme comportement et c'est ce que je cherche à faire.
comment faire ?
4 févr. 2004 à 13:41
J'irais meme plus loin car l'API MessageBoxIndirect permet de reproduire quasi-complètement le comportement de msgbox.
> Voici la fonction que j'ai faite avec :
NB: j'ai pas tout testé mais ca doit marcher en gros (à part qq trucs exotiques). On pourrait aller plus loin encore en exploitant les autres membres de MSGBOXPARAMS (props etendues).
Public Function MsgBoxEx(Prompt, Optional Buttons As VbMsgBoxStyle = vbOKOnly, Optional Title, Optional HelpFile, Optional Context, Optional hWnd, Optional BeepType As Integer) As VbMsgBoxResult
Dim tAttr As MSGBOXPARAMS
If BeepType = -1 Then
MessageBeep Buttons
ElseIf BeepType Then
MessageBeep BeepType
End If
'If IsMissing(hWnd) Then hWnd=Me.hwnd
With tAttr
.cbSize = Len(tAttr)
.hwndOwner = CLng(hWnd) ' ou Me.hwnd
'------------------------- prop classiques
.lpszCaption = Title
.lpszText = Prompt
If Not IsMissing(Context) Then .dwContextHelpId = CLng(Context)
.dwStyle = Buttons
'------------------------- prop étendues
.dwLanguageId = (&HC * 1024) Or &H1 '= Fr (marche po ?)
'.lpszIcon = 101 ' id d'une ressource (Icone)
'.hInstance = App.hInstance
.lpfnMsgBoxCallback = 0 ' Adresse d'une fonction
'HelpFile ? à creuser
End With
MsgBoxEx MessageBoxIndirect(tAttr) ' ou gmpMsgBoxMessageBox(hWnd, Prompt, Title, ButtonsAndIcon)
End Function
pas besoin d'utiliser les constantes d'API du genre MB_ICONEXCLAMATION, MB_OKCANCEL..., ... car les constantes de VbMsgBoxStyle sont visiblement les même.
L'argument beep permet soit d'associer le beep qui va avec les icones/boutons (critical+yes/cancel }=> son du genre "t'a comme un ptit pb") ou d'y mettre directement le son qu'on veut. (vbInformation, ...)
Ca paraitr pas super-utile à 1ere vue, mais ca permet :
- de standardiser les msgbox ds tout un logiciel
- de resoudre les pb avec Excel notamment : les messagebox de Excel ne peuvent se liberer du logiciel et on doit souvent cliquer sur excel pour les afficher ensuite (excel clignote ds la barre des taches)
- avec hWnd, e lancer un msgbox à l'intérieur d'une application exterieure (magik!). Avec vbApplicationModal c'est radical.
' -------- DECLARATIONS ----------------------------------
Type MSGBOXPARAMS
cbSize As Long
hwndOwner As Long
hInstance As Long
lpszText As String
lpszCaption As String
dwStyle As Long
lpszIcon As String
dwContextHelpId As Long
lpfnMsgBoxCallback As Long
dwLanguageId As Long
End Type
Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long
Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
'grossen infos : http://www.vbapihelpline.de/ref/funca.php4?Func=MessageBoxIndirect&Letter=m (gut deutsch site -ich verstehe nix!-)
'http://www.mentalis.org/apilist/MessageBoxIndirect.shtml (pas du chinois mais incomplet)
29 août 2003 à 13:53
29 juin 2003 à 19:29
'il faut metre ça dans un module:
Public Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Public Function MyMsgBox(Prompt, ButtonsAndIcon As VbMsgBoxStyle, Title, Optional Sound As MySounds)
MessageBeep Sound
MessageBox hwnd, Prompt, Title, ButtonsAndIcon
End Function
'et dans la pocédure :
MyMsgBox "Texte", vbCritical, "Texte", vbExclamation
Cela permet par exemple de mettre un icone critical avec un bruit de Exclamation.J'ai WindowsXp et je ne sais plus si les bruit sont différents les uns des autres dans les autres Windows.
Comme dit Alain Proviste c'est pas tres utile...
22 mai 2003 à 19:27
22 mai 2003 à 18:13
22 mai 2003 à 18:08
22 mai 2003 à 10:36
Quand vous bidouillez un peu le vb, vous pouvez enlever les références au dll du vb6 et du vb5 (c'est plus facile en vb 5 il suffit de décocher les dll en début de projet, en vb6 il faut carrement aller modifier le fichier vbp avec votre notepad favori)
Mais là, malheur à vous, vous ne disposez plus d'aucune commande sympa (dont le msgbox). D'où la nécessité de le récuperer dans les api.
A ceux qui me demandent : a quoi ça sert de supprimer ces réferences. Je répondrais simplement : A faire des exe et des composants ocx de moins d'1 ko.
21 mai 2003 à 21:54
21 mai 2003 à 21:54
21 mai 2003 à 20:42
21 mai 2003 à 19:26
21 mai 2003 à 17:25