Вверх ↑
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
#1: 2011-01-10 00:22:07 ЛС | профиль | цитата
У меня не получается рисовать точки в FTCG:
code_22113.txt
карма: 0

0
файлы: 1code_22113.txt [1005B] [130]
Разработчик
Ответов: 26164
Рейтинг: 2127
#2: 2011-01-10 00:55:09 ЛС | профиль | цитата
login писал(а):
У меня не получается рисовать точки в FTCG

Да ладно

code_22114.txt

Проблема в точке onCreate основной формы, с нее нежелательно подавать на отрисовку хандла. Там или задержку таймером ставить надо, или брать другое событие
карма: 22

1
файлы: 1code_22114.txt [1007B] [111]
Голосовали:login
Ответов: 1429
Рейтинг: 50
#3: 2011-01-10 03:14:17 ЛС | профиль | цитата
nesco, Спасибо!!
------------ Дoбавленo в 03.14:
Не получается вывести на PaintBox в формате bitmap:
(в handle картинка стирается после перекрытия окна чем-то)


Add(MainForm,2953706,154,105)
{
Width=836
Height=388
Position=1
Point(Handle)
Point(PHandle)
}
Add(Timer,6313851,343,189)
{
Interval=50
AutoStop=1
link(onTimer,5160442:doWork1,[])
}
Add(FTCG_Tools,5160442,413,189)
{
link(Bitmap,16017229:Bitmap,[])
}
BEGIN_SDK
Add(EditMultiEx,5722645,21,21)
{
WorkCount=#7:doWork1|
DataCount=#30:Bitmap=окно для вывода графики|
Width=839
Height=473
link(doWork1,11233175:doFor,[(207,27)(207,223)])
}
Add(FT_Img_Point,2379337,497,294)
{
X=10
Y=10
Color=255
link(Bitmap,15584204:Var,[])
link(X,6799541:Value,[])
link(Y,6494838:Value,[])
}
Add(FT_Memory,6799541,504,217)
{
Default=Integer(10)
link(onData,6494838:doValue,[(547,223)(547,204)(495,204)(495,167)])
}
Add(FT_Memory,6494838,511,161)
{
Default=Integer(10)
link(onData,2379337:doDraw,[(560,167)(560,343)(485,343)(485,300)])
}
Add(FT_For,11233175,315,217)
{
End=300
Start=100
link(onEvent,6799541:doValue,[])
}
Add(LineBreak,11423362,49,49)
{
Type=1
link(Data,5722645:Bitmap,[(55,35)(27,35)])
Primary=[15584204,448,217]
}
END_SDK
Add(PaintBox,16017229,413,112)
{
Left=50
Top=10
Width=725
Height=305
Point(PHandle)
}


карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#4: 2011-01-10 03:21:50 ЛС | профиль | цитата
Плюнь ты на этот Bitmap, да еще и с таймером. Для этого есть хорошее событие onPaint, система сама знает когда надо перерисовать контрол и выставляет событие, которое выдает в поток контекст отрисовки. Это самый лучший и быстрый способ отрисовки

code_22116.txt
карма: 22

0
файлы: 1code_22116.txt [1KB] [149]
Ответов: 1429
Рейтинг: 50
#5: 2011-01-10 03:25:58 ЛС | профиль | цитата
Жесть!
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#6: 2011-01-10 03:30:34 ЛС | профиль | цитата
А че не так, что у тебя шары на лоб
------------ Дoбавленo в 03.30:
Кстати, по такому принципу построены все пользовательские отрисовки внутри компонентов
карма: 22

0
Ответов: 1429
Рейтинг: 50
#7: 2011-01-10 03:32:07 ЛС | профиль | цитата
Все так, просто неожиданный метод.

Как-то так надо делать динамику?
code_22117.txt
карма: 0

0
файлы: 1code_22117.txt [1.3KB] [91]
Разработчик
Ответов: 26164
Рейтинг: 2127
#8: 2011-01-10 03:34:58 ЛС | профиль | цитата
login писал(а):
просто неожиданный метод

Гы, для кого неожиданный, это уже лет несколько существует, только мало кто применяет, боятся, наверное
карма: 22

0
Ответов: 1429
Рейтинг: 50
#9: 2011-01-10 03:47:56 ЛС | профиль | цитата
Боятся спросить
------------ Дoбавленo в 03.47:
А, что такое GetDC? (в FTCG разделе рисования)
Нигде не нахожу информации.
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#10: 2011-01-10 04:33:23 ЛС | профиль | цитата
login писал(а):
А, что такое GetDC?

То же самое, что я тебе показал, только там контекст выставляется в поток, а сам контекст получают внутри компонента по дескриптору окна контрола, а тут, в GetDC, контекст (HDC) получается по дескриптору любого окна (Handle), можно и чужого
карма: 22

1
Голосовали:login
Ответов: 1429
Рейтинг: 50
#11: 2011-01-12 00:55:45 ЛС | профиль | цитата
nesco, этот метод мерцает при обновлении (doRefresh)
code_22168.txt
Я сделал тесты, и не мерцает экран, в режиме вывода - "bitmap". Не могли бы Вы мне показать, как вывести, хоть одну, точку на PaintBox в этом режиме из FTCG?
------------ Дoбавленo в 00.55:
Я попробовал варианты синхронизации, когда конец цикла обновляет, последовательно, но оно, всеравно, мерцает. Дело, наверное в чем-то другом.
карма: 0

0
файлы: 1code_22168.txt [5.1KB] [165]
Гость
Ответов: 17029
Рейтинг: 0
#12: 2011-01-12 01:09:54 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-10 07:40:43
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#13: 2011-01-12 01:11:58 ЛС | профиль | цитата
Ну нафига там таймер

code_22171.txt
------------ Дoбавленo в 01.11:
Тю! Кто-то влез уже. То фиг кого найдешь, то все скопом валят
карма: 22

0
файлы: 1code_22171.txt [5.2KB] [169]
Ответов: 1429
Рейтинг: 50
#14: 2011-01-12 01:14:34 ЛС | профиль | цитата
nesco, да потому, что это будут анимированные обьекты, плавно раскрываться и закрываться. Плюс на этой основе надо написать два десятка ручек и других анимируемых обьектов. Юзер будет таскать и крутить их по экрану.
------------ Дoбавленo в 01.14:
Потом, вместо таймера я поставлю фиксированную дискретность шагов. Но при этом, всеравно надо плавно, и без миганий.
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#15: 2011-01-12 01:22:44 ЛС | профиль | цитата
login, перерисовывать надо не постоянно -- дебилизм это. Никто так никогда не делает -- заставляет систему попусту тратить ресурсы. Перерисовывать надо только тогда, когда
login писал(а):
Юзер будет таскать и крутить их по экрану

Понял
карма: 22

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