Zitat von
m4rk0:
Hi
ich brauch ein paar Tipps bezüglich der programmierung von einer Art Lexikon.
Der Benutzer soll einen String über ein Edit-Feld eingeben und das Programm soll dann immer eine Erklärung liefern.
Habs bisher so gemacht
if ansicontainstext(edit1.text, '...') then label1.caption:='...'
Is aber wohl nicht das wahre für jedes Wort so eine Zeile einzufügen oder?
Die Funktion wird ewig lang :/
Deshalb dacht ich man kann ne .res Datei oder ähnliches einbinden, in der alles drinsteht.
Aber wie genau mach ich sowas?
Mit TStrings könnte man eine Liste der Form
Name1=Wert1
Name2=Wert2
Name3=Wert3
...
erstellen (im Code direkt hinterlegt, oder in einer Textdatei).
Dann kann man nach einem Eintrag in der Liste anhand des Namens suchen und den Wert dazu nachschlagen. Wegen AnsiContainsText muss das Programm aber alle Einträge der Reihe durchlaufen. Bei kleinen Listen ist der Geschwindigkeitsverlust aber kaum spürbar.
Der Quelltext würde dann nur noch eine Schleife enthalten, statt 'viele' if Anweisungen.
Delphi-Quellcode:
for I := 0 to Liste.Count - 1 do
begin
if AnsiContainsText(Edit1.Text, Liste.Names[I]) then
begin
Label1.Caption := Liste.ValueFromIndex[I];
Break;
end
end;