Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Arrays übergeben (https://www.delphipraxis.net/91049-arrays-uebergeben.html)

kenuvis 28. Apr 2007 09:37


Arrays übergeben
 
Hallo,

ja ich weiß, das Problem wurde schon mehrmals behandelt, ich habe auch schon rumprobiert und gemacht und und und..... nur egal, was ich mache, es will einfach nicht!!!!

Also ich habe im Frame1 ein Array, dessen Inhalt ich in Frame2 haben will.
Nun, wie ich gelesen habe, muss ich einen Type dafür erstellen. Gemacht! Und nun?

Delphi-Quellcode:
type
  TCharacter = class(TFrame)
  ...
  private
  ..
  public
    // Variante 1 mit der ich es Probiert habe
    Inventar: Inv;

    // Variante 2 mit der ich es Probiert habe
    Property Inven: Inv read Inventar write Inventar;

    // Variante 3 mit der ich es Probiert habe
    Function GetInventar: Inv;
  end;
Und auf der Gegenseite dann:
Delphi-Quellcode:
type
  TFrameLaden = class(TFrame)
  ...
  private
    inv_Char: TCharacter;
    b: Eintrag;

    ......

    b := inv_char.Inven[0]; // <-- Hier geht es nicht. (EAccessViolation)
    b := inv_char.Inventar[0]; // <-- Hier geht es auch nicht. (EAccessViolation)
    b := inv_char.GetInventar[0]; // <-- Und hier ebendfalls nicht. (EAccessViolation)
Achso und hier:
Delphi-Quellcode:
type Inv = Array [0..1] of Eintrag;
Hoffe mir kann einer helfen.

MfG Kenuvis

Apollonius 28. Apr 2007 09:42

Re: Arrays übergeben
 
Warum gibst du denn bei den Arrays einen Index an, wenn du das gesamte Array haben willst?Wenn b vom typ inv ist (so habe ich das jetzt verstanden), dann genügt
Delphi-Quellcode:
b:=inv_char.inven; //oder
b:=inv_char.inventar; //oder
b:=inv_char.getinventar;
Und der Frame existiert wirklich?
Hoffe geholfen zu haben
Apollonius

kenuvis 28. Apr 2007 10:03

Re: Arrays übergeben
 
Ich habe nun das erst mit einem Button auslösen lassen, damit ja alles fertig geladen ist.

Delphi-Quellcode:
procedure TFrameLaden.Button1Click(Sender: TObject);
var c: inv;
begin
  c := inv_char.Inven;
  c := inv_char.Inventar;
  c := inv_char.GetInventar;
end;
Effekt ist der gleiche. Nichts geht.
Also irgendetwas fundamentales mache ich falsch.

mkinzler 28. Apr 2007 10:19

Re: Arrays übergeben
 
Hast du die Klasse den instantiiert?

Apollonius 28. Apr 2007 12:13

Re: Arrays übergeben
 
In dem Quellcode, den du gepostet hast, versuchst du der Variablen c vom Typ inv_waffen einen Wert vom Typ inv zuzuweisen.

kenuvis 28. Apr 2007 13:28

Re: Arrays übergeben
 
Ja, sry, das war ein schreibfehler im forum.... Soll natürlich nur inv sein.

Instanziert ??

mkinzler 28. Apr 2007 13:33

Re: Arrays übergeben
 
Zitat:

Instanziert ??
Delphi-Quellcode:
inv_Char := TCharacter.Create( ...);

kenuvis 28. Apr 2007 15:52

Re: Arrays übergeben
 
Nein, das hab ich nicht gemacht.
Wenn ich das mache, was soll denn da als Attribut von Create sein ?

mkinzler 28. Apr 2007 16:00

Re: Arrays übergeben
 
Der Owner also Form oder Nil. Erst nach Erstellung einer Instanz kann man mit der Arbeiten.

kenuvis 28. Apr 2007 16:16

Re: Arrays übergeben
 
Mein Held........ Danke!
Es geht! Meine Güte, wie konnt ich sowas dummes nur machen... :wall: :wall:

Na egal, ich weiß, hier wird mir geholfen, egal wie dumm ich bin.


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