Ver Mensaje Individual
  #3  
Antiguo 16-01-2007
Jucho69 Jucho69 is offline
Miembro
 
Registrado: ene 2007
Ubicación: Ciudad Habana, Cuba
Posts: 118
Reputación: 20
Jucho69 Va por buen camino
Red face Manejo y utilización de un CheckListBox.

Hola...

Primeramente leí la Guia de estilos y me pareció muy aleccionadora por tanto, trataré de ser más explicito y claro.
Estoy haciendo una aplicación para manejar las Estadisticas del turismo en la entidad Islazul que incorpora un CheckListBox (componente poco nombrado) y que con el cual normalmente se pueden marcar más de un items en tiempo de ejecución, los items son nombres de instalaciones hoteleras que al ser marcados selecciono el informe correspondiente presionando un Button.

El dilema en sí es que al marcar un items luego de marcar otro, se borre el anterior marcado, o sea que siempre sea un solo items marcado, yo logré algo como les muestro a continuación, pero como verán no funciona del todo bien.

Código Delphi [-]
procedure TForm5.CheckListBox1ClickCheck(Sender: TObject);
 var i,a,j,e,f:integer;
begin

  // esta parte es para activar o desactivar el button asociado
  // al Checklist. segun haya o haya items marcados (funciona ok)
 
  for a:=0 to checklistbox1.items.count-1 do begin
  if  CheckListBox1.Checked[a]=false then BitBtn1.Enabled:=false;
  end;
  for j:=0 to checklistbox1.items.count-1 do begin
  if  CheckListBox1.Checked[j] then BitBtn1.Enabled:=true;
  end;
 

 //Esta es la parte que permite que solo haya un items marcado
      e:=-1;
 if ComboBox1.ItemIndex=1 then  begin
   CheckBox1.Checked:=false;
   CheckListBox1.ClearSelection;
   for i:=0 to checklistbox1.items.count-1 do
   if CheckListBox1.Checked[i] then begin
     e:=i;
     CheckListBox1.Checked[e]:=false;
   end;

 end;

En esta parte es donde tengo el problema donde hace bien la operación de mantener un solo items marcado pero solo cuando se selecciona un items en la lista que está más abajo del ya marcado, cuando se selecciona un items que este más arriba del anterior lo hace mal.

Disculpemme lo extenso de la explicación, y me indican si violo alguna norma del Foro, pero les agradeceria una vez más la colaboración de ustedes.

Gracias

Última edición por dec fecha: 16-01-2007 a las 18:21:01.
Responder Con Cita