[Lazarus] Manually creating a form
zeljko
zeljko at holobit.net
Fri Jun 29 11:29:58 CEST 2012
On Friday 29 of June 2012 11:20:35 zeljko wrote:
> On Friday 29 of June 2012 11:16:06 Koenraad Lelong wrote:
> > Hi,
> >
> > I'm trying to manually create a form and in it's OnCreate event populate
> > it with controls. But I'm doing somehing wrong.
> >
> > This is my creating sequence :
> > form2:=Tform2.Create(nil);
> > form2.ShowModal;
> > Form2.Destroy;
> >
> > Nothing special I think.
> >
> > This is a sample of the create-code :
> >
> > procedure TForm2.FormCreate(Sender: TObject);
> >
> > var
> >
> > i : integer;
> > upper : integer;
> >
> > begin
> >
> > upper:=10;
> > for i:=0 to 4 do
> >
> > begin
> >
> > form2.Height:=form2.height+25;
> > edits[i]:=Tedit.Create(self);
> > edits[i].Parent:=form2;
> > edits[i].Top:=upper;
> > edits[i].Left:=10;
> > upper:=upper+25;
> >
> > end;
> >
> > end;
> >
> > But when I run the code, I get a segfault at the location where I modify
> > the form's height. If I remove that, I get the form but the edits do not
> > show.
> >
> > When I modify the code to automatically create the form this works. So
> > I'm clearly missing something.
> >
> > Any tips, links to documentation ?
>
> Do not use variable in OnCreate(). Sender parameter is your form.
> So instead of using Form2.Height := , use TCustomForm(Sender).Height or
> whatever. That should work.
Or better to avoid casting, use Self like Antonio mentioned.
zeljko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120629/44d3f555/attachment-0003.html>
More information about the Lazarus
mailing list