Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.03.15;
Скачать: CL | DM;

Вниз

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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.006 c
2-1391269043
Ден99
2014-02-01 19:37
2015.03.15
Ping


3-1303294060
dim01
2011-04-20 14:07
2015.03.15
Компоненты Interbase


15-1406813199
Борщи
2014-07-31 17:26
2015.03.15
Помогите с формулой


15-1406835192
A.P.V.
2014-07-31 23:33
2015.03.15
нет ли среди благородных донов пользователей edifactoring.net?


4-1245937247
robotic
2009-06-25 17:40
2015.03.15
Как не забирать фокус в момент открытия?