Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Графический редактор

764
11 октября 2001 года
King
1 / / 20.01.2000
Как Сделать так, чтобы Image целиком не перересовывался? При попытке
чаго-нибудь нарисовать на Canvas, картинка начинает жутко мигать. Как это исправить?
591
13 октября 2001 года
x77
40 / / 20.03.2000
Рисуйте на виртуальном Bitmap а потом присваивайте его Image.Picture.Bitmap. Тогда мигать будет только один раз - при присваивании.
448
14 октября 2001 года
Mr. API
105 / / 20.06.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-10-13 19:47, x77 wrote:
Рисуйте на виртуальном Bitmap а потом присваивайте его Image.Picture.Bitmap. Тогда мигать будет только один раз - при присваивании.
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Bitmap это объект. Просто так выполнять операции присваивания с объектами нельзя, это приводит к потере памяти. Есть специальный метод для этого, если не ошибаюсь он называется Assign.
591
14 октября 2001 года
x77
40 / / 20.03.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
Bitmap это объект. Просто так выполнять операции присваивания с объектами нельзя, это приводит к потере памяти. Есть специальный метод для этого, если не ошибаюсь он называется Assign.
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Assign, в переводе с англ., и означает присваивание.
448
14 октября 2001 года
Mr. API
105 / / 20.06.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-10-14 13:32, x77 wrote:
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
Bitmap это объект. Просто так выполнять операции присваивания с объектами нельзя, это приводит к потере памяти. Есть специальный метод для этого, если не ошибаюсь он называется Assign.
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Assign, в переводе с англ., и означает присваивание.
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Метод Assign все необходимые дйствия по освобождению памяти, которую занимал предыдущий экземпляр и т.д.
Короче, этот метод выполнит не только присваивание, но и др. необходимые действия.
591
14 октября 2001 года
x77
40 / / 20.03.2000
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
Метод Assign все необходимые дйствия по освобождению памяти, которую занимал предыдущий экземпляр и т.д.
Короче, этот метод выполнит не только присваивание, но и др. необходимые действия.
</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Метод Assign не высвобождает память, а вызывает inherited Assign объекта. Разница между a1 := a2 и a1.Assign (a2) в том, что в первом случае вы получаете просто ссылку на a2 (reference), а во втором копируете в a1 само содержание объекта a2, его content, включающий все его свойства.

В данном конкретном случае разницы между Image1.Picture.Bitmap := Bmp и Image.Picture.Bitmap.Assign (Bmp) не будет никакой, т.к. свойство Bitmap объявлено как

property Bitmap: TBitmap read GetBitmap write SetBitmap;

и при присваивании Bitmap (Image1.Picture.Bitmap := Bmp) вызывается метод записи SetBitmap, тот вызывает метод TPicture.SetGraphic, а уж он, есс-но, само присваивание, как таковое, выполняет через Assign.

Если вы не против, то давайте закончим на этом. К сабжу это всё отношения не имеет.
448
15 октября 2001 года
Mr. API
105 / / 20.06.2000
Закрыть эту тему я не возражаю.
Ну, вот, Вы сами видите, что все приходит к Assign. И все же рекомендуется использовать Assign, а не просто присваивание.
449
25 октября 2001 года
Fantasist
124 / / 20.06.2000
Тут есть тонкость с TCanvas.ClipRectangle кажется. Если не соответствуют какие-то размеры то начинается это мигание. Если интересно у меня есть исходники двух практически одинаковых компонент(моих) для рисования (потомки ТImage) , но в одном канва мигает, a в другом нет.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог