Inhaltsverzeichnis

TIntArray — Feld fester Länge

Ein Feld von int64-Werten auf dem Heap, dessen Länge zur Laufzeit feststeht und sich ändern lässt. Vega hält damit Zahlenreihen, die kein Objekt je Eintrag rechtfertigen: die Spaltenbreiten eines TStringGrid, die Stilklassen eines TControl, die Auswahlmarken einer TListBox.

Unit: Vega.Lists

Alle Steuerelemente · TObjectList · array<T> in der Sprachreferenz


Einordnung

Warum kein [N]int64? Weil dessen Länge zur Übersetzungszeit feststehen müsste. Warum kein array<int64>? Weil Vega als Bibliothek ohne die dynamischen Container der Standardbibliothek auskommen soll — und weil der Speicher hier bewusst auf dem Heap liegt: Als Inline-Feld in einer TControl-Ableitung würde er in dessen Kinderfeld ragen (#1630).


Verwendung

unit Main;
import std.io;
import Vega.Types;
import Vega.Strings;
import Vega.Lists;

fn main(): int64 {
  var a: TIntArray := NewIntArray(4);       // Laenge steht beim Anlegen fest
  a.Put(0, 120);
  a.Put(1, 80);
  a.Put(2, 200);
  PrintLn(StrConcat("Laenge: ", IntToStr(a.Length)));
  PrintLn(StrConcat("a[2]: ", IntToStr(a.Get(2))));

  // Ausserhalb der Laenge: Get liefert 0, Put tut nichts — kein Absturz
  PrintLn(StrConcat("a[99]: ", IntToStr(a.Get(99))));
  a.Put(99, 1);

  a.Resize(6);                               // vorhandene Werte bleiben
  PrintLn(StrConcat("nach Resize a[2]: ", IntToStr(a.Get(2))));
  PrintLn(StrConcat("neu angelegt a[5]: ", IntToStr(a.Get(5))));

  a.Fill(7);
  PrintLn(StrConcat("nach Fill a[0]: ", IntToStr(a.Get(0))));

  a.Destroy();
  return 0;
}

Laenge: 4
a[2]: 200
a[99]: 0
nach Resize a[2]: 200
neu angelegt a[5]: 0
nach Fill a[0]: 7

Übersetzt und ausgeführt mit lyxc 1.1.3I.


Besonderheiten


Eigenschaften

Alle Eigenschaften, auch die geerbten.

Name Typ Bedeutung Herkunft
Data int64 Adresse des Speicherblocks eigen
Length int64 Zahl der Plätze eigen

Methoden

Alle Methoden, auch die geerbten.

Signatur Zweck Herkunft
Create(n: int64): void Anlegen; NewIntArray(n) eigen
Destroy(): void Speicher freigeben eigen
Get(i: int64): int64 Wert lesen; 0 außerhalb der Länge eigen
Put(i: int64, v: int64): void Wert setzen; außerhalb der Länge wirkungslos eigen
Fill(v: int64): void Alle Plätze auf denselben Wert eigen
Resize(n: int64): void Länge ändern; vorhandene Werte bleiben, neue sind 0 eigen

Dazu die Hülle NewIntArray(n: int64): TIntArray.


Ereignisse

Keine.

Letzte Aktualisierung: 2026-08-19 — API aus Vega/Lists.lyx erhoben, Beispiel mit lyxc 1.1.3I übersetzt und ausgeführt.