![]() |
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:
Da meckert der Compiler aber immer, dass er nach dem Wort "array" ein OF erwartet aber eine [ findet.
procedure TestMod(a1: array[1..5] of String; a2: array[1..5] of String);
Ansonsten deklariere ich statische Arrays doch aber in der Form :-( Ist das bei Methodendeklarationen anders?? Grüße |
Re: Statisches Array in Methode deklarieren - wie?
Delphi-Quellcode:
type
DeinTyp = array[1..5] of string; procedure TestMod(a1, a2: DeinTyp); |
Re: Statisches Array in Methode deklarieren - wie?
ähm, also wenn ich das oben in meiner Unit in die
Delphi-Quellcode:
- Reihe reinschreibe, dann meckert der Compiler "Expected : but = found"
type
Ich muss das da schon oben reinschreiben, oder? |
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. |
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 :-( |
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 |
Re: Statisches Array in Methode deklarieren - wie?
Delphi-Quellcode:
Jetzt hab ích den Typ an der Stelle angelegt und auch eine Instanz erzeugt bei var.
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} Aber in meiner Methode TestMod kennt der Compiler wieder den Typ nicht :-( bin ich nur ganz doof? |
Re: Statisches Array in Methode deklarieren - wie?
wie hast du den deine procedure deklariert ?
|
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 :-( |
Re: Statisches Array in Methode deklarieren - wie?
oben in meinem quellcode kannst du sehen, wo ich sie deklariert hab
|
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 = ... |
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. |
Re: Statisches Array in Methode deklarieren - wie?
Delphi-Quellcode:
so schauts aus bei mir und er meckert immer noch, dass er den typ nicht kennt
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} jetzt hab ich alles genau gemacht, wie dus gesagt hast |
Re: Statisches Array in Methode deklarieren - wie?
Code:
procedure TestMod(a1, a2 : [color=red]T[/color]Array1_5);
|
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:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz