On Mon, 17 May 2010, Graeme Geldenhuys wrote:

Hi,

Sorry, I'm still battling with this. My original code looked as follows:

procedure TfpgApplicationBase.CreateForm(AFormClass: TComponentClass; out
AForm: TfpgWindowBase);
begin
 try
   AForm := TfpgWindowBase(AFormClass.Create(self));
   if FMainForm = nil then
     FMainForm := AForm;
 except
   AForm := nil;
   raise;
 end;
end;


I then used that method as follows:

var
 BulkDiscountListForm: TBulkInvoiceRateListForm;

function DisplayMyForm: boolean:
begin
 fpgApplication.CreateForm(TBulkInvoiceRateListForm,
    BulkDiscountListForm);
 try
   Result := BulkDiscountListForm.ShowModal = mrOK;
   if Result then
     // save data
 finally
   BulkDiscountListForm.Free;
 end;
 ...
end;


This doesn't work with FPC 2.5.1.  I then removed the 'out' parameter type
and my code compiled, but now it gives the following compiler warning all
over the place for each form I create.

And correctly so, because you need the OUT: you are modifying the pointer
and need to pass back the modified pointer to the caller.

Michael.
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to