Вверх ↑
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
#46: 2014-09-30 11:17:36 ЛС | профиль | цитата
Поправил схему от 1nd1g0 На первой странице
code_34375.txt
Можете объяснить простыми словами - почему с Label (Transparent=True) не мерцает, а без оного мерцает
sla8a, Респект и уважуха за компоненты
карма: 1

0
файлы: 1code_34375.txt [5.2KB] [686]
Разработчик
Ответов: 26113
Рейтинг: 2126
#47: 2014-09-30 11:27:28 ЛС | профиль | цитата
miver писал(а):
почему с Label (Transparent=True) не мерцает, а без оного мерцает

Не мерцает потому, что Transparent=True включает двойную буферизацию перерисовки
карма: 22

0
Ответов: 9906
Рейтинг: 351
#48: 2014-09-30 14:14:17 ЛС | профиль | цитата
У нутре КОЛ-а все это происходит..... Мы не виноватые
карма: 9

0
Ответов: 758
Рейтинг: 112
#49: 2014-10-19 00:45:37 ЛС | профиль | цитата
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

0
Ответов: 2236
Рейтинг: 676
#50: 2014-10-19 01:18:35 ЛС | профиль | цитата
miver, поменять не сложно, вот нужен ли при повороте real?
карма: 11

0
Ответов: 758
Рейтинг: 112
#51: 2014-10-19 01:52:39 ЛС | профиль | цитата
sla8a, Мне понадобился, и вообще-то там во всех функциях прописан angle тип Single
Добавлю что - есть оно не просит и на совместимость не влияет
------------ Дoбавленo в 01.52:
На практике выливается в абсурд невозможности выполнения, когда нужно поделить круг на дробное количество сегментов, например, на 23
карма: 1

0
Ответов: 2236
Рейтинг: 676
#52: 2014-10-19 21:24:27 ЛС | профиль | цитата
miver писал(а):
тип угла поворота с integer на real
Внес изменения, в элемент GP_Rotate, обновил архив.
miver, а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах?
карма: 11

1
Голосовали:miver
Ответов: 758
Рейтинг: 112
#53: 2014-10-19 23:31:59 ЛС | профиль | цитата
sla8a писал(а):
Внес изменения, в элемент GP_Rotate, обновил архив.
Посмотри GP_Arc. Там тоже есть углы
sla8a писал(а):
а что удобней использовать трансформацию в GP_ элементах или в Img_ элементах?
Не совсем понимаю суть вопроса. Мне понадобилась кое-какая визуализация
code_34460.txt
А как ее сделать на компонентах Img_ не знаю
карма: 1

0
файлы: 1code_34460.txt [11.1KB] [4277]
Ответов: 2236
Рейтинг: 676
#54: 2014-10-20 01:42:46 ЛС | профиль | цитата
Вот так это будет на элементах Img_: code_34461.txt
карма: 11

0
Ответов: 758
Рейтинг: 112
#55: 2014-10-20 13:37:35 ЛС | профиль | цитата
Итак, расскажу про свои мысли по этому поводу:
    - Вертикальный принцип Img_ немного удобней в плане отсутствия связей для выполнения поворота, но запутывает вокруг чего происходит поворот. А в GP_ наоборот, хорошо контролировать точку поворота и не нужно тянуть каждый раз линк от точки Transform (на равных)

    - В Img_ поворот делается от начального положения, а в GP_ от текущего. Что иногда приводит к погрешностям. Хорошо бы добавить эту возможность как опцию в GP_ (Img_ лучше)

    - В Img_ нету возможности поворачивать вокруг произвольной точки картинки, поэтому нужно делать смещение (GP_ лучше)
Итог: Для меня удобнее GP_. Повернул координатную сетку нарисовал что надо по новым координатам и дальше поворачиваешь. Но это дело привычки и чисто мое мнение

P.S.: Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп. Лучше выводить ошибку в строке компиляции и пропускать соответствующий компонент
карма: 1

1
Голосовали:sla8a
Ответов: 2236
Рейтинг: 676
#56: 2014-10-20 22:55:21 ЛС | профиль | цитата
miver писал(а):
Пожалуйста, поставь заплатку на отсутствие в GP_Canvas имени, а в остальных элементах - на не заполненное поле Canvas. А то когда забудешь поставить, в лучшем случае прога не запускается, а в худшем зависает комп.
Поставил заплатки (обновил архив).
Кстати есть еще один элемент (Сложная градиентная кисть), из-за работы на двух машинах так и не вошедший в архив (надо будет принести).
карма: 11

1
Голосовали:miver
Ответов: 2236
Рейтинг: 676
#57: 2022-05-11 16:23:11 ЛС | профиль | цитата
Обновление элементов:
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

7
Голосовали:ric, tig-rrr, kamakama, flint2, Gunta, Fangir, flud
Ответов: 38
Рейтинг: 0
#58: 2022-06-30 14:25:06 ЛС | профиль | цитата
sla8a, спасибо! Все поставил из схемы. Класс. Буду пробывать.

--- Добавлено в 2022-06-30 15:07:32

Все примеры рабочие. Все работает отлично. Спасибо!

Редактировалось 1 раз(а), последний 2022-06-30 15:07:32
карма: 0

0
Ответов: 964
Рейтинг: 12
#59: 2022-07-29 16:36:05 ЛС | профиль | цитата
По моему опыту что GDI что GDI+ страдают просто дичайшим тормозом. Разумеется досточно современное железо может "втянуть и GDI" но смысла юзать что-то подобное вместо OpenGL или библиотек "с прямым доступом" (типа OpenCV, BGRABitmap и т.д. ) очень мало!
карма: 0

0
Ответов: 2236
Рейтинг: 676
#60: 2022-07-30 09:55:09 ЛС | профиль | цитата
AlexKir, а к чему этот пост? На моей памяти от вас один только флуд, о том как хорош OpenCV. Вы на нем что-то постоянно делаете, выкладываете скриншоты, о том как у вас это красиво получается и что в будущем будет еще лучше и красивее и на этом вроде пока все. И даже в этой теме вы решили еще один раз сообщить всем как хорош OpenCV.

Для всех кто хочет понять какой бред написал AlexKir, достаточно прочитать небольшую статью о GDI к примеру в Wiki: https://ru.wikipedia.org/wiki/GDI.
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)