Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Seite kann nichts zugewiesen werden" und ich blicks nicht (https://www.delphipraxis.net/88075-seite-kann-nichts-zugewiesen-werden-und-ich-blicks-nicht.html)

ozz 9. Mär 2007 19:33


Seite kann nichts zugewiesen werden" und ich blicks nic
 
Hallo Leute
ich bekomme immer einen Fehler "Der linken Seite kann nichts zugewiesen werden" wenn ich der Property item einen neuen Wert zuweise (aktualisiere). Irgendwie stehe ich momentan gewaltig auf dem Schlauch. Hat jemand einen Tip für mich?

Danke!


Delphi-Quellcode:
 function Get(Index: Integer): TType;
 procedure Put(Index: Integer; const Value: TType);
...
property item[Index: Integer]: TType read Get write Put;

...
procedure TTypelist.Put(Index: Integer; const Value: TType);
var p: PType;
begin
    New(p);
    p^:=value;
    FTypelist[Index]:=p;
end;

mkinzler 9. Mär 2007 19:39

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Delphi-Quellcode:
p:=value;

3_of_8 9. Mär 2007 19:41

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Delphi-Quellcode:
p:=@value;

Daniel G 9. Mär 2007 19:43

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Delphi-Quellcode:
p:=Pointer(value);

SirThornberry 9. Mär 2007 19:53

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
wie ist TType und fTypelist definiert?

Neutral General 9. Mär 2007 19:56

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Delphi-Quellcode:
p^.Assign(Value);
Dann geb ich auch mal meinen Senf dazu :mrgreen:
Natürlich geht das (wenns geht...^^) nur wenn die Klasse irgendwann mal von TPersistent geerbt hat...

ozz 9. Mär 2007 20:02

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Hallo zusammen,
vielen Dank. Ich habe mal eure Tips ausprobiert.

p:=@value; (immer noch der Fehler)

p:=Pointer(value); (ungültige Typenumwanldung, ich habe es auch mit meinem Typ Ptype und TType probiert, dto)

p:=value; (inkompatible Typen)

p^.Assign(Value); (undefinierte Bezeichner Assign)

....
Ich habe festgestellt, daß wenn ich eine Variable mit meinem TType erzeuge und dann die Zuweisung machen, das dann der Fehler nicht mehr kommt.

Funkioniert:
Delphi-Quellcode:
TTypelist.item[1]:=TType
funktioniert nicht
Delphi-Quellcode:
TTypelist.item[1].tag:=string
----
Delphi-Quellcode:
type TType = record
      Tag : String;
      element1: String;
      element2: String;
end;//Type

type TTypelist= class
private
 FTypelist:TList;
...
 function Get(Index: Integer): TType;
 procedure Put(Index: Integer; Value: TType);
...
public
   property item[Index: Integer]: TType read Get write Put;
end;

Hawkeye219 9. Mär 2007 21:08

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Hallo ozz,

du erhältst die Fehlermeldung nicht in der Methode Put, sondern wenn du versuchst, einer Komponente der Record-Eigenschaft etwas zuzuweisen, richtig?

Delphi-Quellcode:
var
  List : TTypeList;
begin
  List.Item[0].Tag := 'Hallo'; // -> "Der linken Seite..."
end;
Die Erklärung für diese Meldung findest du in diesem Thread, eine mögliche Lösung in diesem Beitrag.

Gruß Hawkeye

ozz 10. Mär 2007 07:38

Re: Seite kann nichts zugewiesen werden" und ich blicks
 
Hallo Leute,
Danke an Hawkeye, das ist genau das Problem.Ich habe den Problem jetzt verstanden, auch wenn ich noch keine vernünftige Lösung habe.


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