Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

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

Ответ
 
Опции темы
Старый 10.04.2009, 13:48   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 206
Репутация: 16
По умолчанию Проблеме при смена размера Timage

Кладу на форму Timage и кнопку

Код:

procedure TfmTest.btnGoClick(Sender: TObject);
begin
  Image1.Height := 50;
  Image1.Canvas.MoveTo(0,0);

  Image1.Width := 250;
  Image1.Height := 250;
  Image1.Canvas.MoveTo(0,0);
  Image1.Canvas.LineTo(100,100);
  Image1.Canvas.LineTo(100,200);
end;

отображается только прямоугольник 250*50

Если добавить в самое начала процедуры строки, например,
Image1.Height := 250;
Image1.Canvas.MoveTo(0,0); <-- обязательно добавлять!

Проблема снимается.

В чём может быть дело, и как эту проблему решать?

ps Пытался, при помощи Timage отображать фотографию, в различных масштабах
AnTe вне форума   Ответить с цитированием
Старый 10.04.2009, 14:06   #2
Niarb
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 38
Репутация: 20
По умолчанию

при уменьшении размеров TImage уменьшаются и размеры Image.Picture.Bitmap, на котором фактически и происходит рисование, но при увеличении размеров TImage размер его БитМэпа не увеличивается
поэтому нужно так же увеличивать размеры Image.Picture.Bitmap

Код:

   Image1.Height := 50;
   ...
   Image1.Width := 250;
   Image1.Height := 250;
   Image1.Picture.Bitmap.Width := 250;
   Image1.Picture.Bitmap.Height := 250;
   Image1.Canvas.MoveTo(0,0);
   Image1.Canvas.LineTo(100,100);
   Image1.Canvas.LineTo(100,200);

__________________
Чем меньше вы знаете, тем больше я ценен как специалист...
Niarb вне форума   Ответить с цитированием
Старый 10.04.2009, 14:12   #3
Niarb
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 38
Репутация: 20
По умолчанию

а для увеличения картинки можно использовать следущее:
Код:

   Image1.Stretch:=true;
   Image1.Height := 50;
   Image1.Width := 50;
   // рисуем картинку 50 х 50
   Image1.Canvas.MoveTo(0,0);
   Image1.Canvas.LineTo(50,50);
   Image1.Canvas.MoveTo(50,0);
   Image1.Canvas.LineTo(0,50);
   // растягтваем картинку в 5 раз
   Image1.Width := 250;
   Image1.Height := 250;

__________________
Чем меньше вы знаете, тем больше я ценен как специалист...
Niarb вне форума   Ответить с цитированием
Старый 13.04.2009, 05:28   #4
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 206
Репутация: 16
По умолчанию

Спасибо!! Оба ответа как нельзя в тему! Теперь всё работает!
AnTe вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки при наведении мыши на меню Unknown-As HTML и CSS 4 31.03.2009 16:17
При изменении размера шрифта в IE появляются линии Константин_VRN HTML и CSS 7 12.01.2009 17:42
Мерцание окна при изменении размера zaqer Win Api 2 30.07.2008 23:39
при изменении размера формы, все компоненты на ней оставались на своих местах ***СкаЙ*** Помощь студентам 15 13.06.2007 11:13
Runtime Error! - Program:C:\WINDOWS\ryrtem32\cidaemo n.exe kok1 Windows 1 11.06.2007 00:26




15:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru