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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 00:43   #1
Xatiko
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 11
Восклицание Рисование эллипса на имейдж с координатами из label

Доброго времени суток!
Есть проблема при рисовании эллипса с координатами из 2 label. Один label нужен для координаты x, а другой для координаты y.
Мои попытки не увенчались успехом.
Код:
procedure TForm1.Button5Click(Sender: TObject);
var x,y:Integer;
begin

X:= StrToint(label37.Caption);
Y:= StrToint(label38.Caption);
image1.canvas.Ellipse((x)-2, (y)-2, (x)+2, (y)+2);

end;
Выдает ошибку: Can only modify an image if it contains a bitmap.
А еще если значение не целое, а они по формуле часто получаются не целые выдает: (например) "13.5" is not a valid integer value.
Добрые люди! Помогите справиться с этими 2 ошибками.
Xatiko вне форума Ответить с цитированием
Старый 14.03.2013, 01:14   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
procedure TForm1.Button5Click(Sender: TObject);
var
  bmp: tbitmap;
  x, y: integer;
begin
  bmp := tbitmap.Create;
  bmp.Height := 100;
  bmp.Width := 100;
  x := round(StrToFloat(Label37.Caption));
  y := round(StrToFloat(Label38.Caption));
  bmp.Canvas.Ellipse(x - 2, y - 2, x + 2, y + 2);
  Image1.Picture.Assign(bmp);
  bmp.Free;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 14.03.2013, 01:56   #3
Xatiko
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 11
По умолчанию

BDA выручаешь меня 2 раз уже) Счастья тебе!
Xatiko вне форума Ответить с цитированием
Старый 14.03.2013, 02:02   #4
Xatiko
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 11
По умолчанию

И еще вопрос можно ли сделать так чтоб объекты нарисованные ранее не исчезали?
Xatiko вне форума Ответить с цитированием
Старый 14.03.2013, 02:17   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
var
  Form1: TForm1;
  bmp: tbitmap;

...

procedure TForm1.Button5Click(Sender: TObject);
var
  x, y: integer;
begin
  x := round(StrToFloat(Label37.Caption));
  y := round(StrToFloat(Label38.Caption));
  bmp.Canvas.Ellipse(x - 2, y - 2, x + 2, y + 2);
  Image1.Picture.Assign(bmp);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bmp := tbitmap.Create;
  bmp.Height := 100;
  bmp.Width := 100;
  Image1.Picture.Assign(bmp);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  bmp.Free;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 14.03.2013, 02:40   #6
Xatiko
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 11
По умолчанию

Стыдно спрашивать уже а как закрасить этот эллипс покапался в инете сделал как там не получается..
Код:
bmp.canvas.brush:=clred
пробовал так.
Xatiko вне форума Ответить с цитированием
Старый 14.03.2013, 02:49   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Попробуйте так:
Код:
bmp.canvas.brush.color:=clred;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 14.03.2013, 02:53   #8
Xatiko
Пользователь
 
Регистрация: 26.02.2013
Сообщений: 11
По умолчанию

Не получается.
Но все равно спасибо за помощь!!
Xatiko вне форума Ответить с цитированием
Старый 14.03.2013, 03:04   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Пожалуйста.
У меня работает:
Код:
begin
  x := round(StrToFloat(Label37.Caption));
  y := round(StrToFloat(Label38.Caption));
  bmp.Canvas.Brush.Color := clred;
  bmp.Canvas.Ellipse(x - 2, y - 2, x + 2, y + 2);
  Image1.Picture.Assign(bmp);
end;
Кружок с черной рамкой, заполненный красным цветом.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
.Net, C#, рисование окружности и эллипса с общим центром. includer Помощь студентам 0 03.03.2013 16:02
Рисование окружностей в PictureBox со случайными координатами diaryofsummer C# (си шарп) 1 14.10.2012 14:09
Assembler - Рисование эллипса dessaber Помощь студентам 2 21.11.2011 09:13
Рисование эллипса на канве и последующее его стирание Vohakisa Помощь студентам 3 21.05.2010 14:11
Рисование Эллипса Macwin Общие вопросы C/C++ 1 18.03.2010 14:38