AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox per Hand füllen

Ein Thema von lore · begonnen am 4. Jun 2008 · letzter Beitrag vom 1. Jul 2008
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#11

Re: ComboBox per Hand füllen

  Alt 5. Jun 2008, 08:20
Die "Ini-Schleife" könnte z.B. so aussehen:
Delphi-Quellcode:
for i := 0 to ComboBox.Items.Count - 1 do
  Ini.WriteString('Items',IntToStr(i),ComboBox.Items[i]);
Die Ini hätte dann beispielsweise folgendes Aussehen:
Code:
[Items]
0=UT
1=MESZ
2=MEZ
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
lore

Registriert seit: 2. Jun 2008
Ort: Norderstedt
29 Beiträge
 
#12

Re: ComboBox per Hand füllen

  Alt 5. Jun 2008, 20:44
Hi DeddyH,
soweit klappts jetzt.
Delphi-Quellcode:
procedure TfrmMain.cbox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var ini : TiniFile;
     i: Integer;
begin
 with TComboBox(Sender) do
    if Key = VK_RETURN then
      if Items.IndexOf(Text) < 0 then
        begin
        ItemIndex := Items.Add(Text);
          try {das ist die Schleife zum Erzeugen des Eintrags in der INI }
           ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
           for I := 0 to cbox1.Items.Count - 1 do
            ini.WriteString('TimeZone',intToStr(i),cbox1.Items[i]);
          finally
           ini.Free;
        end;
 end;
end;
Das Auslesen der INI muss ins formCreate oder?

Würde das dann so aussehen?

Delphi-Quellcode:
try
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
  for I := 0 to cbox1.Items.Count - 1 do
   cbox1.Items[i] := ini.readString('TimeZone',intToStr(i),cbox1.Items[i]); // Ist diese Zeile so richtig??
finally
 ini.Free;
end;
Für heute mach ich erstmal Schluss und werde morgen dann das einlesen mal üben


Danke,
Karsten__________________________________________________ _______________________
www.deepSkyObserver.de
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#13

Re: ComboBox per Hand füllen

  Alt 5. Jun 2008, 21:08
Jo, das macht Sinn.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
lore

Registriert seit: 2. Jun 2008
Ort: Norderstedt
29 Beiträge
 
#14

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:13
Hi DeddyH,
ich dachte auch das das Sinn hat, funzt aber leider nicht.
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var ini : TiniFile;
       I: integer;
begin
   try
   ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
   for I := 0 to cbox1.Items.Count - 1 do
   begin
    cbox1.Items[i] := ini.ReadString('TimeZone',intToStr(i),cbox1.Items[i]); //combobox mit den Werten aus der INI befüllen
    showMessage(intToStr(i));
   end;
  finally
   ini.Free;
  end;
end;
Ich hab's mit F7 durchgesteppt und festgestellt, dass nur die Werte gelesen werden, die schon vorher beim Objekt unter Items >> Strings im Stringlisteneditor eingetragen waren. In der INI stehen aber 10 Stück, also wird die INI nicht ausgelesen. Ist die Schleife falsch oder wie kann ich das rausfinden? Weiß gerade mal wieder nicht weiter..

Gruß,
Karsten
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#15

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:20
Das liegt an:

for I := 0 to cbox1.Items.Count - 1 do du liest hier nur so viele Einträge aus der ini, wie eh schon in der Combobox drin sind. Was du brauchst, ist die Anzahl aller Werte in der INI.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:24
Versuch es mal mit
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var ini : TiniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'config.ini');
  try
    Ini.ReadSectionValues('TimeZone',cbox1.Items);
  finally
    ini.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#17

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:25
Nein der Fehler passiert beim Abspeichern. Es werden nur Werte in die ini geschrieben, die nachträglich eingefügt werden. Um alle so wie geplant einlesen zu können, müssen alle Werte in die ini geschrieben werden.

Grüße, Messie
  Mit Zitat antworten Zitat
lore

Registriert seit: 2. Jun 2008
Ort: Norderstedt
29 Beiträge
 
#18

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:38
HI deddyH,

jetzt habe ich den lustigen Effekt, dass beim Abspeichern alles doppelt angzeigt wird und einmal mehr in die INI gespeichert wird. Wenn ichs drei mal aufrufe siehts wie folgt aus:

[TimeZone]
0=0=0=UT
1=1=1=MESZ
2=2=2=MEZ
3=3=3=myTimeZone1
4=4=4=myTimeZone2
5=5=5=myTimeZone3
6=6=6=myTimeZone4
7=7=7=myTimeZone5
8=8=8=myTimeZone6
9=9=9=myTimeZone7

Hi Messi, ich verstehe nicht so ganz was du meinst, aber habe nach diesem Ergebnis so eine dunkle Ahnung was du jetzt meinen könntest.
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#19

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 11:43
*Oops*, dann bleibt wohl nur, ReadSectionValues auf eine temporäre Stringliste anzuwenden und dort je Zeile alles bis zum Gleichheitszeichen rauszulöschen. Anschließend den Items zuweisen. Wenn jemand einen besseren Vorschlag hat, immer her damit, mir gefällt das so nämlich auch nicht, hab aber heute irgendwie ein Brett vor dem Kopf.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#20

Re: ComboBox per Hand füllen

  Alt 6. Jun 2008, 12:18
Moin, Moin,
na, das hieße an den Symptomen herumzudoktern. Wie messie schon bemerkte: Der Fehler entsteht ja beim Speichern. Ist der Code aus #12 noch aktuell? Idee: Vor dem Speichern zunächst die Section komplett löschen.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 16:15 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