Ver Mensaje Individual
  #1  
Antiguo 24-04-2018
vicens22 vicens22 is offline
Miembro
NULL
 
Registrado: dic 2010
Posts: 61
Reputación: 14
vicens22 Va por buen camino
Acceso desde un formulario y sus objetos desde otro

Estoy desarrollando un proyecto con Delphi Berlin y Firemonkey y me encuentro con el siguiente problema, que intuyo que es básico, pero no consigo encontrarle solución.

Se trata simplemente de como acceder a objetos (variables y campos de edición que están en un formulario desde otro).
En las pruebas iniciales, tenía tan solo dos formularios y no tuve problema para acceder desde Form2 a variables y objetos que estaban en Form1 (el cual era el formulario principal del proyecto "Main Form" en options).

En cuanto he añadido más módulos y Form1, ha dejado de ser el formulario principal, el acceso al mismo desde el segundo formulario (Form2) no es posible, dándome error al intentarlo y pudiendo comprobar al hacer "debug" que no es posible el acceso a Form1.

A continuación está el código simplificado de ambos formularios, concretamente el error lo da en las siguientes lineas:

uQProvin.SQL.Text :='select * from ' + Form1.cBase + '.dbo.Provincias order by cNomPrv';

Form1.lEditProvin.items.Clear;

Gracias por cualquier aclaración o sugerencia.
Saludos,

Código Delphi [-]
/******************* Formulario 1 **************

Unit uForm1;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,.

type
TForm1 = class(TForm)
lEditProvin: listEditor;
procedure ....

{ Private declarations }

public
{ Public declarations }
cBase, cCodFotos, RemoteServer: string;
nCodFotos: integer;

public
end;

var
fForm1: TForm1;

implementation

uses uLogin, uForm2;
......

/// ******************* Formulario 2 *****************************

unit uForm2;

interface

uses
System.SysUtils, .......

type
TfForm2 = class(TForm)
FooterLayout: TLayout....

private
{ Private declarations }
public
{ Public declarations }
end;

var
fForm2: TForm2;

implementation

uses uLogin, uForm1;

procedure TfForm2.FormCreate(Sender: TObject);
var lLocate: boolean;
SearchOptions: TLocateOptions;
sFields: TStringList;
i: integer;
begin

begin
With ClientModule1 do
begin
uQProvin.Close;
uQProvin.SQL.Text :='select * from ' + Form1.cBase + '.dbo.Provincias order by cNomPrv';
uQProvin.Open;
end;

Form1.lEditProvin.items.Clear;

end;

end;
Responder Con Cita