Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Вниз

Пропорциональность при загрузке изображения, когда Stretch=True.   Найти похожие ветки 

 
igorr   (2002-03-03 05:25) [0]

Как сделать, чтобы при
Image1.Height=100 и
Image1.Stretch=True
и загрузке
Image1.Picture.LoadFromFile(FileName)
свойство Image1.Width устанавливалось пропорционально с Height?


 
Mbo   (2002-03-03 07:34) [1]

Не уверен, что понял твою мысль
это?

with image1 do begin
Stretch:=false;
Picture.LoadFromFile("d:\1.bmp");
width:=Picture.Width*100 div picture.height;
Stretch:=true;
end;


 
igorr   (2002-03-03 10:45) [2]

Я работаю с формами MDIChild

В главной форме следующий код:


procedure TMainForm.Stretch1Click(Sender: TObject);
var
NameF:string;
begin
OpenDialog1.Filter:="Pictures *.bmp|*.bmp";
if OpenDialog1.Execute then
begin
TChildStretch.Create(Application);
NameF:=OpenDialog1.FileName;
with ActiveMDIChild as TChildStretch do
begin
Caption:=NameF;
LoadData(NameF);
end;
end;
end;


На LoadData работает код в Child форме


procedure TChildStretch.LoadData(var Name1:string);
begin
with Image2 do
begin
Stretch:=False; {по предложению Mbo 03.03.02 07:34}
Picture.LoadFromFile(Name1);
InitWidth:=Picture.Width div 2;
InitHeight:=Picture.Height div 2;
Stretch:=True;

{!!! но следующий код не проходит !!!}

Picture.Width:=InitWidth; {Cannot assign to a read-only property}
Picture.Height:=InitHeight; {Cannot assign to a read-only property}
end;



Пришлось сделать пункт в меню ГЛАВНОЙ формы, который устанавливает требуемые значения (InitWidth, InitHeight). Это выглядит так:

Код ГЛАВНОЙ формы:

procedure TMainForm.Normalsize1Click(Sender: TObject);
var
NewWidth,NewHeight:integer;
Resize:boolean;
AcCh:TChildStretch;
begin
AcCh:=ActiveMDIChild as TChildStretch;
NewWidth:=InitWidth; {либо другая нужная ширина}
NewHeight:=InitHeight; {либо другая нужная высота}
Resize:=True;
AcCh.FormCanResize(AcCh,NewWidth,NewHeight,Resize);
end;


Код Child формы:

procedure TChildStretch.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
with sender do
begin
Width:=NewWidth;
Height:=NewHeight;
end;
end;


Есть ли другие решения?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
3-57314
gegc
2002-02-18 15:38
2002.03.18
Обновление таблицы


1-57461
DmSN
2002-02-28 21:13
2002.03.18
Частота вращения вентилятора процессора


14-57492
M-A-B
2002-02-01 12:14
2002.03.18
СОМ-порт


1-57412
Konvoy
2002-03-02 10:33
2002.03.18
BDE и Терминил-клиент


1-57393
KMM
2002-03-01 12:48
2002.03.18
Как огруглить число...?





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