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

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

При изменении размера формы теряется рисунок на Image [D6, Win95/98, WinXP]


Ira ©   (2005-01-20 14:54:00) 

Кто подскажет!
На форме есть image.
При create на image рисуется сетка,
но при изменении размеров формы сетка не перерисовывается на
весь экран.
Как поступить?
Спасибо!


Eraser   (2005-01-21 00:37:00) [1]

Antonn ©
image1.Canvas

Бред. Тогда лучше и быстрее рисовать прямо на форме.

Ira
Ира, всё гораздо проще, рисуй на этой канаве:
image.Picture.Bitmap.Canvas


Knight   (2005-01-20 18:45:00) [2]


> [7] LM2   (20.01.05 17:14)
> Может можно и другим способом.

Способ описан в [5]... А у TImage несколько иные задачи...


LM2   (2005-01-20 17:14:00) [3]

у TImage есть небольшой глюк(может и не глюк)
- после увеличения размера TImage не рисуется в той области на которую был увеличен(скорее всего размеры внутренего Bitmap не меняются)!
Выход такой - в режиме дизайна сделать Image.Align := alNone и TImage максимально большим, а на создание формы привести к нужным размерам Image.Align := alClient.
Может можно и другим способом.


Knight   (2005-01-20 15:58:00) [4]

Используй не TImage, а TPaintBox рисуй сетку в onPaint...


antonn   (2005-01-20 15:58:00) [5]


> image1.Canvas.MoveTo(x+i*10,0);

думаю можно не писать 10,0 а -> 10. А х чему равен? В формресайз пропиши свои циклы. Да и j можно на i заменить.


Ira   (2005-01-20 15:08:00) [6]

Вооьще рисую я так:
for i:=1 to form1.Width do begin
image1.Canvas.MoveTo(x+i*10,0);
image1.canvas.LineTo(x+i*10,Image1.Height);
end;
for j:=1 to form1.Height do begin
image1.Canvas.MoveTo(0,y+j*10);
image1.canvas.LineTo(image1.Width,y+j*10);
end;
Может подскажете более рациональный способ рисования сетки на image? А то с этим проблемки.


Ira   (2005-01-20 15:07:00) [7]

Вооьще рисую я так:
for i:=1 to form1.Width do begin
image1.Canvas.MoveTo(x+i*10,0);
image1.canvas.LineTo(x+i*10,Image1.Height);
end;
for j:=1 to form1.Height do begin
image1.Canvas.MoveTo(0,y+j*10);
image1.canvas.LineTo(image1.Width,y+j*10);
end;
Может подскажете более рациональный способ рисования сетки на image?


Ira   (2005-01-20 15:05:00) [8]

Рисуется на image1.Canvas.
Нужно чтобы при изменении размеров формы image тоже изменял свои размеры под форму и как бы заново рисовалась сетка но уже на разтянутом image.


Antonn   (2005-01-20 14:59:00) [9]

При каких событиях рисуется первоначальная сетка и на чем(Image1.Picture.Bitmap.Canvas и image1.canvas немного разные вещи)? И вообще, что значит

> но при изменении размеров формы сетка не
>перерисовывается на
> весь экран.


Наверх

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