Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 28-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por jasmad Ver Mensaje
ok a ver si me explico en otras palabras lo que necesito es tomar un objeto declarado en un formulario y enviarlo como parametro a un procedimiento y que este lo modifique sin borrar los datos que el objeto ya trae
Ahora, creo entenderte.

Te pongo un ejemplo simple donde se crean TCheckBox, a algunos se les modifica las propiedades Left y Checked al azar y luego se muestra en un ListBox aquellos que tengan la propiedad Checked en True.
Código Delphi [-]
...
implementation

uses Contnrs;

var
  Lst: TObjectList;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Lst:= TObjectList.Create;
end;

procedure AsignarDetalles(CB: TCheckBox; Accion: Integer);
begin
  CB.Checked:= Boolean(Accion);
  if CB.Checked then
    CB.Left:= CB.Left + 20;
end;

procedure TForm1.btnCrearClick(Sender: TObject);
var
  i: Integer;
  cb: TCheckBox;
begin
  for i:= 1 to 10 do
  begin
    cb:= TCheckBox.Create(nil);
    cb.Name   := 'CheckBox' + IntToStr(i);
    cb.Height := 25;
    cb.Left   := 30;
    cb.Top    := 25 + 25 *i;
    cb.Parent:= Self;
    Lst.Add(cb);
  end;
end;

procedure TForm1.btnAsignarClick(Sender: TObject);
var
  i: Integer;
begin
  Randomize;
  for i:= 0 to Lst.Count -1 do
     AsignarDetalles(TCheckBox(Lst.Items[i]), Random(2));
end;

procedure TForm1.btnMostrarClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to Lst.Count - 1 do
    if TCheckBox(Lst.Items[i]).Checked then
      ListBox1.Items.Add(TCheckBox(Lst.Items[i]).Name);
end;
...
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ObjLst.Free;
end;

Si los componentes fueron añadidos en diseño para pasarlos al TObjectList, habría que reemplazar btnCrearClick por:
Código Delphi [-]
procedure TForm1.btnGuardarObjLstClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComponentCount -1 do
    if Components[i] is TCheckBox then
      ObjLst.Add(TCheckBox(Components[i]))
end;

Saludos.
__________________
Daniel Didriksen

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


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
Como Utilizar una variable externa en FastReport? hmrvivas Impresión 4 11-09-2007 16:38:30
Como saber si un procedimiento asigna bien una variable Antuan Varios 1 17-09-2005 14:15:27
Modificar la variable Path en ejecución adlfv API de Windows 1 01-09-2005 22:59:56
modificar Procedimiento Almacenado JulioGO Firebird e Interbase 5 07-04-2005 00:32:24
Insertar un memo como variable externa en freereport fmatias Impresión 0 02-06-2003 15:23:24


La franja horaria es GMT +2. Ahora son las 18:44:01.


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