Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Statisches Array in Methode deklarieren - wie? (https://www.delphipraxis.net/25558-statisches-array-methode-deklarieren-wie.html)

linacaro 8. Jul 2004 14:45


Statisches Array in Methode deklarieren - wie?
 
Hallo zusammen,
ich will eine eigene Methode schreiben, der 2 arrays der Länge 5 übergeben werden sollen.
Ich hab die Methode deklariert und wenn ich dynamische arrays nehme, geht es, aber ich
will statische und genau in der Form:

Delphi-Quellcode:
procedure TestMod(a1: array[1..5] of String; a2: array[1..5] of String);
Da meckert der Compiler aber immer, dass er nach dem Wort "array" ein OF erwartet aber eine [ findet.
Ansonsten deklariere ich statische Arrays doch aber in der Form :-(
Ist das bei Methodendeklarationen anders??

Grüße

MrKnogge 8. Jul 2004 14:47

Re: Statisches Array in Methode deklarieren - wie?
 
Delphi-Quellcode:
type
  DeinTyp = array[1..5] of string;

procedure TestMod(a1, a2: DeinTyp);

linacaro 8. Jul 2004 14:51

Re: Statisches Array in Methode deklarieren - wie?
 
ähm, also wenn ich das oben in meiner Unit in die

Delphi-Quellcode:
type
- Reihe reinschreibe, dann meckert der Compiler "Expected : but = found"
Ich muss das da schon oben reinschreiben, oder?

MrKnogge 8. Jul 2004 14:56

Re: Statisches Array in Methode deklarieren - wie?
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TDeinTyp = array[1..5] of string;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

linacaro 8. Jul 2004 15:00

Re: Statisches Array in Methode deklarieren - wie?
 
hmm, wenn ich das so mache, geht es erstmal durch den Compiler.
wenn ich aber dann auf das Array zugreifen will, kommt: Undeclared Identifier :-(

MrKnogge 8. Jul 2004 15:03

Re: Statisches Array in Methode deklarieren - wie?
 
du hast ja auch nur den Typ deklariert, du musst nun noch nach
zugreifen kannst du nur auf eine vaiable beispiel:
Delphi-Quellcode:
var
  Form1: TForm1;
  DeinTyp: TDeinTyp

linacaro 8. Jul 2004 15:08

Re: Statisches Array in Methode deklarieren - wie?
 
Delphi-Quellcode:
unit Unit1_3_1;

interface

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

type
  TT1S3U1 = class(TForm)
    Panel3: TPanel;

    procedure TestMod(a1, a2 : Array1_5);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

    TArray1_5 = array[1..5] of string;

var
  T1S3U1: TT1S3U1;
  Array1_5 : TArray1_5;

implementation

{$R *.dfm}
Jetzt hab ích den Typ an der Stelle angelegt und auch eine Instanz erzeugt bei var.
Aber in meiner Methode TestMod kennt der Compiler wieder den Typ nicht :-(

bin ich nur ganz doof?

MrKnogge 8. Jul 2004 15:11

Re: Statisches Array in Methode deklarieren - wie?
 
wie hast du den deine procedure deklariert ?

linacaro 8. Jul 2004 15:14

Re: Statisches Array in Methode deklarieren - wie?
 
sie steht genau unter den anderen procedures, die von delphi automatisch angelegt werden (also z.B. unter Button1.Click(Sender :TObject);
aber auch wenn ich sie bei "public" deklariere, sagt mir der Compiler immer, er kennt den Typ "Array1_5" nicht, obwohl ich den doch brav angelegt hab :-(

linacaro 8. Jul 2004 15:15

Re: Statisches Array in Methode deklarieren - wie?
 
oben in meinem quellcode kannst du sehen, wo ich sie deklariert hab

xineohp 8. Jul 2004 15:17

Re: Statisches Array in Methode deklarieren - wie?
 
moin,

ist doch irgendwie logisch, dass er den nicht erkennt ... Die Deklaration steht ja auch nach der Verwendung.
Probier mal:
Delphi-Quellcode:
type
  DeinTyp = array[1..5] of integer;
 
  TForm1 = ...

MrKnogge 8. Jul 2004 15:18

Re: Statisches Array in Methode deklarieren - wie?
 
Du musst dein Datentyp auch vor der Form deklarieren !

Der Compiler "liest" sich deinen Quelltext von oben nach unten durch, und du erwähnst dein Array bevor du es deklariert hast, da sagt er er kenne es nicht.

linacaro 8. Jul 2004 15:26

Re: Statisches Array in Methode deklarieren - wie?
 
Delphi-Quellcode:
unit Unit1_3_1;

interface

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

type
  TArray1_5 = array[1..5] of string;
  TT1S3U1 = class(TForm)
    ImgHintergrund: TImage;
    Label4: TLabel;

    procedure FormCreate(Sender: TObject);
    procedure BtnNaechsteAufgabeClick(Sender: TObject);
    procedure TestMod(a1, a2 : Array1_5);

  private
    { Private declarations }
    aufgabe_nr : Integer;
  public
    { Public declarations }
    testModus : Boolean; //true, wenn ich im Testmodus bin, false, wenn ich im
                          //Übungsmodus bin
   
  end;



var
  Array1_5 : TArray1_5;
  T1S3U1: TT1S3U1;


implementation

{$R *.dfm}
so schauts aus bei mir und er meckert immer noch, dass er den typ nicht kennt
jetzt hab ich alles genau gemacht, wie dus gesagt hast

NicoDE 8. Jul 2004 15:29

Re: Statisches Array in Methode deklarieren - wie?
 
Code:
procedure TestMod(a1, a2 : [color=red]T[/color]Array1_5);

linacaro 8. Jul 2004 15:33

Re: Statisches Array in Methode deklarieren - wie?
 
ähhm, *räusper*
*hust*
*hihi*

richtig, was für ein dummer fehler...
jetzt tut's
vielen dank!


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