Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 замени


Наверх

Титульная страница Поиск, карта сайта Написать письмо