Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Pointer Deklaration (https://www.delphipraxis.net/69601-pointer-deklaration.html)

bonanza 17. Mai 2006 17:05


Pointer Deklaration
 
Hi,

ich wollte einen Pointer Deklarieren, bzw benutzen und dabei macht direkt schon der Compiler Probleme:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  Button1: TButton;
  Zeiger = ^Liste;   //<-- Hier möchte er ein ":" anstatt des "="

     Liste = Record
              Daten : Integer;
              Next : Zeiger
             End;

     
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Anfang, ListenElement, NeuesElement : Zeiger;
implementation

{$R *.dfm}

end.
Ich verstehe nicht ganz, warum er dort einen fehler meldet...

Wäre nett, wenn mir jemand helfen könnte

vielen dank schonmal im voraus

mfg

Dax 17. Mai 2006 17:06

Re: Pointer Deklaration
 
Delphi-Quellcode:
type
  Zeiger = ^Liste; //<-- Hier möchte er kein ":" anstatt des "="

     Liste = Record
              Daten : Integer;
              Next : Zeiger
             End;
  TForm1 = class(TForm)
  Button1: TButton;

     
  private
    { Private declarations }
  public
    { Public declarations }
  end;
So rum bitte. Ich denke nicht das du Delphi 2005/2006 hast, da ginge das...

Martin K 17. Mai 2006 18:30

Re: Pointer Deklaration
 
@Dax:
Das geht auch so herum, daran liegt es nicht.

Es liegt wohl eher daran, dass Zeiger und Liste noch in der Klasse TForm1 stehen. :wink:

Mein Vorschlag:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    { Private declarations } 
  public
    { Public declarations } 
  end; // <-- Kalsse "TForm1" erst beenden,
        //     dann erst "Zeiger" und "Liste" deklarieren!
  Zeiger = ^Liste;

     Liste = Record
              Daten : Integer;
              Next : Zeiger
             End;

var
  Form1: TForm1;
  Anfang, ListenElement, NeuesElement : Zeiger;
implementation

{$R *.dfm} 

end.
//Edit:
Sorry :oops:
Der ganze private/public Teil muss natürlich auch mit nach oben!

Muetze1 17. Mai 2006 23:06

Re: Pointer Deklaration
 
Zitat:

Zitat von Martin K
@Dax:
Das geht auch so herum, daran liegt es nicht.

Du hast Dax nicht verstanden: Er hat das gleiche wie du getan. Und dir fehlt als Wissen anscheinend, das ab BDS2005/2006 Typendefinitionen und Strukturen innerhalb von Klassen möglich sind um deren Gültigkeitsbereich auf die Klasse zu beschränken bzw. darin einzugrenzen.

Martin K 18. Mai 2006 12:07

Re: Pointer Deklaration
 
Achso... :oops:

Dachte er meint, dass "Zeiger" und "Liste" unbedingt vor TForm1 deklariert werden müssen...


Zitat:

Zitat von Muetze1
Und dir fehlt als Wissen anscheinend, das ab BDS2005/2006 Typendefinitionen und Strukturen innerhalb von Klassen möglich sind um deren Gültigkeitsbereich auf die Klasse zu beschränken bzw. darin einzugrenzen.

Ja, das fehlt mir...
...hab noch Delphi 7 :pale:

Muetze1 18. Mai 2006 13:25

Re: Pointer Deklaration
 
Zitat:

Zitat von Martin K
Ja, das fehlt mir...
...hab noch Delphi 7 :pale:

Ich arbeite nur mit Delphi 5 und 7, somit...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 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