Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2021
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Lightbulb Llamar Forma por Nombre Migrar de VCL a FMX

buenos dias Foristas,

He utilidado el siguiente procedure para llamar una forma por su nombre, al tratar de migrar el codigo genera error de compilacion , alguna persona conoce el metodo de hacerlo usando delphi firemonkey y ejecutar en android ? gracias por su aporte

Código Delphi [-]
procedure CreateFormFromName( const FormName : string);
var 
  fc : TFormClass; 
  f  : TForm;
begin 
  fc := TFormClass(FindClass(FormName)); 
  f  := fc.Create(Application); f.Show;
end;
Responder Con Cita
  #2  
Antiguo 09-12-2021
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado Colega, espero esto sea lo que requiere. Este le serviria para abrir cualquier form utilizando su clase...

Código Delphi [-]
unit Unit1;
interface
uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls;

type
 TFormClass = class of TForm;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure CreateFormFromName(const FormName: string);
    procedure ShowForm(FormClass: TFormClass);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses Unit2; {Contiene el TForm2}

{$R *.fmx}

procedure TForm1.ShowForm(FormClass: TFormClass);
begin
     With FormClass.Create(NIL) do
     Try
          Showmodal;
     Finally
          Free;
     End;
end;

procedure TForm1.CreateFormFromName( const FormName : string);
var
  fc : TFormClass;
begin
     try
      //Busca la clase, de existir procede a mostrar el form
       if FindClass(FormName)=nil then
          exit;

       fc:=TFormClass(FindClass(FormName));

       ShowForm(Fc);
     except
           ShowMessage(Format('Clase %s no encontrada',[FormName]));
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
       {Opción 1: Busca el form por su nombre de clase}
       CreateFormFromName('TForm2');

      {Opción 2:  Esto muestra el TForm2 sin realizar la busqueda de la clase}
       //ShowForm(TForm2);
end;

initialization
   {Las clases deben estar registradas, de lo contrario no las encontrará}
   RegisterClass(TForm2);
end.
Responder Con Cita
Respuesta



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
Llamar evento sabiendo el nombre cbrrr OOP 5 20-06-2012 10:58:46
Como se puede migrar de forma optima. ronimaxh Conexión con bases de datos 4 01-12-2009 22:21:54
Llamar una forma desde otra Punzo OOP 1 02-10-2007 19:48:43
Cual es la forma correcta de llamar y ejecutar un ProcAlmacenado en IB6 y Delphi 7??? Saltamontes Firebird e Interbase 5 11-07-2007 17:05:19
La Forma Adecuada de Migrar Datos ? Renees Conexión con bases de datos 10 23-08-2006 19:44:38


La franja horaria es GMT +2. Ahora son las 17:03:12.


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