Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-73269
s@shka
2002-05-10 15:09
2002.05.23
DLL Delphi и C++ Builder


1-73255
[NIKEL]
2002-05-10 14:03
2002.05.23
Как реализовать выподающий список чек-боксов?


4-73457
AlexMey
2002-03-19 15:00
2002.05.23
Копирование файлов по сети.


3-73090
KRAB
2002-04-27 13:35
2002.05.23
Конвертация базы данных


6-73326
atl_max
2002-03-11 19:11
2002.05.23
TNMSMTP - как приконнектится к серверу если ....




   Наверх