Форум: "Прочее";
Текущий архив: 2008.12.28;
Скачать: [xml.tar.bz2];
ВнизНашел какую-то фичу (может глюк) в D6... Найти похожие ветки
← →
Циркуль (2008-10-31 17:34) [0]
procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStringList;
begin
SL := TstringList.Create;
try
SL.Add("1");
Caption := """" + Format("%2.0s", ["1"]) + Format("%2.0s", [SL[0]]) + """";
finally
Sl.Free;
end;
Exit;
end;
Внимание вопрос: какой Caption получицо? :)
У кого как, а у меня " 1 ", хотя, казалось бы, должно быть " 1 1"
← →
Palladin © (2008-10-31 17:47) [1]"1" в первом вызове считается как Char, указание prec каким то образом портит ситуацию если это String, но не влияет если это Char (лень разбираться)
Caption := """" + Format("%2.0s", [String("1")]) + Format("%2.0s", [SL[0]]) + """";
увидишь страшную странностьCaption := """" + Format("%2s", ["1"]) + Format("%2s", [SL[0]]) + """";
увидишь, что все хорошо...
← →
Palladin © (2008-10-31 17:48) [2]
> указание prec каким то образом портит ситуацию если это
> String
возможно считается, что передан Single...
← →
Rouse_ © (2008-10-31 18:57) [3]
> хотя, казалось бы, должно быть " 1 1"
А справку нужно внимательней читать.The precision specifier, if present in the format string, specifies the maximum length of the resulting string. If the argument is a string that is longer than this maximum, the string is truncated.
Соответственно SL[0] являясь именно строкой урезался до нуля, а первый, являясь Char-ом остался как есть...
Если бы обьявить какFormat("%2.0s", [SL[0][1]])
то было-бы " 1 1"
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.12.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c