Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите избавится от мерцания / 6 сообщений из 6, страница 1 из 1
06.12.2020, 15:53
    #40025035
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Есть старый самопальный скриншотер, при выделении области скриншота форма мерцает.
Мерцания именно внутри выделения.
Работает так: появляется полупрозрачная форма, на весь экран и на ней делается выделение..
mousemove по форме:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  if isDown then
  begin
    Self.Repaint;
    // пунктирная рамка
    Self.Canvas.Pen.Color := clHighlight;
    Self.Canvas.Pen.Width := 1;
    Self.Canvas.Pen.Style := psDot;
    //  заливаем область clFuchsia цветом, благодаря чему она становиться прозрачной
    Self.Canvas.Brush.Color := clFuchsia;
    Self.Canvas.Rectangle(downX, downY, X, Y);
  end;


doublebuffered форме - не помогает
...
Рейтинг: 0 / 0
06.12.2020, 17:20
    #40025046
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Убери форму, полупрозрачность и в особенности заливку. Делай выделение прямо на экране.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.12.2020, 18:37
    #40025060
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Tech N9ne
Есть старый самопальный скриншотер, при выделении области скриншота форма мерцает.
Мерцания именно внутри выделения.
Работает так: появляется полупрозрачная форма, на весь экран и на ней делается выделение..
mousemove по форме:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  if isDown then
  begin
    Self.Repaint;
    // пунктирная рамка
    Self.Canvas.Pen.Color := clHighlight;
    Self.Canvas.Pen.Width := 1;
    Self.Canvas.Pen.Style := psDot;
    //  заливаем область clFuchsia цветом, благодаря чему она становиться прозрачной
    Self.Canvas.Brush.Color := clFuchsia;
    Self.Canvas.Rectangle(downX, downY, X, Y);
  end;


doublebuffered форме - не помогает
Смотри пример как это реализовано в VirtualTreeView
...
Рейтинг: 0 / 0
06.12.2020, 20:11
    #40025070
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Квейд
Tech N9ne
Есть старый самопальный скриншотер, при выделении области скриншота форма мерцает.
Мерцания именно внутри выделения.
Работает так: появляется полупрозрачная форма, на весь экран и на ней делается выделение..
mousemove по форме:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  if isDown then
  begin
    Self.Repaint;
    // пунктирная рамка
    Self.Canvas.Pen.Color := clHighlight;
    Self.Canvas.Pen.Width := 1;
    Self.Canvas.Pen.Style := psDot;
    //  заливаем область clFuchsia цветом, благодаря чему она становиться прозрачной
    Self.Canvas.Brush.Color := clFuchsia;
    Self.Canvas.Rectangle(downX, downY, X, Y);
  end;



doublebuffered форме - не помогает
Смотри пример как это реализовано в VirtualTreeView

А где именно оно там? VirtualTreeView - он большоооой)
...
Рейтинг: 0 / 0
06.12.2020, 20:12
    #40025071
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Tech N9ne


doublebuffered форме - не помогает
И не поможет, потому что ты рисуешь рамку в оверлее.
Положи на форму PaintBox и пропиши всю отрисовку в OnDraw.
...
Рейтинг: 0 / 0
07.12.2020, 07:28
    #40025135
Tech N9ne
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите избавится от мерцания
Соколинский Борис
Tech N9ne


doublebuffered форме - не помогает
И не поможет, потому что ты рисуешь рамку в оверлее.
Положи на форму PaintBox и пропиши всю отрисовку в OnDraw.

Сделал через Paintbox.
делаю скриншот всего экрана, вставляю скрин в paintbox, и уже там рисованием прямоугольника вычисляю координаты, которые нужно вырезать.
ничего не мерцает =)
спасибо
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Помогите избавится от мерцания / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]