Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 01-03-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Creo que el cargar los punteros a formularios dentro del ListBox te va a simplificar el asunto, te pongo un ejemplo :
Código Delphi [-]
....
uses Unit2, Unit3, Unit4, Unit5;

procedure TForm1.LoadForms;
var
  i : Integer;
begin
  ListBox1.Clear;
  for i := Screen.FormCount-1 downto 0 do
    if Screen.Forms[i] <> Self then
    begin
      Screen.Forms[i].Parent := Panel1;
      Screen.Forms[i].Show;
    end;
  for i := Screen.FormCount-1 downto 0 do
    if Screen.Forms[i].Showing and ( Screen.Forms[i] <> Self ) then
      ListBox1.AddItem( Screen.Forms[i].Caption, Pointer(Screen.Forms[i]) );
  // ListBox1.Sorted := True;  //(opcional)
  Randomize;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  LoadForms;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
const
  COLORS: array[0..3] of TColor = (clRed, clLime, clYellow, clBlue);
var
  i, ix: Integer;
begin
  ix := ListBox1.ItemIndex;    // selección actual
  if ListBox1.ItemIndex <> -1 then
  begin
    // restaurar color en todos los form.
    for i := 0 to ListBox1.Count-1 do
      TForm(ListBox1.Items.Objects[i]).Color := clBtnFace;
   // pintar form seleccionado con su color
    if ix <> -1 then
      TForm(ListBox1.Items.Objects[ix]).Color := Colors[ix];
  end;
end;

procedure TForm1.btnMergeClick(Sender: TObject);
var
  i, x: Integer;
begin
  for i := 0 to ListBox1.Items.Count-1 do
  begin
    x := Random(ListBox1.Items.Count);
    ListBox1.Items.Move(i, x);
  end;
end;

Salida del ejemplo:


De este modo simpre habrá correspondencia entre el nombre mostrado en el ListBox y el objeto sobre el que accionar, espero te sirva.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-03-2017 a las 20:02:50.
Responder Con Cita
 



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
como almacenar datos de un listbox rufo Varios 1 08-01-2010 10:00:43
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
Almacenar en una variable de session el contenido de un ListBox (Items)! JuanErasmo .NET 2 16-01-2007 21:13:32
Acceder a los forms abiertos de tu aplicacion Neftali [Germán.Estévez] Trucos 0 07-06-2006 09:55:15
Almacenar datos en una listbox pepelu1975 Varios 5 13-02-2004 11:51:21


La franja horaria es GMT +2. Ahora son las 14:17:09.


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