1) Er det Text property på Text1 du forsøger at sætte ? Så skal du skrive Text1.Text = Label1.Top & Label1.Left Begge Controls skal selvfølgelig være at finde på din Form.
2) Lav din egen filelistbox, ved at tilføje filnavne til en listbox.
1) Det gør ingen forskel (og som standard forstår den alligevel text1 som text1.text (med mindre andet skrives)
2) Jeg er ikke lige helt med på, hvad du mener? Jeg kan godt få den til at kun vise de bestemte filer med patterne funktionen, men jeg kan ikke fjerne extension på filerne...
1. Jeg gætter på at du eller VB er kommet til at sætte "index"-property'en til et tal (sker hvis du lave copy-paste med kontroller). Fjern dette tal, så skulle det være klaret.
2. Det kan du ikke. Alternativet er at lave en listbox og så selv løbe filerne igennem. Det vil ikke være til at skelne fra en "rigtig" filliste.
2) Nu er sådan at i mit program har jeg lavet sådan at man via filelistboxen skal vælge navnet på den skin der skal bruges (hvorefter den så tager ind i mappen med samme navn...). Den eneste måde jeg kunne finde ud af, var at sige at den fil der skal vælges ikke har nogen extension (derved kan jeg ikke bruge pattern metoden). og eftersom at den ikke har nogen extension blev jeg nødt til at have mappen til skinfilerne skulle hedde S + filnavn (dvs. vis filen hed Default, skulle bibloteket hedde SDefault). Jeg kunne ikke finde nogen måde, hvordan jeg kunne tage filnavnet, smid det ind i en variabel hvor extension ikke står (dvs. vis filnavnet er Default.skn så skulle den kun skrive Default i variablen...
Jeg forstår dit problem således: Du vil indsætte nogle filer UDEN deres fileextention i en filelistbox.
Løsning: Du kan jo loope over alle filer i en mappe, og så smide deres filnavne (som jo er strings) ind i en listbox, hvor du så først fjerner extention fra hvert filnavn inden du indsætter dem - det er vist det ocp mener i sit svar 14:43:06 :o)
Ahh - det har ocp vist ligeherover 15:12:14 - det kunne jeg ikke se da jeg postede... Det er helt almindelig strengemanipulation. Kan du ikke lide løsningen fra ocp, kan du selv lave en med mid(), instr() og Left()
Gå til Project > References, og afkryds "Microsoft Scripting Runtime". Herefter kan du bruge FSO. Et eksempel, du kan bruge. Kærver, at du har en listbox (list1) på din form
Dim MyFolder As Folder Dim MyFolderFiles As Files Dim FSO As FileSystemObject Dim MyFile As File Dim ExtStart As Integer
Set FSO = CreateObject("Scripting.FileSystemObject") Set MyFolder = FSO.GetFolder("C:\test") '<- Ret denne linie til DIN folder Set MyFolderFiles = MyFolder.Files
For Each MyFile In MyFolderFiles ExtStart = InStr(1, MyFile.Name, ".") If ExtStart > 0 Then List1.AddItem Mid(MyFile.Name, 1, ExtStart) End If Next MyFile
Set MyFolderFiles = Nothing Set MyFolder = Nothing Set FSO = Nothing
Mid() og InStr() er nogle af de strengemanipulations-funktioner VB har indbygget. Nogle andre er Len(), Right(), Trim(), LTrim(), RTrim(). Læs de få linier der står om hver funktion i hjælpen - dem kommer du garanteret til at bruge fremover. Det er ofte super-praktisk at kunne ændre på en string, som i dette tilfælge, hvor du kun vil bruge en del af en string, nemlig alt det der står før et "." (det der står efter er en extention, du ville vil have med. koden virker på denne måde:
Der loopes over alle filer. For hver fil tjekkes filnavnet (MyFile.Name), som er en string:
1) Der søges efter "." i din string (der indeholder et filnavn) - og hvis "." er i din string, returneres positionen, målt fra venstre. Positionen gemmes i variablen ExsStart. Til dette bruges InStr()
2) Herefter smides venstre del af din string, til og med positionen hvor "." blev fundet, over i din list1. Resten af stringen (det til højre for "." kommer ikke med). Til dette bruges Mid()
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.