Einzelnen Beitrag anzeigen

Ashiaka

Registriert seit: 17. Nov 2003
9 Beiträge
 
#1

Fehler in Delphi Pointer-Datenbank!

  Alt 3. Mai 2004, 21:36
Hi Community!
Wenn ich den folgenden Quellcode bei mir in Delphi ausführe, und in die btnHinzufuegenClick Prozedur anwähle, so funktioniert sie nicht richtig! Anstatt, dass diese den
Nachnamen + Vornamen reinsetzt, setzt sie nur ein Komma (,) rein!
Ich hab allerdings keine Ahnung wieso!?



Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    lbxAusgabe: TListBox;
    btnErsteingabe: TButton;
    btnHinzufuegen: TButton;
    procedure btnErsteingabeClick(Sender: TObject);
    procedure btnHinzufuegenClick(Sender: TObject);

    end;

    Pointertyp = ^Schuelertyp;
    Schuelertyp = record
                  Nachname, Vorname, Name : String;
                  Nach : Pointertyp;

  end;

var
  Form1: TForm1;
  Kopf, Vor, Zeiger : Pointertyp;
  Pos : Integer;
implementation

{$R *.DFM}

procedure Eingabe(var Neu : Pointertyp);
begin
 new(Neu);
 Kopf^.Nachname := InputBox('Nachname:','Eingabe:','');
 Kopf^.Vorname := InputBox('Vorname:','Eingabe:','');
end;


procedure TForm1.btnErsteingabeClick(Sender: TObject);
var Leer : String;
       I : Integer;
begin
 Eingabe(Kopf);
 Kopf^.Nach := nil;
 Leer := ',';
 For I := 1 to (13 - length(Kopf^.Nachname)) do Leer := Leer + ' ';
 lbxAusgabe.Items.Add(Kopf^.Nachname + Leer + Kopf^.Vorname);
end;

procedure TForm1.btnHinzufuegenClick(Sender: TObject);
var Neu : Pointertyp;

procedure Suchen(Zeiger : Pointertyp; var Vor : Pointertyp);
begin
 while (Zeiger <> nil) and (Zeiger^.Nachname < Neu^.Nachname) do
 begin
  Vor := Zeiger;
  Zeiger := Vor^.Nach;
 end;
end;

procedure Einfuegen(Vor : Pointertyp);
var Leer : String;
       I : Integer;
begin
 if Kopf^.Nachname > Neu^.Nachname
 then begin
  Neu^.Nach := Kopf;
  Kopf := Neu;
 end
 else begin
  Neu^.Nach := Vor^.Nach;
  Vor^.Nach := Neu;
 end;
 Leer := ',';
 For I := 1 to (13 - length(Neu^.Nachname)) do Leer := Leer + ' ';
 lbxAusgabe.Items.Add(Neu^.Nachname + Leer + Neu^.Vorname);
end;

begin
Eingabe(Neu);
Suchen(Kopf, Vor);
Einfuegen(Vor);
end;

end.
[edit=Admin]Delphi-Tags gesetzt. Künftig bitte selber machen. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat