Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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;


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




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




Наверх





Память: 0.72 MB
Время: 0.024 c
3-57293           Akhmadey              2002-02-18 20:05  2002.03.18  
Проблема с Master-Detail


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


3-57304           Стас                  2002-02-19 11:42  2002.03.18  
Btrieve+Delphi


14-57513          ATLANTIDO             2002-02-04 14:40  2002.03.18  
ПОЧТОВЫЙ СЕРВЕР


4-57558           BWG                   2002-01-14 19:00  2002.03.18  
E-Mail & Winsock.