Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.12.2009, 14:13
HiDux HiDux вне форума
Прохожий
 
Регистрация: 14.12.2009
Сообщения: 2
Репутация: 10
По умолчанию Как нарисовать линию до края Images

Уважаемые спецы по дельфи. Проясните пожалуйста следующий вопрос с графикой.

На форме есть обьект Image. Причем Image.Height равно 100, Image.Width равно 100 пикселей.
Рисую линию:

Image.Canvas.MoveTo(0, 15);
Image.Canvas.LineTo(100, 15);

Все путем.
Я создаю обьект BMP1:TBitmap и загружаю в него картинку размерами 200 на 200 пикселей.

Image.Picture.Bitmap := BMP1;

Появляется изображение. Но если теперь я нарисую линию

Image.Canvas.MoveTo(0, 15);
Image.Canvas.LineTo(100, 15);

То линия будет только до половины объекта Image.
Почему? И как надо делать правильно, чтоб линия рисовалась до конца?
Ответить с цитированием
  #2  
Старый 14.12.2009, 17:33
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Если параметр Image.Stretch равен True, то твой Image растягивается до размеров BMP попробуй так...
Код:
Image.Canvas.MoveTo(0, 15);
Image.Canvas.LineTo(Image.Width , 15);
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 14.12.2009 в 17:37.
Ответить с цитированием
  #3  
Старый 15.12.2009, 11:11
HiDux HiDux вне форума
Прохожий
 
Регистрация: 14.12.2009
Сообщения: 2
Репутация: 10
По умолчанию

Дело в том, что мне не хотелось бы менять размер Image на форме.
А в этом случае Image.Width всегда равен 100.
Ответить с цитированием
  #4  
Старый 15.12.2009, 11:51
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Проверь параметры AutoSize и Stretch компонетна Image...у тебя растягивается Image...и он никак не останется равным 100...
можно подогнать BMP по Image...и можно подогнать Image по BMP...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #5  
Старый 15.12.2009, 15:44
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Рисуй по битмапу а не по image:
Код:
  Image.Canvas.MoveTo(0, 15);
  Image.Canvas.LineTo(Image.Picture.BitMap.Width , 15);
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:35.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025