Avatar billede blueice Nybegynder
18. maj 2005 - 19:12 Der er 14 kommentarer og
1 løsning

Forrige mappe

Jeg har en Dirlist (Dir1) jeg vil gerne have den sidst valgte mappe i en steng ? kan man det?
Avatar billede sjh Nybegynder
18. maj 2005 - 21:22 #1
Option Explicit

Private strPath As String

Private Sub Dir1_Click()
  If strPath <> "" Then
    MsgBox strPath
  End If
  strPath = Dir1.List(Dir1.ListIndex)
End Sub
Avatar billede sjh Nybegynder
18. maj 2005 - 21:26 #2
det er altså "Forrige mappe" som kommer ud her:

  If strPath <> "" Then
    MsgBox strPath
  End If
Avatar billede martin_moth Mester
19. maj 2005 - 07:45 #3
Eller bare

  If Dir1.ListCount > 0 Then
  MsgBox Dir1.List(Dir1.ListCount - 1)
  End If
Avatar billede blueice Nybegynder
19. maj 2005 - 08:57 #4
Det er ikke mappen før altså roden til mappen men den sidst valgte mappe

eks
Valg:    C:\test
Nyt valg C:\abemand\
Avatar billede martin_moth Mester
19. maj 2005 - 09:04 #5
Sorry - så ikke at det var "sidst valgte".

Hvordan "vælges" en mappe?

Du kan jo skrive listindex for mapperne løbende, fx. i et array, og derved finde frem tid sidst eller forrige eller den mappe der blev valgt for 27 gange siden
Avatar billede blueice Nybegynder
19. maj 2005 - 09:16 #6
Jeg har en dirliste, som starter i mappen C:\test\

Herfra kan man vælge den mappe man nu vil (på normal dirliste måde) + jeg har en genvejs knap som skifter mappe direkte til C:\test2\

Skal jeg sende min kode...???
Avatar billede martin_moth Mester
19. maj 2005 - 12:30 #7
Nej, du skal ikke sende noget.

Jeg kan ikek se hvad det du skriver har med spørgsmålet at gøre
Avatar billede blueice Nybegynder
19. maj 2005 - 13:40 #8
Lige meget så...
Lukker spørgsmålet
Avatar billede sjh Nybegynder
19. maj 2005 - 17:35 #9
Hvad er nu det her for noget.. vi prøver på at hjælpe dig, og så lukker du bare.. det er altså ikke på den måde man for svar på sine problemer..

Den kode jeg har sendt til dig den viser da den "Forrige valgte mappe".. lad os nu sige at det var nogle lotto tal der skulle vælges:

21, 14, 8, 30, 28

Da jeg valget tallet 30 var det 8 som var det "Forrige" tal..

Det er sådan min kode gør den viser den "Forrige valgte mappe".. men første gang du trykker på en mappe så sker der jo ikke noget, da computeren ikke kan vide hvad det valgte tal er.

Du har også fået svar her: http://www.eksperten.dk/spm/612121
Avatar billede sjh Nybegynder
19. maj 2005 - 17:37 #10
-> da computeren ikke kan vide hvad den valgte mappe er.
Avatar billede blueice Nybegynder
19. maj 2005 - 22:32 #11
shj > min tålmodighed løb af med mig :\

Jeg kan sagtens følge dit eksempel med 21, 14, 8, 30, 28

8 --> 30
Hvor forige tal er 8, men hvad hvis jeg nu også gerne vil have 14..

Skriver lige min kode

<---Form1--->
Indhold i form1: Dir1, File1, text1, command1, og command2

Option Explicit
Private strPath As String

Private Sub Command1_Click()
    'Skift Fil listen til skjultmappe
    File1.Path = "C:\test2\"
    Dir1.Path = "C:\test2\"
End Sub

Private Sub Command2_Click()
Dir1.Path = Text1.Text
File1.Path = Text1.Text
MsgBox (strPath)
End Sub


Private Sub Dir1_Change()
'Forrige mappe
'Flyttede sjhs forslag til Dir1_Change() i stedet for Dir1_Click()
If strPath <> "" Then
  Text1.Text = strPath
  End If
  strPath = Dir1.List(Dir1.ListIndex)
 
    File1.Path = Dir1.Path
End Sub


Private Sub Form_Load()
    'Knap Tekst
    Command1.Caption = "INDHOLD AF DEN SKJULT MAPPE"
    Command2.Caption = "Sidst Valgte mappe"

    'Mapper
    Dir1.Path = "C:\test\"
    File1.Path = Dir1.Path
End Sub

'</---form1---/>

Eks
    Mappe valg:
                C:\test -> C:\ -> C:\programmer

Det går fint nok første gang jeg klikker på comannd2, så kommer jeg tilbage til C:\
Men næste gang jeg klikker kommer jeg til C:\programmer\ igen og ikke til C:\test\
Det er her problemmet er :D

Håber det giver lidt mere mening nu...

Kan man åbne spøgrsmålet igen?? Hvem end der så kan løse det skal nok få points'ne
Avatar billede sjh Nybegynder
19. maj 2005 - 23:48 #12
så må det være noget i den stil..

' --------------------------- Form1 ---------------------------
' Husk 2 CommandButton (cmdBack og cmdForward) + Dir1
Option Explicit

Private arrPath() As String
Private intPath  As Integer
Private intCount  As Integer
Private blnChange As Boolean

Private Sub cmdBack_Click()
  intCount = intCount - 1
  If intCount < 0 Then
    intCount = 0
  End If
  blnChange = False
  Dir1.Path = arrPath(intCount)
  blnChange = True
End Sub

Private Sub cmdForward_Click()
  intCount = intCount + 1
  If intCount > UBound(arrPath) Then
    intCount = UBound(arrPath)
  End If
  blnChange = False
  Dir1.Path = arrPath(intCount)
  blnChange = True
End Sub

Private Sub Dir1_Change()
Dim strPath As String
  If blnChange = True Then
    strPath = Dir1.List(Dir1.ListIndex)
    intPath = UBound(arrPath) + 1
    ReDim Preserve arrPath(intPath) As String
    arrPath(intPath) = strPath
    intCount = UBound(arrPath)
  End If
End Sub

Private Sub Form_Load()
  ReDim arrPath(0) As String
  arrPath(0) = Dir1.Path
  blnChange = True
  cmdBack.Caption = "<- Back"
  cmdForward.Caption = "Forward ->"
End Sub
' --------------------------- Form1 ---------------------------

Nej du kan ikke åbne spøgrsmålet igen.. du må oprette et nyt..
Avatar billede sjh Nybegynder
19. maj 2005 - 23:58 #13
na.. hvis det skal være på samme måde som Windows så må det være sådan:

Private Sub Dir1_Change()
Dim strPath As String
  If blnChange = True Then
    strPath = Dir1.List(Dir1.ListIndex)
    intPath = intCount + 1 ' UBound(arrPath) + 1
    ReDim Preserve arrPath(intPath) As String
    arrPath(intPath) = strPath
    intCount = UBound(arrPath)
  End If
End Sub
Avatar billede blueice Nybegynder
20. maj 2005 - 09:51 #14
Perfekt...
opretter et spørgsmål med titlen så du kan få dine points
Point til sjh (http://www.eksperten.dk/spm/618789)
Avatar billede blueice Nybegynder
20. maj 2005 - 11:17 #15
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester