Memo i listbox -brak koncepcji na dokończenie procedury

0

Witam
na podstwie procedury Adama Boducha , czyli tej tutaj:

procedure TForm1.Button1Click(Sender: TObject);
 var
 F: TextFile;
 Kraj: String[20]; // na każdą kolumnę przeznaczono 20 znaków
 Stolica: String[20];
begin
 AssignFile(F, 'angielsko-polski informatyczny.txt');
 Reset(F); // otwarcie pliku
 try
 while not Eof(F) do
 begin
 Readln(F, Kraj, Stolica); // wczytanie 2-óch kolumn
 ComboBox1.Items.Add(Kraj); // dodanie ich do komponentu
 ComboBox2.Items.Add(Stolica);
 end;
 finally
 CloseFile(F);
 end;
end;

Dostosowałem ją do własnych potrzeb i wygląda mniej więcej w ten sposób:
problem polega na tym, że chcę by po wyborze listboxa pojawiało się znaczenie zaznaczonego wyrazu w memo, jednak pojawia się cały czas to samo.
Wszystkie moje koncepcje po prostu zdechły i nie wiem jak ten problemik rozwiązać, jeżeli ktoś byłby w stanie mi pomóc to wielkie dzięki.
Oto kod przerobionej procedury:(wiem że brakuje pętli tylko nie wiem jakiej)

procedure TForm1.FormCreate(Sender: TObject);
 var
  Wyraz: String[30]; // na tą kolumnę przeznaczono 30 znaków
begin
    AssignFile(F,'angielsko-polski informatyczny.txt' );
    Reset(F); // otwarcie pliku
    try
    while not Eof(F) do
    begin
        Readln(F, Wyraz); // wczytanie jednej kolumny do listboxa
        ListBox1.Items.Add(Wyraz); // dodanie jej do komponentu
    end;
    finally
    CloseFile(F);
 end;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
 var
 i: integer;
 s:string;
 WyrazPusty :string[30]; // zasłania wybór z listboxa żeby nie było widać wyrazu w polu memo
 znaczenie :string[200];//druga kolumna znajdująca się w polu memo
begin
  AssignFile(F,'angielsko-polski informatyczny.txt' );//skojarzenie zmiennej z plikiem
  Reset(F); // otwarcie pliku
  WyrazPusty :=' ';
  begin
  for I:=0 to ListBox1.ItemIndex do
    begin
    if ListBox1.Selected[I] then //jeżeli zaznaczono element w listboxie
      begin 
            readln(F,wyrazpusty,znaczenie);// zasłania wybór z listboxa żeby nie było widać go w polu memo
            memo1.Lines.Add(Znaczenie) ; //pokazanie drugiej kolumny
      end;
    end;
end;
end;
end.
0

Hmm - co prawda nie zagłębiałem się w te procedury, ale skorzystałbym tu z plików INI, gdzie słownik taki łatwo zapisać:
Polskie=Angielskie.

Zaoszczędzisz wiele czasu i kodu. A jeśli już nie chcesz INI to daj jakiś znak rozdzielający i odczytuj całą linię, później rozdzielaj słowa przez Explode (funkcję tą znajdziesz bez problemu).

0

a nie łatwiej tak??
var
ini:tinifile;

ini:=tinifile.create('plik.ini');
ini.ReadSection('Wyrazy',listbox1.items);
// ten kod przy starcie programu

i teraz do zdarzenia onclick komponentu listbox dajesz taki kod
memo1.text:=ini.readstring('Wyrazy',listbox1.items[listbox1.itemindex],'')

//Deti byłeś szybszy hehe

1 użytkowników online, w tym zalogowanych: 0, gości: 1