PDA

Ver la Versión Completa : speedbutton propiedades componente


anubis
25-08-2007, 00:33:38
Hola. Neciestaba saber como puedo implementar la propiedad que hay en el speedbutton o en el componente bitbtn que se llama margin, pero no encuentro la unit speedbutton.pas para poder intentar sacarla de ahi.
Tengo el componente xibutton, pero los gliph no quedan alineados ni a la izquierda ni a la derecha solo adaptados al texto.

Si existe la posibilidad de sacar una propiedad y metersela a otro componente os lo agradeceria.

gracias

anubis
25-08-2007, 22:31:49
No hay forma de añadir una propidad a un componente?.
Os lo agradeceria.

dec
25-08-2007, 23:24:34
Hola,

¿Pero no es la propiedad "Layout" la que te interesaría? Esta propiedad existe en el componente que mencionas...

anubis
25-08-2007, 23:41:28
gracisa por contestar
eS la propiedad margin, que permite poner el gliph a la izquierda o a la derecha sin importar la longitud del texto. En el xibutton. Por eso queria sacar la propiedad del speedbutton y ponersela al xibutton pero no se como va la cosa.

gracias

dec
26-08-2007, 00:08:01
Hola,

No parece una asunto sencillo (por lo menos hasta donde yo llego). El "Glyph" de los "TSpeedButton" y de los "TBitBtn" es un objeto de la clase "TButtonGlyph", declarada de forma privada en la unidad "Buttons.pas" además. Mientras que el "Glyph" del componente conque tratamos es un "TBitmap".

Si te fijas la propiedad "Margin" se usa en los "TBitBtn" y "TSpeedBtn" el método "Paint" de los componentes, más concretamente en una llamada al método "Draw" de la clase "TButtonGlyph". Nuestro componente hace las cosas de distinto modo (trabaja con un "TBitmap"), y así no me parece sencillo hacer lo que dices.

Sin embargo, si nos fijamos en el método "Paint" del componente que nos interesa verás que se declaran unas variables locales de nombres "GlyphLeft, GlyphTop, TextTop, TextLeft, TextWidth, TextHeight". Tal vez podrías conseguir que "GlyphLeft", por ejemplo, fuera una propiedad del componente, en lugar de una variable local.

Parece que el asunto funcionaría... más o menos... para situar el "Glyph" a la izquierda del botón, al menos. "GlyphLeft" vendría a ser así como el "margin"... pero tienes que hacer pruebas. Yo me he quedado ahí. Tal vez pueda conseguirse algo parecido a una propiedad "Margin" como digo, y seguro que se puede investigar mucho más el componente de modo que exista realmente una propiedad "Margin"... pero yo no creo poder llegar ahí.

anubis
26-08-2007, 00:12:35
muchas gracias. Mirare a ver que se puede hacer, porque los botones con los gliph no quedan muy bien por cuestion de la longitud d elos nombre, quedando desparejados del resto de los botones...
Sino tendre que meter una imange completa del texto y el dibujo.

ya vemos como se hace

gracias