Вниз
Скачать: CL | DM;

Нашел какую-то фичу (может глюк) в 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
15-1225053623
axis_of_evil
2008-10-26 23:40
2008.12.28
сетевой шнур


15-1224695700
Unconnected
2008-10-22 21:15
2008.12.28
Работа с протоколом icq


15-1224873598
TUser
2008-10-24 22:39
2008.12.28
Кризис и человек


1-1205087203
Toha
2008-03-09 21:26
2008.12.28
Проблема с качеством картинок.


1-1205240760
Matveih1
2008-03-11 16:06
2008.12.28
Как работать с BPL времени выполнения




   Наверх