1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Array Delphi (Object Pascal)

Dieses Thema im Forum "Sonstige Sprachen" wurde erstellt von dUser, 11. November 2017.

  1. dUser

    dUser Mitglied

    Guten Abend,

    ich habe mich in letzter Zeit mit Delphi (Object Pascal) beschäftigt.
    Dabei kamen mir zwei Fragen auf, auf welche ich keine eindeutigen Antworten fand.

    1.
    Warum werden die Eigenschaften und Methoden bei der Form-Klasse über private bzw. public
    deklariert? Hat das vielleicht eine bestimmte Bedeutung?
    Code (Delphi):
    1. TForm1 = class(TForm)
    2.  
    3.     Button1: TButton;
    4.     Button2: TButton;
    5.     procedure FormCreate(Sender: TObject);
    6.     procedure FormClick(Sender: TObject);
    7.  
    8.   private
    9.     { Private-Deklarationen }
    10.   public
    11.     { Public-Deklarationen }
    12.   end;
    In einer eigenen Klasse ordnet man die Eigenschaften und Methoden doch auch private und public unter...
    Code (Delphi):
    1. type
    2.   TAuto = class
    3.   private <--
    4.     FFarbe: String;
    5.     FBaujahr: Integer;
    6.     FTankinhalt: Integer;
    7.     procedure SetFarbe(Farbe: String);
    8.   public <--
    9.     procedure Tanken(Liter: Integer);
    10.     property Farbe: string read FFarbe write SetFarbe;
    11.   end;
    2.
    Ich wollte in einem mehrdimensionalen Array einfache Zahlen abspeichern:
    Variante 1:
    Code (Delphi):
    1. var
    2.   Arr: Array of Array of Byte;
    3.  
    4.   SetLength(Arr, 2);
    5.   SetLength(Arr[0], 2);
    6.   SetLength(Arr[1], 2);
    7.  
    8.   Arr[0] := (10, 20);
    9.   Arr[1] := (30, 40);
    Ich wollte ein ganzes Array zuweisen, damit ich nach der
    Zuweisung mit Array[x][y] auf die Werte zugreifen kann.
    Leider erhalte ich folgende Fehlermeldung:
    [Fehler] Unit1.pas(31): ')' erwartet, aber ',' gefunden

    Wenn ich aber dem Array einzelne Werte zuweise, funktioniert es:
    Variante 2:
    Code (Delphi):
    1.     SetLength(Arr, 2);
    2.     SetLength(Arr[0], 2);
    3.     SetLength(Arr[1], 2);
    4.  
    5.     Arr[0][0] := 10;
    6.     Arr[0][1] := 20;
    7.     Arr[1][0] := 30;
    8.     Arr[1][1] := 40;
    Dabei stellt sich mir folgende Frage:
    Wie kann man ein ganzes Array (wie in Variante 1 versucht) an ein Array-Element zuweisen?

    Vielleicht hat ja jemand eine Idee.

    Mit freundlichen Grüßen
     
    Zuletzt bearbeitet: 12. November 2017
  2. Kalito

    Kalito Erfahrenes Mitglied

    Hallo,

    zu deinen Fragen.

    1. Über private und public kannst du steuern, wer das Objekt nutzen darf. Hier ist es ganz gut erklärt.
    2. Hier wird es recht gut unter dem Punkt "Mehrdimensionales Array" beschrieben
     
    dUser gefällt das.
  3. dUser

    dUser Mitglied

    Vielen Dank.
     
    Zuletzt bearbeitet: 14. November 2017
Die Seite wird geladen...