Einzelnen Beitrag anzeigen

Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: C++ zu Delphi Übersetzung (va_ -Befehle)

  Alt 13. Aug 2009, 13:12
Der Funktion "CompiledPacket::Add" kannst Du nach dem ersten, festen Parameter "pString" eine beliebige Zahl weiterer Parameter beliebigen Typs übergeben. In dem konkreten Fall ist "pString" ein Formatstring und die weiteren Parameter sind die Werte, die mittels dieses Formatstrings formatiert werden sollen.

In Delphi gibt es keine Funktionen mit beliebiger Anzahl Parameter; hier greift man auf "array of const" zurück, um den gleichen Effekt zu erzielen.

Das könnte dann so aussehen:
Delphi-Quellcode:
procedure TCompiledPacked.Add(const fmt: string; params: array of const);
var string2: string;
begin
  string2 := Format(fmt, params);
  Add(string2, Length(string2), false);
end;
Und wird so Add('%s %.4d', ['Hallo', 123]); aufgerufen.
  Mit Zitat antworten Zitat