On 5 November 2016 at 14:06, Mattias Gaertner via Lazarus < lazarus@lists.lazarus-ide.org> wrote:
> > if FDatabasesDialog = nil then > > FDatabasesDialog := TDatabasesForm(Screen.FindForm(TDatabasesForm. > ClassName)); > > FindForm finds a form by Name, not by ClassName. > > Mattias > -- > _______________________________________________ > Lazarus mailing list > Lazarus@lists.lazarus-ide.org > http://lists.lazarus-ide.org/listinfo/lazarus > FindForm depends on the ClassName, usuing Screen.FindForm(TDatabasesForm.Name) gave the error: Error: Only class methods, class properties and class variables can be referred with class references Any way my use of the Screen.FindForm routine was wrong I had a FindForm routine of my own and I assumed that the built in one worked similarly. I think I switched to the built in because it handles DataModules where as mine worked on forms. function FindForm(formClass: string):TForm; var i: integer; upFormClass: string; begin result := nil; upformClass := UpperCase(formClass); for i := 0 to Screen.FormCount-1 do begin if UpperCase(Screen.Forms[i].ClassName) = upFormClass then begin result := Screen.Forms[i]; end; end; end; -- Frank Church ======================= http://devblog.brahmancreations.com
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus