Форум: "Основная";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
ВнизTWinControl.PaintTo() и т.п. Найти похожие ветки
← →
StriderMan (2009-03-25 14:58) [0]Задача: Есть TWinControl , у которого нет парента, просто болтается в памяти. Нужно отрисовать его в нужной канве на нужном месте.
Пробовал тупо .PaintTo(). Получаю Control "" has no parent window, что вобщем-то логично.
Далее вместо WinControl"а заюзал невидимый TForm - ошибок нет, но рисует пустоту, пока форма невидима, а мне показывать ее никак не надо.
Далее пробовал решить проблему при помощи BitBlt:wdc := GetWindowDC(fLayer.Handle);
try
Canvas.Lock;
try
BitBlt(Canvas.Handle, 0, 0, Width, Height, wdc, 0, 0, SRCCOPY);
finally
Canvas.Unlock;
end;
finally
ReleaseDC(fLayer.Handle, wdc);
end;
опять же отрисовывается нормально только если форма видима, при этом в копируемый прямоугольник захватываются другие формы, частично или полностью перекрывающие нашу формочку. Т.е. получается снимок области экрана как его видит пользователь.
что можно еще попробовать?
← →
Cobalt © (2009-03-25 22:37) [1]А если на время отрисовки ему устанавливать parent - какой будет эффект?
← →
ЮЮ © (2009-03-26 09:18) [2]
> А если на время отрисовки ему устанавливать parent - какой
> будет эффект?
Тогда он сам отрисуется, а автору это не нужно :)
← →
StriderMan (2009-03-26 15:08) [3]
> А если на время отрисовки ему устанавливать parent - какой будет эффект?
мигнет и пропадет, когда парента отберем.
решил проблему так: Нашел им парента в виде панельки, сныканой под всеми так, что ее не видно. Знатный бутерброд получился, но работает нормально :)
ЗЫ: не подумайте, что я извращенец, я редактор форм доделываю :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c