Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si estamos sólo especulando y haciendo cábalas... yo diría que, aunque es posible asignar un evento "OnClick" a los "Checkbox" y, como dices, varios "Checkbox" pueden compartir el mismo método para dicho evento, sin embargo, en mi opinión, no es lo habitual.

Los "Checkbox" representan "opciones", por decirlo así, pero, no tienen porqué utilizarse para otra cosa. ¿Qué quiero decir? Imagina un formulario que contenga 14 Checkbox que permitan especificar otras tantas opciones al usuario.

¿Qué hacemos para guardar las opciones? ¿Utilizamos el evento "OnClick" de un Checkbox? ¿Usamos un método para esto que además compartan el resto de Checkbox? Yo creo que no. Tendríamos un botón en el formulario que dijera "Guardar opciones".

Y el evento "Onclick" del botón sería el que nos interesaría y sobre el que actuaríamos. Es lo que comenté más arriba: ¿para qué guardar en variables el estado de los Checkbox cuando estos ya cuentan con sus propias variables (propiedades)?

Así, al guardar las opciones (siguiendo con el ejemplo), en el evento "Onclick" del botón comprobaríamos el estado de los Checkbox y actuaríamos en consecuencia. Creo que esto es infinitamente mejor que utilizar de cada Checkbox su evento "OnClick".

Dicho de otro modo: de un botón, por ejemplo, espero que haga algo cuando se pulse sobre el mismo. De un Checkbox no espero eso (aunque lo pueda hacer), sino que, espero que "indique" un estado: marcado o no. Que ya revisaré cuando sea preciso.

¿Eh? ¿Qué tal parece esto?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 05-12-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Si tienes razon Dec, de hecho es lo que necesitaba para mi programa pero ya estaba liado con todo que no veia lo facil que era, sin embargo quedaron ideas inconclusas y me di cuenta que hay cosas que no se por eso le di seguimiento a esto y de ahi salio este "programita" que como dije a lo mejor termina siendo didactico -al menos para mi ya lo es-
Responder Con Cita
  #3  
Antiguo 05-12-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Bien, pues al revisar lo que habia hecho me di cuenta que coloque los checkbox dentro de un panel (en realidad dos paneles con 4 checkbox cada uno) y estos a su vez dentro de un GroupBox, ¿Como saber que checkBox esta seleccionado? Facil, tambien esta la respuesta en club Delphi, en este caso añadi un memo para ver los valores.
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var 
  Check: TcheckBox;
  I: Integer;
begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TCheckBox then
    begin
      Check := Components[i] as TCheckBox;
      if Check.Checked then
        Memo1.Lines.Add(Check.Name  + ' = True')
      else
        Memo1.Lines.Add(Check.Name  + ' = False');
    end
end;
Responder Con Cita
  #4  
Antiguo 05-12-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Otra mas el codigo anterior recorre todos los componentes del formulario buscando los checkbox -"desperdiciando tiempo y ciclos del cpu"- si yo se que estan dentro de un panel bueno pues buscalos solo en los paneles que a su vez estan dentro del groupbox. Asi que cambie el codigo por este

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j: integer;
begin
  {/* Adaptacion de este hilo
      http://www.clubdelphi.com/foros/show...light=checkbox
  */}
  for i:= 0 to GroupBox1.ControlCount - 1 do
    if GroupBox1.Controls[i] is TPanel then
      with TPanel (GroupBox1.Controls[i]) do
        for j:= 0 to ControlCount - 1 do
          if Controls[j] is TCheckbox then
            if (Controls[j] as TCheckBox).Checked then
              Memo1.Lines.Add((Controls[j] as TCheckBox).Name  + ' = True')
            else
              Memo1.Lines.Add((Controls[j] as TCheckBox).Name  + ' = False');
end;

y aqui es donde termina la triste historia de un vaquero enamorado... Me falta saber como recorrer cada panel (en forma individual, este codigo recorre todo lo que se llame Panel y este dentro del radio group) y si hay mas de un checkbox seleccionado active el elemento correspondiente del radio group.


p.d. Con esto tambien subio el numero de menasjes que tengo

Última edición por FGarcia fecha: 05-12-2007 a las 05:02:50. Razón: habia equivocado el nombre del groupbox
Responder Con Cita
  #5  
Antiguo 05-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Lo que yo sigo sin entender es como involucrar las variables independientes del CheckBox.
Si bien es cierto la propiedad tag puede identificar cada uno, el programa hace una simple definición de un array (boolean), el que identifica cada CheckBox.
Me parece mas lógico crear o una función o mejor aun un procedimiento que identifique cada variable por separado, supongo que cuando se habla de variables se trata de almacenar algún valor.
Tampoco entiendo el uso que se requiere de las variables, puesto que una sola puede almacenar el valor requerido.
En fin, tal vez salga algo interesante de aquí, estoy en las mismas que Dec, pero yo me quedo corto en la aplicación que se requiere, tal vez por el uso que no entiendo se le quiere dar a las variables.
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
codigo comun entre distintos formularios federiconqn21 Varios 5 27-11-2007 16:22:11
exportacion de variables entre formas distintas zidfrid C++ Builder 0 02-10-2007 03:33:47
Algo un poco fuera de lo comun JerS Impresión 2 25-10-2005 18:05:28
Duda acerca del DBLookupComboBox y del Combo comun arieliten Varios 1 16-03-2005 21:52:18
¿Que tienen en comun las mujeres y los servidores web? obiwuan Humor 0 04-05-2003 12:56:38


La franja horaria es GMT +2. Ahora son las 11:19:54.


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