![]() |
Der Linken seiten kann nichts zugewisen werden warum ?
Hallo,
ich habe da an meinem projekt einen seltsammen fehler den ich nicht ganz verstehe geschweige denn weg machen könnte und zwar bekomme ich immer "[Fehler] uPaint.pas(93): Der linken Seite kann nichts zugewiesen werden" hier ist meine qullcode
Delphi-Quellcode:
und so nutze ich ihn:
tStyle = class
public procedure LoadStyle(FileName:String); procedure SaveStyle(FileName:String); procedure SetDefault; private fSize,fFirstPos:TPoint; fPen:TPen; fBrush:TBrush; fObjectTyp:Integer; fName:String; fVisible:Boolean; function GetSize:Tpoint; procedure SetSize(Size:Tpoint); function GetFirstPos:TPoint; procedure SetFirstPos(FirstPos:TPoint); procedure SetPen(Pen:TPen); function GetPen:TPen; function GetBrush:TBrush; procedure SetBrush(Brush:TBrush); procedure SetObjectTyp(NewTyp:Integer); function GetOjectTyp:Integer; procedure SetName(NewName:String); function GetName:String; procedure SetVisible(Visible:Boolean); function GetVisible:Boolean; published property Size:TPoint read GetSize write SetSize; property Position:TPoint read GetFirstPos write SetFirstPos; property Pen:TPen read GetPen write SetPen; property Brush:TBrush read GetBrush write SetBrush; property ObjectTyp:Integer read GetOjectTyp write SetObjectTyp; property Name:String read GetName write SetName; property Visible:Boolean read GetVisible write SetVisible; private end;
Delphi-Quellcode:
was mache ich falsch ???
...
style:=tStyle.Create; style.Size.x:=20;style.Size.y:=20; ich hab hier im forum unter der fehlermeldung gesucht aber leider nichts gefunden... und die hilfe ist auch nicht sehr hilfreich für mich. währe toll wenn jemmand den fehler finden und mir sagen kann was ich falsch gemacht habe. |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Ganz einfach: Das geht nicht. :mrgreen:
Allerdings geht es so:
Delphi-Quellcode:
Oder so:
style:=TStyle.create;
with style.size do begin x=20; y=20; end;
Delphi-Quellcode:
[edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit]
style:=TStyle.create;
style.size:=Point(20, 20); |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
vielen dank für deine schnelle retung, aber warum geht das nicht auf die andere art und weise ???
das verstehe ich nicht... |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Moin Michael,
weil die Set-Methode nur eine Wert vom Typ TPoint übergeben kann. Sprichst Du jetzt nur einen Teil an, so wäre der jeweils andere unbestimmt. |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
naja, wenn das so ist muss ich mich damit zufrieden geben, weil ich habe es immer noch nicht so ganz verstanden....
|
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Das Problem ist, wie Michael schon geschrieben hat, das der Typ TPoint ja aus zwei Werten, x und y besteht. Wenn du diesem nun nur einen Wert zuweisen willst, ist der zweite Wert nicht belegt und dies verursacht den Fehler. Es werden hat für einen Punkt immer zwei Werte benötigt. :wink:
|
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Zitat:
Gruß Hawkeye |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Ein bisschen unlogisch ist es imho schon.
style.size gibt einen TPoint zurück. (Also genauer gesagt: Einen Pointer auf die Daten eines TPoint) Wenn ich den Pointer hab, kann ich ihn ja dereferenzieren, die Offsets für die Felder hinzuaddieren und dann einfach mein Wort reinschreiben, oder? |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Zitat:
Gruß Hawkeye |
Re: Der Linken seiten kann nichts zugewisen werden warum ?
Ich kenne mich nicht damit aus, wie Delphi records verwaltet. Aber mit Klassen sollte es auf jeden Fall gehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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