Ich persönlich gehe aber weniger davon aus, dass es sozusagen eine überladene Version von NOT gibt...
sicherlich ist wird beim Boolean selbst irgendwas gemacht (z.B. wenn boolean_alt + boolean_neu = 255 dann boolean := 0
denn alles andere denke ich führt zu Verwirrung..
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var b: Boolean; begin b := True; if boolean( not Byte(b) ) then showmessage('t'); if boolean( not b ) then showmessage('t2'); end; |
da not Byte anders gehandelt wird als not boolean ist sicher: boolean ist intern nicht direkt ein Byte !
Wie gesagt
not; overload;
kann ich mir nicht wirklich vorstellen...
dasselbe mit strings:
strings sind eigentlich pointer, aber kopieren von strings klappt trotzdem ohne Probleme:
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var P1, P1: Pointer; S1, S2: String; begin P2 := P1; DasObjekt( P2 ).Wert := neuerWert;
S1 := 'beispielstring'; S2 := 'irgendwasanderes'; S2 := S1; S2 := 'malwasanderes'; end; |
bei Bytes/booleans kann man casten und somit das "andere" nutzen.. kann man das bei strings/Objekten auch?
wenn man Objekte "kopieren" will einfach in strings casten, kopieren, wieder zurück casten fertig?
oder verstehe ich Strings falsch? Booleans falsch und ich denke vieles weiter auch
Wie muss ich Strings ansehen wenn nicht als Pointer und nicht als Array of Char?
wie muss ich Booleans ansehen wenn nicht als Byte?
(ansehen = gleichsetzten, um sie zu verstehen)