Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec MSCAl.OCX

14 réponses
Avatar
Claude Gagné
Bonjour!

J`ai fait une application mais elle refuse de fonctionner sur l`ordinateur
de mon bureau!
Voici le message d`erreur:

Component MSCAL.OCX not correctly registered, file is missing or invalid!

Pourtant, l`application fonctionne bien sur un autre ordinateur ainsi qu`a
la maison!

C`est quoi le probleme?
Quelqu`un peut m`aider?

Merci

4 réponses

1 2
Avatar
Jacques93
Bonjour Gloops,
Gloops a écrit :
Jacques93 a écrit :
A part ça, peux tu indiquer comment tu affiches un calendrier avec les
"dialogues communs" ? ;-)



Eh non, les Tchèques n'auraient pas eu l'occasion de critiquer le
calendrier si je n'avais pas utilisé l'OCX :)

Je ne sais pas si on trouve une version API du calendrier, quelque part.
Je n'ai pas cherché, ce n'est pas impossible qui sait.



Il y a un nombre important d'API concernant les dates, mais pour
afficher un calendrier, pas à ma connaissance.

Les "dialogues communs", on est bien d'accord, c'est :
- sélection d'un fichier par l'utilisateur



ShowOpen
et
ShowSave

- sélection d'une police par l'utilisateur (et encore j'ai fait ça à ma



ShowFont

sauce car le dialogue commun donne la liste des scripts une fois qu'on a
choisi une police, au lieu de l'inverse)
- sélection d'une couleur par l'utilisateur



ShowColor

Le compte n'est pas bon ;-) :

ShowPrinter

Choix d'une imprimante.


--
Cordialement,

Jacques.
Avatar
X
Jacques, non merci, ça ferai encore des dépendances avec d'autres fichiers,
non, déjà y a le plaisir, mais dès que j'ai un moment je fais ça en code,
car comme tu dis, ça commence à être l'enfer...
amicalement :o)


------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:

Bonjour X
X a écrit :
Bonjour Jacques,

J'ai eu (tu t'en souviens peut être), plein de problème avec les ocx
et dll et dépendances, car j'avais changé d'OS (de version)...

Conclusion, y en a pas pour longtemps, je vais développer le code
pour faire un calendrier, que je n'aurai plus qu'à coller, comme ça
terminé le poids de l'empaquetage, et surtout les problèmes de
fonctionnement, j'en arrive à cette solution, je fais mon calendrier, je
dessine mes graphiques (pareil avec MsChart), sauf quand c'est trop
compliqué (trop long), car y-en a marre que ça plante ces p... de machins
!




Oui je me souviens, (DLL Hell, l'enfer des DLL on l'a pas inventé). Une
des options possibles pour le calendrier, c'est d'utiliser les contrôles
spécifiques à VB c'est à dire :

DtPicker

et

MonthView

qui se trouvent dans Microsoft Windows Common Control-2 (mscomct2.ocx)
car l'inconvénient du contrôle mscal.ocx est d'avoir été livré avec VB6
mais en version 8.0 (cad la version correspondant à Office 97), me semble
t-il (je ne garantis pas qu'il n'y ai pas eu de maj avec les Services
Pack), et également avec Office Developper ou il a continué à évoluer
(version 11 actuellemnt). Ce qui entretient une certaine confusion, car on
peut l'avoir à plusieurs endroits dans des versions différentes, mais une
seule est inscrite dans le registre.

On peut faire comme tu l'envisages, écrire son propre calendrier. Si tu
veux j'en ai écris un, mais c'est ... une dll ActiveX :-D

--
Cordialement,

Jacques.


Avatar
Gloops
Salut,

J'ai trouvé ma chef bien avisée sur ce coup-là.

En effet les Tchèques ont trois avantages :
- ils sont sympa et efficaces (peut-être les Chinois aussi après tout,
pas eu le temps de me rendre compte) ;
- ils parlent Anglais (parce que dire que mes notions de serbo-croate
sont limitées serait déjà prétentieux ; ce n'est pas serbo-croate qu'ils
parlent d'ailleurs, mais ça sonne bien comme nom de langue exotique
qu'on se représente difficile à apprendre) ; du coup chez eux je devrais
savoir dire bonjour et merci dans la langue locale, m'enfin pour monter
une base sur mesure il arrive des jours où on a besoin de pouvoir dire
plus ;
- il n'y a que deux heures d'avion à partir de Paris pour aller les voir.

Et puis remettre les langues asiatiques en fin de parcours semblait
aller de soi, comme ça j'attaquais le support d'UTF-8 seulement une fois
que j'avais éclusé tous les autres problèmes.

Vàlà vàlà :)
Avatar
Alain CROS
Bonjour,

Un petit exemple sommaire sur un UserForm d'Excel.

Private Declare Function CreateWindowEx& Lib "user32" _
Alias "CreateWindowExA" _
(ByVal dwExStyle&, ByVal lpClassName$, ByVal lpWindowName$, _
ByVal dwStyle&, ByVal x&, ByVal y&, ByVal nWidth&, _
ByVal nHeight&, ByVal hWndParent&, ByVal hMenu&, _
ByVal hInstance&, ByRef lpParam As Any)

Private Declare Function GetActiveWindow& Lib "user32" ()

Private Declare Function InitCommonControlsEx& Lib "comctl32" _
(ByRef INITCOMMONCONTROLSEXData As InitCommonControlsExType)

Private Type InitCommonControlsExType
dwSize As Long
dwICC As Long
End Type

Private Declare Function DestroyWindow& Lib "user32" (ByVal hwnd&)

Private Declare Function SendMessage& Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd&, ByVal wMsg&, ByVal wParam&, ByRef lParam As Any)

Private Declare Function SetWindowPos& Lib "user32" _
(ByVal hwnd&, ByVal hWndInsertAfter&, ByVal x&, ByVal y&, _
ByVal cx&, ByVal cy&, ByVal wFlags&)

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Private mWnd&

Private Sub UserForm_Activate()
Const WS_BORDER& = &H800000, WS_CHILD& = &H40000000, _
WS_VISIBLE& = &H10000000, MCS_DAYSTATE& = &H1&, _
ICC_DATE_CLASSES& = &H100&, MONTHCAL_CLASS$ = "SysMonthCal32", _
MCM_FIRST& = &H1000&, MCM_GETMINREQRECT& = (MCM_FIRST + 9&), _
MCM_GETMAXTODAYWIDTH& = (MCM_FIRST + 21&), SWP_SHOWWINDOW& = &H40&
Dim LeRect As RECT, IniCtrl As InitCommonControlsExType, _
Tdw&, LeTop&, LeLeft&
LeTop = 10&
LeLeft = 20&
With IniCtrl
.dwSize = Len(IniCtrl)
.dwICC = ICC_DATE_CLASSES
End With
InitCommonControlsEx IniCtrl
mWnd = CreateWindowEx(ByVal 0&, MONTHCAL_CLASS, vbNullString, _
WS_BORDER Or WS_CHILD Or WS_VISIBLE Or MCS_DAYSTATE, _
0&, 0&, 0&, 0&, GetActiveWindow, 0&, 0&, 0&)
SendMessage mWnd, MCM_GETMINREQRECT, 0&, LeRect
Tdw = SendMessage(mWnd, MCM_GETMAXTODAYWIDTH, 0&, 0&)
With LeRect
SetWindowPos mWnd, 0, LeTop, LeLeft, _
CLng(IIf(.Right > Tdw, .Right, Tdw) + LeLeft), _
.Bottom + LeTop, SWP_SHOWWINDOW
End With
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Const MCM_FIRST& = &H1000&, MCM_GETCURSEL& = (MCM_FIRST + 1&)
Dim LeTime As SYSTEMTIME
SendMessage mWnd, MCM_GETCURSEL, 0&, LeTime
With LeTime
MsgBox Format(DateSerial(.wYear, .wMonth, .wDay), "dddd dd mmmm yyyy")
End With
DestroyWindow mWnd
End Sub

Alain CROS

"Jacques93" a écrit dans le message de news:
| Bonjour Gloops,
| Gloops a écrit :
| > Jacques93 a écrit :
| >> A part ça, peux tu indiquer comment tu affiches un calendrier avec les
| >> "dialogues communs" ? ;-)
| >
| > Eh non, les Tchèques n'auraient pas eu l'occasion de critiquer le
| > calendrier si je n'avais pas utilisé l'OCX :)
| >
| > Je ne sais pas si on trouve une version API du calendrier, quelque part.
| > Je n'ai pas cherché, ce n'est pas impossible qui sait.
|
| Il y a un nombre important d'API concernant les dates, mais pour
| afficher un calendrier, pas à ma connaissance.
|
1 2