Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Combobox aus Stringlist befüllen (https://www.delphipraxis.net/141483-combobox-aus-stringlist-befuellen.html)

hgiel 9. Okt 2009 22:01


Combobox aus Stringlist befüllen
 
Hallo,

ich habe noch ein kleines Problem mit dem Befüllen einer Combobox - wenn diese in der Unit/Form platziert wurde, in der auch die Stinglist definiert wurde, ist das Befüllen mit

Delphi-Quellcode:
for Index := 0 to platz_stringliste.Count - 1 do
      begin
        //showmessage(platz_stringliste[Index]);
        ComboBox1.Items.Add(platz_stringliste[Index]);
      end;
kein Problem!

Meine zu befüllende Combobox befindet sich aber in Unit4/Form4 und mit

Delphi-Quellcode:
Form4.ComboBox1.Items.Add(platz_stringliste[Index]);
an obiger Stelle klappts nicht: die Combobox bleibt leer!

Es muss wohl an den USES Einträgen liegen???

PS:

Delphi-Quellcode:
platz_stringliste.SaveToFile(prg_pfad+'\plaetzeliste.txt');
in Form1 und dann Laden in Form4 mit

Delphi-Quellcode:
combobox1.Items.LoadFromFile(prg_pfad+'\plaetzeliste.txt');
funktioniert, aber ist nicht gerade elegant - oder?

[edit=Matze][delphi]-Tags gesetzt. Zukünftig bitte selbst daran denken. MfG, Matze[/edit]

Matze 9. Okt 2009 22:13

Re: Combobox aus Stringlist befüllen
 
Hallo,

der Weg übers Speichern ist wirklich nicht schön, zumal du die Datei im Benutzerverzeichnis speichern und danach auch wieder löschen musst.

Bei mir geht es problemlos so. Wie du siehst, kannst du dir die Schleife auch sparen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Add('hallo');
    SL.Add('du');

    // ComboBox auf Form1
    ComboBox1.Items.Assign(SL);

    // ComboBox auf Form2
    Form2.ComboBox1.Items.Assign(SL);

    Form2.Show;
  finally
    FreeAndNil(SL);
  end;
end;
Grüße, Matze

hgiel 9. Okt 2009 22:41

Re: Combobox aus Stringlist befüllen
 
Danke - ich habe durch das Beispiel meine Fehler entdeckt:

Delphi-Quellcode:
procedure TForm1.Platzselektieren1Click(Sender: TObject);
var
  r: integer;
begin
//  Form4:=tForm4.Create(self);
//  Form4.showmodal;
//  Form4.Free;
    Form4.Show; // Neu - DAMIT FUNKTIONIERT ES
end;
Ich hatte die Unit/Form auf der die COMBOBOX war mit Create/Showmodal/Free gestartet - NUR Form4.Show und es klappt!

[edit=Matze][delphi]-Tags gesetzt. Das nächste Mal bitte selbst einfügen. MfG, Matze[/edit]

Matze 9. Okt 2009 22:50

Re: Combobox aus Stringlist befüllen
 
"ShowModal" unterbricht den Code im Hauptprogramm. Wenn du "ShowModal" nach dem Befüllen der ComboBox aufrufst, funktioniert es ebenfalls.
Bei "Show" ist das nicht so, allerdings kannst du dann auch auf dem Hauptformular herum klicken und es in den Vordergrund holen. Da musst du dann schauen, was du willst.

Grüße, Matze


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