Einzelnen Beitrag anzeigen

brutus

Registriert seit: 12. Sep 2003
45 Beiträge
 
#1

dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 16:49
ich hab es ewig lange versucht aber ich krieg es einfach nicht hin. Vielleicht haut die Ausgabe nicht hin oder die database - aber ich hab absolut keinen Plan!!!

die prozedur soll einfach aus einen Edit Fenster einen Wert herauslesen und am Ende einer dynamischen Liste einfügen.

Hier is das Hauptformular
Delphi-Quellcode:
unit UTMaster;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    add: TEdit;
    wo: TEdit;
    was: TEdit;
    Button6: TButton;
    at: TEdit;
    delete: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
         d:TDAavdBL;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
d:=TDAavdBL.create;
d.Create;
StringGrid1.ColCount:=d.length;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
d.Destroy;
d.free;
end;

// hier kommen noch mehr prozeduren

procedure TForm1.Button3Click(Sender: TObject);
VAR i:integer;
begin
d.add(add.text);
FOR i:=1 TO d.length DO
    StringGrid1.Cells[i,0]:=d.at(i);
end;

end.
hier ist die database

Delphi-Quellcode:
unit UTDAavdBL;

interface

uses UTData;

Type TDAavdBL = class (TObject)
     protected
        first:PList; //erstes Element
        current:Plist; //aktuelles Element
public
           constructor Create;
           procedure DelAll;
           function Empty:boolean;
           function length:integer;
           function EndOfList:boolean;
           procedure add(u:TData);
           function at(n:integer):TData;
          destructor Destroy; override;
        end;

implementation


{ TDAavdBL }
constructor TDAavdBL.Create;
begin
inherited;
first:=NIL;
current:=NIL;
end;

function TDAavdBL.Empty;
begin
IF first=NIL THEN
   result:=true
ELSE result:=false;
end;


function TDAavdBL.EndOfList;
BEGIN
IF (empty) OR (Current^.next=NIL) THEN
   result:=true
ELSE result:=false;
END;


function TDAavdBL.length;
BEGIN
result:=0;
IF NOT Empty THEN
     BEGIN
     current:=first;
     result:=1;
         WHILE current^.next<>NIL DO
         BEGIN
         result:=result+1;
         current:=current^.next;
         END;
END;
END;



function TDAavdBL.at;
VAR i:integer;
BEGIN
IF (n<=length) AND (n>0) AND (NOT empty) THEN
   BEGIN
   current:=first;
        FOR i:=0 TO n-1 DO
            BEGIN
            result:=current.inhalt;
            current:=current^.next;
            END;
   END
ELSE result:='';
END;


destructor TDAavdBL.Destroy;
BEGIN
delall;
  inherited;
END;

procedure TDAavdBL.add;
VAR m:Plist;
BEGIN
IF empty THEN
  BEGIN
     new(m);
     m^.next:=NIL;
     m^.inhalt:=u;
     first:=m;
  END
ELSE
    BEGIN
    new(m);
    m^.next:=NIL;
    m^.inhalt:=u;
    current:=first;
    WHILE NOT EndOfList DO
    current:=current^.next;
    current^.next:=m;
    END;
END;


end.
und das is die UTData:

Delphi-Quellcode:
unit UTData;

interface
         Type TData=string;
              PList=^TKnoten;
              TKnoten=record
                      inhalt:TData;
                      next:PList;
                      end;
                          
VAR dummy:TKnoten;
implementation

initialization
dummy.next:=NIL;
dummy.inhalt:='';


end.
BITTE HELFT MIR SONST LAUF ICH NOCH AMOK ! ! !
Der, Die Das,
Wer ,Wie, Was,
Wieso? Weshalb? Warum?
Wer nicht fragt bleibt dumm.
  Mit Zitat antworten Zitat