![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В чем я не прав
Kopachev © (2002-05-22 21:51:00)Почему появляется ошибка: "Left side cannot be aasigned to"
Описал две записи
type
RAZDEL = record
Visible: boolean;
otstup: integer;
razdel_otstup: integer;
pos: TPoint;
podrazdel: TList;
end;
type
PODRAZD = record
num: integer;
otstup: integer;
strok: integer;
pos: TPoint;
end;
Описал массив:
Razdels: array[0..7] of RAZDEL;
type PODRAZD1 = ^PODRAZD;
podrazds: podrazd1;
Потом добавляю в список
New(podrazds);
podrazds^.otstup := 1;
podrazds^.strok := 1;
Razdels[0].podrazdel.Add(podrazds);
А вот здесь происходит ошибка.
(PODRAZD(Razdels[0].podrazdel.Items[0]^)).pos.y := 5;
Почему появляется ошибка: "Left side cannot be aasigned to"
Читать данные из (PODRAZD(Razdels[0].podrazdel.Items[0]^)).pos.y могу, а изменить элемент, находящийся в списке почему-то не могу.
Lord Warlock (2002-05-23 09:26:00) [1]Попробуй написать
TPoint(PODRAZD1(Razdels[0].podrazdel.Items[0])^.pos).y := 5;
Внук (2002-05-23 09:17:00) [2]"Left side cannot be aasigned to" - Левой части выражения не может быть присвоено значение. Попробуйте так:
PODRAZD1(Razdels[0].podrazdel.Items[0])^.pos.y := 5;
И неплохо было бы увидеть
Razdels[0].podrazdel:=TList.Create;
перед
Razdels[0].podrazdel.Add(podrazds);
allrussia (2002-05-23 02:19:00) [3]Левая сторона не может быть сопоставлена с...
program Produce;
const
c = 1;
procedure p(const s: string);
begin
s := "changed"; { <-- Ошибка здесь}
end;
function f: PChar;
begin
f := "Hello";
end;
begin
c := 2; { <-- Ошибка здесь }
f := "h"; { <-- Ошибка здесь }
end.
program Решение;
var
c : Integer = 1; { Use an initialized variable }
procedure p(var s: string);
begin
s := "changed"; { Use variable parameter }
end;
function f: PChar;
begin
f := "Hello"; { This is fine - we are setting the return value }
end;
begin
c := 2;
f^ := "h"; { This compiles, but will crash at runtime }
end.