Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Warum wird eine falsche Variable in einem Objekt bearbeitet (https://www.delphipraxis.net/179575-warum-wird-eine-falsche-variable-einem-objekt-bearbeitet.html)

TiGü 18. Mär 2014 08:50

AW: Warum wird eins falsche Variable in einem Objekt bearbeitet
 
Zitat:

Zitat von Ykcim (Beitrag 1252359)
Jetzt im Nachhinein fällt mir ein, dass ich gestern, als ich Delphi beendete, die Message bekam, das Delphi nicht richtig ausgeführt würde und das System hakte kurz. Vielleicht war es wirklich ein Fehler im Delphi ?!

Und wieder gilt:
http://youtu.be/nn2FB1P_Mn8?t=10s

Ykcim 18. Mär 2014 09:18

AW: Warum wird eins falsche Variable in einem Objekt bearbeitet
 
:-D

michaelthuma 18. Mär 2014 10:22

AW: Warum wird eins falsche Variable in einem Objekt bearbeitet
 
Recht so.

Schwer zu beurteilen. Vermutlich wurde nicht alles neu übersetzt oder die IDE war verwirrt. Aber dass Delphi wirklich vorsetzlich in das falsche Feld schreibt ohne Type Cast... wäre erstaunlich. Aber geben tut es alles.

Was hat sich geändert? Vermutlich ist die Energie nach dem erste Kaffee eine positivere.

Egal ... nach ein paar Minuten wirds lustig ... David Icke On Information Processing ... ist mir auch schon so gegangen beim Debuggen oder nachher :-)

Zitat:

Zitat von Ykcim (Beitrag 1252359)
Hallo Zusammen,
bitte fragt mich, was heute anders ist, ...
Jetzt funktioniert es jedenfalls wie gewünscht und auch programmiert...


hoika 18. Mär 2014 10:53

AW: Warum wird eine falsche Variable in einem Objekt bearbeitet
 
Hallo,

da hilft dann meistens ein build all.
Wenn es mehrere Projekte sind, die die gleiche Unit verwenden,
könnte es auch sien, dass es mehrere Dcu's der Unit gibt, an verschiedenen Stellen.
(gerade gestern gehabt ...)

Hier hilft Search Everything wunderbar.


Heiko

Aviator 18. Mär 2014 14:57

AW: Warum wird eins falsche Variable in einem Objekt bearbeitet
 
Zitat:

Zitat von Ykcim (Beitrag 1252352)
Zitat:

) Du brauchst für Properties, die du direkt liest und schreibst und wo sonst nichts weiter passiert keine extra Getter und Setter. (siehe published-Bereich oben)
Wie das funktioniert weiß ich leider nicht. Ich kenne bislang nur diesen Weg...

Indem du es einfach nur so schreibst ;)

Delphi-Quellcode:
private
  FMyProperty: integer;
public
  property MyProperty: integer read FMyProperty write FMyProperty (default 0);
Das
Delphi-Quellcode:
default 0
ist bewusst umklammert und soll heißen, dass du den Default-Wert nicht setzen musst. Der Unterschied zu dieser und der deinen Methode ist, dass hier nicht noch der umständliche Weg über die Getter bzw. Setter Procedure genommen wird, sondern du einfach direkt in dein Feld hinein schreibst. Im Grunde machen deine Getter und Setter nichts anderes, als den übergebenen Wert in dein Feld zu schreiben.

Das heißt:
Delphi-Quellcode:
property User_Abteilung_ID : integer
  read GetUser_Abteilung_ID
  write SetUser_Abteilung_ID;
wird zu:
Delphi-Quellcode:
...
property User_Abteilung_ID : integer read FUser_Abteilung_ID write FUser_Abteilung_ID;
...
Nur dort wo die Werte überprüft werden müssen, die in deine(n) Felder geschrieben/gespeichert werden sollen, dort brauchst du Setter bzw. auch Getter Methoden (wenn diese, möglicherweise abhängig von anderen Werten, noch umgewandelt werden sollen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Seite 2 von 2     12   

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