nesco писал(а):
А посещать хоть можно, вдруг захочу бросить можно - но курить на балкон
Ответов: 3655
Рейтинг: 69
|
|||
nesco писал(а): А посещать хоть можно, вдруг захочу бросить можно - но курить на балкон |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
А как вам в работе вот такой компонент -- Img_Gradient
Слева отрисовка прямо на форме (Handle), справа -- на PaintBox'e (Bitmap) Режим прямоугольного градиента готов полностью, остался треугольный. В данном компоненте применяется API-функция GradientFill, откуда и такое быстродействие. |
|||
карма: 22 |
| ||
файлы: 1 | img_gradient_001.png [6.4KB] [431] |
Ответов: 8928
Рейтинг: 823
|
|||
nesco, usec - это мили-, микро-, нано-секунды
|
|||
карма: 19 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
usec - это микро (символа МЮ нету)
|
|||
карма: 22 |
| ||
Голосовали: | Астрамак |
Ответов: 8928
Рейтинг: 823
|
|||
nesco, спасибо, просветил
На некоторых форумах спасибо говорят кнопочкой |
|||
карма: 19 |
|
Ответов: 3514
Рейтинг: 184
|
|||
А на нашем плюсиком
------------ Дoбавленo: nesco, а сколько цветов можно выбирать? Ну вот например на твоём изображении их три. Можно два или более? Может быть кому нибудь когда нибудь захочется сделать радугу. ------------ Дoбавленo: Или не три (на твоём изображении)? |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
nesco у меня в старом пакете 3.62 уже был такой компонент от (Author - Amper) и назывался он GradientPanel, а чем твой будет отличатся если предыдущий тебе известен?...
|
|||
карма: 4 |
|
Ответов: 1305
Рейтинг: 29
|
|||
Астрамак писал(а): Или не три Два, видимо |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, еще большее увеличение скорости работы даст перенос всех графических приметивов(а не только картинок) на базу FTCG с разделением на Фигуры, Кисти, Канвы и прочие. Скажем если посмотреть элемент Line и его реализацию doDraw для Bitmap, то можно увидеть, что там примерно 2/3 кода можно выкинуть, если сделать отдельно элементы Pen(doColor, doWidth) и Line(doDraw, doMoveTo, doLineTo), т.е. применить такой же подход как и в OpenGL.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Астрамак писал(а): Может быть кому нибудь когда нибудь захочется сделать радугуНет, их только два. andrestudio писал(а): nesco у меня в старом пакете 3.62 уже был такой компонент от (Author - Amper) и назывался он GradientPanel,Совершенно несравним, ни по скорости, ни по функционалу (и -- о Господи, опять (Author - Amper)). Компонент реализован c нуля, не опираясь ни на какой внешний KOL и разные приблуды, чисто на функции API -- GradientFill, той самой, которая применяется в Office, и компонент позволяет отрисовывать на любой поверхности (Bitmap или Handle) -- это графический компонент, а не панель. Кроме того, хочу добавить, что на данный момент этот компонент уже поддерживает все те типы двухцветного градиента, которые вы можете увидеть в Office (там нет настраиваемого градиента больше чем с двумя цветами, слишком сложна его настройка, да и реализация тоже), включая центральный градиент. Dilma писал(а): реализацию doDraw для BitmapДа, конечно, можно иметь такой набор базовых функций отрисовки для FTCG. Я потихоньку зрею к этому, но чувствую, что еще ранова-то мне туда соваться. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
а зачем соваться? Убираем все ReadXXX и заменяем их непосредственно на названия точек и св-тв элемента. Ну и весь код в println заворачиваем. Получаем всего три строки для отрисовки линии на контексте любого элемента:
а вот пример с элементом CustomCode: code_8495.txt ------------ Дoбавленo: вот такая схема на стандартных элементах
выполняется примерно за секунду. Тоже самое, собранное на рассыпухе в FTCG выполняется примерно вдвое быстрее(100 тыс итераций против 40). Причем код получаем полностью компактный - ничего лишнего:
|
|||
карма: 27 |
| ||
файлы: 1 | code_8495.txt [765B] [274] |
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Спасибо за подробное разъяснение, я бы сам с этим долго разбирался. Вообще, очень интересно, с виду ничего лишнего, разве что только вот это, не совсем понятно зачем --
А вот так -- val2 := GetDC(str2int(ToString(Data)));, почему нельзя сделать ------------ Дoбавленo: Вот, выпускаю в свет первую (надеюсь, последнюю ) версию Img_Gradient Пример в архиве (расчитан на компоненты b168). Жду отзывов и предложению (радугу не предлагать ) См. топик ниже -- ver 2.00 |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco писал(а): не очень быстрая операция, особенно в циклеввиду отсутсвия типа TData в пользовательской части кодогенератора передача данных между двумя концепциями схемопостроения(внешним миром и FTCG) идет через тип string
nesco писал(а): почему нельзя сделать можно, если написать честный компонент, предоставляющий доступ к h1 через нижнюю точку |
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma, а как CustomCode в среду воткнуть, а то *.ini файла на SVN нет
------------ Дoбавленo: Упростил Img_Gradient, теперь стиль выбирается одним свойством -- ver 2.00 |
|||
карма: 22 |
| ||
файлы: 1 | img_gradient_2_00.zip [6.5KB] [187] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
этот элемент стандартен для любого пакета FTCG. Добавил
|
|||
карма: 27 |
|