Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
4-1084804047
Cranium
2004-05-17 18:27
2004.06.27
Как получить серийный номер биоса материнской платы


14-1086938870
Думкин
2004-06-11 11:27
2004.06.27
С днем рождения! 11 июня


14-1086693972
init13
2004-06-08 15:26
2004.06.27
Callback


3-1085950398
NeVIP.
2004-05-31 00:53
2004.06.27
FAM, PX, TV, VAL, XG0, XG1, YG0, YG1...


4-1084881847
Satrax
2004-05-18 16:04
2004.06.27
Как прочесть системные журналы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский