Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Списки   Найти похожие ветки 

 
Kopachev   (2002-05-13 20:59) [0]

Подскажите как добраться до содержания списка. Имею две структуры:
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;
Создаю список RAZDEL.podrazdel:=TList.Create;

После пытаюсь добраться до содержания списка, но получаю ошибку invalid typecast:
(PODRAZD(Razdel[k].podrazdel.Items[Razdel[k].podrazdel.Count-1])).pos.y


 
Malder ©   (2002-05-13 21:13) [1]

Какую то ахинею пишешь или чего то не договариваешь.

Что такое Razdel[k] ? RAZDEL - Это запись. А ты обращаешься как с масивом...


 
Kopachev   (2002-05-13 22:41) [2]

Я сделал массив записей RAZDEL
var Raz: array[1..8] of RAZDEL;
Теперь прошелся по массиву и создал список
for i:=1 to 8 do begin
raz[i].podrazdel := TList.Create
end;
Нужно обратится к K-той записи
(PODRAZD(Raz[k].podrazdel.Items[1])).pos.y
Почуму-то не работает. Я недавно программирую на Delphi, так что сильно ногами не пихайте:)



 
Malder ©   (2002-05-14 00:27) [3]

Kopachev
Нужно обратится к K-той записи
(PODRAZD(Raz[k].podrazdel.Items[1])).pos.y


Странно ты обращаешься. Надо проще:

Raz[k].podrazdel.Items[1].pos.y

Только это неверно. Потому что в TList.Items нету Pos. Может ты просто хочешь обратиться к Pos.y из Raz ? Тогда:

Raz[k].podrazdel.pos.y

А вообще, вопрос настолько странный, сразу столько ошибок допущено, что наводит на мысль - ты не читал ни одной книги по Delphi. Прочти - помогает...


 
Cobalt ©   (2002-05-14 00:38) [4]

ты приводишь указатель к записи.
Надо приводить указатель к указателю на запись
type
PPODRAZD = ^PODRAZD;
(PPODRAZD(Raz[k].podrazdel.Items[1])).pos.y
или раскрывать укзатель:
(PODRAZD(Raz[k].podrazdel.Items[1] ^)).pos.y


 
Kopachev   (2002-05-14 00:56) [5]

Cobalt
Спасибо, все заработало.
Malder
А вообще, вопрос настолько странный, сразу столько ошибок допущено, что наводит на мысль - ты не читал ни одной книги по Delphi. Прочти - помогает...
Вообщет-то читаю Арангельский"Програм-е в Delphi5"
Я переквалифицируюсь с C++Builder на Delphi. Отсюда и куча ошибок.
Всем спасибо.


 
Kopachev   (2002-05-15 00:15) [6]

А можно ли изменить объект, хранящийся в списке.
Т.е. есть запись type rec =record name: string; end;
Я добавляю ее к списку, потом изменяю значение name в списке.
PODRAZD(podrazdel.Items[i]^).name := 5;
Почему появляется ошибка: "Left side cannot be aasigned to"



Страницы: 1 вся ветка

Текущий архив: 2002.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-73267
Nelud
2002-05-10 22:58
2002.05.23
Господа ! Почему в консольном приложении FileExists всегда F


3-73089
@andrew
2002-04-26 16:29
2002.05.23
Привет Всем!!! Можно ли заблокировать работу триггеров в SQL?


4-73458
DNT
2002-03-24 11:57
2002.05.23
Трей и мышка


14-73395
1111
2002-04-16 13:42
2002.05.23
Часы реального времени


3-73060
Сержик
2002-04-25 13:02
2002.05.23
Отчет фастрепорта в RTF без линий и криво выводится :(