![]() |
Crear Tipos de Datos Propios?
Hola que tal, pues lo que quisiera saber (si se puede) es como definir tipos de datos proios... bueno, por ejemplo hace tiempo compre un componente (un Grid) que tiene un metodo:
AddButton(ACol, ARow, bw, bh: Integer; Caption: string; hal: TCellHalign; val: TCellValign); En este metodo los primero parametros ACol, ARow, bw, bh: Integer; Caption: string; son de tipo predefinidos en Delphi, pero los siguientes son de la Clase del Componente (TCellHalign; val: TCellValign) Al invocar al metodo lo tengo que hacer de la sig, manera: grid1.AddButton(0,0,10,10,'Boton',haCenter,vaCenter) En los dos ultimos parametros le tengo mandar forzosamente los tipos que me pide (haCenter,haLeft,vaCenter,etc) Pues bueno yo quisiera hacer algo parecido en mi programa: Tengo una Clase x, con un metodo llamado MueveRenglon MueveRenglon(posicion:Boolean);pero no quiero que al invocar al metodo de la clase desde el un Form le pasen directamente el valor boolean p.e. Form.objetoDeClaseX.MueveRenglon(True) me gustaria definir un tipo de dato pripio (como el caso que les puse arriba) y que al invocar mi metodo de clase desde un form se haga de la sig. manera: Form.objetoDeClaseX.MueveRenglon(cArriba) y que mi metodo quedara definido MueveRenglon(posicion:TPosicion);Como se declaran y usan lo tipos de datos propios (cArriba y cAbajo). De antemano muchas gracias. Buen Dia. |
Lo puedes hacer con los llamados tipos enumerados:
Te recomiendo que leas la ayuda de delphi, la parte de Delphi Language guide|Data types, variables and constants. // Saludos |
Hola jbautista, como te dice el amigo Román puedes definirte un tipo enumerado, en el cual colocas todos los posibles valores que puede tomar tu tipo (identificadores) y esos identificadores puedes utilizar en tu codigo como si fueran constantes.
Saluditos |
Gracias gracias a los dos por ayudarme, ya habia leido algo asi por ahi pero no lo entendi ya con el ejemplo todo bien.
Gracias Roman y Caro por su tiempo. |
como puedo mostrar en pantalla el tipo de dato que acabo de crear en un showmessage() por que dice que string y el nuevo dato no son compatibles , tengo que crear una operacion para convertir ese tipo de dato a string?
|
Hola, es que, por ejemplo, en:
cArriba=0, cAbajo=1, cIzquierda=2, cDerecha=3 No son strings. |
Hola.
Como te explica claramente Casimiro en el ejemplo, no son strings que se puedan mostrar directamente, son de tipo ordinal. Cada nombre definido (cArriba, cAbajo, cIzquierda, cDerecha) tiene una órdinalidad que comienza desde cero y termina en el enésimo término. Para mostrar el valor de un tipo ordinal debés hacer:
Para realizar la operación inversa, es decir, dado el órden obtener el nombre, se puede usar la función GetEnumName:
Un saludo. |
ohhhhhhh muchas gracias , que utiles son estas funciones. supongo que hace falta bucear un poco por las funciones y procedimientos de delphi
hasta luego y gracias |
La franja horaria es GMT +2. Ahora son las 08:53:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi