12. oktober 2002 - 10:56Der er
46 kommentarer og 1 løsning
2 spørgsmål til delphi
1. Jeg har en open dialogbox og en listbox. Der vil jeg ger have at jeg kan åbne en fil og så ligge den ind i en listbox. Det skal bare være sådan at man kan se filnavnet. Eks. jeg har en fil der ligger i c:\musik\test.mp3 og så når jeg vælger den ligger den test over i listboxen. Det skal så være sådan at jeg kan ligge hele filnavnet over i en mplayer senere, ved at klikke på den og så trykke på en knap.
2. Hvordan gemmer jeg listboxens indhold i en ini fil? Det skal være sådan at når man tilføjer et nummer til listboxen så er den der næste gang man starter programmet.
type TMusikFil = class(TObject) Filename: string; Filelocation: string; end;
//Open ny fil var mp3: TMusikFil; begin if opendialog1.execute then begin mp3 := TMusikFil.create; mp3.filename := extractfilename(opendialog1.filename); mp3.Filelocation :=opendialog1.filename; ListBox1.Items.AddObject(MP3.Filename, MP3) end; end;
//Når der skal playes var mp3: TMusikFil; begin mp3 := Pointer(Listbox1.Items.Objects[Listbox1.ItemIndex]); // medieplayer.filename := mp3.filename; end;
det er den du har skrevet 12/10-2002 11:42:53. Jeg tror også jeg er ovre det problem, for nu når jeg trykker på play skriver den "no MCI device open" Hvad er det så
Yes så virker det. Og det der "list index out of bounds (-1)" Det er hvis man ikke har valgt en fil i listen. Kan man ikke sætte den til at give en besked hvis der ikke er markeret nogen fil?
ok. Jeg smider lige nogle flere points i til dig hvis du kan hjælpe mig med hvordan man bruger spol fre og tilbage knaperne, sådan at når jeg trykker på en knap så skifter den til næste sang.
//Tilbage Knap if Listbox1.ItemIndex = 0 then exit; Listbox1.ItemIndex := Listbox1.ItemIndex-1; try MediaPlayer1.stop; except end; Play.Click;//Kører koden fra sidst
//Next Knap if Listbox1.ItemIndex = Listbox1.items.count then exit; Listbox1.ItemIndex := Listbox1.ItemIndex+1; try MediaPlayer1.stop; except end; Play.Click;//Kører koden fra sidst
Hvor helt nøjagtig skal Procedure Form1.PlaySelected; var mp3: TMusikFil; begin if Listbox1.ItemIndex = -1 then exit; mp3 := Pointer(Listbox1.Items.Objects[Listbox1.ItemIndex]); try MediaPlayer1.stop; except end; MediaPlayer1.Filename := mp3.Filelocation; MediaPlayer1.DeviceType := dtAutoSelect; MediaPlayer1.Open; MediaPlayer1.Play; end;
//Gem var ini : TInifile; i:integer; mp3: TMusikFil; begin ini := Tinifile.create(extractfilepath(application.exename)+'settings.ini');
For i := 0 to listbox1.items.count-1 do begin mp3 := Pointer(Listbox1.Items.Objects[I]); ini.writestring('LIST', inttostr(I), mp3.Filelocation); end; ini.free; end;
//Load var ini:tinifile; st:tstringlist; i:integer; mp3: TMusikFil; begin ini := Tinifile.create(extractfilepath(application.exename)+'settings.ini'); st:=tstringlist.Create; ini.ReadSectionValues('LIST', st); for i := 0 to st.count-1 do begin mp3 := TMusikFil.create; mp3.filename := extractfilename(st.lines[I]); mp3.Filelocation :=st.lines[I]; ListBox1.Items.AddObject(MP3.Filename, MP3); end; end;
Nu er den ligepludselig begyndt at sige "der opstod en fejl under initialiseringen af MCI" Hvad er der galt der? Jeg har tjækket at koden er som den skal være og det vil jeg mener den er.
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.