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

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

Помогите с TImage [D3, D6, Win95/98]


super_alex ©   (2003-02-07 12:05:00) 

Столкнулся с такой проблемой: если панели или имаджу задать какой-нить align (или просто без align), то потом (в коде) его размеры не хотят меняться. Вернее фактически размеры изменяются, то есть делаются такими как я задаю, но отображаются те которые были до компиляции???
Допустим собираю форму, кидаю на неё имадж (100х100), в коде (допустим при нажатии на кнопку) изменяю размер допустим 200х200 и рисую просто линию на нем. При отображении имадж остался прежним (100х100), а линия нарисовалась, но только та её часть которая вошла в квадрат 100х100???
Помогите кто знает - очень надо...


super_alex   (2003-02-07 12:31:00) [1]

Всем спасибо - разобрался!!!


Smithson   (2003-02-07 12:26:00) [2]

Именно так. А обошел этот секс просто рисование на Canvas формы.


icWasya   (2003-02-07 12:22:00) [3]

скорее всего происходит следующее:

при первом обращении к Image.Canvas делается проверка наличия у Image объекта Picture. Если Picture = Nil то создаётся TBitmap c размерами равными размеру Image. И затем всё рисуется на этом Bitmap. Если после этого Image изменяет размер, то у этого Bitmap размер не меняется.

для устранения эффекта сделай так
1)
procedure TForm1.FormCreate (Sender:TObject);
begin
...
// гарантировано создадим Picture.Bitmap;
Image1.Canvas.Pixels[0,0]:=clWhite;
...
end;

2)
procedure TForm1.OnResize(Sender:TObject);
begin
Image1.Picture.Bitmap.Width:=Image1.Width;
Image1.Picture.Bitmap.Height:=Image1.Height;
end;


super_alex   (2003-02-07 12:18:00) [4]

Что никто тоже не знает?


Наверх

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