Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-04-2008
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Unhappy ¿¿ como usar el tag con varios checkbox ??



Hola amigos del club , mi pregunta es la siguiente , ¿ se puede conseguir manejar una cantidad x de checkbox al mismo tiempo ?? tal vez mi pregunta no se entienda correctamente pero tengo un ejemplo de lo que quiero hacer , miren esto

var
salida : integer ( me gustaria que sea de tipo hexadecimal para poder manejar el tag de los checbox que en el ejemplo les voy a mostrar , pero no se como declararla)

Begin

If checkbox1.Checked Then

Salida := 1;

If checkbox1.Checked and checkbox2.Checked and checkbox3.Checked and checkbox4.Checked and checkbox5.Checked and checkbox6.Checked and checkbox7.Checked and checkbox8.Checked Then

Salida := 255;

If (checkbox1.Checked or checkbox2.Checked or checkbox3.Checked or checkbox4.Checked or checkbox5.Checked or checkbox6.Checked or checkbox7.Checked or checkbox8.Checked) = False Then

Salida := 0

End;

Pero me gustaria no escribir tanto codigo e intente escribir esto

Salida := (checkbox1.Tag or checkbox2.Tag or checkbox3.Tag or checkbox4.Tag or checkbox5.Tag or checkbox6.Tag or checkbox7.Tag or checkbox8.Tag)

Obviamente no funciono !! como puedo modificar el codigo anterior y escribir la menos cantidad de codigo posible ??

Este club ya me a ayudado antes haci que si no obtengo ninguna respuesta lo mismo les doy las gracias !!
Responder Con Cita
  #2  
Antiguo 20-04-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Como los número hexadecimales van del 0 a la F es decir del 0 al 15, no entiendo muy bien el planteamiento podrías explicar un poco más lo que quieres hacer?

Porque 8 = 255 sería un número binario compuesto de 8 unos.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 20-04-2008
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
perdon marcoszorrilla ! es que quiero sacar los datos por el puerto paralelo y en un comienzo la variable salida fue declarada como integer , con lo cual pude controlar el puerto con el codigo que esta en la condicion if , ahora quiero optimizar el codigo y quise hacer algo haci

salida := 0;

salida := checkbox1.tag or checkbox2.tag or checkbox3.tag ...

y quice simular esto
salida := 1 or 1 or 0

suponiendo que el primer tag fuera 1 , y el segundo tag 10 , y el tercero 11 ,
entonces or deveria sumar el tag de los checkbox o no , si estos estan en checked ?

gracias amigo por tu interes !!
Responder Con Cita
  #4  
Antiguo 20-04-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aunque veo más o menos lo que quieres no comprendo la mecánica que quieres seguir, te pongo un ejemplo espero que lo puedas adaptar a tu caso, en este ejemplo he colocado 3 Casillas de verificación y le he puesto en su valor Tag a la 1, 0 a la segunda 10 y a la tercera 20.

Según las que marque me suma 0 10 ó 30.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
s:Integer;
begin
s:=0;
 for i:=0 to form1.ComponentCount -1 do
 begin
     If (Components[i] Is TCheckBox) Then
      If (Components[i] As TCheckBox).Checked = True Then
      s:=s+(Components[i] As TCheckBox).Tag;
 end;

 ShowMessage(intToStr(s));
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 20-04-2008
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Amigo la mecanica es la siguiente :

tengo un procedure con un timer dentro del procedure tengo varios checkbox divididos de a ocho
y los manejo de esta forma


x1 x2 x3 x4 x5 x6 x7 x8
-------------------------------------------
x9 x10 x11 x12 x13 x14 x15 x16
-------------------------------------------

suponiendo que cada x es un checkbox , con cada grupo de ocho checkbox manejo la salida del puerto y por cada envio del timer me devulve un numero , suponamos que me fijo en el primer grupo de checkbox que va desde el checkbox1 hasta el checkbox8 , entonces la variable salida se carga con un valor que va desde 0 hasta 255 deacuerdo a cuantos checkbox estan en checked , y haci con los check que van desde el 9 hasta el 16 , es un programita muy tonto pero quiero escrivir poco codigo , entonces voy a provar el codigo que me enviaste , gracias !! si no puedo reutilizar el codigo te vulvo a escribir amigo !
Responder Con Cita
  #6  
Antiguo 20-04-2008
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Gracias amigo me resolviste la vida jajaja muchas gracias ! hace muchos meses que pienso como hacer esto y no podia dar con la respuesta , incluso vi algo de concatenacion que esta en otro hilo en este foro y creo que supiste resolver con lo minimo de informacion algo que me costo explicarte , incluso nunca me contestaste mal , como he visto en algunos hilos , y permiteme desirte que ¡¡ tu eres el numero uno !! , ah casi me olvido , en los tag necesite poner el numero 1 en el primer check 2 en el segundo 4 en el tercero 8 en el cuarto y haci hasta llegar al numero que me interesa.
Responder Con Cita
  #7  
Antiguo 20-04-2008
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Gracias amigo me resolviste la vida jajaja muchas gracias ! hace muchos meses que pienso como hacer esto y no podia dar con la respuesta , incluso vi algo de concatenacion que esta en otro hilo en este foro y creo que supiste resolver con lo minimo de informacion algo que me costo explicarte , incluso nunca me contestaste mal , como he visto en algunos hilos , y permiteme desirte que ¡¡ tu eres el numero uno !! , ah casi me olvido , en los tag necesite poner el numero 1 en el primer check 2 en el segundo 4 en el tercero 8 en el cuarto y haci hasta llegar al numero que me interesa.

solo dos preguntas mas como funciona tu codigo ? y como ago para escribir el codigo de delphi y que se vea higual en este hilo ?
Responder Con Cita
Respuesta



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
usar un procedure en varios formularios adonai Varios 21 30-03-2007 17:42:34
marcar varios checkbox halizia HTML, Javascript y otros 3 18-01-2007 14:48:44
Como se inserta el valor de un checkbox? Ivan_25 C++ Builder 4 04-11-2005 11:02:51
Campo calculado como checkbox de DBGrid javiermorales OOP 1 10-12-2004 11:50:24
Como relacionar un checkbox a un campo de tipo smallint yeseniahdz Varios 2 27-05-2004 01:59:52


La franja horaria es GMT +2. Ahora son las 18:52:41.


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