Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Drawstate con Multilinea (https://www.clubdelphi.com/foros/showthread.php?t=53737)

Edgtho 28-02-2008 13:51:01

Drawstate con Multilinea
 
Buenas,

Estoy probando con la creacion de componentes y me encuentro un fallo en el dibujado de un caption cuando se utiliza Drawstate.

El codigo que he usado en un principio es muy simple y se puede encontrar facilmente por google

Código:

  if not Enabled then
    DrawState(FCanvas.Handle, FCanvas.Brush.Handle, nil, Integer(Caption), 0,
      Rect.Left,Rect.Top,Canvas.TextWidth(caption), canvas.TextHeight(caption),
      0, 0, DST_PREFIXTEXT or DSS_DISABLED)
  else
    DrawText(FCanvas.Handle, PChar(Caption), - 1, Rect,
      DT_WORDBREAK or DT_CENTER or DT_VCENTER);

DrawText funciona sin ningun problema, pero no puedo incluir DT_WORDBREAK en el Drawstate, incluso he llegado a poner a mano el TextHeight, pero nada.

Como puedo entonces representar correctamente el texto de forma deshabilitada y con varias lineas, de forma similar a DrawText.

Un saludo y gracias por las respuestas.

Lepe 29-02-2008 00:11:39

quizás ¿estableciendo el color de la fuente del canvas a gris clarito y después usar DrawText?

Creo que podría valer.

Saludos

Edgtho 02-03-2008 17:51:47

Ya lo habia probado y no resulta del todo, aparte que el efecto no es el mismo y queda fatal si se le cambia el color del fondo.

Habra que seguir probando, jejeje.

un saludo.


La franja horaria es GMT +2. Ahora son las 00:04:45.

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