Главная страница
    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.014 c
2-1133444116
Lucifer
2005-12-01 16:35
2005.12.18
Hook на нажатие кнопок мыши


2-1133600247
taraban
2005-12-03 11:57
2005.12.18
отлов клавишь


4-1129396275
g-l-u-k
2005-10-15 21:11
2005.12.18
Очистка контрола


3-1130782933
ksd
2005-10-31 21:22
2005.12.18
как открыть базу на акцесе из read-only каталога (на CD)?


14-1133048630
Fl@sh
2005-11-27 02:43
2005.12.18
PIC контроллеры + литература





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский