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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 17:28   #1
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию image растянуть

Здравствуйте. Подскажите с задачкой, плиз:
создаю динамич.картинку примерно так:
Код:
new:tcontrol; //в глобальных
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
New:=timage1.Create(application);
timage1(new).Picture.LoadFromFile(OpenDialog1.FileName);
timage1(new).AutoSize:=true;
New.Top:=100;
New.Left:=150;
timage1(New).OnMouseDown:=ControlMouseDown;
timage1(New).OnMouseMove:=ControlMouseMove;
timage1(New).OnMouseUp:=controlmouseup;
New.Parent:=timage(new1).Parent;
end;
  end;
вобще, timage(new1)- большая картинка, а на ней потом много мал-х timage1(new) картинок создается
далее, есть кнопка на форме, в нее пишу:
Код:
timage1(new).AutoSize:=false;
timage1(new).stretch:=true;
timage1(new).width:=timage1(new).width+120;
щелкаю по ней- картинка растянулась.
Далее есть процедура сохранения всех картинок на Panel1 формы в bmp файл:
Код:
procedure TForm1.N11Click(Sender: TObject);
  var i:integer;
  begin
   with tbitmap.Create do begin
   width:=timage(new1).Width;
   height:= timage(new1).Height;
   for I := 0 to panel1.ControlCount - 1 do  begin
   new:=panel1.Controls[i];
   canvas.Draw(timage1(new).Left,timage1(new).top,timage1(new).Picture.Bitmap);
 canvas.CopyMode:=cmSrcand;
   end;
   savetofile('C:\xx.bmp');
   end;
 end;
и все сохраняется в bmp, но при открытии его- у картинок width НЕ УВЕЛИЧЕНЫЙ.
хотя на форме он реально увеличен. В чем прикол?

Последний раз редактировалось varelik; 15.02.2010 в 17:59.
varelik вне форума Ответить с цитированием
Старый 15.02.2010, 17:58   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А откуда ваще берется это число "120"?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.02.2010, 18:00   #3
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

без разницы на самом деле сколько, можно и 220
varelik вне форума Ответить с цитированием
Старый 15.02.2010, 18:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

перерисовывайте с растяжением.
на форуме есть код сжатия...а для растягивания лишь цифры в нем изменить=)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.02.2010, 19:55   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Если в этом коде число "120" динамическое, то можно сделать например получение значения из Edit-a, которое укажет пользователь. Вот так:
Код:
timage1(new).AutoSize:=false;
timage1(new).stretch:=true;
timage1(new).width:=timage1(new).width+StrToInt(Edit1.Text);
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.02.2010, 21:39   #6
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

artemavd, а смысл? вопрос в другом ведь. Я bmp (из винды) с новыми размерами сохраненных картинок открыть не могу. Хотя сами х,у их и изображения сохраняются.
Пепел Феникса, напиши пожалуйста, если вспомниш, примерное название той темы. Пока не могу найти.

Последний раз редактировалось varelik; 15.02.2010 в 21:54.
varelik вне форума Ответить с цитированием
Старый 15.02.2010, 21:54   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тему не помню...
но вот тема в которой я написал названия функций(среди них есть нужная вам) http://programmersforum.ru/showthrea...ewpost&t=84732
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.02.2010, 22:27   #8
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

спасибо! буду разбираться
varelik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как растянуть изображение? Pasha_a HTML и CSS 0 28.01.2010 16:37
Как растянуть flash меню bol2909 HTML и CSS 2 24.11.2009 14:48
растянуть RichViewEdit (Небольшой вопрос) Fezilk Общие вопросы Delphi 1 23.08.2009 14:40
Вопрос по Image (скачанная картинка не хочет выводиться в Image) Radnor Мультимедиа в Delphi 2 06.07.2009 02:20
Как можно растянуть иконку? D@rk M@k Мультимедиа в Delphi 2 09.01.2008 14:46