Форум: "Media";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
ВнизИзменение размера TImage Найти похожие ветки
← →
Profi © (2005-04-30 00:33) [0]В программе есть Timage, вернее на mdi-форме. Размер его меняется, в зависимости от размеров окна. Изначально Timage - невидим. Проблема в том, что если я, например, уменьшу окно, а потом нарисую что-нибудь на невидимом TImage, то рисунок рисуется по старым размерам. Пробовал и Update и Repaint и Refresh - результата ноль! Может, кто знает, как этого избежать! Заранее спасибо!
← →
programania © (2005-04-30 01:34) [1]>уменьшу окно, а потом нарисую что-нибудь на невидимом TImage
после уменьшения окна попробуй сначала изменить image
и потом уж рисовать, например так:
procedure TForm1.FormResize(Sender: TObject);
begin
DoubleBuffered:=true;
image1.visible:=false;
image1.stretch:=true;
image1.top:=0;
image1.left:=0;
image1.width:=clientWidth;
image1.height:=clientHeight;
image1.picture.bitmap.width:=clientWidth;
image1.picture.bitmap.height:=clientHeight;
image1.picture.loadFromFile("image.bmp");
image1.visible:=true;
end;
или все-таки напиши что делаешь на самом деле
← →
Profi © (2005-04-30 07:41) [2]programania © (30.04.05 1:34) [1]
Попробую, но я не загружаю рисунок, а именно рисую через canvas.
← →
programania © (2005-04-30 11:29) [3]Вот тоже рисую рамку для картины
и тут при image1.stretch=true
все что рисуется на canvas деформируется как загруженная картинка.
procedure TForm1.FormResize(Sender: TObject);
var i,h,w:integer;
begin
DoubleBuffered:=true;
image1.visible:=false;
//image1.stretch:=true;
image1.top:=0;
image1.left:=0;
image1.width:=clientWidth;
image1.height:=clientHeight;
//если загружается картинка то эти строки можно убрать
//image1.picture.bitmap.width:=clientWidth;
//image1.picture.bitmap.height:=clientHeight;
image1.picture.loadFromFile("WallPaper.bmp");
//рамка:
for i:=1 to width div 12 do begin
image1.canvas.Brush.color:=
rgb(abs(trunc(255*cos(i/32))),trunc(255*sin(i/12)),trunc(255*sin(i/48)));
image1.canvas.frameRect(rect(i,i,clientWidth-i,clientHeight-i));
end;
image1.visible:=true;
end;
← →
Profi © (2005-04-30 15:18) [4]programania © (30.04.05 11:29) [3]
Замес в другом! При загрузки картинки и stretch=true размеры подстроются. Но! Я рисую на пустим TImage, что приводит к искажению при stretch=true. Сделал просто, перерисовываю картинку сразу после visible:=true;
← →
izogfif (2005-07-18 17:34) [5]Если я правильно понял, то изображение отсекается одним и тем же прямоугольником, и параметр ClipRect не изменяется при изменении размеров изображения. Попробуйте изменить параметры Timage.canvas.picture.bitmap.height и width по размеру timage.height и timage.width
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c