AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Prism Unter Net kann der linken Seite oft nichts zugewiesen werden
Thema durchsuchen
Ansicht
Themen-Optionen

Unter Net kann der linken Seite oft nichts zugewiesen werden

Offene Frage von "Mario"
Ein Thema von Mario · begonnen am 13. Mai 2005 · letzter Beitrag vom 13. Mai 2005
Antwort Antwort
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#1

Unter Net kann der linken Seite oft nichts zugewiesen werden

  Alt 13. Mai 2005, 14:57
Hallo,

ich habe hier ein kleines Codebeispiel. Das wird unter Win32 problemlos kompiliert (ist nicht vollständig, nicht ausführen):

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

type
  TAufzaehlung = (aVal1, aVal2);

  TTestRec = record
    Aufzaehlung: TAufzaehlung;
    iVal: Integer;
  end;

  TTestClass = class
  public
    aRec: TTestRec;
    dVal: Double;
  end;

  TSuperClass = class
  private
    FTestClass: TTestClass;
  public
    property Testclass: TTestClass read FTestClass;
  end;

var aSuperClass: TSuperClass;
begin
  aSuperClass := TSuperClass.Create;
  aSuperClass.Testclass.dVal := 3.2;
  with aSuperClass.Testclass do begin
    aRec.iVal := 32;
    aRec.Aufzaehlung := aVal1;
  end;
  // Die zwei Zeilen können unter Net nicht
  // kompiliert werden:
  // Der linken Seite kann nichts zugewiesen werden
  aSuperClass.Testclass.aRec.iVal := 32;
  aSuperClass.Testclass.aRec.Aufzaehlung := aVal1;
end.
Die zwei unteren Zeilen können allerdings nicht kompiliert werden, da der linken Seite angeblich nichts zugewiesen kann. Wieso ist das denn so?
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Unter Net kann der linken Seite oft nichts zugewiesen we

  Alt 13. Mai 2005, 15:06
Weil es sich dabei um einen ValueType (in Delphi: record) handelt. Und diese wie z.B. ein Integer behandelt werden. Somit kannst du einem ValueType nur einen ValueType zuweisen, aber nicht direkt den Feldern des ValueTypes.
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Unter Net kann der linken Seite oft nichts zugewiesen we

  Alt 13. Mai 2005, 15:11
Hmm, das überzeugt mich eigentlich nicht. Das With zwei Zeilen drüber macht eigentlich genau das, was Du jetzt ausgeschlossen hast, oder irre ich mich da?

Ich habe noch mal weiter probiert. Wenn man die property, wo die Klasse zurückgegeben wird raushaut und durch die Variable ersetzt, kompiliert Delphi wieder. Aber verstanden warum, habe ich es damit leider immer noch nicht.
Schöne Grüße,
Mario Noack
  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 02:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz