FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
DrawText en TCustomPanel
Utilizo el siguiente código para poner una caption en un tcustompanel
procedure DrawBevelText; var i: integer; begin with Canvas do begin StrPCopy(C, Text); CLen := StrLen(C); R := Rect(20,20, y, 0, H); DrawText(Canvas.Handle, C, CLen, R, DT_LEFT or DT_CALCRECT); Brush.Style := bsClear; DrawText(Canvas.Handle, C, CLen, R, DT_LEFT); end; end; el caso es que le asigno un texto a la caption y luego otro distinto y lo que me hace es pintarlo encima sobreescribieno el anterior. Aunque lo inicialice a "vacío" antes de asignarle el texto me hace lo mismo ¿Alguien puede ayudarme? Muchas gracias y un salduo |
#2
|
||||
|
||||
Al pintar encima del TCanvas, antes debes "borrar" el contenido del TCanvas.
Me explico, en el TCustomPanel cuando pinta (en el metodo Paint), lo hace todo, es decir, pinta el fondo, los contornos y por último el Caption. Así pues al cambiar el Caption, re-pinta todo... La solución fácil, creo que es pintar antes un rectangulo del color del fondo (en la zona del caption, no es necesario pintar todo el fondo) y luego pintar el nuevo texto (caption) por encima. Saludos. |
#3
|
|||
|
|||
Muchas gracias
|
|
|
|