Recent geopend (vb6)

Status
Niet open voor verdere reacties.

Semafoor

Gebruiker
Lid geworden
29 aug 2007
Berichten
129
Hallo. Ik heb een programma gamaakt waarmee je online radio kan luisteren. Ik heb de vraag gekregen van meerdere gebruikers of het mogelijk is om een recent geopend lijst te maken .
Ik weet dat het mogelijk is. maar ik weet niet hoe.. ! Weet iemand hoe dat moet?
In de lijst moet de naam van het station komen te staan en niet de locatie.
de lijst mag op het main form zelf staan maar het mag ook op een andere manier.
De lijst moet opgeslagen (als laatst-geopend.ini bijvoorbeeld)worden zodat het de volgende keer weer geopend kan worden.

Ik hoop dat dit mogelijk is.

Stefan
 
Je maakt in je menu x hidden entries (als control array). Bij het starten van je applicatie lees je uit het register wat de laatste items waren, je kunt hiervoor een stucture gebruiken of een array, bv
Stations[1,9]
waarbij de eerste component de naam bevat, de tweede het adres.
Je leest de laatste x namen in het menu, en op moment dat de gebruiker deze selecteert
haal je uit de array het daarbij behorende adres op.
 
Ik ben nog redelijk nieuw in vb dus ik snap wel wat je bedoeld maar niet hoe ik dat moet doen!>
 
Ik heb hier een paar jaar geleden een paar functies voor geschreven
Code:
Public Function AddMRU(ByRef mnuArray, iNumItems As Integer, strItem As String) As Integer
 Dim i As Integer
 Dim j As Integer
 Dim m As Menu
 Dim xMenu()
 
 'we use an array to store the menu information
 ReDim xMenu(iNumItems, 1) 'we need one extra placeholder
                           '(instead of iNumItems-1)
                           'so we can delete a double item
  
    'transfer menu to array
    For i = 1 To iNumItems
        Set m = mnuArray(i - 1)
        xMenu(i, 1) = m.Caption
    Next
    
    'now that we have the menu, let's add the new menu to the top
    xMenu(0, 0) = True: xMenu(0, 1) = strItem
    
    'remove double items
    For i = 1 To iNumItems
        'mark a double entry as false
        xMenu(i, 0) = (xMenu(i, 1) <> strItem)
    Next
    
    'we save the array back to the menu
    i = 0: j = 0
    While i <= iNumItems And j < iNumItems
        Set m = mnuArray(j)
        If xMenu(i, 0) And xMenu(i, 1) <> "" Then
            m.Caption = xMenu(i, 1)
            m.Visible = True
            j = j + 1
        Else
            m.Visible = False
        End If
        i = i + 1
    Wend
   AddMRU = j
End Function

Public Sub SaveMRUToReg(strSection, mnuArray, iNumItems As Integer)
 Dim i As Integer
 Dim m As Menu
 Dim strToSave As String
 Dim strSec As String

    strSec = "MRU\" & strSection
    For i = 0 To iNumItems - 1
        Set m = mnuArray(i)
        strToSave = m.Caption & "|" & IIf(m.Visible, "Y", "N")
        SaveSetting App.Title, strSec, "K" & Format(i, "00"), strToSave
    Next
End Sub

Public Sub LoadMRUFromReg(strSection, mnuArray, iNumItems As Integer)

 Dim aSettings As Variant
 Dim i As Integer
 Dim m As Menu
 Dim aData() As String
 Dim strData As String
 Dim strSec As String

On Error Resume Next
    
    strSec = "MRU\" & strSection
    ' Retrieve the settings.
    aSettings = GetAllSettings(App.Title, strSec)
    For i = 0 To iNumItems - 1
        Set m = mnuArray(i)
        strData = aSettings(i, 1)
        aData = Split(strData, "|")
        m.Caption = aData(0)
        m.Visible = IIf(aData(1) = "Y", True, False)
    Next
End Sub

Jij zult dus een dubbele waarde naar het regsiter moeten schrijven, één voor de naam, en één voor het adres. Succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan