En fait RefreshDealList rafraichit et réinitialise la liste des deal qui peuvent être chargés avec le bouton LoadBtn (bouton1).
Je ne pense pas que cette procédure aie de l'incidence vu qu'elle est appelée après RefreshInterface...???
Version imprimable
En fait RefreshDealList rafraichit et réinitialise la liste des deal qui peuvent être chargés avec le bouton LoadBtn (bouton1).
Je ne pense pas que cette procédure aie de l'incidence vu qu'elle est appelée après RefreshInterface...???
J'ai une autre solution :
Suis l'exemple de cette photo (voir pièce jointe)
Peux tu montrer le code de l'initialisation de tes controles ? On ne sait jamais.
Je viens de trouver ce message sur un autre forum :
http://www.codeguru.com/forum/showthread.php?t=31602
Mais il n'y a pas grand chose comme infos et le mec est injoignable... :-(
L'initialisation de mes contrôles ?? Tu veux voir quoi exactement ??Citation:
Peux tu montrer le code de l'initialisation de tes controles ? On ne sait jamais.
Sans raison précise pour le moment, mais un petit test qui coute pas cher :
Avec bouton1 (LoadBtn), j'imgine que tu sélectionne toujours un fichier et que tu valides. Peux tu faire l'essai d'annuler la sélection de fichier (appuis sur annuler dans la fenetre de selection de fichier). Je voudrais juste voir si le fait de ne pas passer dans le code qui est inclus dans le test suivant provoquera ensuite une erreur ou pas :
Code:
1
2 If (True) And (CommonDlg.filename <> "") Then ...
J'ai testé.
En faisant "Cancel" il choisit donc de partir en erreur et passe là dedans :
Donc il m'affiche une MsgBox et ensuite il passe nickel dans RefreshInterface et ses copains.....Code:
1
2
3
4
5
6
7
8 ErrorHandler: MsgBox "Impossible de charger le lot !" tm.RollbackBlock RefreshInterface RefreshDealList RefreshLogList End Sub
Mais toujours pas d'erreur !!!!!!!!!! :evilred:
Manages tu excel à partir de ton programme ?
J'ai trouvé cela sur le net :
http://www.kbalertz.com/135099/Error...roperties.aspx
Je voulais voir le code où se trouve la création et l'initialisation de tes controles, de tes labels, ... on ne sait jamais d'où un bug peut venir
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Sub Form_Load() lt = -1 lt2 = -1 RefreshInterface Dim s As String Dim xmldoc As MSXML2.DOMDocument30 Dim TibcoArea As MSXML2.IXMLDOMElement Set xmldoc = New MSXML2.DOMDocument30 s = App.Path & "\TransactKernel.conf.xml" xmldoc.Load s Set fc = New FeederClient Set TibcoArea = xmldoc.selectSingleNode("//CONFIG/TIBCO") fc.Init TibcoArea StatusBar1.Panels(1).Text = "V " & CStr(App.Major) & "." & CStr(App.Minor) & "." & CStr(App.Revision) & " " StatusBar1.Panels(2).Text = TibcoArea.getAttribute("SERVICE") & " " StatusBar1.Panels(3).Text = TibcoArea.getAttribute("NETWORK") & " " StatusBar1.Panels(4).Text = TibcoArea.getAttribute("DAEMON") & " " StatusBar1.Panels(5).Text = TibcoArea.getAttribute("ROOT_SUBJECT") & " " End Sub
Heu je voulais le code où est créé et initialisé des choses comme LastTimeLabel. C'est peut être du code généré par windows.
Dans le lien que j'ai envoyé tout à l'heure vers un autre forum qui parle de la même erreur, la personne a répondu :
Ce qu'on appelle "Components" ce sont uniquement les composants associés au projet ou aussi les références ??Citation:
Check if components you're using in your application are registered with regsvr32.
Merci pour l'info... je commence à chercher un peu plus en amont de la solution ...???...
Oui, je pense, car toute la form a été faite en graphique et des actions ont été associées à des évènements...Citation:
Heu je voulais le code où est créé et initialisé des choses comme LastTimeLabel. C'est peut être du code généré par windows.
Je ne sais pas si dans VB6 on peut voir cette partie du code ??
Si oui... où ?
Essaye en double cliquant sur la fenetre.
ça me fait la même chose, ça me fait arriver sur form_load...
D'autre part, je viens de vérifier, et tous mes composants utilisés par VB sont bien enregistrés avec regsvr32...
:roll:
En te déplaçant dans le code, tu ne trouves rien ?
Désolé de ne pas pouvoir te dire exactement comment, je n'ai pas visual basic 6 d'installer, et d'ailleurs cela fait 8 ans que je ne l'ai pas utilisé :aie:
nono tu n'as pas du lire mon message, c'est quoi tm.PriceBlock ?
J'explique ma théorie :
1) tu passes dans ta gestion d'erreur : rollback block
2) ton tm.PriceBlock renvoit false
3) tu fais un viewerror : ErrorDialog.ViewError tm.GetLastErrorObject
Et là finalement ta fichue error cannot create component, ce n'est qu'une put*** de trace qui reste dans la stack, une erreur non remontée, inibée volontairement par ton mystérieux contrôle, qui remonte.
Selon moi tout passe comme sur des roulettes, faut juste que tu fasses un test supplémentaire avant de remonter tm.GetLastErrorObject dans ta fonction bouton 2
Et cela expliquerais le ci-dessus ?Citation:
Citation:
pour vérifier que tes controles sont toujours là avec leur nom d'origine, tu peux ajouter ça en début de ta procédure :
Code:
1
2
3
4 Dim toto As Control For Each toto In MainWindows MsgBox toto.Name Next
Excellent comme Idée
Résultat :
Passage avec le bouton1 (LoadBtn) -> 33 éléments
Passage avec le bouton2 (PriceBtn) -> Plantage Erreur 440
8O Ha bon ? Juste le fait de faire Cancel provoque une erreur ? Je m'attendais à ce que ça saute le test, mais bon.Citation:
Envoyé par nono27200
Désolé d'insister mais alors si ca passe par le traitement d'erreur, peux tu mettre "tm.RollbackBlock" en remarque stp de façon a accéder directement à l'appel RefreshInterface.
Voilà le fameux code qui j'espère va nous faire avancer :?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Public Function PriceBlock() As Boolean PriceBlock = False If Not ((GetState = 2) Or (GetState = 3)) Then Exit Function SetState 2 Set LastError = Nothing Set LastWarningList = Nothing On Error GoTo ErrorHandler Dim rs As Boolean Dim dc As IDataConnector Dim CurrentDeal As GenericDeal Dim TError As TransactionError Dim TWarning As TransactWarningList Set TError = New TransactionError Set TWarning = New TransactWarningList Set dc = Context.GetDataConnector 'Si aucun deal dans le lot alors erreur If Deals.Count = 0 Then TError.SetPrimaryData 1, "", "" TError.SetSecondaryData 0, "Le lot ne contient aucun deal !", "", "" GoTo ErrorHandler End If If CheckBlock(dc, TWarning, TError) Then 'On traite les deals un par un For Each CurrentDeal In Deals 'Lock le deal en cours CurrentDeal.LockDeal rs = GetInstrumentByName(CurrentDeal.InstrumentName).PriceDeal(True, dc, Context, CurrentDeal, TWarning, TError, TKBlockID) If Not rs Then TError.SetPrimaryData 1, CurrentDeal.TKDealID, Me.GetCurrentTKBlockID GoTo ErrorHandler End If 'Positionne le Deal en Etat 3 (Priced) CurrentDeal.DealOK 'Ajoute le Stamp et le TTL CurrentDeal.SetTTLStamp InstrumentsTTL.Item(CurrentDeal.InstrumentName), Now Next Else GoTo ErrorHandler End If dc.Disconnect SetState 3 PriceBlock = True Set LastWarningList = TWarning Logger.PostInfo K_TRANSACTIONMANAGER, K_TRANSACTIONMANAGER_PRICING, K_YES Exit Function ErrorHandler: 'MsgBox "TRUE ERROR : " & Err.Description & " : " & Err.Source Err.Clear Set LastError = TError TError.AddCallStackEntry "TransactionManager.PriceBlock" UnlockDeals SetState 2 PriceBlock = False Logger.PostInfo K_TRANSACTIONMANAGER, K_TRANSACTIONMANAGER_PRICING, K_NO End Function
je vais mettre des MsgBox là dedans pour voir ce qu'il y a exactement...??
Mais pourquoi cela fonctionnerait-il en Debug ???
:cry:
Si VLD44 à raison (ce que je commence à croire) alors le comportement différent en debug et en release est peut être dût à la gestion de la stack qui est peut être différente selon que l'on soit en release ou en debug
oui, je pense qu'on cherche trop en surface, y'a un problème sous-jacent avec l'ocx.
Nono, ton ocx "tm", recompile en mettant le projet correspondant dans le menu projet > propriétés > onglet composant : compatibilité binaire
ensuite, ouvre ton projet courant (celui de ton exe) et recompile le (compilation complète, génération de l'exe)
Je viens de mettre des MsgBox un peu partout là dedans, et je vais faire des tests, mais là il me crache des erreurs type mismatch...
C'est jamais bon de recompiler une dll à peu près stable en VB ..... ;)
Dès que les bugs à la con sont finis, je vous fais un bilan du résultat des MsgBox dans ce PriceBlock !!
Le tm est contenu dans une Dll.....
La Dll est contenue dans les références ??
Il vaut mieux que je la mette dans les composants ??
J'ai des petits Bugs apparus - Des type Mismach...
Je regarderai ça demain matin... il commence à se faire tard et j'ai la tête qui va exploser.......
Encore merci pour votre Aide !!!!!!!
Peut-être à demain pour la résolution complète de ce mystère !!!
:king:
commence par repérer ce composant, s'il est dans une DLL ouvre là et fait ce que je t'ai dit (ça revient au même, c'est un activex dans les deux cas sauf que là du coup c'est une DLL pas un OCX)
edit : n'ouvre la DLL pour la recompiler qu'après avoir fermé tous tes autres projets VB
Pour info, j'ai de nouvelles priorités qui me sont imposées sur un autre projet.
Je reviendrai sûrement sur ce problème la semaine prochaine ou celle d'après...
Le sujet reste donc en suspend pour le moment vu que je ne peux pas faire d'autres tests, mais j'y reviendrai.
A très bientôt et encore merci pour votre aide très précieuse !!!!
++
Nono.
Salut !
J'ai eu un problème similaire : http://www.developpez.net/forums/sho...d.php?t=434932
Le problème, pour mon cas, est un problème de droits. En debug, tu utilises le compte ADMINISTRATOR alors qu'en release, tu utilises le compte NT AUTHORITY\NETWORK SERVICES. Dans mon cas, j'utilise un certificat de sécurité et bien qu'il ait été installé pour la machine, le compte NETWORK SERVICES n'y a pas accès.
Donc cherche du côté des droits. Peut-être que filemon et regmon pourront t'aider.
Merci pour cette info !!!!
Je vais regarder ça dès que j'aurai un moment...
Pour des contraintes de temps, j'ai dû avancer sur le projet, et je suis tombé dans l'enfer des versions de MDAC.... Génialissime........
Je mettrai un post sur le forum pour vous dire si le problème a été résolu grâce à ces problèmes de droits !!!!
Encore merci !!
++