Dryobates napisał:
>ALength jest typu Cardinal, więc nie może być ujemne.
Owszem, ale i tak mysle ze mam racje. Chociaz Borland narobil tu potwornego balaganu.
Dlaczego uwazam ze mam racje:
- konstrukcja tekstu w helpie.
funkcja ma 4 parametry, tekst ma 5 akapitow. pierwszy akapit opisuje dzialanie funkcji, akapity 2-5 opisuja poszczegolne parametry. Akapit, w ktorym wystepuje watpliwe zdanie opisuje parmetr ALength.
ALength is the number of characters in AText that are replaced by ASubText. If ALength is 0, ASubText is inserted into AText without removing any characters. If AText/ALength is negative, the characters preceding the insertion point are duplicated after the occurrence of ASubText in the result string.
- tak to wlasnie dziala
wprawdzie ALength jest Cardinal i:
Memo1.Lines.Add(StuffString('123456789',5,-3,'abc')); nie przejdzie,
ale mozna zrobic:
var
a:integer;
begin
a:=-3;
Memo1.Lines.Add(StuffString('123456789',5,a,'abc'));
end;
i to daje w wyniku:
1234abc23456789
czyli dziala tak jak opisuje watpliwe zdanie, o ile AText zastapimy ALength:
If ALength is negative, the characters preceding the insertion point are duplicated after the occurrence of ASubText in the result string.
Jesli ALength jest ujemne, wowczas w wynikowym lancuchu znaki poprzedzajace miejsce wstawienia sa powtorzone po wstawionym ASubText.
CBDO--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1