Lo que te propone "Nadie" es que crees una variable que pertenece a la parte pública de una clase, estas variables normalmente son llamadas campos y para poder leer el valor, debe estar instanciada la clase, y como extra, y el valor de esta variable pertenece a cada instancia de una clase.
Por ejemplo
Código:
type
TMiForm = class(TForm)
public
Campo: string;
end;
...
var
Form1, Form2
begin
Form1 := TMiForm.Create(Application);
Form1.Campo := 'Formulario Nro 1';
Form2 := TMiForm.Create(Application);
Form2.Campo := 'Formulario Nro 2';
ShowMessage(Form1.Campo + ' - ' + Form2.Campo );
{ Esto Mostrará "Formulario Nro 1 - Formulario Nro 2"}
end;
Lo que te propone el amigo Cadetill es crear una unit para tener a todas las variables globales, aunque esto no es necesario, puede ser mas prolijo, todo depende para que.
Bueno, lo que creo que tu quieres hacer es meramente tener una variable que puedas leer de cualquier lado, para declarar una variable de ese tipo, solo tienes que declararla en la parte "interface" de cualquier unit, y luego usar esta unit en las units que necesitemos de este valor.
Ejemplo:
Código:
unit Globales
interface
var
sUsuario: string;
implementation
end.
Código:
unit Form1
interface
type
TForm1=class(TForm)
...
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
sUsuario := ParamStr(1);
end;
end.
Código:
unit Form2
interface
type
TForm2=class(TForm)
...
implementation
procedure TForm2.FormCreate(Sender: TObject);
begin
Caption := sUsuario; {Usa la Variable}
end;
end.
Por suerte este tipo de prácticas no es muy necesaria en Delphi, ya que puedes crear eventos y propiedades en los formularios y comunicarlos de esta manera, pero de todos modos podemos ver como Delphi cuando crea un formulario por defecto crea una variable de este tipo de la clase de este form, que será la utilizada en el DPR para crear el form, y asignarlo.
Espero no haber sido muy extenso,
Saludos!