Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Aufbau eines Array of Const

  Alt 2. Jun 2008, 17:27
Wie schon erwähnt, werden intern zwei Parameter übergeben (Länge bzw. Index des letzten Elements) und ein Zeiger auf das erste Element (TVarRec):
Delphi-Quellcode:
unit Foo;

interface

implementation

uses
  SysUtils,
  Dialogs;

procedure Bar(const AMethod: string; const AParams: array of const);
var
  Index: Integer;
  Text: string;
begin
  for Index := Low(AParams) to High(AParams) do
    with TVarRec(AParams[Index]) do
    begin
      case VType of
        vtInteger: Text := 'vtInteger';
        vtBoolean: Text := 'vtBoolean';
        vtChar: Text := 'vtChar';
        vtExtended: Text := 'vtExtended';
        vtString: Text := 'vtString';
        vtPointer: Text := 'vtPointer';
        vtPChar: Text := 'vtPChar';
        vtObject: Text := 'vtObject';
        vtClass: Text := 'vtClass';
        vtWideChar: Text := 'vtWideChar';
        vtPWideChar: Text := 'vtPWideChar';
        vtAnsiString: Text := 'vtAnsiString';
        vtCurrency: Text := 'vtCurrency';
        vtVariant: Text := 'vtVariant';
        vtInterface: Text := 'vtInterface';
        vtWideString: Text := 'vtWideString';
        vtInt64: Text := 'vtInt64';
      else
        Text := '$' + IntToHex(VType, 2);
      end;
      ShowMessage('Parameter ' + IntToStr(Index) + ': ' + Text);
    end;
end;

initialization

  Bar('Foo', [42, 'Hello, World!', nil]);

end.
  Mit Zitat antworten Zitat