Ich habe so ein grundlegendes Problem in Delphi, ich kann es nicht lösen.
Mein Code:
Hinweis: DataR ist lokal in den folgenden Methoden, aber normalerweise ist es eine Klasse var.Nur für das Konzept ist es lokal.
%Vor%Dies wird kompiliert, aber nach Move () wird DataR = nil ausgeführt.
Zweiter Versuch:
%Vor%Dies kompiliert überhaupt nicht. Fehler in der dritten Zeile (DataR: = Kopieren (Eingabe ....) sagt "Inkompatible Typen".
Wo ist das Problem? Sie sind alle Bytearray!
Warum nicht FOR verwenden?
%Vor%BTW: Wenn Sie Arrays als Parameter übergeben möchten, sollten Sie sie als Typ deklarieren, zB:
%Vor%und verwende TMyArray als Parametertyp.
Bearbeiten: Ich wurde über einen niedrigeren Wert informiert. In meinem ursprünglichen Beitrag war es für i: = 0, aber i: = Low (Eingabe) ist sicherer und reiner.
Die Move-Prozedur verschiebt keinen Speicherbereich. Es kopiert Count Bytes. Hiermit erhalten Sie zwei verschiedene identische Arrays: Input und DataR.
%Vor%P. s. Bei statischen Arrays können Sie SizeOf (Input) anstelle von SizeOf (Byte) * Length (Input) verwenden. Anstelle von Byte könnte anderer Datentyp sein.