Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como CheckListBox pero con Radio .. existe? (https://www.clubdelphi.com/foros/showthread.php?t=65275)

ingel 02-12-2009 14:24:14

como CheckListBox pero con Radio .. existe?
 
HOla .. necesito un componnente como el CheckListBox pero con radios
porque tengo que seleccionar SOLO una opcon ..
EL TradioGroup no me sirve porque son mas de 100 opciones y cuando
las cargo no me muestra nada ... no tiene scrol...
sds a todos
gracias

rgstuamigo 02-12-2009 14:31:38

Cita:

Empezado por ingel (Mensaje 347964)
HOla .. necesito un componnente como el CheckListBox pero con radios
porque tengo que seleccionar SOLO una opcon ..
EL TradioGroup no me sirve porque son mas de 100 opciones y cuando
las cargo no me muestra nada ... no tiene scrol...
sds a todos
gracias

Es raro que no te muestre nada el TRadioGroup :rolleyes:.Talves lo estas mostrando en una sola columna y los item estan bien pegaditos
Ahora para el caso de tener muchos item te recomiendo aumentar la propiedad Columns a una cantidad que tú lo veas convenientes;).
Saludos...:)

Caro 02-12-2009 14:33:10

Hola Ingel, si no te sirve el RadioGroup entonces podrías utilizar un TScrollBox y dentro colocas tus 100 RadioButtons.

Saluditos

ingel 02-12-2009 14:41:40

gracias .. peeero
 
si tengo una sola columna en el Tradio pero igualmente no me serviria agrandar el numero de columnas porque no entraria visualmente ...
La cantidad de items es VARIABLE segun una seleccion ... y pueden ser de 1 a 1000 .... con lo cual creo que tampoco me serviria la opcion de Caro...
salvo que pudiera agregarlos en tiempo de ejecucion ( lo cual ne se hacer :)

gracias por su pronta respuesta !
sds

Caro 02-12-2009 15:13:55

Cita:

Empezado por ingel (Mensaje 347969)
La cantidad de items es VARIABLE segun una seleccion ... y pueden ser de 1 a 1000 .... con lo cual creo que tampoco me serviria la opcion de Caro...
salvo que pudiera agregarlos en tiempo de ejecucion ( lo cual ne se hacer :)

Hola de nuevo, para agregarlos en tiempo de ejecución tendrías que hacer algo como esto:

El Parent de tus RadioButton debe ser el ScrollBox.

Código Delphi [-]
 Top : Integer;
 RadioButton : TRadioButton;
begin
 Top := 10;
 for i:=0 to 100 do
  begin
   RadioButton := TRadioButton.Create(Self);
   RadioButton.Parent := ScrollBox1;
   RadioButton.Top := Top;
   RadioButton.Left := 15;
   RadioButton.Caption := 'RadioButton'+IntToStr(i);
   Inc(Top, 15)
  end;

Mil opciones me parecen muchas :rolleyes:.

Saluditos

Neftali [Germán.Estévez] 02-12-2009 16:19:11

Cita:

Empezado por ingel (Mensaje 347964)
necesito un componnente como el CheckListBox pero con radios porque tengo que seleccionar SOLO una opcon ...

Si es por sólo seleccionar una opción basta con que en el evento OnClickCheck del CheckListBox pongas este código:

Código Delphi [-]
NOTA: La variable _Last la defines en la parte PRIVADA del form


procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
begin
  if (_Last <> CheckListBox1.ItemIndex) then begin
    CheckListBox1.Checked[_Last] := False;
    _Last := CheckListBox1.ItemIndex;
  end;
end;


Cita:

Empezado por ingel (Mensaje 347964)
EL TradioGroup no me sirve porque son mas de 100 opciones y cuando las cargo no me muestra nada ... no tiene scrol...

Aquí es que debes estar haciendo algo mal, porque yo cargo 100 elementos en un TCheckListBox y me aparece una barra de Scroll vertical. :confused::confused::confused:
¿Cómo cargas esos elementos?


Caro 02-12-2009 16:26:40

Cita:

Empezado por Neftali (Mensaje 347980)
Aquí es que debes estar haciendo algo mal, porque yo cargo 100 elementos en un TCheckListBox y me aparece una barra de Scroll vertical. :confused::confused::confused:

Hola Neftali, creo que no se refiere al CheckListBox sino al Radiogroup en el cual al cargar varios items no aparece la barra Scroll.

Saluditos

ingel 02-12-2009 16:42:40

Gracias Neftali !!
 
anduvo perfecto !!

Sds

Neftali [Germán.Estévez] 02-12-2009 17:04:02

Cita:

Empezado por Caro (Mensaje 347983)
...creo que no se refiere al CheckListBox sino al Radiogroup en el cual al cargar varios items no aparece la barra Scroll.

Cierto Caro; He vuelto a leer la frase y la primera vez no la entendí bien. :o

cloayza 02-12-2009 18:07:45

Prueba este codigo...

Pagina del Autor: http://delphi.about.com/od/adptips20...diolistbox.htm

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
   ListBox1.Style := lbOwnerDrawFixed;
   ListBox1.MultiSelect:=False; //Al desactivar la multiseleccion funciona como un TRadioButton, seleccionando un item a la vez.
   ListBox1.ItemHeight := 20;
   ListBox1.OnDrawItem := ListBox1DrawItem;
end;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
const
   IsSelected : array[Boolean] of Integer = (DFCS_BUTTONRADIO, DFCS_BUTTONRADIO or DFCS_CHECKED) ;
var
   optionButtonRect: TRect;
   listBox : TListBox;
begin
   listBox := Control as TListBox;
   with listBox.Canvas do
   begin
     FillRect(rect) ;

     optionButtonRect.Left := rect.Left + 1;
     optionButtonRect.Right := Rect.Left + 13;
     optionButtonRect.Bottom := Rect.Bottom;
     optionButtonRect.Top := Rect.Top;

     DrawFrameControl(Handle, optionButtonRect, DFC_BUTTON, IsSelected[odSelected in State]) ;

     TextOut(15, rect.Top + 3, listBox.Items[Index]) ;
   end;
end;
Eso no mas...


La franja horaria es GMT +2. Ahora son las 18:23:54.

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