TREEVIEW
Ola bem encontrei um trieview e queria aproveitá-lo , confesso que não é meu mas está interessante, bem ele permite adicionar alguns nodes, acho que é isso que se chama , ou seja uma classe dentro da principal, mas que todo o conteúdo é salvo num ficheiro *.bnd . Bem o problema é que ele dá erro quando ao remover o último node ficando só o da raiz ele dá um erro :
object variable or with block variable not set , bem vou colocar o código :
bem sei que dá muito mais trabalho usar o dos outros pq cada um tém o seu estilo mas enfim. Mas ás vezes acho que na vale a pena ....
object variable or with block variable not set , bem vou colocar o código :
Private Sub mnuFileSave_Click()
Dim iFile As Integer
Dim nCurNode As Node
Dim nNextNode As Node
If tvwBinder.Tag <> "null" Then
If tvwBinder.Tag = "" Then
mnuFileSaveAs_Click
End If
iFile = FreeFile
Open tvwBinder.Tag For Output As #iFile
Print #iFile, "[Binder]" & tvwBinder.Nodes.Item(1).Text
Set nCurNode = tvwBinder.Nodes.Item(1).Child
'search for children until there are no more,
'then go to next sibling and repeat
tá a dar erro aqui no while :
Do While (Not nCurNode = tvwBinder.Nodes.Item(1)) And (Not nCurNode Is Nothing)
Set nNextNode = Nothing
If nCurNode.Tag = SECT_TAG Then
Print #iFile, "[Sect]" & nCurNode.Text & "[Key]" & nCurNode.Key & "[Parent]" & nCurNode.Parent.Key
Else
Print #iFile, "[Doc]" & nCurNode.Text & "[Key]" & nCurNode.Key & "[Loc]" & nCurNode.Tag & "[Parent]" & nCurNode.Parent.Key
End If
If Not nCurNode.Child Is Nothing Then
Set nNextNode = nCurNode.Child
ElseIf Not nCurNode.Next Is Nothing Then
Set nNextNode = nCurNode.Next
Else
Set nNextNode = nCurNode.Parent
If Not nNextNode Is Nothing Then
While (nNextNode.Next Is Nothing)
If Not nNextNode = tvwBinder.Nodes.Item(1) Then
Set nCurNode = nNextNode
Set nNextNode = Nothing
Set nNextNode = nCurNode.Parent
Else
Exit Do
End If
Wend
Set nCurNode = Nothing
Set nCurNode = nNextNode
Set nNextNode = nCurNode.Next
Else
Exit Do
End If
End If
Set nCurNode = nNextNode
Loop
Set nNextNode = Nothing
Set nCurNode = Nothing
Close #iFile
AddMRUItem tvwBinder.Tag
bChanged = False
MsgBox "Binder saved.", vbInformation, "Saved"
Else
tvwBinder.Tag = ""
End If
End Sub
bem sei que dá muito mais trabalho usar o dos outros pq cada um tém o seu estilo mas enfim. Mas ás vezes acho que na vale a pena ....
Este erro se dá quando temos uma variável objet e não utilizamos as palavra chave new para declará-la
'Voce iguala uma variável com algo que nao mais existe aqui ...
Set nCurNode = tvwBinder.Nodes.Item(1).Child
'E tenta utilizar mesmo não existindo
Do While (Not nCurNode = tvwBinder.Nodes.Item(1)) And (Not nCurNode Is Nothing)
Variável object não inicializada.
Vai precisar criar um desvio nesta exceção.
'Voce iguala uma variável com algo que nao mais existe aqui ...
Set nCurNode = tvwBinder.Nodes.Item(1).Child
'E tenta utilizar mesmo não existindo
Do While (Not nCurNode = tvwBinder.Nodes.Item(1)) And (Not nCurNode Is Nothing)
Variável object não inicializada.
Vai precisar criar um desvio nesta exceção.
Tópico encerrado , respostas não são mais permitidas