建议先查看delphi中的loadtofile,savetofile源码,翻成Basic即可

解决方案 »

  1.   

    把treeview中的节点都写入注册表,下次打开的时候先检查注册表。
      

  2.   

    强烈反对写注册表,注册表不是垃圾箱(假设有一千个节点)。建议写入文件,delphi里也是这么干的。
      

  3.   

    还是用ini文件吧,我喜欢 :)如果直接调用API来写的话,太麻烦了,我自己写了一个读写INI文件的DLL,源码如下:
    (只告诉你哟,可别让别人知道)Option ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias _
        "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
        ByVal lpKeyName As Any, ByVal lpDefault As String, _
        ByVal lpReturnedString As String, ByVal nSize As Long, _
        ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias _
        "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
        ByVal lpKeyName As Any, ByVal lpString As Any, _
        ByVal lpFileName As String) As LongConst MAX_LEN = 255Private IniString As StringPublic Function ReadIni(lpApplicationName As String, _
        lpKeyName As String, lpDefault As String, lpFileName As String _
        ) As String
        Dim a As Long
        a = GetPrivateProfileString(lpApplicationName, lpKeyName, lpDefault, _
            IniString, MAX_LEN, lpFileName)
        
        ReadIni = StripTerminator(IniString)
        
    End FunctionPublic Function WriteIni(lpApplicationName As String, _
        lpKeyName As String, lpString As String, _
        lpFileName As String) As Long
        
        WriteIni = WritePrivateProfileString(lpApplicationName, _
                lpKeyName, lpString, lpFileName)
        
    End FunctionPrivate Sub Class_Initialize()
        IniString = String(MAX_LEN, 0)
    End Sub
    Private Function StripTerminator(ByVal strString As String) As String
        Dim intZeroPos As Integer
        intZeroPos = InStr(strString, Chr(0))
        If intZeroPos > 0 Then
            StripTerminator = Left(strString, intZeroPos - 1)
        Else
            StripTerminator = strString
        End If
    End Function不好意思,我写程序很少加注释的, 这习惯很不好。但愿你能看懂
    将其编译为dll,文件,注册后就可以引用了