Einzelnen Beitrag anzeigen

c20c

Registriert seit: 23. Mai 2009
Ort: Liederbach
9 Beiträge
 
Delphi 2009 Architect
 
#1

Properties - als Getter ein Function mit Parameter aufrufen

  Alt 20. Mai 2010, 12:09
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.
Kermit the Frog
NEIN .... 22 durch 11 ist NICHT 1
  Mit Zitat antworten Zitat