Einzelnen Beitrag anzeigen

Andre3001

Registriert seit: 20. Aug 2005
2 Beiträge
 
Delphi 6 Personal
 
#1

Suchfunktion mit Memo- und Editfeldern

  Alt 20. Aug 2005, 14:59
Hallo,

auf der Suche nach einer Lösung für mein Problem bin ich auf Euer Forum gestoßen. Vielleicht kann mir ja hier jemand weiterhelfen, was echt klasse wär.

Am besten fang ich mal ganz vorn an, alles zu erklären. Mein Programm ist dazu da, Personen zwei Dinge zuzuordnen (einmal eine Abkürzung des Namens und ein oder mehrere Gegenstände). Dafür habe ich ein Formblatt, auf dem erstmal die Daten eingelesen und abgespeichert werden müssen. Das funktioniert so weit.


Auf einem zweiten Formblatt sind je drei Editfelder und darunter drei Memofelder. Die erste Spalte (1. Edit und 1. Memo) ist zuständig für den Namen, die zweite Spalte für die Abkürzungen und die dritte für die Gegenstände. Der Nutzer soll dann mit Hilfe einer Suchfunktion die Möglichkeit haben, entweder

a) einen Namen einzugeben (im ersten Editfeld)
=> woraufhin er als Ergebnis der Suche den Namen, die Abkürzung und alle dazugehörigen Gegenstände in den drei passenden Memofeldern angezeigt bekommt

b) eine Abkürzung einzugeben (im zweiten Editfeld)
=> woraufhin er als Ergebnis der Suche den Namen, die Abkürzung und alle dazugehörigen Gegenstände in den drei passenden Memofeldern angezeigt bekommt

c) einen Gegenstand einzugeben (im dritten Editfeld)
=> woraufhin alle Namen inkl. aller dazugehörigen Abkürzungen erscheinen sollen, die diesem Gegenstand zugeordnet wurden.


Soviel zur Theorie. Funktionieren tuts bei mir leider nicht und als Anfänger weiß ich auch nicht, wo ich das Problem angehen soll. Hoffentlich könnt ihr mir dabei helfen.

Mein Programm-Code sieht bisher so aus:

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
  if edit1.Text <> 'then
  begin
    Zeiger:=start;
    while Zeiger^.Name <> Edit1.Text do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    Memo1.Lines.add(Zeiger^.Name);
    Memo2.Lines.add(Zeiger^.Kuerzel);
    Memo3.Lines.add(Zeiger^.Gegenstand);
  end
  else if Edit2.Text <> 'then
  begin
    Zeiger:=start;
    while Zeiger^.Kuerzel <> Edit2.Text do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    Memo1.Lines.add(Zeiger^.Name);
    Memo2.Lines.add(Zeiger^.Kuerzel);
    Memo3.Lines.add(Zeiger^.Gegenstand);
  end
  else if Edit3.Text <> 'then
  begin
    Zeiger:=start;
    while Zeiger^.Gegenstand <> Edit3.Text do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    Memo1.Lines.add(Zeiger^.Name);
    Memo2.Lines.add(Zeiger^.Kuerzel);
    Memo3.Lines.add(Zeiger^.Gegenstand);
  end;
end;


Bin für jeden Tipp dankbar.
  Mit Zitat antworten Zitat