|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2011, 11:55 | #1 |
Регистрация: 15.03.2011
Сообщений: 5
|
ScrollBox и рисунок в форме
На форму я установил PaintBox и в обработчик события формы OnPaint написал код.
procedure TForm1.FormPaint(Sender: TObject); var X,Y: real; // координаты функции PX,PY: longint; // координаты пикселей begin Color := clWhite; for PX := 0 to ClientWidth do begin {X — аргумент графика, соответствующий пикселю с координатой РХ} X := PX*4*Pi/ClientWidth; Y:=Sin(X); {PY — координата пикселя, соответствующая координате Y} PY:=trunc(ClientHeight - (Y+1)*ClientHeight/2); {Устанавливается черный цвет выбранного пикселя (О яркости)} Canvas.Pixels [PX, PY] := 0; end; end; Все работает но рисунок выходит на всю форму(как я понял за ето отвечает ClientWidth и ClientHeight). хочу зделать так чтоб рисунок рисовался в области ScrollBox( чтоб если не влезет работали полосы прокрутки). что надо изменить в коде? и если изменить на ScrollBox то границы рисунка станут не ограничены и тогда перед рисованием надо будет задавать их? |
17.03.2011, 12:13 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
PaintBox не обязательно на форму бросать. Есть ScrollBox (если не ошибаюсь), бросить его на форму, а на него PaintBox и будет полное счастье
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
17.03.2011, 13:23 | #3 |
Регистрация: 15.03.2011
Сообщений: 5
|
зделал так..не работает(
рисует как и раньше на всей форме может знает ктот на что заменить ClientWidth и ClientHeight чтоб граница не формы а ScrollBox работала |
17.03.2011, 16:02 | #4 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
Омг... Событие ОнПэинт ФОРМЫ вызывается перед перерисовкой ФОРМЫ. Вы изменяете это событие, и тем самым рисуете на форме...
Что Вам нужно конкретно? Рисовать на ПэинтБоксе? Обрабатыайте событие ОнПэинт Пэинтбокса. Проперти ClientWidth - это размер видимой облати компонента. Если запрашивать его для формы - то он выдаст ширину формы...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
17.03.2011, 17:50 | #5 |
Регистрация: 15.03.2011
Сообщений: 5
|
в первом сообщении
Последний раз редактировалось Hall0WeeN; 17.03.2011 в 17:52. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как поменять рисунок на чужой форме. | Aleksandr | Безопасность, Шифрование | 4 | 28.05.2014 11:29 |
ScrollBox | SNUPY | Помощь студентам | 3 | 22.09.2009 18:51 |
Как обновить\перерисовать рисунок на форме или компоненте? | Selebro | Общие вопросы C/C++ | 1 | 21.12.2008 21:16 |
image в scrollbox | Черничный | Общие вопросы Delphi | 3 | 14.08.2008 16:35 |
ScrollBox | Mickle | Помощь студентам | 1 | 31.03.2007 14:10 |