Hallöchen,
ich hatte folgende Idee, um nicht "tausende" Getter (bzw Setter) schreiben zu müssen:
Code:
type
tHeader = class
private
type
pword = ^word;
tPart = (p_dsize,p_func0,p_func1,p_error,p_value,p_msgid);
var
bytes: array[0..11] of byte;
function getPart(Part: tPart): Word;
public
property Dsize: Word read getPart(p_dsize); // Hier möchte ich einen FESTEN Wert übergeben (siehe tPart)
property Func0: Word read getPart(p_func0);
...
end;
...
function tHeader.getPart(Part: tPart): Word;
var
pvalue: pword;
begin
case Part of
p_dsize: pvalue:=@bytes[0];
p_func0: pvalue:=@bytes[2];
p_func1: pvalue:=@bytes[4];
p_error: pvalue:=@bytes[6];
p_value: pvalue:=@bytes[8];
p_msgid: pvalue:=@bytes[10];
end;
result:=pvalue^;
end;
Jedoch mag das ja der Compiler nicht. Gibt es da vielleicht einen Trick?
Es geht mir jetzt weniger um das konkrete Beispiel, sondern mehr um das prinzipielle.
Ich habe meine Idee mit den Zeigern deswegen auch noch nicht testen und garantiere für nichts.
Aber das ist evt. ein anderes Thema (BE oder LE)
Vielen Dank im vorraus!
Und eine Bemerkung zwischendurch: Das DelphiPraxisForum ist klasse. Danke an Alle, die so aktiv sind.