Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 101
1

копирование картинки в TImage

06.01.2011, 21:27. Показов 2747. Ответов 8
Метки нет (Все метки)

хочу сделать красивый прогрессбар.создал TImage 9x380 pixels.
в него по таймеру должна вставляться картинка 9х1 пиксел. как можно сделать чтобы каждый раз она ставилась после предыдущей? у меня все время в самое начало становится и прогд\рессбар не движется
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2011, 21:27
Ответы с готовыми решениями:

Обрисовка картинки в TImage
Открываю в рисунок и меняю размер Image под размер картинки. После чего пытаюсь поменять размер...

Отрисовка картинки в TImage
Помогите разрешить задачу: есть 2 Image один поверх другого. При наведении (MouseMove) на...

Подстановка картинки в компонент TImage
Подскажите, пожалуйста, как программно можно подгрузить в элемент TImage картинку? код у меня так...

Загрузка картинки в динамический TImage через поток
Имеется динамически созданные TImage внутри TListBoxItem. Все дела происходят в одной функции,...

8
Покинул форум
3185 / 1364 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
06.01.2011, 22:25 2
Valery_, хм... зачем каждый раз вставлять новую картинку? Можно поступить следующим образом:
Берем целую картинку, которая будет показана при 100% заполнении вашего ProgressBar'а. Например, такую:
копирование картинки в TImage

Сначала обьявляем пару переменных:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int progress=0;//Уровень заполнения Прогрессбара
 
Graphics::TBitmap* b=new Graphics::TBitmap;//Изображение, в котором будет хранится целая картинка заполненной шкалы
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
b->LoadFromFile("F:\\load.bmp");//загружаем нашу картинку
}
//---------------------------------------------------------------------------
Затем, в событии OnTime у вашего таймера пишите код:
C++
1
2
3
4
 progress+=12;//данная переменная отвечает за заполненную часть шкалы (прибавлять можно любое значение)
 
   Image1->Canvas->CopyRect(Rect(0,0,progress,9),b->Canvas, Rect(0,0,progress,9));//Копируем с изображения нашей заполненной шкалы определенный участок (от начала, до значения progress по горизонтали)
   if(progress>380)Timer1->Enabled=0; //при заполнении шкалы выключаем таймер
2
LK
Заблокирован
06.01.2011, 23:42 3
а что, если в обработчике Прогрессбара просто делать Image->Width = Уровень_заполнения_Прогрессбара; при Image->Stretch ?
1
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
08.08.2013, 10:49 4
а не подскажет кто-нибудь, есть ли еще способ скопировать картинку один в один (т.е. оба Image имеют одинаковые размеры и копируем всю область) кроме как с помощью CopyRect?
0
Практикантроп
4728 / 2636 / 510
Регистрация: 23.09.2011
Сообщений: 5,661
08.08.2013, 11:44 5
Пробуй так:__
C++
1
  Image2->Picture->Assign(Image1->Picture) ;
С bmp-файлами работает; с другими не проверял.
1
☆ Форумчанин(FSC)☆
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10
08.08.2013, 11:48 6
Ну, может
C++
1
2
3
int height, width;
height=StrToInt(Image1->Height);
width=StrToInt(Image1->Width);
Что- нибудь такое)

Добавлено через 1 минуту
О, а вот nick42 дело говорит!
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
08.08.2013, 12:01 7
FSC, не надо писать бред)
nick42, спасибо! как-то не приходилось мне еще возиться с Assign ни с одним компонентом, казалось он делает что-то другое) а ведь это то, что надо)
0
Практикантроп
4728 / 2636 / 510
Регистрация: 23.09.2011
Сообщений: 5,661
08.08.2013, 12:04 8
Не везде он уместен, но для списков и картинок в общем подходит.
0
☆ Форумчанин(FSC)☆
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10
08.08.2013, 12:13 9
AntonChik , ОК)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2013, 12:13
Помогаю со студенческими работами здесь

Как копировать часть Png картинки в Timage
Вобщем беда как всегда с прозрачностью при копировании выводятся на ура TPngImage *p = new...

Чтение txt файла и рисование по нему картинки в Timage
Здравствуйте! Нужна ваша помощь, нужно реализовать программу чтения txt файла и рисования по нему...

Копирование картинки
Есть два компонента Image, заданы переменные с шириной и высотой(width, height), задана переменная...

Копирование картинки из программы на диск
Здравствуйте. Я добавил в программу картинку ( создал в папке с проектом файл main.rc, прописал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru