Форум: "Media";
Текущий архив: 2015.03.15;
Скачать: [xml.tar.bz2];
ВнизTImage=>Canvas и отрисовка Найти похожие ветки
← →
Faiwer © (2009-02-26 21:58) [0]Удалено модератором
Примечание: http://www.delphimaster.ru/forums.shtml#rule Запрещается: п.7
← →
Pavia © (2009-02-26 22:44) [1]
> асколько я понимаю если я использую канву от формы то она
> не беспокоится о своей отрисовке,
Она то беспокоиться и вызывает событие OnPaint, куда и надо вешать свой обработчик для отрисовки.
← →
sco (2009-02-26 23:19) [2][quote]Она то беспокоиться и вызывает событие OnPaint, куда и надо вешать свой обработчик для отрисовки.[/quote]
Ну OnPaint немного неподходит, ибо он не даёт тот участок чтом не нужно перерисовать, и всю ответственность за отображение переносит на мои плечи...
Есть какие нибудь предположения почему имаги дохнут?
← →
brother © (2009-02-27 10:29) [3]Timage в runtime создается?
← →
brother © (2009-02-27 10:34) [4]и странно, но image1.Picture нет Canvas
он есть у image1.Picture.Bitmap.Canvas.Draw...
в общем с такими исходными данными (=0) - шоибка в 17 строке
← →
brother © (2009-02-27 10:38) [5]для эксперимента:
кинь два Timage рядом друг с другом и button,
во 2 Timage загрузи картинку (желательно не меньше 640х480),
на кнопку такой код:
image1.Picture.Bitmap.Canvas.Draw(0,0, image2.Picture.Bitmap );
form1.Canvas.Draw(0,0, image2.Picture.Bitmap);
анализируй увиденное...
← →
DVM © (2009-02-27 12:03) [6]
> Ну OnPaint немного неподходит, ибо он не даёт тот участок
> чтом не нужно перерисовать
Да неужели? Есть такое понятие как область отсечения, так вот что выходит за ее пределы не перерисовывается.
← →
DVM © (2009-02-27 12:05) [7]
> Есть какие нибудь предположения почему имаги дохнут?
Потому что ты неправильно используешь TImage.
Он вообще НЕ ПРЕДНАЗНАЧЕН для рисования. Для рисования предназначен PaintBox как и следует из его названия, а TImage предназначен для хранения и отображения как правило статичной картинки.
← →
DVM © (2009-02-27 12:08) [8]Вообще, всю твою картинку с кораблями и прочее надо держать в промежуточном TBitmap и обновлять там же, когда есть необходимость. В OnPaint PaintBox-а выводить все это на канву последнего. GDI сама разберется какую часть перерисовывать и т.д. сделает все оптимальным образом.
← →
sco (2009-02-27 13:55) [9]>> Timage в runtime создается?
да. сразу 15 штук. но те которые глючат они на форме изначально.
>> и странно, но image1.Picture нет Canvas
>> он есть у image1.Picture.Bitmap.Canvas.Draw...
>> в общем с такими исходными данными (=0) - шоибка в 17 строке
очепятолся, я имел ввиду Image1.canvas
>> для эксперимента:
>> кинь два Timage рядом друг с другом и button,
>> во 2 Timage загрузи картинку (желательно не меньше 640х480),
>> на кнопку такой код:
>> image1.Picture.Bitmap.Canvas.Draw(0,0, image2.Picture.Bitmap );
>> form1.Canvas.Draw(0,0, image2.Picture.Bitmap);
>> анализируй увиденное...
попробую
Вообще, всю твою картинку с кораблями и прочее надо держать
в промежуточном TBitmap и обновлять там же, когда есть необходимость.
В OnPaint PaintBox-а выводить все это на канву последнего.
GDI сама разберется какую часть перерисовывать и т.д.
сделает все оптимальным образом.
интересно. первый раз слышу про PaintBox, пойду рыть инфу =)
← →
sco (2009-02-27 14:16) [10]>> для эксперимента:
>> кинь два Timage рядом друг с другом и button,
>> во 2 Timage загрузи картинку (желательно не меньше 640х480),
>> на кнопку такой код:
>> image1.Picture.Bitmap.Canvas.Draw(0,0, image2.Picture.Bitmap );
>> form1.Canvas.Draw(0,0, image2.Picture.Bitmap);
>> анализируй увиденное...
собственно сделал. это универсальный способ убить обе имаги и канву формы =) вот тока анализировать это не получается... почему при считывании данных с второй имаги она сама дохнет, и данные не передаёт? каждая из предложенных вами строчек кода не работает так как должна работать =) они просто тушат имаги =) Draw не предназначена для частой передачи данных? или для передачи больших данных? Draw не сбалансированная процедура?
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2015.03.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c