21/01/09 8:05
rikiz83
scusate ma ho visto che i codici si possono postare tranquillamente.Praticamente io ho a valle del programma un apparecchiatura con degli ingressi collegati ad essa , che quando chiudono generano un evento di allarme.Il tutto comunica tramite un framework con il vb.Succede che quando chiude un contatto sull'apparecchiatura l allarme viene generato e finisce in una list box del programma.
Codice Sorgente
-------------------------------------------------
Private Sub ALARM3_WS1_AlarmStatus(ByVal Num_Alarm As Long, Status As Boolean, AlarmMsg As String)
If Check1.Value = 1 Then Exit Sub
List1.AddItem Trim(Num_Alarm) & " " & Trim(Status)
If Status And Memo(Num_Alarm) = False Then
Memo(Num_Alarm) = True
Set AAX = ListView1.ListItems.Add(, "AX" & Trim(Num_Alarm), AlarmMsg, 2)
AAX.SubItems(1) = Now ' Dati Aggiuntivi
ListView1.ListItems.Item("AX" & Trim(Num_Alarm)).Checked = True
ListView1.ListItems.Item("AX" & Trim(Num_Alarm)).ForeColor = &HFFFFC0 '&HC00000
ElseIf Memo(Num_Alarm) And Status = False Then 'And Memo3(NumK0)
Memo(Num_Alarm) = False
ListView1.ListItems.Remove ("AX" & Trim(Num_Alarm)) 'RESET e Cancella
End If
End Sub
io ci capisco poco in questo codice.pero' vorrei che non fosse possibile cancellare la listbox fintanto che l evento sia in corso.cosa che adesso non succede.infatti se l evento e' ancora attivo e schiaccio il pulsante per cancellare. mi cancella tutto il contenuto.
Codice Sorgente
-------------------------------------------------
Private Sub ALARM3_WS1_AlarmStatus(ByVal Num_Alarm As Long, Status As Boolean, AlarmMsg As String)
If Check1.Value = 1 Then Exit Sub
List1.AddItem Trim(Num_Alarm) & " " & Trim(Status)
If Status And Memo(Num_Alarm) = False Then
Memo(Num_Alarm) = True
Set AAX = ListView1.ListItems.Add(, "AX" & Trim(Num_Alarm), AlarmMsg, 2)
AAX.SubItems(1) = Now ' Dati Aggiuntivi
ListView1.ListItems.Item("AX" & Trim(Num_Alarm)).Checked = True
ListView1.ListItems.Item("AX" & Trim(Num_Alarm)).ForeColor = &HFFFFC0 '&HC00000
ElseIf Memo(Num_Alarm) And Status = False Then 'And Memo3(NumK0)
Memo(Num_Alarm) = False
ListView1.ListItems.Remove ("AX" & Trim(Num_Alarm)) 'RESET e Cancella
End If
End Sub
io ci capisco poco in questo codice.pero' vorrei che non fosse possibile cancellare la listbox fintanto che l evento sia in corso.cosa che adesso non succede.infatti se l evento e' ancora attivo e schiaccio il pulsante per cancellare. mi cancella tutto il contenuto.
aaa
21/01/09 13:09
P4p3r0g4
non ti daro` il codice.
ascolta metti una variabile boolean e la metti vera all'inizio dell'evento mentre la reimposti falsa alla fine dell'evento.
poi nell'evento che deve cancellare la listbox fai un controllo sulla variabile.
se e` vera allora l'evento e` in corso e non deve cancellare niente mentre se e` falsa l'evento si e` concluso e quindi si puo` cancellare.
ascolta metti una variabile boolean e la metti vera all'inizio dell'evento mentre la reimposti falsa alla fine dell'evento.
poi nell'evento che deve cancellare la listbox fai un controllo sulla variabile.
se e` vera allora l'evento e` in corso e non deve cancellare niente mentre se e` falsa l'evento si e` concluso e quindi si puo` cancellare.
aaa