Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 15-01-2014
paquechu paquechu is offline
Miembro
 
Registrado: oct 2008
Posts: 51
Poder: 18
paquechu Va por buen camino
Hola Elrayo76,
El porqué quiero hacerlo como he comentado es por reducir el código visible en el proyecto, dejando a la vista el código más "importante". Esta tarea de asignar una serie de valores a un array la entiendo como secundaria y si ya la tiene implementada el componente responsable de este comportamiento, pues mejor. A la hora de revisar el resto del código del proyecto todo me sería más fácil (esto es simplemente la forma de trabajar que prefiero, pero vamos, para gustos los colores.... :-) )

Ayer por la noche vi como hacer lo que quería (no del todo, pero de una forma bastante aproximada). Se trata de utilizar la propiedad tag del componente como almacen para la dirección de memoria de la variable externa, y de esta forma que he visto no aplican los problemas que me comentas.

El procedimiento es tal que así:

Código Delphi [-]
Type
   TArrayB = array of bool;
   PTArrayB = ^TArrayB;

En el OnCreate del formulario principal introduzco esta línea de código:

Código Delphi [-]
SetLength(bBooleana,7); // Yo lo hago asi porque me interesa más pero si el array no es dinámico no sería necesaria esta línea
cComponente.Tag:=NativeInt(@bBooleana);   // En la propiedad tag del componente se guarda la dirección de la variable
Esto es todo el código que hay que poner fuera del componente.

En el componente:

Código Delphi [-]
Type
   TArrayB = array of bool;
   PTArrayB = ^TArrayB;
En la sección public

Código Delphi [-]
B: ^TArrayB;

Dentro de la funcion para hacer la asignación de la propiedad checked del CheckListBox a la variable externa primero pregunto por el valor de Tag (que lo inicializo a 0 en la creacion del componente) y si es <>0 entonces hago referencia a B como sigue:

Código Delphi [-]
If Tag<>0 then B:=@PTArrayB(Self.Tag)^;

Y luego en el bucle y con la variable i como índice:

Código Delphi [-]
B^[i] := CheckListBox1.Checked[i];

Así me funciona, lo pongo por si a alguien se le ha ocurrido alguna cosa igual de rara que esta :-)
Un saludo y gracias por vuestra participación
Paco
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Asignar el valor de una variable de php a una variable js que puede no existir jandroruiz PHP 5 04-03-2013 12:23:02
Problema con valor en variable global judit25 Conexión con bases de datos 2 06-07-2006 01:16:59
Asignar el valor de DayOfTheWeek a una variable gluglu Varios 7 23-01-2005 19:47:47
Asignar valor ComboBox a una variable gluglu Varios 6 11-10-2004 17:54:44
como asignar un valor a una variable juan Varios 6 18-06-2003 01:26:19


La franja horaria es GMT +2. Ahora son las 07:37:20.


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
Copyright 1996-2007 Club Delphi