![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Image не меняет размеров
Light-blr © (2009-05-25 15:51:00)Здравствуйте!
На форме TImage и 2 скролла. В image загружается картинка из TBitMap, после чего рассчитывается на сколько могут крутиться скроллы (исходя из разницы размеров картинки и image). Это всё работает.
При изменении размеров формы все компоненты меняют свои размеры так, чтобы оставаться прижатыми к краям формы, но почему-то если в image загружена картинка - при изменении размеров формы он остаётся прежних размеров. Если картинку загружать не в ходе выполнения программы, а изначально, то с размерами всё нормально - при изменении размеров формы изменяются размеры и image-а. Как только ту же картинку загружаю программно - всё, какими были при этом размеры image-а, такими и остаёются, сколько бы размеры формы ни меняли.
Код выглядит вот так:
ScrollH.Width:=PanelR.Left-ScrollV.Width;
ScrollH.Top:=PanelB.Top-ScrollH.Height;
ScrollV.Height:=PanelB.Top-ScrollH.Height;
ScrollV.Left:=PanelR.Left-ScrollV.Width;
if bm.Empty then begin
ImageMain.Height:=ScrollV.Height;
ImageMain.Width:=ScrollH.Width;
end
else begin
if bm.Width-ImageMain.Width>0 then begin
ImageMain.Width:=ScrollH.Width;
ScrollH.SetParams(0,0,bm.Width-ImageMain.Width)
end
else begin
ImageMain.Width:=bm.Width;
ScrollH.SetParams(0,0,0);
end;
if bm.Height-ImageMain.Height>0 then begin
ImageMain.Height:=ScrollV.Height;
ScrollV.SetParams(0,0,bm.Height-ImageMain.Height);
end
else begin
ImageMain.Height:=bm.Height;
ScrollH.SetParams(0,0,0);
end;
end;
Подскажите, пожалуйста, в чём тут дело.
KilkennyCat (2009-05-25 20:51:00) [1]Смотри:
> картинку загружать не в ходе выполнения программы, а изначально,
> то с размерами всё нормально - при изменении размеров формы
> изменяются размеры и image-а.
То есть, разницу ты отловил. Но сюда постишь почему-то не код загрузки картинки.