Hi Jamie:
I do something like this, but with modal forms.
You can create a class function or a class procedure:
.
.
.
public
{ Public declarations }
class function FunctionName(parameters ):type;
.
.
.
Next in the implementation section ...
*implementation*
{$R *.dfm}
class function TFormName.FunctionName(parameters ...):type;
Var ...
begin
with Create(Application) do
try
... // your sentences here
Showmodal;
...
finally
Free;
end;
You can call this Function from any other form ...
TFormName.FunctionNAme(parameters ...);
Don't forget to put the name of class function or class procedure in the
uses section.
Regards,
Sami,
Jamie L. Mitchell escribió:
>
> Hello all:
>
> I remember seeing a tip from ... somewhere on this issue. I cannot
> seem to dig it up now.
>
> I would like to have a global variable for a form:
>
> frmGlobal: TfrmGlobal;
>
> I would like to instantiate it from any place:
>
> frmGlobal := TfrmGlobal.Create(Application);
>
> and show it as a non-modal form:
>
> frmGlobal.Show;
>
> When I am done with the form, I would like to close it and free it up.
> Of course, the problem with this is that, at a later date, I may want
> to create it again. To avoid a memory leak, I clearly would not want
> to create a new instance if the existing instance still exists. I
> could use:
>
> If (Assigned(frmGlobal)) Then ...
>
> except that assigned merely asks the variable, "are you NIL?" Since
> merely freeing the variable does not set it to NIL, the system thinks
> it is still there.
>
> Since the form could be created anywhere, and the form should be
> deleted when it is closed, the best way to deal with it would seem to
> be figuring out a way to free the form and set the global variable to
> NIL from the OnDestroy event. I have had a number of problems doing
> this (chicken or egg problem.) A lot of AV's come out of
> experimenting with this.
>
> Does anyone have a good solution to how to free and NIL [the global
> variable] form from inside itself?
>
> Thanks
> jamie
>
>
[Non-text portions of this message have been removed]