![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При изменении размера формы теряется рисунок на 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 немного разные вещи)? И вообще, что значит
> но при изменении размеров формы сетка не
>перерисовывается на
> весь экран.