-
Стоит 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 каким был по размерам таким и остался... Пробовал отключить таймер - тоже самое. Но перед запуском таймера все нормально работает (размер меняется). Подскажите как это вылечить.
-
> Тут все "вкусно". перестань лизать всякую гадость, и начни наконец то (учись) программировать...
p.s. поиск имеджей по имени, и отрисовка по таймеру, если уж сравнивать со вкусом то это блевотина. лучше все переделать на отрисовку по событию онпаинт, с заменой имежда компонентом у которого оно есть (PaintBox).
p.p.s. если же по существу конкретно этого вопроса, то сплитер меняет размер компонента, но не битмапа. а имеджа нет совмещения размеров (не для того видать делали), озаботься им сам... ну вот, пойду сблюю.
-
|