Entwickler-Ecke

Andere .NET-Sprachen - Instanziieren von einem Array(Klasse)????


ZeroQool - Mo 23.01.06 17:42
Titel: Instanziieren von einem Array(Klasse)????
Hallo, suche schon seit 2T eine Hilfe zu meinem Problem

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  private
  { Private-Deklarationen }
    order : TxmlOrder;
    oi    : Array[0..1of OrderItemType;
    pn    : Array of ProductName;
.
.
.
.
procedure frm_Test.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
  order := TxmlOrder.Create;
  oi[0]    := OrderItemType.create;
  oi[1]    := OrderItemType.create;

  SetLength(pn, 100);
  pn[0].Language := '..';
end;


bei "pn[0].Language := '..';" bekomme ich immer direkt einen Fehler. Ich denke es liegt daran, weil ich die Klasse nicht instanziiere u darin liegt mein Problem. Ich habe keine Ahnung wie ich das machen muss. Kann mir jemand bitte helfen?

Delphi 2006 .net


mkinzler - Mo 23.01.06 17:48

Du hast dein Problem ja schon erkannt.

Delphi-Quelltext
1:
2:
3:
4:
...etLength(pn, 100);
  pn[0] := ProductName.Create( ...);
  pn[0].Language := '..';
end;


ZeroQool - Mo 23.01.06 17:51

thx für die schnelle Antwort. habe es so auch schon probiert

Delphi-Quelltext
1:
2:
3:
4:
  SetLength(pn, 100);

  pn[0] := ProductName.Create;
  pn[0].Language := '..';


Fehlermeldung:
Zitat:
Konstruktoren können mit Instanzenvariablen nicht aufgerufen werden
:?:


mkinzler - Mo 23.01.06 18:09

Wie sieht die Deklaration von ProductName aus?


ZeroQool - Di 24.01.06 09:28

Deklaration:    pn    : Array of ProductName;

ProductName ist von einer DLL, die mir eine Firma zur Verfügung gestellt hat
Zitat:
Ruft den Produktnamen der Assembly an, die das Steuerelement enthält


opfer.der.genauigkeit - Di 24.01.06 11:50

Wie die Fehlermeldung schon sagt, du versuchst mit einer Instanz von Produktname den Konstruktor aufzurufen.

Benutze die Klasse z.B.: TProduktname

Wobei dein Zitat so klingt, als wäre Produktname schon eine gültige Instanz.


ZeroQool - Di 24.01.06 12:40

TProductName gibt es leider nicht. Ich habe mal ein Bild angehängt woher ich ProductName aus der dll herausnehme.