Autor Beitrag
hww
Hält's aus hier
Beiträge: 2

Linux, XP
Freepascal, Lazarus
BeitragVerfasst: Sa 31.05.08 16:14 
Guten Tag ins Forum,

ich bin neu hier und auch neu in der GUI-Entwicklung mit Lazarus / Delphi, aber alles andere als ein Programmier-Einsteiger, bin ich doch schon seit Anfang der 80er im Geschäft. Bisher habe ich prozedural hauptsächlich in Pascal Konsolenanwendungen programmiert und arbeite mich derzeit in OOP und grafische GUI-Entwicklung mit Lazarus ein. Die aktuelle Personal Edition von Delphi habe ich mir ebenfalls heruntergeladen.

Problem:
Relativ Große Textdatei mit etwa 20.000 Zeilen aus Ortskoordinaten : geografische Länge, Breite, Ortsname, Zeitzone, etc.

Über eine Combobox soll in der 1. editierbaren Zeile der Ort eingegeben werden und während man die Buchstaben tippt das Listenfeld ausgegeben werden in dem in alphabetischer Reihenfolge die Ortsnamen stehen. Das Ganze soll noch recht fix sein. Schießlich soll nach dem n-ten Buchstaben aus der Listbox der Ort angeklickt oder via Rollbalken angewählt werden können, damit er in die Liste der zu verarbeitenden Daten übernommen wird.

Ich gehe davon aus, dass dieses Thema - die Verarbeitung langer Textlisten von der Platte mit List- und Comboboxen- schon 100000 mal gelöst worden ist und nehme an, dass hier irgendwo im Forum eine ähnlche Geschichte schon vergraben ist.

Für Hinweise bin ich Euch dankbar!

Schöne Grüße aus Hamburg,
Hans-Werner
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 31.05.08 16:54 
Hallo und :welcome: in der Entwickler-Ecke!

Da fiele mir jetzt nur ein, im OnChange der Combobox die Combobox dynamisch neu zu füllen. Also in etwa so etwas:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ComboBox1Change(Sender: TObject);
var MeineStrings: TStrings;
begin
  MeineStrings := TStringlist.Create;
  MeineStrings := HolePassendeStringsAusDaten(ComboBox1.Text);
  ComboBox1.Items.Assign(MeineStrings);
  MeineStrings.Free;
end;


Ob das funktioniert, kann ich nicht sagen - das wäre so meine erste Idee. ;-) Knackpunkt ist HolePassendeStringsAusDaten. Aber wenn man die Datei komplett in Form einer Stringliste im Speicher hält, evtl. sogar sortiert und dann Binärsuche drauf ansetzt, sollte das recht flott gehen.

_________________
We are, we were and will not be.
hww Threadstarter
Hält's aus hier
Beiträge: 2

Linux, XP
Freepascal, Lazarus
BeitragVerfasst: Sa 31.05.08 19:23 
Hallo Gausi,

vielen Dank für den Tipp :-)

Werde ich umgehend ausprobieren...
Das hatte ich mir deutlich komplizierter vorgestellt ..

Schöne Grüße aus Hamburg,

Hans-Werner