neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mar 25 Feb, 2014 7:00 pm Asunto: Recuperar pixel a Pixel area original de componente visual |
|
|
Buenas..
He creado un componente visual sobre el cual en cierto momento visualizo un TPanel...mi intencion es que al "cerrar" el Tpanel en el area que ocupaba se repinte pixel a pixel los colores originales del componente ..... (en mi caso refrescar el componente completamente conlleva una serie de operaciones que haria que el refres no fuese fluido y se notara).
Usando el codigo siguiente (gracias ecfisa) para repintar el area:
| Código: | class PACKAGE TMiComponente : public TCustomControl
{
__published: // IDE-managed Components
Graphics::TBitmap *AreaPanelInf;
TControlCanvas *FCtrlCanvas;
........
void TMiComponente::GuardArea()
{
..............
FArea->Width = 100;
FArea->Height = 100t;
TRect R = Rect(X, Y, FArea->Width, FArea->Height);
FArea->Canvas->CopyRect(R, Canvas, R);
.................
}
void TMiComponente:RestaurAreaPanel()
{
........
this->Canvas->Draw(X,Y,AreaPanelInf);
.......
} |
Solo guarda el area correspondiente dibujada mediante el procedimiento paint() del componente.. ignorado el area "redibujada" a posteriori desde otro procedimiento (que es mi caso)...
Dado que solo modifica areas afectadas por el evento paint().. no gano nada guardando y recuperando una pequeña area ya que el Procedimiento paint() regenera la imagen de todo el componente si o si..
Para ilustrar mi problema dejo un pequeño programa en...
https://app.box.com/s/6gvqol66wahyhuk1negu
Hay alguna manera de regenerar el area dibujada desde otro procedimiento diferente al Paint()
Espero haberme explicado bien... Gracias. |
|