![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кладову о TBitmap
miek © (2003-07-10 20:11:00)Нельзя ли открыть доступ на чтение к полю TBitmap.fScanLineDelta? Неудобно ведь каждый раз вычитать ScanLine[1]-ScanLine[0].
miek (2003-07-12 18:37:00) [1]О! Это правильно. Спасибо.
Насчет Code Completion - надо попробовать, не обманется ли он обычныи вашим трюком - нужную строку поставить в комментариях.
Кладов (2003-07-12 08:52:00) [2]Я сейчас прошелся по всем объектам, и записал protectedсразу после слова private. Когда-то я такое проделывал, но Delphi все время норовит при использовании Code Completion добавить именно private. Так что в версии 1.80 уже будет.
SPeller (2003-07-12 03:16:00) [3]Многие, кстати, объекты с private-полями, из-за чего нормального неследника не напишешь. TStrListEx например. Мне приходилось полностью его код из kol.pas выдирать только для того, чтобы сделать совсем мало-мальскую модификацию.
miek (2003-07-11 20:50:00) [4]K>никакой потери быть не может внутри цикла обработки
Внутри нет. Но процедура-то не из одного только цикла состоит!
K> к любым protected полям просто приводя объект PBitmap к типу PMyBitmap
Я так бы и сделал, но они не protected, а private.
Кладов (2003-07-11 20:30:00) [5]Какая потеря в скорости, что вы говорите? Если разница уже вычислена, и запомнена в переменной, то никакой потери быть не может внутри цикла обработки.
Желающие могут объявить у себя объект, унаследованный от TBitmap, и обращаться к любым protected полям просто приводя объект PBitmap к типу PMyBitmap. Но это уже не мое дело, и никакой гарантии, что поля эти будут такими, каким надо, нет.
miek (2003-07-11 16:58:00) [6]K> И что неудобного вычесть ScanLine[1]-ScanLine[0]
Ничего неудобного, пока речь не идет о достижении высокой скорости.
А вычитание съедает 50-80 тактов - за это время можно целую строку обработать.
K> Что такое каждый раз, есть же переменные
Так и приходится делать. Но у меня это число используется примерно в сотне совершенно разных случаев.
P.S. fScanLine0 тоже поможет делу.
Кладов (2003-07-10 21:08:00) [7]fScanLineDelta внутреннее свойство, устанавливается только при обращении к DIBPixels[ ], так что открывать было бы и неправильно. И что неудобного вычесть ScanLine[1]-ScanLine[0] ? Что такое каждый раз, есть же переменные. Присвойте переменной, и внутри цикла используйте.
Snap (2003-07-10 20:35:00) [8]а сурсов тбитмапа нету чтоль? не, я не уверен что они эсть, просто может ты не проверил?