Latest post of the previous page:
а вдруг что-то в редакторе поменялось?Использование far.Text для рисования на просмотрщике/редакторе
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Использование far.Text для рисования на просмотрщике/редакторе
Если просто открыть диалог, и ходить по его элементам курсором, то redraw не происходит.
Но стоит открыть например историю поля ввода, и начинается.
Но стоит открыть например историю поля ввода, и начинается.
Так не меняется же.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Использование far.Text для рисования на просмотрщике/редакторе
При таком использовании перерисовка может вызываться по 10 раз на одно EE_REDRAW,
потому что запущенный по таймеру код не успевает обрабатываться.
timer.Enabled = false
хоть и срабатывает, но к тому времени уже накапливается несколько вызовов.Поэтому в начале overdraw лучше проверить timer.Enabled, и рисовать только если true.
Собственно, код может быть проще:
Code: Select all
local EE_REDRAW = far.Flags.EE_REDRAW
Event {
group="EditorEvent";
action=function(id, event, param)
if event == EE_REDRAW then
far.Timer(10,function(t)
t:Close()
far.Text(40,1,0x0F,"test")
end)
end;
end;
}
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Использование far.Text для рисования на просмотрщике/редакторе
у меня ощущение, что я уже отвечал на похожий вопрос. в VMenu2::Call делается DM_ENABLEREDRAW, посмотрите, на какие события оно дёргается, сами всё поймёте.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Использование far.Text для рисования на просмотрщике/редакторе
Была тема о необоснованно частых перерисовках самих меню: http://forum.farmanager.com/viewtopic.p ... 72#p129472