Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.07.2014, 18:18
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию PaintBox + ScrollBox

Случилась беда. Решил использовать связку PaintBox + ScrollBox но при передвижении скрола PaintBox перерисовывается в серый цвет.

Прикрепляю пример программки
https://dl.dropboxusercontent.com/u/...Musor/Help.zip

Как решить данную ситуацию?
И при нажатии на флажок(для рисования блок-схемы), срабатывает рисование только со второго раза.
Ответить с цитированием
  #2  
Старый 05.07.2014, 20:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Почему-то все вместо паинтбокса имидж используют, вот пример
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
MotoArhangel (05.07.2014)
  #3  
Старый 05.07.2014, 20:45
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Надо перерисовывать PainBox.
В моем проекте используется имеено PaintBox и никаких проблем. В памяти сидит переразмеренный и подготовленный битмап и при необходимости он просто копируется на PaintBox...
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
MotoArhangel (05.07.2014)
  #4  
Старый 05.07.2014, 20:55
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

Как то интуитивно выбрал PaintBox. Как реализовать через него примерно теперь понял. Но пока кинул Image. Да и разницы мне же просто рисовать надо =)
Думал что с лазарусом проблемы, выходит нет=) Канву и полигоны за 2 года впервые использую =)

Последний раз редактировалось MotoArhangel, 05.07.2014 в 20:57.
Ответить с цитированием
  #5  
Старый 05.07.2014, 21:03
MotoArhangel MotoArhangel вне форума
Новичок
 
Регистрация: 14.10.2012
Сообщения: 58
Версия Delphi: Delphi 10.4
Репутация: 10
По умолчанию

Тогда оптом задам вопрос. Черчу ромб с помощью полигонов
Код:
  A[0].X := x;
  A[0].Y := y;
  A[1].X := x-d2;
  A[1].Y := y+d1;
  A[2].X := x;
  A[2].Y := y+d1*2;
  A[3].X := x+d2;
  A[3].Y := y+d1;
  Canv.Polygon(A);
Вообщем здесь понятно. И хотел текст разместить по центру, нарыл где то код:
Код:
  Canv.Rectangle(x1, y1,x2, y2);
  Canv.TextRect(Rect(X1, Y1, X2, Y2),X1+(X2-X1-Canv.TextWidth(s)) div 2,
    Y1+(Y2-Y1-Canv.TextHeight(s)) div 2, s);
Если элипсы, прямоугольники рисую код срабатывает. А с ромбом нет, пришлось текст вставлять так:
Код:
 Canv.TextOut(A[1].X +30, (A[0].Y+A[2].Y) div 2-10 , S);
Может я чего то не знаю? Для ромба подставлял значения массива.
Ответить с цитированием
  #6  
Старый 06.07.2014, 00:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Если правильно помню, то для вывода текста нужен горизонтальный/вертикальный прямоугольник, так что в ромбе не прокатит...
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
MotoArhangel (06.07.2014)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025