Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ItemBox autoselect von ini Datei (https://www.delphipraxis.net/167300-itembox-autoselect-von-ini-datei.html)

EarthQuaker 22. Mär 2012 18:40

ItemBox autoselect von ini Datei
 
Hallo liebe Leute,

brauch nochmal eure Hilfe.

Folgendes Problem:

Ich habe bereits einen ausgewählten eintrag von der listbox in eine *.ini datei geschrieben mit folgendem inhalt:

[Inhalt]
Text = diese ist ein ausgewählter text welcher vorher in der ini datei gespeichert wurde.

nun möchte ich den gespeicherten eintrag aus der *.ini datei beim start der Anwendung wieder selectieren.


bitte nochmals um hilfe!
vielen dank


MfG

PS. handelt sich nicht um ItemBox sondern listbox

DeddyH 22. Mär 2012 18:48

AW: ItemBox autoselect von ini Datei
 
:?::?::?: Könntest Du Deinen Beitrag noch einmal in verständlichem Deutsch formulieren?

Sir Rufo 22. Mär 2012 18:53

AW: ItemBox autoselect von ini Datei
 
Delphi-Quellcode:
var
  lStr : string;
begin
  ...
  lStr := Ini.ReadString( 'Inhalt', 'Text', '' );
  ...
  ListBox1.ItemIndex := ListBox1.Items.IndexOf( lStr );
end;

DeddyH 22. Mär 2012 18:55

AW: ItemBox autoselect von ini Datei
 
Daran hatte ich auch erst gedacht, aber was soll dann
Zitat:

in der listbox sind ca. 10 einträge aber es soll nur dieser geladen werden welcher in der ini datei steht.
bedeuten?

Sir Rufo 22. Mär 2012 18:57

AW: ItemBox autoselect von ini Datei
 
Zitat:

Zitat von DeddyH (Beitrag 1158027)
Daran hatte ich auch erst gedacht, aber was soll dann
Zitat:

in der listbox sind ca. 10 einträge aber es soll nur dieser geladen werden welcher in der ini datei steht.
bedeuten?

Das sind Verschiebungen in der Matrix :mrgreen:

DeddyH 22. Mär 2012 18:58

AW: ItemBox autoselect von ini Datei
 
Nicht im Raum-Zeit-Kontinuum? :mrgreen:

EarthQuaker 22. Mär 2012 19:00

AW: ItemBox autoselect von ini Datei
 
Nein meinte damit das einfach nur in der listbox der eintrag ausgewählt wird welcher zuvor in der ini datei gespeichert wird :)


MfG

DeddyH 22. Mär 2012 19:02

AW: ItemBox autoselect von ini Datei
 
Dann passt Sir Rufos Antwort in #3 ja genau.

Klaus01 22. Mär 2012 19:07

AW: ItemBox autoselect von ini Datei
 
.. Du hast also in der Listbox ein definierte Anzahl an Einträgen schon fix definiert.
In der Ini speicherst Du den Wert ab der zuletzt in der Listbox selektiert war.
Nun möchtest Du den Wert wieder aus der Ini Datei lesen und in der Listbox als selektiert wieder anzeigen.

Wie Du den Wert aus der Ini Datei lesen kannst -wurde schon geschrieben.

(Hab jetzt gerade kein Delphi offen) aber gibt es bei der Listbox nicht
ein Listbox1.Items.IndexOf('text') welchen den Index liefert in dem der gesuchte Text steht?

Grüße
Klaus

Popov 22. Mär 2012 19:33

AW: ItemBox autoselect von ini Datei
 
Zitat:

Zitat von EarthQuaker (Beitrag 1158024)
Ich habe bereits einen ausgewählten eintrag von der listbox in eine *.ini datei geschrieben

Wenn es immer der gleiche Inhalt ist, würde ich eher den Index Wert speichern.

@All

Habe ich das jetzt falsch in Erinnerung oder hat IndexOf früher auf Groß-/Kleinschreibung geachtet?

EarthQuaker 23. Mär 2012 06:06

AW: ItemBox autoselect von ini Datei
 
Wie kann ich direkt nur den indexwert speichern? in der listbox sind unterschiedlich lange inhalte von rechner zu rechner unterschiedlich.

MfG

Bummi 23. Mär 2012 06:13

AW: ItemBox autoselect von ini Datei
 
Die INI wird ja lokal sein? Ansonsten wäre die Zuordnung den Text ja auch unzuverlässig ...
Itemindex speichern und nach dem Laden der Items , Itemindex setzen ...

Popov 23. Mär 2012 08:47

AW: ItemBox autoselect von ini Datei
 
Zitat:

Zitat von EarthQuaker (Beitrag 1158066)
Wie kann ich direkt nur den indexwert speichern? in der listbox sind unterschiedlich lange inhalte von rechner zu rechner unterschiedlich.

MfG

Wie gesagt, das macht dann Sinn wenn sich am Inhalt der ListBox nichts ändert.

Das Speichern ist relativ einfach, denn hier kann eigentlich kein Fehler vorkommen. Also einfach ItemIndex speichern.
Delphi-Quellcode:
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  try
    Ini.WriteInteger('Section', 'Ident', ListBox1.ItemIndex);
  finally
    Ini.Free;
  end;
end;
Das Laden ist etwas komplexer, denn hier kann ein Fehler vorkommen. Also den Wert zuerst zwischenspeichern, prüfen und erst dann zuweisen.
Delphi-Quellcode:
var
  Ini: TIniFile;
  i: Integer;
begin
  Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  try
    //ListBox1.ItemIndex := -1;
    i := Ini.ReadInteger('Section', 'Ident', ListBox1.ItemIndex);

    if (i > -1) and (i < ListBox1.Items.Count) then
      ListBox1.ItemIndex := i;
  finally
    Ini.Free;
  end;
end;

EarthQuaker 23. Mär 2012 11:10

AW: ItemBox autoselect von ini Datei
 
Vielen Herzlichen Dank


MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 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