Man kann theoretisch auch solche Spielereichen machen, das sollte problemlos klappen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var Test: AnsiString; ByteArray: array of Byte; begin Test := EditX.Text; SetLength(ByteArray, Length(Test)); CopyMemory(@ByteArray, @Test, Length(Test)); ShowMessage(IntToStr(ByteArray[0])); |
Aufpassen muss man bei so etwas, aber möglich ist das auch:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type TByteArray = array of Byte; PByteArray = ^TByteArray; var Test: AnsiString; ByteArray: PByteArray; begin Test := EditX.Text; ByteArray := @Test; ShowMessage(IntToStr(Length(ByteArray^)) + ': ' + IntToStr(ByteArray^[0])); |
Dabei greift man auf den AnsiString zu wie auf ein ByteArray, spart also das Kopieren. Aber da musst du dann auch sehr aufpassen was du tust.
Wichtig ist dabei AnsiString, da nur der immer 1 Byte pro Zeichen hat (String unter D2009 mehr pro Zeichen).