Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
1

Рисование на форме

23.06.2010, 17:27. Показов 3334. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
на форме у меня стоит тракБар при сдвиги ползунка у меня меняется диаметр кружка (скрин 1)
а вот при уменьшении диаметра получается фигня (скрин 2)
как можно это исправить?
Изображения
  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2010, 17:27
Ответы с готовыми решениями:

рисование на форме
Создал на форме 3 фигуры(под № 1, 2, 3) при помощи 3-х кнопок button (а надо их несколько...

Рисование на форме
Здравствуйте! Помогите, пожалуйста, нарисовать цилиндр на форме. Нужно, чтобы его размеры...

Циклы и рисование пикселей на форме
В книге Криса Касперски есть на транице 48 формула. ea = BASE * 0x10 + offset ...

Получение ввода от мыши. Рисование в форме
Реализовать рисование так, чтобы по нажатию мыши(щелкая левой кнопкой и удерживая её при...

19
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
23.06.2010, 17:32 2
я думаю на до с перед уменьшением диаметра закрасить то есть закрасить canvas формы в цвет формы и рисовать меньший по радиусу круг
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
23.06.2010, 17:40  [ТС] 3
неа
не получается
0
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
23.06.2010, 17:55 4
в коде который прислал после строчки Lable3.caption вставь две строчки
Delphi
1
2
  canvas.Brush.Color := clBtnFace;
  Canvas.FillRect(form1.canvas.cliprect);
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
23.06.2010, 18:03  [ТС] 5
ооо чудо
оказывается все так просто
а не мог бы ты пояснить эту строчку
Canvas.FillRect(form1.canvas.cliprect);
0
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
23.06.2010, 18:09 6
метод FillRect заполняет указанный прямоугольник канвы, используя текущее значение Brush
0
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
23.06.2010, 18:52 7
Можно просто перерисовывать форму при каждом изменении ТракБара:
Delphi
1
Form1.Repaint;
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
23.06.2010, 20:56  [ТС] 8
Цитата Сообщение от Zabiyak Посмотреть сообщение
Можно просто перерисовывать форму при каждом изменении ТракБара:
Repaint не помогает, пробовал
1
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
24.06.2010, 11:04 9
Ага, знач канва перерисовывается как есть, вместе с "дорисованными" объектами. Примем на заметку
0
178 / 147 / 21
Регистрация: 07.11.2009
Сообщений: 591
24.06.2010, 12:34 10
anonimus, а почему бы не использовать PainBox для рисования? Вот посмотри мой пост Вращающийся отрезок - работа с графикой
И Repaint работает, опять же в моем посте скачай прогу и замени PainBox1 на Form1, никакой разницы
Zabiyak, не бери на заметку, все ты правильно говорил.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
24.06.2010, 12:38  [ТС] 11
можно и PainBox ))
0
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 7
24.06.2010, 15:29 12
Помогите пожалуйста!!! Такое задание: надо нарисовать стакан и изобразить процесс наполнения стакана тархуном. Очень срочно надо!!! С графикой не работала в дельфи. (((( как делать ума не приложу...
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
24.06.2010, 15:42  [ТС] 13
принципиально тархуном?
мож колой?
0
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 7
24.06.2010, 15:45 14
В задании так и написано тархуном, мне лично все равно чем, главное чтоб зеленое было.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
24.06.2010, 16:24  [ТС] 15
форма стакана какая должна быть?
прямоугольник заполняющийся с низу зеленым или трапеция?
0
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 7
24.06.2010, 17:30 16
НАд формой можно не заморачиваться. прямоугольник заполняющийся с низу зеленым.
0
2184 / 1254 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
24.06.2010, 17:37  [ТС] 17
ну тогда вот
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
procedure TForm1.Button1Click(Sender: TObject);
begin
with PaintBox1 do
begin
repaint;
Canvas.Pen.Color:=clgreen;
 Canvas.Rectangle(100,100,150,200);  //рисуем на PaintBox контур стакана
end;
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with PaintBox1 do
begin
if 200-y1 <=100 then exit;  //это что бы остановилось в нужном месте
y1:=y1+1;
Canvas.Pen.Color:=clgreen;
Canvas.Brush.Color:=clgreen;
 Canvas.Rectangle(100,200-y1,150,200); //заполняем стакан
end;
end;
в таймере поставь интервал 100
1
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 7
24.06.2010, 18:13 18
Спасибки, ща попробую.
0
КотЪ
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
24.06.2010, 19:01 19
... и у1 сделай глобальной переменной
0
0 / 0 / 0
Регистрация: 24.06.2010
Сообщений: 7
25.06.2010, 15:33 20
я проще даже сделала)))) и вроде все пошло. Спасибо за помощь...
0
25.06.2010, 15:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2010, 15:33
Помогаю со студенческими работами здесь

Рисование на форме
Хочу нарисовать несколько линий на форме: private void mainForm_Paint(object sender,...

рисование в форме
У меня такое задание... при нажатии на кнопку на форме должны появляться круги в произвольном...

Рисование на форме
Здравствуйте, пишу свой пейнт. Возник вопрос как подключить system.drawing ? использую winApi

Рисование на форме
Доброго времени суток. Помогите пожалуйста решить задачу. Необходимо чтобы нарисованная на форме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru