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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2009, 13:48   #1
AnTe
Форумчанин
 
Регистрация: 25.09.2008
Сообщений: 209
По умолчанию Проблеме при смена размера 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
По умолчанию

при уменьшении размеров 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
По умолчанию

а для увеличения картинки можно использовать следущее:
Код:
   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
Сообщений: 209
По умолчанию

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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки при наведении мыши на меню Unknown-As HTML и CSS 4 31.03.2009 16:17
При изменении размера шрифта в IE появляются линии Константин_VRN HTML и CSS 7 12.01.2009 16: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