Avatar billede stry Nybegynder
12. oktober 2003 - 12:47 Der er 18 kommentarer og
2 løsninger

txt-filer som menupunkter

Hvordan får jeg vist alle .txt-filer i en bestemt mappe som menupunkter i mit program.

Håber at spørgsmålet er forståeligt ellers uddyber jeg gerne.

På forhånd tak :-)
Avatar billede joern Nybegynder
12. oktober 2003 - 12:55 #1
Hej.

Det lyder ikke så velovervejet, hvad hvis der er flere hundrede?

Når en bruger skal kunne vælge en bestemt fil er en filelist (eller listeboks) det bedste, synes jeg.

M.v.h. Jørn
Avatar billede nmh Nybegynder
12. oktober 2003 - 12:55 #2
Er det meningen, at man så efterfølgende skal kunne åbne tekstfilerne?
Du kan jo bruge Common Dialog, hvor du så får vist en sædvanlig filmenu.
Avatar billede nmh Nybegynder
12. oktober 2003 - 12:57 #3
Her kan du sætte et  filter, så det kun er filer af typen *.txt, der vises.
Avatar billede stry Nybegynder
12. oktober 2003 - 13:00 #4
Tak for jeres formentligt velmente råd, men det var dybest set ikke det jeg efterspurgte :-D

>>nmh
Filer skal efterfølgende indlæse nogle værdier i mit program.
Avatar billede stry Nybegynder
12. oktober 2003 - 13:01 #5
Er der nogen der har et bud på det oprindelige spørgsmål.
Avatar billede nmh Nybegynder
12. oktober 2003 - 13:22 #6
Ønsker du et sædvanligt menusystem, som det man pljer at lave i VB?
Dette menusystem skal ændre sig dynamisk afhængig af hvilke txt.filer du nu har liggende?

Kunne du ikke uddybe spøgsmålet lidt?
Avatar billede nmh Nybegynder
12. oktober 2003 - 13:22 #7
ups: pljer-->plejer spøgsmålet -->spørgsmålet
Avatar billede stry Nybegynder
12. oktober 2003 - 13:28 #8
Ja, et sædvanligt menusystem, der ændrer sig dynamisk :-))

Jeg ønsker et menupunkt der hedder "Filer". Underpunkterne til dette skal være alle txt-filer der ligger i mappen "E:\klip".
Faktisk lidt ala "senest åbnede filer" i div. office-prog.
Avatar billede stry Nybegynder
12. oktober 2003 - 13:38 #9
Jeg kan godt finde ud af at filtrere så det kun er txt-filer jeg "finder", det er den dynamiske ændring af menu'en der volder problemmer.
Avatar billede nmh Nybegynder
12. oktober 2003 - 13:57 #10
Jeg kan ikke finde på andet end en listbox. Den kan man jo ændre under kørslen, så ny filnavne kan tilføjes.Så vil du da få en nydelig liste af txt-filnavne, som man kan vælge og så få det ønskede til at ske.
Avatar billede joern Nybegynder
12. oktober 2003 - 14:25 #11
Hej.

Jeg har forstået at stry VIL have en menu, så jeg kigger i 10 min. på om jeg kan finde på noget.  Selv ville jeg dog ikke anvende en sådan udformning.
'Senest åbnede filer' kan indlæses fra registry eller fra en ini-fil.

M.v.h. Jørn
Avatar billede joern Nybegynder
12. oktober 2003 - 14:38 #12
Via Google har jeg fundet dette eksempel, som jeg nu kigger på.  Der var ellers mange med .NET, men stry har ikke omtalt hvilken version han arbejder med.  Jeg bruger selv VB5.

http://www.geocities.com/coding1984/old/vb/dynamicmenu.zip

M.v.h.  Jørn
Avatar billede stry Nybegynder
12. oktober 2003 - 14:40 #13
VB6

Jeg kigger også lige på det :-D
Avatar billede joern Nybegynder
12. oktober 2003 - 15:02 #14
Hej.

Projektet nævnt ovenfor kunne ikke åbnes med VB5 :-(

I VB5's Book Online står nedenstående.  Jeg kan ud fra det godt lave en menu der skifter tekster, men der skal i forvejen være så mange punkter med 'blank' tekst, som jeg ønsker at anvende.  De som ikke udfyldes, kan vel ret let gøres skjulte.

Private Sub Command1_Click()
  mnutekst(a).Caption = a & "  Tekst.txt"
  a = a + 1
End Sub



Det som sker når et punkt vælges skal så være det samme, blot med en ny variabel.  Ellers er ideen med et array vel helt tabt.

To create a menu control array in the Menu Editor
1.    Select the form.
2.    From the Tools menu, choose Menu Editor.
? or ?
Click the Menu Editor button on the toolbar.
3.    In the Caption text box, type the text for the first menu title that you want to appear on the menu bar.
The menu title text is displayed in the menu control list box.
4.    In the Name text box, type the name that you will use to refer to the menu control in code. Leave the Index box empty.
5.    At the next indentation level, create the menu item that will become the first element in the array by setting its Caption and Name.
6.    Set the Index for the first element in the array to 0.
7.    Create a second menu item at the same level of indentation as the first.
8.    Set the Name of the second element to the same as the first element and set its Index to 1.
9.    Repeat steps 5 ? 8 for subsequent elements of the array.
   
Important  Elements of a menu control array must be contiguous in the menu control list box and must be at the same level of indentation. When you're creating menu control arrays, be sure to include any separator bars that appear on the menu.

M.v.h.  Jørn
Avatar billede joern Nybegynder
12. oktober 2003 - 15:06 #15
Hej

menupunkterne - 5 stk. er gjort invisible, det første tillades det dog ikke ved.

Private Sub Command1_Click()
  If a > 4 Then Exit Sub
  mnutekst(a).Caption = a & "  Tekst.txt"
  mnutekst(a).Visible = True
  a = a + 1
End Sub

M.v.h. Jørn
Avatar billede stry Nybegynder
12. oktober 2003 - 17:34 #16
Har selv løst den med følgende:

For Each oFile In oFolder.Files
If InStr(1, oFile.Name, ".") <> 0 Then
    sFileParts() = Split(oFile.Name, ".")
    If LCase(sFileParts(UBound(sFileParts()))) = "txt" Then
      'cmbFiles.AddItem oFile.Name
      Filer(i) = oFile.Name
   
      Load subFiler(i + 1)
    subFiler(i + 1).Caption = Filer(i)
    'subFiler(i).Visible = True
    'Debug.Print i
      'Debug.Print Filer(i)
      i = i + 1
          'Debug.Print i

      End If
End If
Next oFile
subFiler(0).Visible = False
Avatar billede joern Nybegynder
12. oktober 2003 - 18:49 #17
Hej.

Kunne du undgå at oprette menupunkter i forvejen som 'tomme'?

M.v.h.  Jørn
Avatar billede stry Nybegynder
12. oktober 2003 - 19:14 #18
Ja, jeg opretter kun et underpunkt i design-time, subFiler(0), og det skjuler jeg så i run-time.
Avatar billede martin_moth Mester
13. oktober 2003 - 12:53 #19
Skal du ikke lukke?
Avatar billede stry Nybegynder
13. oktober 2003 - 16:40 #20
Jo, jeg deler med Jørn som skal ha' lidt for indsatsen :-)
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