Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DrawText en TCustomPanel (https://www.clubdelphi.com/foros/showthread.php?t=56806)

epalacios 28-05-2008 11:57:32

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

xEsk 28-05-2008 16:23:15

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.

epalacios 29-05-2008 09:24:12

Muchas gracias


La franja horaria es GMT +2. Ahora son las 20:48:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi