AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: VCL / WinForms / Controls Delphi einfacher Umgang mit der ValueList

einfacher Umgang mit der ValueList

Ein Thema von Tyler · begonnen am 23. Aug 2003
Antwort Antwort
Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#1

einfacher Umgang mit der ValueList

  Alt 23. Aug 2003, 19:57
Tja also, da ich dafür selber ne kleine Ewigkeit gebraucht hab, werd ich das einfach mal der breiten Masse vortragen, falls mal wieder jemand in der Misere steckt

An der Stelle ein Dankeschön an Onz, der mich im Endeffekt auf die Lösung gestossen hat

Also, mit Prozedur 1 lese ich aus 2 Edit-Feldern den String aus, und speichere ihn zuerst in einer ValueList, und zeitgleich in einer Ini-Datei. Man kann natürlich auch in die Registry schreiben, je nach belieben, am Code ändert sich dadurch nicht viel.

Die 2. Prozedur liest den Inhalt aus einer Ini-Datei (respektive der Registrierung) aus, um sie dann in der ValueList zu zeigen.

Und schlussendlich, Prozedur 3, das zeitgleiche Löschen eines Eintrages aus der ValueList und der Ini-Datei (respektive Registrierung).

Delphi-Quellcode:
// PROZEDURE 1: SPEICHERN

// Nur dann, wenn die Edit-Felder überhaupt Text enthalten
if (Edit1.Text <>'') AND (Edit2.Text <> '') then
begin
  // Zuerst die Value-List mit den Werten füllen, das True am Ende
  // steht für "Anhängen", hätte ich hier ein False, und würde der
  // Wert aus Edit1 schon existieren, würde der zugehörige Value
  // von Edit1 mit dem neuen Inhalt von Edit2 überschrieben werden
  ValueList.InsertRow(Edit1.Text,Edit2.Text, True);

  //Edit-Felder zurücksetzen
  Edit1.Text := '';
  Edit2.Text := '';

  //festlegen, in welche Datei wir schreiben
  ini := TIniFile.Create('.\connections.ini');

  // Schleife, um alle Werte der Value-List in die Ini zu schreiben
  // warum for i := 1? Bei Null würde auch der Tabellenkopf mit
  // mit gespeichert werden!
  for i := 1 to (ValueList.RowCount - 1) do
  begin
    // Zuerst den Key, logisch, und dann den dazugehörigen Wert,
    // den wir leider nicht über den Index sondern über den
    // Key direkt rausfinden!
    ini.WriteString('Sektion1', ValueList.Keys[i],
                     ValueList.Values[ValueList.Keys[i]]);
  end;
  ini.Free;
end;
// Fertig :)
Delphi-Quellcode:
// Prozedure 2: Aus INI laden:

  //Der Einfachheit halber arbeiten wir hier mit ner Stringlist:
  Sections := TStringList.Create;
  ini := TIniFile.Create('.\connections.ini');

  // Zuerst weisen wir der Stringlist die Key´s zu, danach
  // können wir die Werte aus der INI auslesen und den entsprechenden
  // Key´s in der StringList zuordnen
  ini.ReadSection(Sektion1, Sections);
  ini.ReadSectionValues('Sektion1', Sections);

  // Dann mal wieder n Schleife, um die Werte aus der StringList
  // in die ValueList zu übernehmen
  for i := 0 to Sections.Count - 1 do
      
     // Hierzu kann ich nicht viel sagen, einfach abtippen, verstehen
     // muss man es einfach selber :)
    ValueList.InsertRow(Sections.Names[i], Sections.Values[Sections.Names[i]], True);

  ini.Free;
  Sections.Free;
// und das war der Ladervorgang
Delphi-Quellcode:
// Prozedure 3: Das Löschen

  // hier brauch man glaub ich nicht viel erklären, hier wird einfach
  // der Wert aus der Ini gelöscht, der im Moment in der ValueList
  // markiert ist
  ini := TIniFile.Create('.\connections.ini');
  ini.DeleteKey('Connections', ValueList.Keys[ValueList.Row] );
  ini.Free;
  
  // Und erst danach können wir den Wert selber auch aus der
  // Valuelist entfernen
  Connections.DeleteRow(Connections.Row);

// und fertich :)
Sodele, ich hoffe das war nicht zu umständlich beschrieben und einigermaßen verständlich.
Das ganze ist vielleicht nicht unbedingt das Ei des Kolumbus' und ein
Prof in Delphi zaubert sowas in Sekunden hin, aber ich kann nur von mir ausgehen: Mir hätte sowas 12 Stunden Recherche erspart und ich denke
einem Delphi-Anfänger der die gleiche Frage hat bleibt auch eine Menge Arbeit erspart!

mit freundlichen Grüßen
tyler

-- Fragen? Fragen! --

[edit=Matze]Code formatiert. Mfg, Matze[/edit]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz