Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 16-05-2013
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Como bien comentas, puedes hacer uso de la clase TObjectList:

Código Delphi [-]
var
  NoteForm: TFrmVerNota;

begin
  NoteForm := TFrmVerNota.Create(nil);
  // Usas la variable NoteForm para asignar propiedades. Ej:
  NoteForm.Caption := 'Something';
  // FNotes sería un objecto de tipo TObjectList
  FNotes.Add(NoteForm)
end;

// Para referenciar un objeto guardado en el TObjectList:
var
  NoteForm: TFrmVerNota;

begin
  NoteForm := FNotes[i] as TFrmVerNota;
  
  // O de esta forma:
  NoteForm := TFrmVerNota(FNotes[i])
end;

Ahora, si usas Delphi 2010 o superior, podrías usar la clase genérica TObjectList<T>:

Código Delphi [-]
uses
  Generics.Collections;

// Se declara y crea un objecto del tipo TObjectList< TFrmVerNota >:
  FNotes := TObjectList< TFrmVerNota > .Create;

// Se usa este objecto en tu método:
FNotes.Add(TFrmVerNota.Create(nil));

// Al ser un TObjectList que contiene elementos del tipo TFrmVerNota, puedes hacer lo siguiente:
FNotes[FNotes.Count - 1].Caption := 'Something';
FNotes[FNotes.Count - 1].Show

// O usar la forma anterior:
var
  NoteForm: TFrmVerNota;

begin
  NoteForm := TFrmVerNota.Create(nil);
  NoteForm.Caption := 'Something';
  NoteForm.Shot;
  FNotes.Add(NoteForm)
end;

Sobre el liberar el formulario al cerrarlo, tendrías que usar el evento OnClose poniendo el valor de la variable Action en caFree:

Código Delphi [-]
procedure TFrmVerNota.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  // Aquí podrías eliminar el formulario del objeto TObjectList:
  FNotes.Remove(Self)
end;

// Para hacer lo anterior, tendrías que declarar una propiedad en la clase TFrmVerNota en la cual le pases el objeto:
type
  TFrmVerNota = class(TForm)
  private
    FNotes: TObjectList< TFrmVerNota >; // O solo TObjectList
  public
    property FNotes: TObjectList< TFrmVerNota >
      read FNotes
      write FNotes;
  end

// Al crear el formulario haces algo como:
FNotes.Add(TFrmVerNota.Create(nil));
FNotes[FNotes.Count - 1).Notes := FNotes;
// ...
FNotes(FNotes.Count - 1).Show


Espero que con esta pequeña explicación se resuelva tu problema.


Saludos...

Nota: Donde veas < TFrmVerNota > debes ponerlo todo sin espacios, esto lo hice así por que el foro elimina el contenido de <TFrmVerNota> si lo escribo todo junto.
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter

Última edición por maeyanes fecha: 16-05-2013 a las 16:21:42.
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
Modificar propiedad de varios componentes del mismo tipo chartres Varios 3 30-12-2011 20:59:25
Varios detail en un mismo QReport alastor Impresión 2 27-06-2006 18:30:31
Varios details en un mismo group? subzero Impresión 1 26-09-2005 19:08:34
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo morfeo21 Varios 5 17-08-2004 17:39:51
Varios RemoteDataModule en un mismo servidor Toni Providers 2 02-06-2004 20:50:01


La franja horaria es GMT +2. Ahora son las 22:05:07.


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