martedì 22 luglio 2014

Delphi - creare un Form FMX attraverso il nome.

E' possibile creare un form FMX conoscendo il nome della classe.
Supponiamo che il form da creare si chiami Form8 e la classe sia TForm8.

Nell'evento OnCreate del form principale, per ogni form da creare/utilizzare, scrivere la seguente istruzione

  RegisterFMXClasses([TForm8]);
Io ho creato una function per la creazione del form che mi restituisce il form creata, come la seguente:

function f_createformfromname(const p_formname : string): TCustomForm;
var
  w_ObjClass: TFmxObjectClass;
  w_fc, w_result : TCustomForm;
begin

  w_result := nil;
  w_ObjClass := TFmxObjectClass(GetClass(p_formname));
  if w_ObjClass <> nil then
  begin
    w_fc := w_ObjClass.Create(Self) as TCustomForm;
    if Assigned(w_fc) then
    begin
      w_result := w_fc;
      w_fc.Show;
    end;
  end;

  result := w_result;
end; (* CreateFormFromName *)

Per creare il form, basta quanto segue:

var
  w_childform: TCustomForm;
.......
begin

 
  w_childform := f_createformfromname('TForm1');

 
  .................

A presto.

Nessun commento:

Posta un commento

Cerca nel blog