Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2003
nemo nemo is offline
Registrado
 
Registrado: jul 2003
Posts: 6
Poder: 0
nemo Va por buen camino
Question Crear un Form desde un componente

Amigos: disculpen por preguntar algo tan básico, pero si alguien puede ayudarme le agradecería mucho.
Estoy haciendo un componente que guarda la estructura de propiedades de una persona TPersona; no es un componente visual y necesito implementarle un método que cuando yo lo corra como Persona.GetData;, el componente despliegue un form creado dinámicamente sobre la base de las propiedades del mismo componente, permitiendome enviar los datos a un servidor SQL, o grabarlos en disco como XML.

Implementé el siguiente método:

function TPersona.GetData: boolean;
var
Ventana: TForm;
begin
Ventana:=TForm.Create(Self);
Ventana.ShowModal;
Result:=True;
end;

y logro que el componente presente una ventana en blanco. El problema surge cuando hago esta declaración:

type
TVentana = class(TForm)
Edit1: TEdit;
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;

y pretendo que el componente la muestre con el siguiente método:

function TPersona.GetData: boolean;
var
Ventana: TVentana;
begin
Ventana:=TVentana.Create(Self);
Ventana.ShowModal;
Result:=True;
end;


Pero se produce una excepción que me dice que nos posible encontrar el archivo de recursos (probablemente el .DFM).

Cómo puedo solucionar esto?

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 16-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
El DFM de la unit que contiene a TVentana, debe estar en el Search Path del paquete donde estas compilando tu componente.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 16-07-2003
nemo nemo is offline
Registrado
 
Registrado: jul 2003
Posts: 6
Poder: 0
nemo Va por buen camino
Gracias por tu ayuda; tu consejo funcionó a la perfección, no obstante encontré una solución alternativa:

function TPersona.GetData: boolean;
var
Ventana: TForm;
edt_Name: TEdit;
btn_OK: TButton;
begin
Ventana:=TForm.Create(Self);
edt_Name:=TEdit.Create(nil);
edt_Name.Parent:=Ventana;
btn_OK:=TButton.Create(nil);

with btn_OK do
begin
Left := 56;
Top := 16;
Width := 75;
Height := 25;
Caption := 'Pulse Aqui';
TabOrder := 0;
Parent :=Ventana;
end;

Ventana.ShowModal;
Execute:=True;
end;

Otra vez: Muchas Gracias!
Responder Con Cita
Respuesta


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


La franja horaria es GMT +2. Ahora son las 20:34:44.


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