Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: 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 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
9-1077808784
Creep
2004-02-26 18:19
2004.06.27
Как зделать игру во весь икран сандартными средствами Dolphi


4-1084817805
John Doe
2004-05-17 22:16
2004.06.27
Командная строка


9-1078046012
Cerber
2004-02-29 12:13
2004.06.27
diablo 1


1-1086940312
SergeyM
2004-06-11 11:51
2004.06.27
Timer


14-1086356175
Rouse_
2004-06-04 17:36
2004.06.27
LOL :)