PDA

View Full Version : پارامتر نا محدود



محمد میرمصطفی
جمعه 13 خرداد 1384, 01:45 صبح
بعضی از توابع تعداد پارامترهاشون نامحدوده (مثل printf تو کلاس AnsiString) کسی می‏دونه چطوری میشه این توابع رو تعریف و استفاده کرد؟

sasan_vm
شنبه 14 خرداد 1384, 00:35 صبح
//---------------------------------------------------------------------------

void __fastcall TForm1::Func(const System::TVarRec* Args)
{
//TODO: Add your source code here
int size, Idx;
AnsiString s;

s = "";
size = Args[0].VInteger;

for ( Idx = 1; Idx < size; Idx++ )
{
s += Args[Idx].VPChar;
s += "\n";
}

ShowMessage(s);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TVarRec Var[4];

Var[0] = (int) ARRAYSIZE(Var);
Var[1] = "Hello";
Var[2] = "This is a test, ";
Var[3] = "OK.";

Func( Var );
}
//---------------------------------------------------------------------------

محمد میرمصطفی
دوشنبه 16 خرداد 1384, 01:47 صبح
ممنون sasan_vm جان از لطفت.
ولی منظور من بدون این کارها مثل:
AnsiString& __cdecl sprintf(const char* format, ...); // Returns *thisهستش.