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-03-2008
angelp4492 angelp4492 is offline
Miembro
 
Registrado: dic 2007
Posts: 99
Poder: 0
angelp4492 cantidad desconocida en este momento
Duda con Checkbox

Hola como estan ,
Pues veran tengo una duda, en la base de datos mysql tengo guadado unos valores en hexadecimal de 8 bit o desde 00- a FF, pues bien mi duda es como podria hacer lo siguiente.
1 leer valor de la base de datos (esto esta echo)
2 asignarle el valor leido a los ckeckbox me explico:
supongamos que hemos leido el valor &H02
esto en binario es 0000 0010
3 pues bien ahora tengo 8 checkbox y quiero pasar ese valo binario a ellos
marcando el checkbox si su valor es uno.

0------0------- 0----------0----------0--------- 0 ------1------ 0
ck8=0 ck7=0 ck6=0 ck5=0 ck4=0 ck3=0 ck2=1 ck=0

ck=0 ----ckeckbox.ckecked=false
ck=1-----checkbox.ckeked=true.

alguna idea gracias.
Responder Con Cita
  #2  
Antiguo 20-03-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Pues entiendo que tu mismo estás dando la solución.

La lógica la tendrás que programar tu, ya que evidentemente no hay ninguna función que te haga directamente lo que pides.

Tendrás que convertir ese valor leido a binario, y analizar las posiciones, y en consonancia marcar o no los checkbox's correspondientes.

__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 20-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 20
keyboy Va por buen camino
Una forma sencilla de pasar los valores podría ser colocando todos los CheckBox en un panel, CheckBoxes, que no contenga nada más. La rutina sería así:

Código Delphi [-]
var
  I: Integer;

begin
  for I := 0 to CheckBoxes.ControlCount - 1 do
    (CheckBoxes.Controls[i] as TCheckBox).Checked := (Flags and (1 shl I) <> 0);
end;

donde Flags sería el valor leído de la base de datos.

Bye
Responder Con Cita
  #4  
Antiguo 20-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Hola, disculpa pero debo remitirte a la Guia de Estilo, acabo de responder otro hilo tuyo con la misma duda y aqui abres otro
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 20-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tienes razón eduarcol. No dupliques hilos angelp4492, que ya ves que pasan estas cosas, por ejemplo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 20-03-2008
angelp4492 angelp4492 is offline
Miembro
 
Registrado: dic 2007
Posts: 99
Poder: 0
angelp4492 cantidad desconocida en este momento
Perdon no me di cuenta el otro hilo se quedo a medias y no se como se repito mil disculpas
Responder Con Cita
  #7  
Antiguo 20-03-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola angelp4492, yo utilizaria un CheckListBox para poder recorrer mas facilmente.

Función que convierte de hexadecimal a binario

Código Delphi [-]
function TForm1.HextoBinario(Hexa:string):string;
const
  Binario: array [0..15] of string =  ('0000','0001','0010','0011','0100','0101','0110','0111',
           '1000','1001','1010','1011','1100','1101','1110','1111');
var
 i : integer;
 CadBinario : String;
begin
 CadBinario := '';

 for i:=1 to Length(Hexa) do
  CadBinario := CadBinario + Binario[StrToInt('$'+Hexa[i])];

 Result:=CadBinario;
end;

asignar el valor leido a los checkbox del CheckListBox

Código Delphi [-]
var
 i : Integer;
 binario : String;
begin

 binario := HextoBinario(ValorLeido);

 for i:=0 to CheckListBox1.Count-1 do
   if binario[i+1]='0' then
     CheckListBox1.Checked[i] := False
   else
     CheckListBox1.Checked[i] := True;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Duda con Checkbox angelp4492 Varios 2 20-03-2008 14:05:53
Checkbox que no cheka Kenobi Varios 6 23-01-2008 08:59:18
ayuda con el checkbox Debian Conexión con bases de datos 4 11-04-2005 18:59:04
Almacenar CheckBox? Leogiro OOP 4 20-09-2004 21:46:05
checkbox superhopi OOP 3 12-05-2003 10:32:46


La franja horaria es GMT +2. Ahora son las 04:07:06.


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