0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
|
1 | |
TObjectList и работа с классами26.02.2015, 15:59. Показов 3337. Ответов 10
Метки нет (Все метки)
Ребят, подскажите плиз, немного не догоняю принцип работы с классами.
Создаю класс Код
TCashList = class Column1: String; Column2: String; end; Код
CL := TCashList.Create; OL := TObjectList.Create; CL.Column1 := '111'; OL.Add(CL); Код
str := TCashList(OL[0]).Column1; Код
str := CL.Items[0].Column1;
0
|
26.02.2015, 15:59 | |
Ответы с готовыми решениями:
10
Можно ли в TObjectList добавлять TObjectList-ы? Работа с классами Работа с классами Работа с классами |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
26.02.2015, 16:31 | 2 |
да как обычно :
- объявляешь свой класс, - его приватным членом делаешь тот самый ObjectList, - в cвоем классе объявляешь св-во Items, в геттере котрого получаешь из ObjectList нужный объект, приводишь его к нужному типу и возвращаешь результатом
1
|
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
|
26.02.2015, 16:36 [ТС] | 3 |
Спасибо за ответ, а можно попросить примерчиком небольшим это сделать?
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||||||
26.02.2015, 16:54 | 4 | |||||
Если у тебя XE и выше, то и делать то ничего не надо - достаточно воспользоваться встроенным механизмом дженериков:
0
|
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
|
26.02.2015, 17:11 [ТС] | 5 |
Не получается( У меня XE7.
Если так: Код
OL: TObjectList<TCashList>; Код
[dcc32 Error] mainfile.pas(109): E2003 Undeclared identifier: 'TObjectList<>'
0
|
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
|
||||||||||||||||||||||||||
26.02.2015, 17:24 | 6 | |||||||||||||||||||||||||
Добавь
1
|
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
||||||
26.02.2015, 17:38 [ТС] | 7 | |||||
Вот он где секрет был)) Спасибо всем, все заработало))
Добавлено через 10 минут Ребята, подскажите еще одну вещь плиз
[DELHI] 222-222 [/DELHI] Получается, что мне придется перед каждой забивкой создавать новый компонент [DELHI] CL := TCashList.Create; CL.Column1 := '111'; OL.Add(CL); CL := TCashList.Create; CL.Column1 := '222'; OL.Add(CL); [/DELHI] Или есть какой-либо другой способ?
0
|
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
|
|
26.02.2015, 18:05 | 8 |
0
|
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
|
26.02.2015, 18:13 [ТС] | 9 |
Проглядел эту строчку. При компиляции выдает ошибку, что слишком много параметров и ссылается на содержимое скобок
0
|
226 / 225 / 112
Регистрация: 20.10.2013
Сообщений: 808
|
|||||||||||
26.02.2015, 18:20 | 10 | ||||||||||
Слишком много параметров похоже потому, что у тебя не прописан конструктор для класса TChashList.
Замени:
1
|
0 / 0 / 1
Регистрация: 24.10.2013
Сообщений: 36
|
|
26.02.2015, 18:23 [ТС] | 11 |
Блиин, понял, все получилось, спасибо за помощь и терпение.
0
|
26.02.2015, 18:23 | |
26.02.2015, 18:23 | |
Помогаю со студенческими работами здесь
11
Работа с классами Работа с классами-раздел private String Grid и работа с классами TObjectList Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |