TList, FP |
TList, FP |
compiler |
14.07.2007 20:22
Сообщение
#21
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Добрый день
Существует ли список в FP, как встроенный тип? говорят что да но найти о нем в руководстве не могу ни слова -------------------- Спасибо!
Удачи! |
volvo |
17.07.2007 15:50
Сообщение
#22
|
Гость |
С пониманием природы первого указателя у тебя проблема...
Цитата получаем 2 аргумента первый указатель на процедуру, второй -- не ясно что... С чего бы это? Смотри, что написано:Цитата(rtl.pdf) 2.42.21 TFPList.ForEachCall Synopsis: Call a procedure or method for each pointer in the list. Declaration: procedure ForEachCall(proc2call: TListCallback;arg: pointer) procedure ForEachCall(proc2call: TListStaticCallback;arg: pointer) Visibility: public Description: ForEachCall iterates over all pointers in the list and calls proc2call, passing it the pointer and the additional arg data pointer. Proc2Call can be a method or a static procedure. То есть, первый аргумент - это сам указатель, хранящийся в списке (над элементом, на который он указывает, надо произвести какие-то действия), а второй - дополнительный указатель. Второй ЗДЕСЬ не используется. Сообщение отредактировано: volvo - 17.07.2007 15:52 |
compiler |
17.07.2007 16:45
Сообщение
#23
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
С чего бы это? туманно все как-то...посмотрев исходники кажеться понял зачем nil -- просто так..
итак мы вызываем метод(в качестве первого параметра используем указатель(почему?) на процедуруа второй оставляем пустым), процедура возвразщает 2 указателя, которые преобразуются в некий TListCallback. Тоесть мы для вызова ForEachCall используем два лишних указателя .Так? Сообщение отредактировано: compiler - 17.07.2007 17:02 -------------------- Спасибо!
Удачи! |
hardcase |
17.07.2007 17:07
Сообщение
#24
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
TListCallback - это процедура которую будет вызывать ForEachCall для КАЖДОГО элемента списка и передавать ей этот элемент первым параметром.
Втрой указаталь - arg нужен для того, чтобы передавать в TListCallback некие дополнительные параметры, например, если мы хотим отфильтровать список, в качестве arg будет выстпуать новый список, в котором будут аккумулироваться разультаты фильтрации. -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
compiler |
17.07.2007 17:15
Сообщение
#25
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
хорошо, но все же почему мы вызываем(@incr, nil), а не (incr, nil)?
-------------------- Спасибо!
Удачи! |
compiler |
18.07.2007 18:45
Сообщение
#26
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
вопрос по добавлению нового элемент есть метод Add.
Цитата public function TFPList.Add(Item: Pointer):Integer; Description Add adds a new pointer to the list after the last pointer (i.e. at position Count, thus increasing the item count with 1. If the list is at full capacity, the capacity of the list is expanded, using the Grow method. но как что ему передавать не что он возвращает не указано... так что это за параметры? Сообщение отредактировано: compiler - 18.07.2007 18:47 -------------------- Спасибо!
Удачи! |
Текстовая версия | 21.07.2024 19:29 |