Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование изображения [D6, WinXP]


saNat ©   (2005-02-19 12:13:00) 

Доброго времени суток :-)
Подскажите, пожалуйста, где я ошибаюсь.
Есть загруженное из ресурса *.res изображение CardImage:TImage и изображение, которое пользователь загружает в PeoplePhotoImage:TImage. Нужно вставить второе изображение в определенную позицию первого. Делаю так:

//Генерация проруска
Procedure TPeopleForm.ReFreshButtonPanelClick(Sender:TObject);
Var
Card:TJpegImage;
ResourceStream:TResourceStream;
Begin
//Удаление текущего содержимого пропуска
CardImage.Picture:=Nil;
Card:=Nil;
ResourceStream:=Nil;
//Загрузка фона
Try
 Try
  Card:=TJpegImage.Create;
  If StType.Checked
   Then
    ResourceStream:=TResourceStream.CreateFromID(HInstance,1,RT_RCData)
   Else
    ResourceStream:=TResourceStream.CreateFromID(HInstance,2,RT_RCData);
  Card.LoadFromStream(ResourceStream);
  CardImage.Canvas.Draw(0,0,Card);
 Finally
  Card.Free;
  ResourceStream.Free;
 End;
Except
 MessageDlg('Ошибка: невозможно создать образец'+#13+
             'Генерация пропуска прервана'+#13+
             'Обратитесь в службу поддержки: eva@mail.vstu.edu.ru',mtError,[mbOk],0);
 Close;
End;
//Установка параметров
CardImage.Canvas.Font:=Font;
CardImage.Canvas.Font.Size:=10;
CardImage.Canvas.Brush.Style:=bsClear;
//Вставка ФИО
CardImage.Canvas.TextOut(77,5,NameEdit.Text);
//Вставка Должности
CardImage.Canvas.TextOut(17,73,StatusEdit.Text);
//Вставка фото
CardImage.Canvas.Draw(186,73,PeoplePhotoImage.Picture.Bitmap);End;

Так вот, как я понял (прочитал в книге), то CardImage.Canvas.Draw делает копию изображения-источника на изображении-приемнике с левым верхним углом... У меня почему то исходное изображение исчезает, а в приемнике ничего нет
И где я не прав?

С уважением, ЕВА.


saNat   (2005-02-19 23:55:00) [1]

to Набережных ССпасибо. Ваш вариант работает


Набережных С.   (2005-02-19 16:26:00) [2]

Имхо у тебя не Bitmap загружен в PeoplePhotoImage. Попробуй так
CardImage.Canvas.Draw(186,73,PeoplePhotoImage.Picture.Graphic)


Наверх

Титульная страница Поиск, карта сайта Написать письмо