Einzelnen Beitrag anzeigen

Benutzerbild von xShadowBoZz
xShadowBoZz

Registriert seit: 19. Jan 2008
Ort: Deutschland ~.~
80 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: ListBox mit .ini und noch einiges.

  Alt 17. Jul 2008, 14:08
ok danke erstmal hat mir schon geholfen, vorallem des 'ini.ReadSections(ListBox1.Items);' hab diese funktion nähmlich erst nicht verstanden aber momentan benutze ich sie.

ich zeig euch erstmal was ich sozusagen gebastelt habe.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject); //Buttonclick erstellt neuen eintrag in ini-file
var ini:Tinifile; // var, versteht sich von selbst.
begin //...
  Ini:=TIniFile.Create('D:\data.ini'); //ini-file in D: namens data.ini, wird erstellt falls noch nicht vorhanden
    try
      Ini.WriteString(Edit1.Text,'Path','C:\Dokumente und Einstellungen\Andreas\Desktop\'+Edit1.Text+'.fdb');
//Schreibe String: Sectionname = Edit1.Text(dateiname-wunschname); Eigenschaft=Path; Daten von Path=Pfad+Wunschdateiname +.fdb endung (kann man mit Editor öffnen)
      Ini.ReadSections(ListBox1.Items); //Aktualisiert die LIstBox ^^
    finally
  ini.Free;
end;
end;
ist jetzt ein wenig 'abgespeckt' werde dazu noch was schreiben (ist net schwierig) was den Text von Memo1 in die 'datei' reinschreibt.
Dazu werd ich den code:
      Ini.ReadSections(ListBox1.Items); //Aktualisiert die LIstBox ^^ in Form1 OnActivate nochmal reinkopieren.
Bis hier funktioniert noch alles gut aber ich habe noch ein Problem.

Ich will ja das der Text der datei in ein Memo per OnClick/OnKeyUp/etc der ListBox geladen wird.
Sonst habe ich das immer so gemacht:
Beispiel ist mit OnClick:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
begin
If ListBox1.Selected[ZAHL] then
Memo1.Lines.LoadFromFile('PfadDerDatei');
If ListBox1.Selected[AndereZAHL] then
Memo1.Lines.LoadFromFile('PfadZurAnderenDatei');
....
end;
Nur wenn ich einen neuen Eintrag erstelle kann ich doch nicht einfach 'eine neue Zeile' hinzufügen.
Damit meine ich das ich nicht einfach das
If ListBox1.Selected[AndereZAHL] then
Memo1.Lines.LoadFromFile('PfadZurAnderenDatei');
einfach so in das Program '(r)einfügen' kann.

Also brauche ich irgendeine Funktion die sagt
Delphi-Quellcode:
If ListBox1.Selected[SectionName in der .ini File] then
Memo1.Lines.LoadFromFile(ListBox1.Selected[SectionName in der .ini File.ReadString(ListBox1.Selected[...],'Path','-')]);
Das Funktioniert natürlich nicht.
Aber hierzu ma die erklärung:

Der ausgewählte name in der ListBox (ListBox1.Selected[...]) ist zugleich der Name der Section in der .ini File.
Dann wird in die Memo1 die Daten der Eigenschaft der Section geladen (das hier ist dann der Pfad, falls nichts vorhanden wird jetzt in diesem Fall '-' geladen, was natürlich net geht).

hmm ist glaub ich ein bisschen schwer zu verstehen, aber ich hoffe hier kapiert es einiger maßen ^^

kurz gesagt:
Ich brauch eine Funktion die ich in ein Ereigniss der LIstBox einbauen kann, die bewirkt das beim anklicken/markieren eines Items der ListBox der dazugehörige Text in die Memo geladen wird.

MfG
Andreas
  Mit Zitat antworten Zitat