Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "Objekt: Keller" geht nicht... (https://www.delphipraxis.net/103278-objekt-keller-geht-nicht.html)

ArchaicSeraphim 13. Nov 2007 17:46


"Objekt: Keller" geht nicht...
 
Hi Leutz,
Ich bin grade dabei, mir einen Keller zu bauen, aber aus irgendeinem Grund kann "die Unit Keller.pas nicht compiliert werden." Kann mir mal wer sagen, wieso? Hier ist sie:

Delphi-Quellcode:
unit Keller;

interface

type
  TKeller = class
    constructor create;
    procedure push(m:string);
    procedure pop;
    function top:(top:string);
  end;

var
  Keller: array of char;
  n: integer;

implementation

constructor TKeller.create;
begin
  inherited create;
  n:=1;
end;

procedure TKeller.push(m:string);
begin
  inc(n);
  setlength(Keller,n);
  Keller[n-1] := m;
end;

procedure TKeller.pop;
begin
  dec(n);
  setlength(Keller,n);
end;

function top:(top:string);
begin
  top := Keller[n-1];
end;

end.
Ist da irgendwas GANZ falsch? Wäre sehr erfreut über Antwort! ^^

Dax 13. Nov 2007 17:49

Re: "Objekt: Keller" geht nicht...
 
Delphi-Quellcode:
type
  TKeller = class
    constructor create;
    procedure push(m:string);
    procedure pop;
    function:top:string;
  end; // <-- das muss hin!

Klaus01 13. Nov 2007 17:50

Re: "Objekt: Keller" geht nicht...
 
Hast Du "m" irgendwo deklariert?

Grüße
Klaus

mkinzler 13. Nov 2007 17:51

Re: "Objekt: Keller" geht nicht...
 
Weil dein Quellcode mehrere Fehler enthält:

Delphi-Quellcode:
unit Keller;

interface

type
  TKeller = class
    constructor create;
    procedure push(m:string);
    procedure pop;
    function top:string;
    Keller: array of char;
   end;
var
  n: integer;
  oKeller: TKeller;

implementation

constructor TKeller.create;
begin
  inherited create;
  n:=1;
end;

procedure TKeller.push(m:string);
begin
  inc(n);
  setlength(Keller,n);
  Keller[n-1] := m;
end;

procedure TKeller.pop;
begin
  dec(n);
  setlength(Keller,n);
end;

function TKeller.Top:string;
begin
  result := Keller[n-1];
end;

end.

leddl 13. Nov 2007 17:54

Re: "Objekt: Keller" geht nicht...
 
Zitat:

Zitat von Klaus01
Hast Du "m" irgendwo deklariert?

Delphi-Quellcode:
procedure TKeller.push(m:string);
:zwinker:

Progman 13. Nov 2007 17:55

Re: "Objekt: Keller" geht nicht...
 
Ein Variablen-Name darf nie gleich dem Unit-Namen sein *mal anmerk* :)

ArchaicSeraphim 13. Nov 2007 17:56

Re: "Objekt: Keller" geht nicht...
 
Hoi,

"m" ist bei mir doch in der procedure. Sonst nirgendwo. Und das "end;" habe ich auch gesetzt. Hilft nicht.

Pls hlp!!

edit: Hab's jetzt so gemacht:

Delphi-Quellcode:
unit Keller;

interface

type
  TKeller = class
    constructor create;
    procedure push(m:string);
    procedure pop;
    function top:string;
    Keller: array of Char;
  end;

var
  n: integer;
  oKeller: TKeller;

implementation

constructor TKeller.create;
begin
  inherited create;
  n:=1;
end;

procedure TKeller.push(m:string);
begin
  inc(n);
  setlength(Keller,n);
  Keller[n-1] := m;
end;

procedure TKeller.pop;
begin
  dec(n);
  setlength(Keller,n);
end;

function TKeller.top:string;
begin
  result := Keller[n-1];
end;

end.
Geht aber immer noch nicht. Wieso?

mkinzler 13. Nov 2007 17:57

Re: "Objekt: Keller" geht nicht...
 
Was für ein Fehler wird gemeldet?

ArchaicSeraphim 13. Nov 2007 17:58

Re: "Objekt: Keller" geht nicht...
 
Hab' jetzt das array umbenannt zu "K". Hilft nix. Fehler:

[Fataler Fehler] Test.pas(7): Verwendete Unit 'Keller.pas' kann nicht compiliert werden

(Also in ner anderen Unit.)

Help! What heißt das?

mkinzler 13. Nov 2007 18:00

Re: "Objekt: Keller" geht nicht...
 
Normalerweise steht vorher, genau welchen Fehler er anmahnt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 1 von 3  1 23      

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