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...???
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 ??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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !!!!!!!!!!
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ??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...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...
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é
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 ?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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Ha bon ? Juste le fait de faire Cancel provoque une erreur ? Je m'attendais à ce que ça saute le test, mais bon.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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ???
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager