AGB  ·  Datenschutz  ·  Impressum  







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

"Objekt: Keller" geht nicht...

Ein Thema von ArchaicSeraphim · begonnen am 13. Nov 2007 · letzter Beitrag vom 13. Nov 2007
Antwort Antwort
Seite 2 von 3     12 3      
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#11

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

  Alt 13. Nov 2007, 19:00
nach interface eventuell noch nen uses-Block unterbringen?
uses Classes, Windows; eventuell noch mehr, ich weiß jetzt nicht ausm Kopf, welche Units mind. notwendig sind.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

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

  Alt 13. Nov 2007, 19:00
Besser so:

Delphi-Quellcode:
  TKeller = class
    FKeller: array of string;
    constructor create;
    procedure push(m:string);
    procedure pop;
    function top:string;
  end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#13

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

  Alt 13. Nov 2007, 19:02
Hi,

sollte die Membervariable Keller nicht lieber vom Typ Array of string sein ?
Du willst doch Strings speichern.

Nur mal so...

[Edit] hrr, marabu war schneller [/Edit]
Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
ArchaicSeraphim

Registriert seit: 11. Nov 2007
Ort: Niedernhausen
31 Beiträge
 
Delphi 7 Personal
 
#14

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

  Alt 13. Nov 2007, 19:03
Delphi-Quellcode:
unit Keller;

interface

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

type
  TKeller = class
    FKeller: array of string;
    constructor create;
    procedure push(m:string);
    procedure pop;
    function top:string;
  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(FKeller,n);
  FKeller[n-1] := m;
end;

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

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

end.
So, jetzt geht's. Gracias!!!
In diesem Sinne,

Arc
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#15

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

  Alt 13. Nov 2007, 19:05
n als globale Variable.. wird sicher lustig, wenn man zwei Instanzen der Klasse hat.. bau das mal lieber mit in die Klasse rein.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#16

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

  Alt 13. Nov 2007, 19:06
Zitat:
n als globale Variable.. wird sicher lustig, wenn man zwei Instanzen der Klasse hat.. bau das mal lieber mit in die Klasse rein.
Genau, und im Create bei 0 starten lassen
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
ArchaicSeraphim

Registriert seit: 11. Nov 2007
Ort: Niedernhausen
31 Beiträge
 
Delphi 7 Personal
 
#17

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

  Alt 13. Nov 2007, 19:45
Sorry, ist immer noch nicht fertig. Jetzt geht Folgendes nicht:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Keller: TKeller;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Keller:=TKeller.create
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Keller.push('m');
  Label1.Caption:=Keller.top;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Keller.push('X');
  Label1.Caption:=Keller.top;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Keller.pop;
  Label1.Caption:=Keller.top;
end;

end.
Hat das was mit dem n zu tun? Und wie kann ich's so deichseln, dasses geht?
Danke schonmal jedenfalls.

€dit: bei 0 starten lassen kann ich nicht wegen

Delphi-Quellcode:
constructor TKeller.create;
begin
  inherited create;
  n:=1;
  FKeller[n-1] := 's'; // <<<< undefiniert bei n=0, oder?
end;
In diesem Sinne,

Arc
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#18

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

  Alt 13. Nov 2007, 19:47
Was für ein Fehler meldet der Compiler?
Markus Kinzler
  Mit Zitat antworten Zitat
ArchaicSeraphim

Registriert seit: 11. Nov 2007
Ort: Niedernhausen
31 Beiträge
 
Delphi 7 Personal
 
#19

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

  Alt 13. Nov 2007, 19:48
Fehler:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00403E8C in Modul 'Project1.exe'. Schreiben von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
In diesem Sinne,

Arc
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#20

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

  Alt 13. Nov 2007, 19:51
Du hast den Array als dynamischen array deklariert. Du musst ihn also dimensionieren (setLength())
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 07:04 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