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 13-04-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por GonzaloDias Ver Mensaje
Hola amigos del foro,
Bueno mi problema es que quiero validar varios checkbox dentro de un FOR, mi duda es si es posible que en vez de que se lea checkbox1.checked se pudiera leer como checkbox[i].checked, por ejemplo:
Código Delphi [-]
for i:=1 to 10 do
begin

  total:=a*b;
    if total >10 then
   checkbox[i].checked = false;
end;

y asi ir validando los checkbox, les comento que tengo 10 checkbox pero antes al iniciar el form donde se encuentran estos checkbox lo squiero validar habilitandolos y deshabilitandolos y para no hacer varios if, se me ocurrio realizar un FOR es decir un for q valla de 1 a 10, el tema es ver si se puede de esta manera o cual sugieren? se que ahi varias maneras pero esta no se si es posible.
Muchas Gracias amigos.
Bueno, es posible hacer algo "parecido" a eso. Yo en vez de proponerte las alternativas que te han dado, quisiera darle un pequeño giro de cuerda. Existe un control que justamente simplifica mucho el trabajo sobre un "grupo" o lista de CheckBoxs... el componente se llama TCheckListBox o algo así, no recuerdo bien y mi máquina con Delphi está dañada.
Este componente es simplemente un TListbox con checkboxs dentro, con lo que basta con recorrer la propiedad vectorial y los items para acceder a cada checkbox.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 13-04-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola:

y si cambias
Código Delphi [-]
for i := 8 to 20 do
a
Código Delphi [-]
for I := 0 to ControlCount -1 do
como expresa Roman?

Saludos.-
Responder Con Cita
  #3  
Antiguo 13-04-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Delphius Ver Mensaje
Existe un control que justamente simplifica mucho el trabajo sobre un "grupo" o lista de CheckBoxs... el componente se llama TCheckListBox [...]
Este componente es simplemente un TListbox con checkboxs dentro, con lo que basta con recorrer la propiedad vectorial y los items para acceder a cada checkbox.
Buena opción, pero con la limitante de que no puedes acomodar tus checkbox a tu gusto. Sin embargo, pensando en esta opción, se me ocurre que puede crearse un componente sencillo derivado de TGroupBox:

Código Delphi [-]
unit CheckGroup;

interface

uses Classes, StdCtrls, Contnrs;

type
  TCheckGroup = class(TGroupBox)
  private
    FItems: TObjectList;

    function GetItem(Index: Integer): TCheckBox;
    function GetItemCount: Integer;

  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

    property Items[Index: Integer]: TCheckBox read GetItem;
    property ItemCount: Integer read GetItemCount;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('ClubDelphi', [TCheckGroup]);
end;

{ TCheckGroup }

constructor TCheckGroup.Create(AOwner: TComponent);
begin
  inherited;
  FItems := TObjectList.Create(false);
end;

destructor TCheckGroup.Destroy;
begin
  FItems.Free;
  inherited;
end;

function TCheckGroup.GetItem(Index: Integer): TCheckBox;
begin
  Result := TCheckBox(FItems[Index]);
end;

function TCheckGroup.GetItemCount: Integer;
begin
  Result := FItems.Count;
end;

procedure TCheckGroup.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited;

  case Operation of
    opInsert:
      if AComponent is TCheckBox then
        FItems.Add(AComponent);

    opRemove:
      if AComponent is TCheckBox then
        FItems.Remove(AComponent);
  end;
end;

end.

Con este componente tendrías en Items el arreglo de CheckBox real. En un TCheckListBox lo que tienes son propiedades vectoriales para cada propiedad de un CheckBox: ItemEnabled, Checked, State. La ventaja sería, además de colocar los controles como gustes, que puedes insertar otro tipo de controles y la propiedad vectorial reflejaría sólo los checkbox.

// Saludos
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
checkbox Lupita Varios 6 07-04-2008 15:12:53
Concatenar CheckBox novice Varios 20 27-09-2006 14:47:11
Almacenar CheckBox? Leogiro OOP 4 20-09-2004 21:46:05
RxDBGrid y los CheckBox Nuria OOP 10 01-04-2004 13:06:03
checkbox superhopi OOP 3 12-05-2003 10:32:46


La franja horaria es GMT +2. Ahora son las 21:01:07.


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