lige nu bruger jeg: IniFile:= TInifile.create(ExtractFilePath(ParamStr(0))+'gamecontrole2.ini'); try IniFile.ReadSectionValues('List',FlatListBox1.Items); finally IniFile.Free; end; i onload og: ShellExecute(Handle,'open',PChar( FlatListBox1.Items.Values[FlatListBox1.Items.names[FlatListBox1.ItemIndex]]),pchar(''),pchar(''),SW_SHOWNORMAL); I knappens onclick
var ini:tinifile; st:Tstringlist; i:integer; begin st := Tstringlist.Create; IniFile:= TInifile.create(ExtractFilePath(ParamStr(0))+'gamecontrole2.ini'); try IniFile.ReadSectionValues('List',st); for I := 0 to st.count-1 do FlatListBox1.Items.add( st.Values[I]); finally IniFile.Free; St.free; end; end;
Lige to ting til: 1. Kan man godt give section en anden måde end 0, 1, 2, 3 osv. alså nu ser min inifil sådan her ud:
[List] 0=dfsdfsd 1=sdfsdf osv.
Kan man ikke få den til at se sådan her ud?
[List] hej=dsfsdfsdf dav=dfssdf osv.
2. cooljay kan man ikke ændre din kode så den tager sectionen i stedet for value, og at den også virker på samme måde?? Alså kun hvis 1'eren kan lade sig gøre.
Som jeg svarede på et tidligere spørgsmål: ini filer og listbox ... Du skal blot have en tstringlist med indholdet af ini-filen og så nøjes med at vise navnet (tstringlist.names) i listboksen. Så kan slå programmet op i din egen tstringlist på navnet...
procedure TForm1.FormCreate(Sender: TObject); var IniFile: TInifile; i: integer; begin st := TStringList.Create; IniFile := TInifile.create('c:\my.ini'); try IniFile.ReadSectionValues('List', st); finally IniFile.Free; end; for i := 0 to st.Count - 1 do ListBox1.Items.Add(st.names[i]); end;
procedure TForm1.FormDestroy(Sender: TObject); begin st.free; end;
procedure TForm1.ListBox1DblClick(Sender: TObject); var st:Tstringlist; begin ShellExecute(Handle, 'open', PChar(st.Values[FlatListBox1.Items[FlatListBox1.ItemIndex]]), pchar(''), pchar(''), SW_SHOWNORMAL); end;
og
procedure TForm1.FormCreate(Sender: TObject); var IniFile: TInifile; i: integer; st:Tstringlist; begin st := TStringList.Create; IniFile := TInifile.create('c:\my.ini'); try IniFile.ReadSectionValues('List', st); finally IniFile.Free; end; for i := 0 to st.Count - 1 do ListBox1.Items.Add(st.names[i]); end;
procedure TForm1.FormDestroy(Sender: TObject); begin st.free; end;
Men den kommer med en fejl når jeg dblklikker på listboxen:
cooljay2000 >> Jeg får et "lille" problem. Det virker godt nok men, man skal genstarte programmet, ellers så når man starter aplicationen går den bare til den mappe hvor exe filen ligger. Kan man ikke gøre noget så man er fri for at genstarte programmet??
Synes godt om
Ny brugerNybegynder
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.