سلام
یه StringGrid دارم کهه مثلا فقط یه سلول براش تعریف کردم(فقط برای مثال زیر)
وقتی میخوام مقدار سلول رو بخونم و در رشته به کار ببرم،مقدار رشته عجیب میشه.
کد زیر رو در نظر بگیرید:
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[1,1]:='123';
end;


procedure TForm1.StringGrid1Click(Sender: TObject);
var
S:String;
begin
S:='Bk'+RightStr('0000'+StringGrid1.Cells[1,1],5);
S:=S+'\'+S;
ShowMessage(S);
S:=RightStr('0000'+StringGrid1.Cells[1,1],5);
S:=S+'\'+S;
ShowMessage(S);
S:=RightStr('0000'+StringGrid1.Cells[1,1],5);
ShowMessage(IntToStr(Length(S)));
S:=S+'\'+S;
ShowMessage(S);
end;



نتیجه پیامها این هستند:
\Bk00123\Bk00123
مربع0012\00123
5
پنجره Access Violation

چرا اینطور میشه؟(چرا هیچکس به سوالاتم جواب نمیده!)