Поправил схему от 1nd1g0 На первой странице
code_34375.txt
Можете объяснить простыми словами - почему с Label (Transparent=True) не мерцает, а без оного мерцает
sla8a, Респект и уважуха за компоненты
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
|
|||
карма: 1 |
| ||
файлы: 1 | code_34375.txt [5.2KB] [686] |
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
miver писал(а): почему с Label (Transparent=True) не мерцает, а без оного мерцаетНе мерцает потому, что Transparent=True включает двойную буферизацию перерисовки |
|||
карма: 22 |
|
Ответов: 9906
Рейтинг: 351
|
|||
У нутре КОЛ-а все это происходит..... Мы не виноватые
|
|||
карма: 9 |
|
Ответов: 758
Рейтинг: 112
|
|||
sla8a, В компоненте GP_Rotate замени тип угла поворота с integer на real
Исправленный код procedure THIGP_Rotate._work_doRotate; begin _prop_Canvas.Set_Matrix; _prop_Canvas.Get_Matrix.Rotate(ReadReal(_data,_data_angle,_prop_angle),TMatrixOrder(ReadInteger(_data,_data_MatrixOrder,_prop_MatrixOrder))); if _prop_SetTransform then _prop_Canvas.Get_Canvas.SetTransform(_prop_Canvas.Get_Matrix); _hi_CreateEvent(_Data,@_event_onRotate); end; procedure THIGP_Rotate._work_doRotateAt; var x,y,angle:real; begin angle := ReadReal(_data,_data_angle,_prop_angle); X := ReadInteger(_data,_data_X,_prop_X); Y := ReadInteger(_data,_data_Y,_prop_Y); _prop_Canvas.Set_Matrix; _prop_Canvas.Get_Matrix.RotateAt(angle,MakePoint(X,Y),TMatrixOrder(ReadInteger(_data,_data_MatrixOrder,_prop_MatrixOrder))); if _prop_SetTransform then _prop_Canvas.Get_Canvas.SetTransform(_prop_Canvas.Get_Matrix); _hi_CreateEvent(_Data,@_event_onRotateAt); end; |
|||
карма: 1 |
|
Ответов: 2236
Рейтинг: 676
|
|||
miver, поменять не сложно, вот нужен ли при повороте real?
|
|||
карма: 11 |
|
Ответов: 758
Рейтинг: 112
|
|||
sla8a, Мне понадобился, и вообще-то там во всех функциях прописан angle тип Single
Добавлю что - есть оно не просит и на совместимость не влияет ------------ Дoбавленo в 01.52: На практике выливается в абсурд невозможности выполнения, когда нужно поделить круг на дробное количество сегментов, например, на 23 |
|||
карма: 1 |
|
Ответов: 2236
Рейтинг: 676
|
|||
miver писал(а): тип угла поворота с integer на realmiver, а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах? |
|||
карма: 11 |
| ||
Голосовали: | miver |
Ответов: 758
Рейтинг: 112
|
|||
sla8a писал(а): Внес изменения, в элемент GP_Rotate, обновил архив.sla8a писал(а): а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах?code_34460.txt А как ее сделать на компонентах Img_ не знаю |
|||
карма: 1 |
| ||
файлы: 1 | code_34460.txt [11.1KB] [4277] |
Ответов: 2236
Рейтинг: 676
|
|||
Вот так это будет на элементах Img_: code_34461.txt
|
|||
карма: 11 |
|
Ответов: 758
Рейтинг: 112
|
|||
Итак, расскажу про свои мысли по этому поводу:
- В Img_ поворот делается от начального положения, а в GP_ от текущего. Что иногда приводит к погрешностям. Хорошо бы добавить эту возможность как опцию в GP_ (Img_ лучше) - В Img_ нету возможности поворачивать вокруг произвольной точки картинки, поэтому нужно делать смещение (GP_ лучше) P.S.: Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп. Лучше выводить ошибку в строке компиляции и пропускать соответствующий компонент |
|||
карма: 1 |
| ||
Голосовали: | sla8a |
Ответов: 2236
Рейтинг: 676
|
|||
miver писал(а): Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп.Кстати есть еще один элемент (Сложная градиентная кисть), из-за работы на двух машинах так и не вошедший в архив (надо будет принести). |
|||
карма: 11 |
| ||
Голосовали: | miver |
Ответов: 2236
Рейтинг: 676
|
|||
Обновление элементов:
1. В элементы отображающие текст добавлено свойство Style (Bold,Italic,UnderLine,Strikeout). 2. Все элементы подружились с компилятором FPC. 3. Удалена ошибка смещения по Y у элемента GP_Scale (Масштабирование). 4. Добавлены новые элементы: -4a. GP_Bezier (Кривая Безье), есть схема пример. -4b. GP_BrushGradientPath (Кисть градиентной заливки сложной формы) позволят заливать несколькими цветами, есть схема пример. -4c. GP_ArrayXY (Массив координат XY). -4d. GP_ArrayXYEnum (Перебор всех элементов массива координат XY). -4e. GP_ArrayXYRW (Запись и чтение из массива координат XY). 5. Добавлены схемы для тестирования. 6. Добавлена схема для редактирования свойства массива цветов: ArrColors.sha Архив в первом посте. Кому интересно пользуйтесь, тестируйте, критикуйте, спрашивайте. Редактировалось 2 раз(а), последний 2022-05-11 16:25:09 |
|||
карма: 11 |
| ||
Голосовали: | ric, tig-rrr, kamakama, flint2, Gunta, Fangir, flud |
Ответов: 38
Рейтинг: 0
|
|||
sla8a, спасибо! Все поставил из схемы. Класс. Буду пробывать.
--- Добавлено в 2022-06-30 15:07:32 Все примеры рабочие. Все работает отлично. Спасибо! Редактировалось 1 раз(а), последний 2022-06-30 15:07:32 |
|||
карма: 0 |
|
Ответов: 964
Рейтинг: 12
|
|||
По моему опыту что GDI что GDI+ страдают просто дичайшим тормозом. Разумеется досточно современное железо может "втянуть и GDI" но смысла юзать что-то подобное вместо OpenGL или библиотек "с прямым доступом" (типа OpenCV, BGRABitmap и т.д. ) очень мало!
|
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
AlexKir, а к чему этот пост? На моей памяти от вас один только флуд, о том как хорош OpenCV. Вы на нем что-то постоянно делаете, выкладываете скриншоты, о том как у вас это красиво получается и что в будущем будет еще лучше и красивее и на этом вроде пока все. И даже в этой теме вы решили еще один раз сообщить всем как хорош OpenCV.
Для всех кто хочет понять какой бред написал AlexKir, достаточно прочитать небольшую статью о GDI к примеру в Wiki: https://ru.wikipedia.org/wiki/GDI. |
|||
карма: 11 |
|