Hallo,
ich bins nochmal nur diesmal mit einem anderen Problem.
Aufgabe:
Ein gesuchtes Wort in der Ausgangssprache wird in einem Edit-Feld eingegeben. In einer ListBox wird dann die gesuchte Vokabel gemeinsam mit ihrer Übersetzung angezeigt. Sollte die gesuchte Vokabel nicht im Wörterbuch vorhanden sein, so werden zumindest die Vokabeln angezeigt, die alphabetisch davor bzw. danach stehen.
Außerdem möchte ich die jeweilige Vokabeln dann im richtigen Edit auch stehen haben (ein Edit für die deutsche und ein Edit für die englische Vokabel; in der listbox steht erst das englische wort dann eine lücke dann ein "=" dann wieder eine lücke und dann das deutsche wort.. also Wort = Wort ) (das Suchwort ist ein englisches)
Mein Quelltext ist bis jetzt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.BitBtn3Click(Sender: TObject); var i,p: Integer; Gefunden: Boolean; Suchwort,s: string; begin Suchwort:=Edit1.Text; if Suchwort <>'' then begin Gefunden:=false; i:=-1; while (i<ListBox1.Items.Count-1)and not gefunden do begin Inc(i); if Pos(Suchwort,ListBox1.Items[i])>0 then Gefunden:=True; end; if Gefunden then begin ListBox1.ItemIndex:=i; s:=ListBox1.Items[ListBox1.ItemIndex]; p:=Pos('=',s); Delete(s,1,p+1); Edit2.Text:=s; end else ShowMessage('Suchwort wurde nicht gefunden'); end; end; |
Er liest bei mir das Suchwort ein und findet es auch und gibt es aus, so wie ich es möchte. Dabei sind allerdings 2 Probleme:
1. wenn das Wort nicht in der Liste ist, dann findet er es auch nicht und gibt mir nur die message, dass das wort nicht drin ist aus (und nicht das umliegende nächste wort wie in der aufgabe beschrieben)... das war mir allerdings vorher schon klar, da ich nicht wusste wie ich das programmieren sollte
2. er hat ein problem mit h und b und a und e. D.h. wenn ich z.B. nur das h eingebe dann gibt er mir nicht das erste h-Wort aus sondern das erste b-Wort welches in der Liste steht. Das selbe gilt für e. wenn ich e eingebe sucht er mir ein a-wort. also werden a und b irgendwie bevorzugt. ansonsten (bei den anderen buchstaben) findet er immer das richtige.
Das ist z.B. sehr nervig wenn er das Wort "he" suchen soll und auf einmal "before" findet und übersetzt ausgibt, weil er b und h verwechselt hat.
Kann mir jemand helfen und sagen was an dem Quelltext falsch ist und wie ich es vllt programmieren könnte, damit er all diese Funktionen erfüllt? >.<
über Hilfe, Hinweise, Ideen usw. würde ich mich sehr freuen.^^
Moderiert von
Narses: Delphi-Tags hinzugefügt