![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Tsplitter и Timage [D7]
Labor © (2011-03-19 14:27:00)Стоит img1:Timage (align=bottom) и над ним splitter:tsplitter (тоже align=bottom)
по таймеру рисуется график в img_buf:Timage и копируется в тот img1
...
temp_rect:=TImage(FindComponent('img'+x).Canvas.ClipRect;
...
TImage(FindComponent('img'+x).Canvas.Lock;
try
TImage(FindComponent('img'+x).Canvas.CopyRect(temp_rect,img_buf.Canvas,Rect(se4.Value,se1.Value,img_buf.Wid th-se2.Value,img_buf.Height-se3.Value));
finally
TImage(FindComponent('img'+x).Canvas.Unlock;
end;
...
Тут все "вкусно". Чудеса начинаются если подвинуть splitter при работающем таймере. Такое впечатление, что img1 увеличивается/уменьшается, а вот его Canvas каким был по размерам таким и остался...
Пробовал отключить таймер - тоже самое.
Но перед запуском таймера все нормально работает (размер меняется).
Подскажите как это вылечить.
Amoeba_ (2011-03-20 19:20:00) [1]
> Labor © (19.03.11 14:27)
Этот вопрос уже рассматривался здесь
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=79325
, и суть ответов была та же. Что не устраивает?
sniknik (2011-03-20 17:11:00) [2]> Тут все "вкусно".
перестань лизать всякую гадость, и начни наконец то (учись) программировать...
p.s. поиск имеджей по имени, и отрисовка по таймеру, если уж сравнивать со вкусом то это блевотина.
лучше все переделать на отрисовку по событию онпаинт, с заменой имежда компонентом у которого оно есть (PaintBox).
p.p.s. если же по существу конкретно этого вопроса, то сплитер меняет размер компонента, но не битмапа. а имеджа нет совмещения размеров (не для того видать делали), озаботься им сам... ну вот, пойду сблюю.