Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TImage не растягивается вслед за формой...


R_R ©   (2011-07-18 04:57:00) 

TImage имеет свойство alClient и не растягивается при изменении размеров формы... Что не так?


MBo   (2011-07-18 08:07:00) [1]

>Это?
Да


R_R   (2011-07-18 07:28:00) [2]

MBo ©   (18.07.11 07:22) [12]
Это?
img1.Picture.Bitmap.Width := ClientWidth;
img1.Picture.Bitmap.Height:= ClientHeight;
Вроде всё заработало.. Спасибо...


MBo   (2011-07-18 07:22:00) [3]

>Так Bitmap я потом рисую заново
Рисование тут ни при чем


R_R   (2011-07-18 07:12:00) [4]

MBo ©   (18.07.11 06:58) [10]
Так Bitmap я потом рисую заново, после изменения размеров...

Самое интересное со Stretch'ем после изменения всего этого вызываю по onClick

img1.Canvas.Rectangle(2,2,img1.ClientWidth-2, img1.ClientHeight-2);
и вместо рамки рисуется только один угол. То есть Image растянулся за пределы Form'ы!!! Хотя стоит alClient


MBo   (2011-07-18 06:58:00) [5]

Уже сказали ведь - при изменении размеров TImage размер его битмапа автоматически не меняется. Надо руками.


R_R   (2011-07-18 05:50:00) [6]

Хотя тоже неверно, при малых значениях - тот же глюк...


R_R   (2011-07-18 05:46:00) [7]

Моя гипотеза: что Image нельзя растянуть больше определенного размера...


R_R   (2011-07-18 05:28:00) [8]

Без Stretch
http://webfile.ru/5443613
Со Stretch
http://webfile.ru/5443614


R_R   (2011-07-18 05:25:00) [9]

Сейчас выложу скрины


R_R   (2011-07-18 05:23:00) [10]

Вот вызов процедуры
Item_size := StrToInt(Trim(InputBox('Piece size', 'Enter size of one piece:', IntToStr(Item_size))));
frmMain.Width := Item_size*Size_W + 50;
frmMain.Height:= Item_size*Size_H + 50;
frmMain.DrawBoard(YourColorWhite);

Вот прорисовка (DrawBoard):
  for i := 1 to SIZE_W do
   for j := 1 to SIZE_H do
   Rectangle((i-1)*ITEM_SIZE+25, (j-1)*ITEM_SIZE, i*ITEM_SIZE+25, j*ITEM_SIZE);


Германн   (2011-07-18 05:21:00) [11]


> R_R   (18.07.11 05:12) [2]
>
> Германн ©   (18.07.11 05:07) [1]
> Cудя по всему не растягивается, так как в процедуре после
> изменения размеров формы вызывается прорисовка

Значит ошибка в "прорисовке".
Других вариантов нет!
По крайней мере до тех пор, пока не приведешь воспроизводимый код, который докажет сей глюк.


R_R   (2011-07-18 05:18:00) [12]

А вообще может и нет -сейчас посмотрю...


R_R   (2011-07-18 05:12:00) [13]

Германн ©   (18.07.11 05:07) [1]
Cудя по всему не растягивается, так как в процедуре после изменения размеров формы вызывается прорисовка... А если Stretch то часть изображения вообще выскакивает за пределы формы...


Германн   (2011-07-18 05:07:00) [14]

TImage-то наверняка растягивается, а вот сама картинка...
Stretch = True


Наверх

Титульная страница Поиск, карта сайта Написать письмо