Bon alors voilà des nouvelles... On avance petit à petit...
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 :
Code:
1 2 3 4 5
|
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
Citation:
Tes labels se trouve où ? Directement sur la form ? dans un panel ou un autre container ?
Mes labels sont directement dans mon Form MainWindow
Citation:
tu charges comment ta mainwindow ? Essaye si ce n'est pas déjà comme ça que tu fais de l'instancier de la sorte dès le départ :
Ma MainWindow est lancée par défaut et c'est toujours sur cette form que je clique (au fur et à mesure des clics, certains boutons s'activent ou pas, mais je reste toujours UNIQUEMENT sur la même Form....
Un peu plus de Code (Accepté par la hiérarchie :) )
Code LoadBtn_Click (le bouton 1 qui fontionne)
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
|
Private Sub LoadBtn_Click()
On Error GoTo ErrorHandler:
InitComboDeal
CommonDlg.DialogTitle = "Charger un lot"
CommonDlg.DefaultExt = "xml"
CommonDlg.Filter = "*.xml"
CommonDlg.FilterIndex = 0
CommonDlg.ShowOpen
If (True) And (CommonDlg.filename <> "") Then
Dim content As String
'Open CommonDlg.FileName For Binary Access Read As #1
'Input #1, content
'Close #1
Dim Node As MSXML2.IXMLDOMNode
Dim block As MSXML2.IXMLDOMElement
Dim bs As BlockSerializer
Dim xmldoc As MSXML2.DOMDocument30
Dim root As MSXML2.IXMLDOMElement
Set bs = New BlockSerializer
Set xmldoc = New MSXML2.DOMDocument30
If Not xmldoc.Load(CommonDlg.filename) Then MsgBox "Error loadXML" 'Error (0)
For Each Node In xmldoc.documentElement.childNodes
If Node.nodeName = "BLOCK" Then
Set block = Node
End If
Next
bs.ReadBlockTM tm, block
End If
RefreshInterface
RefreshDealList
RefreshLogList
Exit Sub
ErrorHandler:
MsgBox "Impossible de charger le lot !"
tm.RollbackBlock
RefreshInterface
RefreshDealList
RefreshLogList
End Sub |
Code de PriceBtn_Click (bouton2 qui plante)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Private Sub PriceBtn_Click()
Dim t1 As Date
Dim t2 As Date
Dim r As Boolean
t1 = Now
r = tm.PriceBlock
t2 = Now
lt = DateDiff("s", t1, t2)
RefreshLogList
RefreshInterface
If Not r Then
ErrorDialog.ViewError tm.GetLastErrorObject
End If
End Sub |
Code de RefreshInterface, la procédure où ça plante. Elle est appelée par les 2 boutons, et les 2 boutons passent chacun au même endroit, dans le If tm.Getstate = 2
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
|
Private Sub RefreshInterface()
If tm Is Nothing Then
LastTimeLabel.Caption = "NO VALUE AVAILABLE"
If lt2 = -1 Then
LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
Else
LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
End If
Frame2.Enabled = False
Frame2.Caption = "Lot en cours"
'Frame3.Enabled = False
'LogGrid.Visible = False
StatusLabel.ForeColor = &H0
StatusLabel.Caption = "NOT CREATED"
CreateBtn.Enabled = True
InitBtn.Enabled = False
BeginBtn.Enabled = False
PriceBtn.Enabled = False
RollbackBtn.Enabled = False
CommitBtn.Enabled = False
CancelPriceBtn.Enabled = False
DestroyBtn.Enabled = False
SaveBtn.Enabled = False
LoadBtn.Enabled = False
CopyBtn.Enabled = False
PasteBtn.Enabled = False
LoadDealBtn.Enabled = False
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = False
AddDealBtn.Visible = False
InstrCombo.Visible = False
DealList.Visible = False
ViewerBtn.Visible = False
Viewer2Btn.Visible = False
Exit Sub
End If
If tm.GetState = 0 Then
LastTimeLabel.Caption = "NO VALUE AVAILABLE"
If lt2 = -1 Then
LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
Else
LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
End If
Frame2.Enabled = False
Frame2.Caption = "Lot en cours"
'Frame3.Enabled = False
'LogGrid.Visible = False
StatusLabel.ForeColor = &HFF&
StatusLabel.Caption = "(0) NOT READY"
CreateBtn.Enabled = False
InitBtn.Enabled = True
BeginBtn.Enabled = False
PriceBtn.Enabled = False
RollbackBtn.Enabled = False
CommitBtn.Enabled = False
CancelPriceBtn.Enabled = False
DestroyBtn.Enabled = True
SaveBtn.Enabled = False
LoadBtn.Enabled = False
CopyBtn.Enabled = False
PasteBtn.Enabled = False
LoadDealBtn.Enabled = False
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = False
AddDealBtn.Visible = False
InstrCombo.Visible = False
DealList.Visible = False
ViewerBtn.Visible = False
Viewer2Btn.Visible = False
Exit Sub
End If
If tm.GetState = 1 Then
LastTimeLabel.Caption = "NO VALUE AVAILABLE"
If lt2 = -1 Then
LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
Else
LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
End If
Frame2.Enabled = False
Frame2.Caption = "Lot en cours"
'Frame3.Enabled = False
'LogGrid.Visible = False
StatusLabel.ForeColor = &H80C0FF
StatusLabel.Caption = "(1) READY"
CreateBtn.Enabled = False
InitBtn.Enabled = False
BeginBtn.Enabled = True
PriceBtn.Enabled = True
RollbackBtn.Enabled = False
CommitBtn.Enabled = False
CancelPriceBtn.Enabled = False
DestroyBtn.Enabled = True
SaveBtn.Enabled = False
LoadBtn.Enabled = True
CopyBtn.Enabled = False
PasteBtn.Enabled = True
LoadDealBtn.Enabled = True
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = False
AddDealBtn.Visible = False
InstrCombo.Visible = False
DealList.Visible = False
ViewerBtn.Visible = False
Viewer2Btn.Visible = False
Exit Sub
End If
If tm.GetState = 2 Then
'---------------
Dim toto As Control
MsgBox (MainWindow.Count)
For Each toto In MainWindow
MsgBox toto.Name
Next
'---------------
MsgBox ("avant nouveau test")
MainWindow.LastTimeLabel.Caption = "TEST"
MsgBox ("après nouveau test - avant ancien test")
LastTimeLabel.Caption = "NO VALUE AVAILABLE"
MsgBox ("après ancien test")
If lt2 = -1 Then
LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
Else
LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
End If
Frame2.Enabled = True
Frame2.Caption = "Lot en cours - " & tm.GetCurrentTKBlockID
'Frame3.Enabled = True
'LogGrid.Visible = True
StatusLabel.ForeColor = &HC000&
StatusLabel.Caption = "(2) TRANSACTING"
CreateBtn.Enabled = False
InitBtn.Enabled = False
BeginBtn.Enabled = False
PriceBtn.Enabled = True
RollbackBtn.Enabled = True
CommitBtn.Enabled = False
CancelPriceBtn.Enabled = False
DestroyBtn.Enabled = True
SaveBtn.Enabled = True
LoadBtn.Enabled = True
CopyBtn.Enabled = True
PasteBtn.Enabled = True
LoadDealBtn.Enabled = True
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = True
AddDealBtn.Visible = True
AddDealBtn.Enabled = True
InstrCombo.Visible = True
DealList.Visible = True
ViewerBtn.Visible = True
Viewer2Btn.Visible = True
Exit Sub
End If
If tm.GetState = 3 Then
MsgBox ("State 3")
'LastTimeLabel.Caption = CStr(lt) & " s" & ", " & CStr(lt / tm.Deals.Count) & " s/deal"
'If lt2 = -1 Then
' LastTimeValideLabel.Caption = "NO VALUE AVAILABLE"
'Else
' LastTimeValideLabel.Caption = CStr(lt2) & " s" & ", " & CStr(lt2 / LastDealCount) & " s/deal"
'End If
Frame2.Enabled = True
Frame2.Caption = "Lot en cours - " & tm.GetCurrentTKBlockID
'Frame3.Enabled = True
'LogGrid.Visible = True
StatusLabel.ForeColor = &HFF00&
StatusLabel.Caption = "(3) VALIDABLE"
CreateBtn.Enabled = False
InitBtn.Enabled = False
BeginBtn.Enabled = False
PriceBtn.Enabled = True
RollbackBtn.Enabled = True
CommitBtn.Enabled = True
CancelPriceBtn.Enabled = True
DestroyBtn.Enabled = True
SaveBtn.Enabled = True
LoadBtn.Enabled = True
CopyBtn.Enabled = True
PasteBtn.Enabled = True
LoadDealBtn.Enabled = True
UpdateDealBtn.Enabled = False
RemoveDealBtn.Visible = True
AddDealBtn.Visible = True
AddDealBtn.Enabled = False
InstrCombo.Visible = True
DealList.Visible = True
ViewerBtn.Visible = True
Viewer2Btn.Visible = True
Exit Sub
End If
End Sub |
En espérant que ça vous éclaire !!!