![]() |
Pointer, Array, Funktion geht nicht
Hi,
komm einfach nicht drauf! Ich habe eine Class mit einer public Funktion die so deklariert ist:
Code:
PLongArray ist so definert:
function TProgramFunctions.CalcResult(const data: PLongArray): boolean;
Code:
nun binde ich die Class über create in meine uMain ein und mache z.B. folgendes:
TLongArray = Array of Byte;
PLongArray = ^TLongArray;
Code:
Ich übergebe somit ja den Pointer meines Arrays. Wenn ich aber nun in meiner CalcResult den Inhalt von data ansehe, steht immer "nicht verfügbarer Wert".
procedure TForm1.Button1Click(Sender: TObject);
var test2: array [0..2] of byte; begin teset2[0] := 123; teset2[1] := 47; teset2[2] := 85; ProgramCalc:= TProgramFunctions.Create; ProgramCalc.CalcResult(@test2); end; Warum? |
Re: Pointer, Array, Funktion geht nicht
Sind das nun Fehler beim Tippen, oder wieso heißt Dein Array beim Befüllen teset?
|
Re: Pointer, Array, Funktion geht nicht
Zitat:
Gibt es denn ein Problem auch bei der Verwendung im Programm? |
Re: Pointer, Array, Funktion geht nicht
Natürlich Tippfehler!
Wenn ich die Funktion Aufraufe sind die 3 Werte drinnen. Tut leid, aber wie mit data^? In der Funktion def lässt es mich das nicht machen. Wenn ich debugge ist von Anfang an nichts in Data drinnen. Der Pointer wird richtig übergeben, zumindest Pointer vor auf ruf der Funktion = Pointer in der Funktion... |
Re: Pointer, Array, Funktion geht nicht
Array of byte <> array[0..2] of byte. Ersteres ist dynamisch, zweiteres immer drei Byte lang. Völlig inkompatibel, ohne sich schwer zu verbiegen...
|
Re: Pointer, Array, Funktion geht nicht
..
Zitat:
PLongArray wäre dann ein Pointer auf einen Pointer. .. oder irre ich mich da? Grüße Klaus |
Re: Pointer, Array, Funktion geht nicht
Hab ich glatt übersehen. Wenn man schon einen Typ deklariert, sollte man den auch nutzen (wieso eigentlich TLongArray, wenn es ein Array of Byte ist?).
|
Re: Pointer, Array, Funktion geht nicht
vielen vielen vielen Dank!!! :lol: :lol:
Mit TLongArray gehts!!! Pointer des Pointers, man o man!!!! LongArray nur weil langes/großes (Dynamisches) Array... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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