code_34375.txt
Можете объяснить простыми словами - почему с Label (Transparent=True) не мерцает, а без оного мерцает

sla8a, Респект и уважуха за компоненты

Ответов: 757
Рейтинг: 111
|
|||
Поправил схему от 1nd1g0 На первой странице
code_34375.txt Можете объяснить простыми словами - почему с Label (Transparent=True) не мерцает, а без оного мерцает ![]() sla8a, Респект и уважуха за компоненты ![]() |
|||
карма: 1 |
| ||
файлы: 1 | code_34375.txt [5.2KB] [219] |
Разработчик
Ответов: 25681
Рейтинг: 2087
|
|||
miver писал(а): почему с Label (Transparent=True) не мерцает, а без оного мерцаетНе мерцает потому, что Transparent=True включает двойную буферизацию перерисовки |
|||
карма: 20 |
|
Ответов: 9906
Рейтинг: 351
|
|||
У нутре КОЛ-а все это происходит..... Мы не виноватые
![]() |
|||
карма: 9 |
|
Ответов: 757
Рейтинг: 111
|
|||
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 |
|
Ответов: 1942
Рейтинг: 627
|
|||
miver, поменять не сложно, вот нужен ли при повороте real?
|
|||
карма: 9 |
|
Ответов: 757
Рейтинг: 111
|
|||
sla8a, Мне понадобился, и вообще-то там во всех функциях прописан angle тип Single
Добавлю что - есть оно не просит ![]() ![]() ------------ Дoбавленo в 01.52: На практике выливается в абсурд невозможности выполнения, когда нужно поделить круг на дробное количество сегментов, например, на 23 |
|||
карма: 1 |
|
Ответов: 1942
Рейтинг: 627
|
|||
miver писал(а): тип угла поворота с integer на realmiver, а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах? |
|||
карма: 9 |
| ||
Голосовали: | miver |
Ответов: 757
Рейтинг: 111
|
|||
sla8a писал(а): Внес изменения, в элемент GP_Rotate, обновил архив.sla8a писал(а): а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах?code_34460.txt А как ее сделать на компонентах Img_ не знаю ![]() |
|||
карма: 1 |
| ||
файлы: 1 | code_34460.txt [11.1KB] [3818] |
Ответов: 1942
Рейтинг: 627
|
|||
Вот так это будет на элементах Img_: code_34461.txt
|
|||
карма: 9 |
| ||
файлы: 1 | code_34461.txt [1.8KB] [265] |
Ответов: 757
Рейтинг: 111
|
|||
Итак, расскажу про свои мысли по этому поводу:
- В Img_ поворот делается от начального положения, а в GP_ от текущего. Что иногда приводит к погрешностям. Хорошо бы добавить эту возможность как опцию в GP_ (Img_ лучше) - В Img_ нету возможности поворачивать вокруг произвольной точки картинки, поэтому нужно делать смещение (GP_ лучше) P.S.: Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп. Лучше выводить ошибку в строке компиляции и пропускать соответствующий компонент ![]() |
|||
карма: 1 |
| ||
Голосовали: | sla8a |
Ответов: 1942
Рейтинг: 627
|
|||
miver писал(а): Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп.Кстати есть еще один элемент (Сложная градиентная кисть), из-за работы на двух машинах так и не вошедший в архив (надо будет принести). |
|||
карма: 9 |
| ||
Голосовали: | miver |