Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Label&Canvas, Проблемы прорисовки 
:(
    Опции темы
ChopAev
Дата 22.8.2005, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.8.2005

Репутация: нет
Всего: нет



Помогите,плз. Есть канва и ярлык. Если сначала нарисовать где-нибудь на канве залитый эллипс и в стороне от него поместить ярлык, а потом создать кнопку или т.п. объект, который будет менять их местами, то на вновь полученном эллипсе будет след от ярлыка (дырка). Как этого избежать? Неважно что сначала делать: переносить ярлык или эллипс - дырка остается, невидимость ярлыка тож не помогает... Помогите...
Выглядит примерно так:

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  ACDSee_7.0_BMP_Image.jpg 4,05 Kb
PM MAIL   Вверх
s-mike
Дата 22.8.2005, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



Покажи код отрисовки.
PM MAIL WWW   Вверх
ChopAev
Дата 22.8.2005, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.8.2005

Репутация: нет
Всего: нет



Код

form1.FormStyle:=fsNormal;
Form1.Refresh;
label30.Visible:=false;
Paintbox1.Canvas.Pen.Style:=psSolid;
s:=Edit1.Text;
q:=Edit2.Text;
w:=Edit3.Text;
val(s,a,z);
val(q,b,z);
val(w,c,z);
az:=a;
bz:=b;
cz:=c;
k:=200;
m:=450;
n:=400;
sdvo:=150;
smg:=70;
smv:=200;
mng1:=TrackBar1.Position;
mnv1:=TrackBar2.Position;
mnv1:=mnv1*0.1;
mng1:=mng1*0.1;
{Ðèñóåì âåðòèêàëüíóþ îñü}
  label9.Top:=smv-round(70*mnv1);
 label9.Left:=paintbox1.Left+round(paintbox1.Width/2)+50;
 PaintBox1.Canvas.Pen.Color:=clblack;
 PaintBox1.Canvas.Pen.Mode:=pmCopy;
 Label12.Left:=50+round(470*mng1)+20;
 Label29.Top:=round(k-50*mnv1)-25;
 label29.Left:=smg-20;
 Label12.Top:=smv+5;
 Label12.Caption:='X (íì)';
 label29.Caption:='Y (Ãö)';
 PaintBox1.Canvas.MoveTo(smg,k+5);
 PaintBox1.Canvas.LineTo(smg,round(k-55*mnv1));
 Paintbox1.Canvas.MoveTo(smg,round(k-55*mnv1)-10);
 Paintbox1.Canvas.LineTo(smg+2,round(k-55*mnv1));
 Paintbox1.Canvas.LineTo(smg-2,round(k-55*mnv1));
 Paintbox1.Canvas.lineTo(smg,round(k-55*mnv1)-10);
 PaintBox1.Canvas.MoveTo(smg,k);
 PaintBox1.Canvas.LineTo(smg+round(450*mng1),k);
 Paintbox1.Canvas.MoveTo(smg+round(450*mng1)+10,k);
 PaintBox1.Canvas.LineTo(smg+round(450*mng1),k-2);
 PaintBox1.Canvas.LineTo(smg+round(450*mng1),k+2);
 PaintBox1.Canvas.LineTo(smg+round(450*mng1)+10,k);

label41.left:=28+smg-30;
label42.left:=28+smg-30;
label43.left:=28+smg-30;
label44.left:=28+smg-30;
label45.left:=28+smg-30;
label46.left:=28+smg-25;
label41.Top:=smv-round(10*mnv1)-5;
label41.Caption:='10';
Paintbox1.Canvas.moveto(smg-5,smv-round(10*mnv1));
Paintbox1.Canvas.Lineto(smg+5,smv-round(10*mnv1));
label42.Top:=smv-round(20*mnv1)-5;
label42.Caption:='20';
Paintbox1.Canvas.moveto(smg-5,smv-round(20*mnv1));
Paintbox1.Canvas.Lineto(smg+5,smv-round(20*mnv1));
label43.Top:=smv-round(30*mnv1)-5;
label43.Caption:='30';
Paintbox1.Canvas.moveto(smg-5,smv-round(30*mnv1));
Paintbox1.Canvas.Lineto(smg+5,smv-round(30*mnv1));
label44.Top:=smv-round(40*mnv1)-5;
label44.Caption:='40';
Paintbox1.Canvas.moveto(smg-5,smv-round(40*mnv1));
Paintbox1.Canvas.Lineto(smg+5,smv-round(40*mnv1));
label45.Top:=smv-round(50*mnv1)-5;
label45.Caption:='50';
Paintbox1.Canvas.moveto(smg-5,smv-round(50*mnv1));
Paintbox1.Canvas.Lineto(smg+5,smv-round(50*mnv1));
label46.Top:=smv-5;
label46.Caption:='0';
Paintbox1.Canvas.moveto(smg-5,smv);
Paintbox1.Canvas.Lineto(smg+5,smv);
{Ðèñóåì ãîðèçîíòàëüíóþ îñü}
Label11.Caption:='380';
label11.top:=smv+10;
Label11.Left:=smg+5;
Label37.Caption:='465';
label37.top:=smv+10;
label37.Left:=smg+5+round(85*mng1);
Label38.Caption:='530';
label38.top:=smv+10;
label38.Left:=smg+5+round(150*mng1);
Label39.Caption:='690';
label39.top:=smv+10;
label39.Left:=smg+5+round(310*mng1);
Label40.Caption:='780';
label40.top:=smv+10;
label40.Left:=smg+5+round(400*mng1);
PaintBox1.Canvas.MoveTo(smg+round(85*mng1),smv+5);
PaintBox1.Canvas.LineTo(smg+round(85*mng1),smv-5);
PaintBox1.Canvas.MoveTo(smg+round(150*mng1),smv+5);
PaintBox1.Canvas.LineTo(smg+round(150*mng1),smv-5);
PaintBox1.Canvas.MoveTo(smg+round(310*mng1),smv+5);
PaintBox1.Canvas.LineTo(smg+round(310*mng1),smv-5);
PaintBox1.Canvas.MoveTo(smg+round(400*mng1),smv+5);
PaintBox1.Canvas.LineTo(smg+round(400*mng1),smv-5);
{Äåëàåì ìåòêè âèäèìûìè}
 label11.Visible:=true;
 label12.Visible:=true;
 label29.Visible:=true;
 label38.Visible:=true;
 label39.Visible:=true;
 label40.Visible:=true;
 label41.Visible:=true;
 label42.Visible:=true;
 label43.Visible:=true;
 label44.Visible:=true;
 label45.Visible:=true;
 label46.Visible:=true;
 label37.Visible:=true;
 label28.Visible:=true;
 label29.Visible:=true;
 label13.Visible:=true;
 {Ðèñóåì òðåóãîëüíèêè}
  {Ñ÷èòàåì ïëîùàäè òð-êîâ}
Std1:=abs(((a*b)/(a+b))*65/2);
str(std1:10:3,gb1);
std1:=abs(((b*c)/(b+c))*160/2);
str(std1:10:3,rg1);
std1:=abs(((a*c)/(a+c))*90/2);
str(std1:10:3,rb1);
std1:=abs(a*130/2);
str(std1:10:3,sb1);
std1:=abs(b*225/2);
str(std1:10:3,sg1);
std1:=abs(c*270/2);
str(std1:10:3,sr1);
a:=round(a*mnv1);
b:=round(b*mnv1);
c:=round(c*mnv1);
{Ñèíèé}
PaintBox1.Canvas.Pen.Color:=clblue;
PaintBox1.Canvas.brush.Color:=clblue;
PaintBox1.Canvas.brush.style:=bsBDiagonal;
PaintBox1.Canvas.Moveto(smg,k);
PaintBox1.Canvas.lineto(smg+round(150*mng1),k);
PaintBox1.Canvas.lineto(smg+round(85*mng1),k-a);
PaintBox1.Canvas.lineto(smg,k);
if a>0 then
Paintbox1.Canvas.FloodFill(smg+round(85*mng1),k-1,clblue,fsborder);
if a<0 then
Paintbox1.Canvas.FloodFill(smg+round(85*mng1),k+1,clblue,fsborder);
PaintBox1.Canvas.Moveto(smg+round(85*mng1),k-a);
PaintBox1.Canvas.LineTo(smg+round(85*mng1),k);
{Çåëåíûé}
PaintBox1.Canvas.Pen.Color:=clgreen;
PaintBox1.Canvas.brush.Color:=clgreen;
PaintBox1.Canvas.brush.style:=bsHorizontal;
PaintBox1.Canvas.Moveto(smg+round(85*mng1),k);
PaintBox1.Canvas.lineto(smg+round(150*mng1),k-b);
PaintBox1.Canvas.lineto(smg+round(310*mng1),k);
PaintBox1.Canvas.lineto(smg+round(85*mng1),k);
if b>0 then
Paintbox1.Canvas.FloodFill(smg+round(150*mng1),k-1,clgreen,fsborder);
if b<0 then
Paintbox1.Canvas.FloodFill(smg+round(150*mng1),k+1,clgreen,fsborder);
PaintBox1.Canvas.Moveto(smg+round(150*mng1),k-b);
PaintBox1.Canvas.LineTo(smg+round(150*mng1),k);
{Êðàñíûé}
if c>0 then
begin
PaintBox1.Canvas.Pen.Color:=clred;
PaintBox1.Canvas.brush.Color:=clred;
PaintBox1.Canvas.brush.style:=bsFDiagonal;
PaintBox1.Canvas.Moveto(smg+round(150*mng1),k);
PaintBox1.Canvas.lineto(smg+round(310*mng1),k-c);
PaintBox1.Canvas.lineto(smg+round(400*mng1),k);
PaintBox1.Canvas.lineto(smg+round(150*mng1),k);
PaintBox1.Canvas.brush.style:=bsFDiagonal;
Paintbox1.Canvas.FloodFill(smg+round(310*mng1)-1,k-1,clred,fsborder);
PaintBox1.Canvas.Moveto(smg+round(310*mng1),k-c);
PaintBox1.Canvas.LineTo(smg+round(310*mng1),k);
end;


Это лишь малая часть, но рисую именно так.
PM MAIL   Вверх
DragonFire
Дата 22.8.2005, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 1
Всего: 9



А ты попробуй PaintBox заменить Image.


--------------------
PM MAIL ICQ   Вверх
s-mike
Дата 23.8.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 16.1.2005
Где: Киев

Репутация: 5
Всего: 16



ChopAev, в таком коде однако не мудрено запутаться smile
Этот код где находится, в каком методе?
PM MAIL WWW   Вверх
ChopAev
Дата 23.8.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 10.8.2005

Репутация: нет
Всего: нет



Цитата
А ты попробуй PaintBox заменить Image.


ОК, помогло, только я ламер и не знаю как Image рефрэшить...

Цитата
ChopAev, в таком коде однако не мудрено запутаться 
Этот код где находится, в каком методе?

Знаю...
Так исчо раз: Я ЛАМЕР!!! И что такое метод не знаю... =))))
PM MAIL   Вверх
Alexeis
Дата 18.11.2005, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Метод это процедура объекта,
а
Цитата
Image рефрэшить
несложнее чем paintpox




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DragonFire
Дата 22.11.2005, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: 1
Всего: 9



Image.Repaint;
или
Image.Canves.Rapaint;
Не помню точно... Помоему все таки 1 вариант =)))


--------------------
PM MAIL ICQ   Вверх
Snowy
Дата 22.11.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Модератор: не нужно поднимать старые темы, ответ на которые давно не требуется
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1026 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.