Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie geht's: Ini - Section in ComboBox ? (https://www.delphipraxis.net/36168-wie-gehts-ini-section-combobox.html)

DannyK.II 16. Dez 2004 18:25


Wie geht's: Ini - Section in ComboBox ?
 
Tag, DPler, ich hab mal wieder ne frage! :dp:

mittlerweile habe ich es ja hinbekomemn, diverse daten in einer ini datei zu speichern und wieder löschen zu können.

Delphi-Quellcode:
// KUNDEN EINTRAGEN (IN DATA.INI)
procedure TForm1.Button1Click(Sender: TObject);
begin
vname := edit1.Text; nname := edit2.Text; strasse := edit3.Text;
anrede := combobox2.Text; plz := edit5.Text; ort := edit4.Text;
mail := edit6.Text; block := vname+' '+nname;
  try
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'data.ini');
  ini.writestring(block,'vname',vname);
  ini.writestring(block,'nname',nname);
  ini.writestring(block,'anrede',anrede);
  ini.writestring(block,'strasse',strasse);
  ini.writestring(block,'plz',plz);
  ini.writestring(block,'ort',ort);
  ini.writestring(block,'mail',mail);
  showmessage('Kunde erfolgreich eingetragen!');
  finally
  ini.free;
  end;
end;

// KUNDEN LÖSCHEN (AUS DATA.INI)
procedure TForm1.Button11Click(Sender: TObject);
begin
vname := edit1.Text; nname := edit2.Text; block := vname+' '+nname;
IF MessageDlg('Soll der Kunde wirklich gelöscht werden?',
  mtConfirmation,[mbyes, mbno],0) = mryes THEN
  try
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'data.ini');
  ini.EraseSection(block);
  finally
  ini.free;
  end;
end;
es soll jetzt folgendermaßen weitergehen:

in einer combobox sollen die überschriften der section (in der variable "block") als namen dargestellt werden. wenn ich sie nun auswähle, sollen die einzelnen werte in die entsprechenden edits geladen werden!

das laden in die textfelder ist kein problem! aber wie bekomme ich die variable "block" in die combobox, und rufe dann die entsprechenden einträge aus der ini auf???

vielen danks chonaml im vorraus.... :-)

Aenogym 16. Dez 2004 18:27

Re: Wie geht's: Ini - Section in ComboBox ?
 
hi,

Delphi-Referenz durchsuchenIni.ReadSections ;)

Aenogym

Luckie 16. Dez 2004 18:27

Re: Wie geht's: Ini - Section in ComboBox ?
 
Steht alles in der Hilfe: Delphi-Referenz durchsuchenTIniFile.ReadSections.

Hansa 16. Dez 2004 18:29

Re: Wie geht's: Ini - Section in ComboBox ?
 
Das sieht doch jetzt stark nach einer Datenbank-Application aus. Ich befürchte, daß das mit den Ini-Dateien mittelfristig nicht zum Erfolg führt. 8) Das sind eben nur Textdateien, sonst nichts.

DannyK.II 16. Dez 2004 18:30

Re: Wie geht's: Ini - Section in ComboBox ?
 
der umgang mit der ini sollte nicht das problem sein, aber wie bekomme ich "block" in die combobox, und speicher die einzelnen leutchen dann auchnoch dauerthaft in der ini

(sorry, wenn die frage -mal wieder- blöd is, aber das muss jetzt einfach sein) ;-)

[edit] da fällt mir ein, ich hab vergessen, beim speichern der ini muss das ganze ja sofort auch in die combobox!! (mist!) :? [/edit]

Aenogym 16. Dez 2004 18:33

Re: Wie geht's: Ini - Section in ComboBox ?
 
kannst du "block" mal genauer definieren?

Aenogym

edit: wenn du mit Block eine Section meinst (in der Ini die teile in den eckigen klammern []), dann hilft dir, wie von mir und Luckie besagt Delphi-Referenz durchsuchenTIniFile.ReadSections.

Luckie 16. Dez 2004 18:37

Re: Wie geht's: Ini - Section in ComboBox ?
 
Du willst doch die Sektionen in eine Kombobox bekommen oder? Und genau das macht TIniFile.ReadSections.

DannyK.II 16. Dez 2004 18:38

Re: Wie geht's: Ini - Section in ComboBox ?
 
is schon richtig, mit "block" (das ist quasi vorname + nachname einer person (block := nname+vname) /steht irgentwo oben im qt) hab ich ja auch kein prob!

aber: wie mach ich das mit der blöden combobox! die variable muss ja auch dort quasi gespeichert werden und nachher wieder abrufbar sein (muss dann auch inenr ini stehen, was da alles für namen in der box sind, argh)

aber nett, dass ihr euch um mich bemüht ^^ :dp: :dp: :dp:

Luckie 16. Dez 2004 18:40

Re: Wie geht's: Ini - Section in ComboBox ?
 
TOMMY!!!, komm mal mit deiner Glaskugel. ich verstehge nur banhof. :gruebel:

DannyK.II 16. Dez 2004 18:43

Re: Wie geht's: Ini - Section in ComboBox ?
 
lol :-)

es geht mir nicht um den qt im bezug auf das lesen der section..

ich muss nur die vorhandenen dinger (namen der sections) in die box bekommen, hab aber keine ahnung, wie ich das anstellen soll! quasi:

ini.readsections und speicher als combobox.elelemt!!!


asoooo, warte, kann ich die einfach zu combobox1.items hinzufügen?!

[edit] also: lese alle sections und speichere deren namen für jede einzeln als item einer combobox[/edit]

Aenogym 16. Dez 2004 18:46

Re: Wie geht's: Ini - Section in ComboBox ?
 
AAAAALSO,

ich hab grad gute laune, deswegen werd ich ein beispiel schreiben (aus dem kopf, nicht getestet):

Delphi-Quellcode:
//sections ("blöcke") in combobox lesen
ini.ReadSections(combobox1.items);

//.........

procedure TForm1.Combobox1Change(sende: TObject);
begin
  //beim auswählen eines eintrags aus der combobox, jeweilige daten laden
  with ini do
  begin
    edit1.text := readstring(combobox1.items[combobox1.itemindex], 'Vorname', '');
    edit2.text := readstring(combobox1.items[combobox1.itemindex], 'Nachname', '');
    //...
  end;
end;
hilft dir das?

edit: ja, das sollte dir helfen, wenn ich deinen post vor diesem richtig interpretiere ;)

Aenogym

DannyK.II 16. Dez 2004 18:48

Re: Wie geht's: Ini - Section in ComboBox ?
 
da bin ich ja froh, dass du gute laune hast (bald nichtmehr :? )

danke, das hilft schon! nur dass esbei mir halt die namen der section, udn nicht die einzelnen elemente wären..

aber danke schonmal :dp:

EDIT

quatsch, vertan: das hilft sogar prima!!! (hatte was falsch gelesen << das auchnoch! ;-) )

VIELEND ANK FÜR EURE GEDULD! :roll:

Aenogym 16. Dez 2004 18:50

Re: Wie geht's: Ini - Section in ComboBox ?
 
Zitat:

Zitat von DannyK.II
(bald nichtmehr :? )

da könntest du recht haben...

drücke dich doch mal bitte klar und schritt für schritt sortiert aus, WAS du machen willst!
dann könnten wir dir leichter helfen.

also: Was soll dein programm machen? was hast du schon (bezüglich des problems)? wo liegt dein problem genau?

edit: Na endlich :D

Aenogym

tommie-lie 16. Dez 2004 19:03

Re: Wie geht's: Ini - Section in ComboBox ?
 
Zitat:

Zitat von Luckie
TOMMY!!!, komm mal mit deiner Glaskugel. ich verstehge nur banhof. :gruebel:

Stets zu Diensten :mrgreen::
Frage:
Ich habe eine INI-Datei mit mehreren Sections. In meinem Programm habe ich eine ComboBox, in dieser sollen alle diese Sections angezeigt werden. Wenn der Anwender in der ComboBox einen der Sections auswählt, dann sollen automatisch die richtigen Daten aus der korrespondierenden Section angezeigt werden.

Antwort:
ReadSections möchte ein TStrings-Objekt, in das sämtliche Sektionsnamen der INI-Datei kommen sollen. Die ComboBox speichert die anzuzeigenden Einträge ebenfalls in einem TStrings-Objekt, namentlich das Property "Items" der TComboBox-Klasse. Mit dem einfachen Aufruf
Delphi-Quellcode:
MeinINIFile.ReadSections(MeineComboBox.Items);
hat man dann in der Combobox sämtliche Sektionen der INI-Datei, also sämtliche vorher eingetragenen "block"-Variablen.
Des Weiteren hat die ComboBox ein OnChange-Event, das aufgerufen wird, sobald der Benutzer einen Eintrag für die ComboBox ausgewählt hat. Über das Property "Text" der ComboBox kommt man innerhalb dieses Events an den Text in der ComboBox, ergo die ausgewählte Sektion ran. Und diesen String kann man für TINIFile.ReadXXX() benutzen, um aus dieser Sektion die Daten zu holen.
Obigen Befehl führt man z.B. jedesmal aus, nachdem man die INI-Datei geändert hat, dann sind die in der ComboBox angezeigten Einträge immer aktuell.



Wenn's das auch nicht war, versagt selbst meine glasige Intuition und man bräuchte eine genauere Fragestellung.



P.S.: Es heißt tommie http://dpchat.dpexperte.de/smileys/icon_mecker.gif :mrgreen:



Edit: Oh mann, hab' ich lange gebraucht... :oops:

DannyK.II 16. Dez 2004 19:10

Re: Wie geht's: Ini - Section in ComboBox ?
 
grandios! am besten du machst das forum alleine ;-) , ne quatsch! aber genau das meint ich von anfang an.. :duck:

zum glück konnte mir ja geholfen werden... (war auch schwer nötig)

tommie-lie 16. Dez 2004 19:30

Re: Wie geht's: Ini - Section in ComboBox ?
 
Zitat:

Zitat von DannyK.II
grandios!

Danke!

Zitat:

Zitat von DannyK.II
am besten du machst das forum alleine ;-)

Ja, das ist mir auch schon mehrfach durch den Kopf gegangen mrgreen:

Und Luckie bettelte ja nach Aufklärung :mrgreen:

DannyK.II 16. Dez 2004 21:27

Re: Wie geht's: Ini - Section in ComboBox ?
 
LETZTE FRAGE ZU DEM THEMA INI/COMBOBOX:

Delphi-Quellcode:
procedure TForm1.Button12Click(Sender: TObject);
begin
  try
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'data.ini');
    repeat
    ini.ReadSections(sections);
    section := sections[0];
    ini.EraseSection(section);
    until
    sections.Count = 0;
  finally
  ini.readsections(combobox1.Items);
  ini.free;
  end;
end;
damit soll eigentlich die liste+ alle sections geleert werden, ich bekomme aber eine accesviolation (was sonst ;-) )

ich wette die antwort is wieder mal simpel... :duck:

Garland 17. Dez 2004 21:13

Re: Wie geht's: Ini - Section in ComboBox ?
 
Hmh, ich würde es mal so ausprobieren:

Delphi-Quellcode:
procedure TForm1.Button12Click(Sender: TObject);
[...]
ini.ReadSections(sections);
for i := 1 to sections.count do
 ini.EraseSection(sections[i - 1]);
[...]
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz