Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 11:55   #1
Hall0WeeN
 
Регистрация: 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 то границы рисунка станут не ограничены и тогда перед рисованием надо будет задавать их?
Hall0WeeN вне форума Ответить с цитированием
Старый 17.03.2011, 12:13   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

PaintBox не обязательно на форму бросать. Есть ScrollBox (если не ошибаюсь), бросить его на форму, а на него PaintBox и будет полное счастье
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.03.2011, 13:23   #3
Hall0WeeN
 
Регистрация: 15.03.2011
Сообщений: 5
По умолчанию

зделал так..не работает(
рисует как и раньше на всей форме
может знает ктот на что заменить ClientWidth и ClientHeight чтоб граница не формы а ScrollBox работала
Hall0WeeN вне форума Ответить с цитированием
Старый 17.03.2011, 16:02   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Омг... Событие ОнПэинт ФОРМЫ вызывается перед перерисовкой ФОРМЫ. Вы изменяете это событие, и тем самым рисуете на форме...
Что Вам нужно конкретно? Рисовать на ПэинтБоксе? Обрабатыайте событие ОнПэинт Пэинтбокса.

Проперти ClientWidth - это размер видимой облати компонента. Если запрашивать его для формы - то он выдаст ширину формы...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 17.03.2011, 17:50   #5
Hall0WeeN
 
Регистрация: 15.03.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Johnson Посмотреть сообщение
Что Вам нужно конкретно?
в первом сообщении
Цитата:
Сообщение от Hall0WeeN Посмотреть сообщение
хочу зделать так чтоб рисунок рисовался в области ScrollBox( чтоб если не влезет работали полосы прокрутки). что надо изменить в коде?

Последний раз редактировалось Hall0WeeN; 17.03.2011 в 17:52.
Hall0WeeN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять рисунок на чужой форме. 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