![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Left side cannot be assigned to (D2007)
Cobalt © (2011-08-16 10:34:00)Объясните, ЧЯДНТ?
var
sPostfix: string
if sPostfix <> '' then
sPostfix := Char(Inc(Ord(sPostfix[1]))); // не компилируется
Anatoly Podgoretsky (2011-08-16 12:53:00) [1]Использование inc как аргумент функции выглядит абсурдом, и ественно правая часть не может быть присвоена левой
> Char(Inc = L(R
Anatoly Podgoretsky (2011-08-16 12:51:00) [2]> Inovet (16.08.2011 12:40:07) [7]
Ну вообще то не очень и похож
> procedure Inc(var X [ ; N: Longint ] );
Inovet (2011-08-16 12:40:00) [3]Это всё потому что inc синтаксически на функцию похож.
Anatoly Podgoretsky (2011-08-16 12:16:00) [4]> Cobalt (16.08.2011 10:43:02) [2]
Ну ради тебя не будут менять генератор ошибок, сказано левая сторона, значит
левая. inc требует переменной и компилируется в аналог L := R + 1
Игорь Шевченко (2011-08-16 10:53:00) [5]Inc подразумевает модификацию аргумента, а она вполне разумно не может быть присвоена.
Ты можешь написать
Ord(sPostfix[1]) := Ord(sPostfix[1]) + 1 и это тоже не скомпилируется с той же диагностикой
MBo (2011-08-16 10:53:00) [6]Можно Succ без приведений типа использовать.
Ega23 (2011-08-16 10:47:00) [7]
procedure TForm19.Button5Click(Sender: TObject);
var
s: string;
begin
s := '1';
s[1] := Char(Ord(s[1]) + 1);
ShowMessage(s);
end;
Cobalt (2011-08-16 10:43:00) [8]а при чем здесь "left side"? тогда бы уж там что-нить типа "not applacable to"
Ega23 (2011-08-16 10:38:00) [9]Inc на + 1 замени