AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array Referenz in Klasse

Ein Thema von WoGe · begonnen am 5. Aug 2010 · letzter Beitrag vom 5. Aug 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.361 Beiträge
 
Delphi 12 Athens
 
#1

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 16:09
Du willst also in dem fArray die selben Änderungen mitbekommen, bzw. genau die selben Daten haben, wie in dem externen Array?

Wenn ja, dann garnicht.

Man könnte sich aber eine Referenz auf die Variable holen, in welcher das externe Array liegt. (diese Variable darf dann aber nicht vorzeitig entfernt/freigegeben werden)

oder Besser du nimmst kein Array, sondern ein Objekt und legst darin ein Array-Property an.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 16:36
Hallo

ja ich wollte eigentlich in fArray das selbe haben, wie im externen Array
Ich wollte dieses eigentlich in den "Namespace" meiner Klasse importieren

Das Ziel ist das Array (oder ein anderes gleichen Typs) von der Klasse bearbeiten zu lassen
Und danach noch andere Methoden darauf anzuwenden

Grüsse
wo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#3

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 16:47
Und wieso übergibst Du das Array als Var-Parameter? Wenn ich Dich richtig verstanden habe, willst Du keine Kopie erstellen, sondern mit dem übergebenen Array hantieren, richtig? Hast Du es einmal so versucht?
Delphi-Quellcode:
type
  TMyRec = record
    intval: integer;
  end;

  TMyArray = array of TMyRec;

  TMyClass = class
  private
    FArray: TMyArray;
    procedure SetArray(const Value: TMyArray);
  public
    procedure ShowCount;
    property MyArray: TMyArray read FArray write SetArray;
  end;

procedure TMyClass.SetArray(const Value: TMyArray);
begin
  FArray := Value;
end;

procedure TMyClass.ShowCount;
begin
  ShowMessage(inttostr(Length(FArray)));
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 17:27
Leider gibt das eine Zugriffs-Verletzung
Ich greife zur zeit (testhalber) nur lesend zu

Übrigens dachte ich das das Const eine Lokale Kopie anlegt??

Grüße
wo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#5

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 17:45
Nein, const legt keine Kopie an, sondern übergibt das Original schreibgeschützt. Dass da eine AV kommt liegt wahrscheinlich daran, dass Du noch kein Array angelegt und übergeben hast. Deshalb wird da Length() auf nil angewendet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 18:08
Wenn man die Property direkt vor dem ausführen der Methode befüllt
funktioniert dies.
Befülle ich es direkt nach dem Setlength gibts die AV

Anscheinend darf der Inhalt des Array zwischen Zusweiung an Property und Verwendung nicht verändert werden.
Deswegen hatte ich ursprünglich auch einen VAR Parameter.

Kann man dem Übergabemechanismus irgendwie anders beibringen, das das eigentlich nur ein Pointer ist?

Grüsse
wo
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#7

AW: Array Referenz in Klasse

  Alt 5. Aug 2010, 18:14
Kannst Du mal den fehlerverursachenden Quellcode posten?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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