Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como crear un formulario en tiempo de ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=70746)

rufo 09-11-2010 01:10:43

Como crear un formulario en tiempo de ejecucion
 
Hola amigos buenas tardes, resulta que tengo una gran duda y quiero ver si me puede auxiliar con lo siguiente, resulta que estoy haciendo un formulario en el cual me muestra un listado de primarias que tengo almacenadas y ya con sus respectivos formularios para agregarle datos, bueno resulta que me pidieron que agregara un boton que agrege un nuevo formulario cuando una primaria es neuva y en tiempo de ejecucion me haga esa tarea de crear un nuevo formulario y que le vaya asignando los campos que segun vaya a necesitar, bueno es ahi el me hoyo del asunto que nose por donde empezar para creae un formularion y crear los labels y edit en tiempo de ejecucion, espero que me ayuden y de antemano gracias.

ecfisa 09-11-2010 04:53:24

Hola rufo.

Si ya creaste el formulario en diseño, haciendo: File->New-Form, y sacaste el mismo de Auto-create forms; para crearlo el código podría ser:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  with TForm2.Create(Self) do
  try
   ShowModal;
  finally
   Free
  end;
end;
Supongo que de eso se trata.

Ahora si te piden crear los componentes totalmente en tiempo de ejecución, sería algo como esto:
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  F: TForm;
begin
  F:= TForm.Create(Self);
  with F do
  begin
    Caption:= 'Creado en ejecución';
    Height:= 400;
    Width:= 600;
    with TEdit.Create(Self) do
    begin
      Left:= 8;
      Top:= 8;
      Height:= 25;
      Width:= 200;
      Parent:= F;
    end;
    with TMemo.Create(Self) do
    begin
      Left:= 300;
      Top := 8;
      Height:= 200;
      width:= 100;
      Parent:= F;
    end;
    ShowModal;
  end;
end;
Esto último es sólo un ejemplo. Lógicamente con las necesarias comprobaciones, asignaciónes de eventos,
liberación de recursos, etc., la cosa se complica bastante más...


Saludos. :)


La franja horaria es GMT +2. Ahora son las 18:19:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi