Вниз
Скачать: CL | DM;

Image - глюк   Найти похожие ветки 

← →
Глеб ©   (2004-06-08 11:04) [0]

Уважаемые МАСТЕРА! У меня возникла следующая проблема:
на форме есть TScrollBox. На нём в align=alClient растянут Image.
Когда я во время работы программы пытаюсь прорисовать на канве изображение,
то при прокрутке TScrollBox та часть, которая не была видна во время рисования,
остаётся незакрашенной. Что мне нужно добавить?
   i := -2;
   while i <= image8.width do
   begin
     j := -10;
     while j <= image8.Height do
     begin
       image8.Canvas.Draw(i, j, bitmap);
       inc(j, 20);
     end;
     inc(i, 20);
   end;

(битмап - это клетка, с помощью которой я рисую клетчатое поле)


← →
Семен Сорокин ©   (2004-06-08 11:07) [1]

рисуй на TPaintBox в событии OnPaint.


← →
Глеб ©   (2004-06-09 03:52) [2]

Нет, так не пойдёт!


← →
ЮЮ ©   (2004-06-09 04:29) [3]

А по какому событию ты рисуешь? Возможно, ты нарисовал ещё до того, как Image растянулся на весь ScrollBox. Более того, разиеры image.Picture и image вовсе не обязаны быть одинаковыми, поэтому рисование на канвасе вне пределов Picture нигде не сохранится


← →
Mim1 ©   (2004-06-09 04:39) [4]

Не знаю что у вас там с прорисовкой, но чтобы картинка прокручивалась нормально надо что бы ее размер был больше чем клиентская область скролбокса, для этого наиболее подходит не align = alclient а autosize := true;


← →
Глеб ©   (2004-06-09 10:29) [5]

дело в том, что я рисую на канве.
и я рисую несколько рисунков, прилегающих друг к другу.


← →
ЮЮ ©   (2004-06-10 05:02) [6]

Дело в том, что размеры канвы и Image.Picture.Bitmap-а разные и то что не попадает в область последнего нигде не сохраняется.


← →
Глеб ©   (2004-06-12 09:00) [7]


> Дело в том, что размеры канвы и Image.Picture.Bitmap-а разные
> и то что не попадает в область последнего нигде не сохраняется.

Разве Picture и Canvas чем-то могут быть связаны? Это же разные объекты!
Canvas - TCanvas, Picture - TPicture!


← →
ZZZubec ©   (2004-06-12 10:22) [8]

Всё что рисуется на канве - лишь временно.
К примеру: достаточно на канве формы нарисовать какой-нить рисунок, а затем любым другим окном провести по форме, рисунок тут же пропадет, так как ты рисунок рисуешь один раз, а его стоит рисовать каждый раз по событию OnPaint.


← →
AVK   (2004-06-12 10:32) [9]

Если все таки не использовать TPaintBox, то может стоит рисовать на Image8.Picture.Bitmap.Canvas ?
Пробуй так:

i := -2;
  while i < image8.Picture.Width do
  begin
    j := -10;
    while j < image8.Picture.Height do
    begin
      Image8.Picture.Bitmap.Canvas.Draw(i, j, bitmap);
      inc(j, 20);
    end;
    inc(i, 20);
  end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
14-1086633056
YurikGl
2004-06-07 22:30
2004.06.27
Глюки WinXP


8-1081769338
Черноглазов
2004-04-12 15:28
2004.06.27
Как получить видео через USB.


1-1087248956
CyberSpy
2004-06-15 01:35
2004.06.27
RxLIB


3-1086014082
Temucin
2004-05-31 18:34
2004.06.27
оракл+делфи


1-1087059661
killer
2004-06-12 21:01
2004.06.27
Кнопочка с меню...




   Наверх