На форме есть компонент TImage(Image1). Содержимое рисунка заполняется методом Image1->Canvas->Rectangle().
1) Можно ли изменить размер рисунка при изменении размеров формы?
2) Как удалить содержимое рисунка, чтобы при этом остался виден только белый фон?
Изменение размеров рисунка в C++ Builder
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Насчет очистки рисунка:
В каком нибудь обработчике пишете
[Syntax="C++"]
Graphics::TPicture *Picture1=new Graphics::TPicture(); //создаем пустой обьект
Image1->Picture->Assign(Picture1); //загружаем пустой обьект
Picture1->Free(); //удалям из памяти пустой объект
Image1->Canvas->Brush->Color = clWhite;
[/Syntax]
В каком нибудь обработчике пишете
[Syntax="C++"]
Graphics::TPicture *Picture1=new Graphics::TPicture(); //создаем пустой обьект
Image1->Picture->Assign(Picture1); //загружаем пустой обьект
Picture1->Free(); //удалям из памяти пустой объект
Image1->Canvas->Brush->Color = clWhite;
[/Syntax]
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
А на счёт ресайзинга рисунка вот что могу сказать. Не знаю, как это сделать в VTL, но на чистом Win32 API тебе поможет функция StretchBlt. Подробности в MSDN:
http://msdn.microsoft.com/en-us/library/ms532355.aspx
http://msdn.microsoft.com/en-us/library/ms532355.aspx
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
-
- Сообщения: 2
- Зарегистрирован: 25 апр 2010, 18:11
пишу подобную программу и для решения вашей проблемы сделал так
Код: Выделить всё
void __fastcall TForm1::ListView1SelectItem(TObject *Sender, //открытие выделеной картинки в image1
TListItem *Item, bool Selected)
{ if(ListView1->Selected){
AnsiString path = Item->SubItems->Strings[2];
Image1->Picture->LoadFromFile(path);
} else Image1->Picture = NULL; // ничего не показывай
}