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
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
