![]() |
TAlign
Hola compañer@s,
tengo un pequeño problema, veréis, necesito hacer una conversión de un string a un tipo TAlign, dado que en ese string tengo por ejemplo 'alClient' pero al asignarlo a la propiedad me dice que los tipos no coinciden. No consigo dar con la forma de hacerlo... Alguien se ha encontrado con esto antes? Gracias a todos! |
Cita:
Saludos. |
Claro,
a ver, el tema esta que en una cadena tengo el align que voy a darle a un componente, por ejemplo, un GroupBox que quiero que su propiedad Align sea 'alClient'. Bien, ese string no es de tipo TAlign, necesito convertir mi string al tipo TAlign. Eso es todo, pero no consigo hacerlo :( Gracias de nuevo! |
Y porque no asignas directamente el valor a una variable Talign, y despues esa variable asignala al componente. P.Ej:
Porque hacer una conversion tipo StrToTalign :p creo que sería complicado. Digo.. este codigo que puse yo es totalmente innecesario pero quiero decir que puedes asignarle un valor a la variable tipo talign en cualquier lugar de tu codigo en vez de asignarselo a una string y despues tratar de convertir. |
El problema es que leo de un xml y me devuelve un string, de ahi que tenga que hacer la conversión, sino ya se lo metería directamente el valor.
Gracias de todos modos ;) |
Cita:
Saludos. |
Una forma facil y sin meternos en complicaciones es haciendo esto:
Salud OS |
Los valores de TAlign no son cadenas por eso no los pueden asignar como lo estas haciendo. alClient, alTop, alRight...etc. son todas constantes de tipo númerico.
|
Numérico, pero de que tipo? Como convierto el string a ese tipo de numérico? La ayuda de Delphi no me da ningún otro tipo que no sea TAlign :confused:
|
Nada, ya esta... jejeje, dejo la solución por aqui por si a alguien le interesa :)
Solo hay que pasar el string a entero y este a un tipo Variant ole ole |
Esto capaz que te servia.
El tipo TAlign se define así: TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom); Osea que los valores son numeros del 0 al 6 Si hacer objeto.Align := TAlign(1); lo pone alTop Saludos |
Cita:
Saludos. |
Hola de nuevo!
Siguiendo con este hilo, y con el echo de que creo componentes en tiempo de ejecución... a ver, intento recuperar un componente creado en tiempo de ejecución para repintarlo, pero no consigo encontrarlo, ni por el nombre ni recorriendo uno a uno los elementos del form... alguna idea más? Gracias de nuevo! |
Es posible recuperarlo por el nombre. Por ejemplo:
Hasta luego. ;) |
Pues no me lo encuentra,
es más, recorro todos los componentes del form con un bucle for, y debugando veo que solo me recorre los que ya existian en el form no los que he ido creando en tiempo de ejecución... Alguna idea de porque? Gracias de nuevo! |
Seguramente no estas buscando en el owner de los objetos que has creado. Podrías mostrar la sentencia con la que creas los componentes en corrida?
Saludos. |
Tenías toda la razón, no buscaba en el Parent. Gracias por la indicación!!!
Saludos! |
Si recorres todos los componentes de form y no lo encuentra quiere decir que el form no es su parent. Por ahi pueden venir tus problemas
Hubo hace pocos días un hilo hablando de este mismo tema. Buscalo que te puede ser muy interesante. Saludos Edito: Vaya, se me adelantaron |
1 Archivos Adjunto(s)
Cita:
GetEnumValue y GetEnumName. Para utilizarlas puedes añadir TypInfo al USES. Creo que lo más sencillo es un ejemplo. |
| La franja horaria es GMT +2. Ahora son las 18:32:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi