Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.081 c
14-1132723077
Иксик
2005-11-23 08:17
2005.12.18
Бдите


9-1122351167
WondeRu
2005-07-26 08:12
2005.12.18
DirectDraw. Вывод DIB-битмапа. Как?


6-1118759871
Mac333
2005-06-14 18:37
2005.12.18
IdSMTP и TIdAttachment -> Content-Type: text/html -> text/plain ?


14-1133010638
Mike Kouzmine
2005-11-26 16:10
2005.12.18
Японцы посадили спутник на астероид.


11-1114177052
Ал
2005-04-22 17:37
2005.12.18
Утечка памяти KOLOpenSaveDialog





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский