AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische listen--> HILFE ! ! !

Offene Frage von "brutus"
Ein Thema von brutus · begonnen am 22. Mai 2004 · letzter Beitrag vom 22. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
brutus

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

dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15: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
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#2

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:55
Kannst du noch sagen, wo der Fehler / das Problem liegt?
  Mit Zitat antworten Zitat
brutus

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

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:57
naja das programm gibt nichts aus und stürzt ab und zu ab.
Der, Die Das,
Wer ,Wie, Was,
Wieso? Weshalb? Warum?
Wer nicht fragt bleibt dumm.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:57
Erstens, verwende [ delphi]-Tags und nicht [ code]. Dadurch wird es wie in Delphi formatiert.
Zweitens, hänge bei so viel Code die Units als Anhang an, anstatt den Post seeeehr lang zu machen.
Drittens, hast du mal versucht das Projekt zu debuggen?

[edit]Da war jemand wieder schneller[/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#5

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:58
was bringt eigentlich:

Delphi-Quellcode:
d := TDAavdBL.create;
d.Create;
für was ist die 2te zeile gut?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:59
Schau mal in die Deklaration der Klasse, dort setzt er in Create zwei Pointer auf nil.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
brutus

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

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 15:59
o.k. hier is der Anhang

p.s. die abstürze sind eingeplant
Angehängte Dateien
Dateityp: rar dynamisches_array.rar (11,9 KB, 10x aufgerufen)
Der, Die Das,
Wer ,Wie, Was,
Wieso? Weshalb? Warum?
Wer nicht fragt bleibt dumm.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 16:08
Zitat von brutus:
p.s. die abstürze sind eingeplant
Welche Abstürze?

Außerdem:
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
d.Destroy;
d.free;
end;
Du musst dich entscheiden: Destroy oder Free. Du kannst nämlich nur eines aufrufen, das andere wird danach einen Zugriffsfehler bringen.
Ich hab im Moment keine Zeit die Add-Routine genau durchzudenken, das mach ich später. Aber nur um das Prog richtig zu verstehen, wenn du auf den ersten Button (add) klickst, dann soll er eine Zahl in die dynamische Liste laden?
Und übrigens, warum verwendest du nicht eine dynamische Liste vom Typ
Delphi-Quellcode:
type
  dynListe = array of Typ;
Die Länge setzt du mit SetLength(Array, Länge), der Index beginnt bei 0.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#9

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 16:09
moin,

Seh ich das richtig, dass das eine einfachverknüpfte lineare Liste werden soll?

Wie StefanDP schon erwähnt hat ist das d.create IMHO überflüssig/unsinnig/falsch da der constructor create eine Klassenmethode ist und somit nur auf die Klasse angewendet wird, sprich d := TDAavdBL.create reicht vollkommen.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
brutus

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

Re: dynamische listen--> HILFE ! ! !

  Alt 22. Mai 2004, 16:11
na ich wollte mit hilfe von listen ein dynamisches array simulieren!!
Der, Die Das,
Wer ,Wie, Was,
Wieso? Weshalb? Warum?
Wer nicht fragt bleibt dumm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz