<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<title></title>
</head>
<body>
<p style="margin: 0px;"><span> </span></p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
Hans-Peter Diettrich <DrDiettrich1@aol.com> hat am 12. Juli 2011 um 14:13 geschrieben:<br/>
<br/>
> Mattias Gaertner schrieb:<br/>
><br/>
> > > 3) Sometimes it helps to remove the frames, and to add them again, but<br/>
> > > not always.<br/>
> ><br/>
> > <br/>
> ><br/>
> > Helps for what?<br/>
><br/>
> A general question, Before I start submitting bug reports:<br/>
><br/>
> Does there exist documentation about frame *development*?
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">AFAIK: No. </p>
<p style="margin: 0px;">It was implemented with Delphi in mind. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
><br/>
> When I have a form with embedded frames, and then modify an frame, what<br/>
> changes are transparent to the forms where the frame is already used?
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">Frames work very similar to inherited forms.</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">The IDE does not yet propagate changes in real time. You have to close a form and reopen it to see changes to ancestors/frames. </p>
<p style="margin: 0px;">Of course it is planned to eventually propagate some changes in real time. See below. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">That means: before you change a property of a frame, close all open forms using that frame. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">The lfm files store only the differences. When loading a form the inherited forms/frames lfm are applied one after the other. </p>
<p style="margin: 0px;">To create the diff TWriter needs the ancestor. That's why the IDE opens the ancestors and keeps them open.</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
><br/>
> E.g. adding methods should not be a problem, while changes to the GUI<br/>
> may not be reflected properly (as expected) in the container forms?
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">Most properties are no problem most of the time. And any property can be a problem. </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<div style="margin: 5px 0px 5px 0px;">
><br/>
> Should a form.lfm contain settings for *components* in the frame, after<br/>
> such settings are changed in the frame itself? It looks to me as if the<br/>
> form tries to retain the previous settings, and the designer inserts<br/>
> according overrides in the form.lfm.<br/>
><br/>
> Example:<br/>
><br/>
> During development of the form's GUI I notice that a combobox contains<br/>
> its name in the Text property. Since this is unwanted in general, I<br/>
> modify the combobox.Text in the *frame*. Can I expect that this change<br/>
> is reflected in the *form* immediately, or after closing and reopening<br/>
> the form designer?<br/>
><br/>
> Does it make a difference, whether the form is open in the designer, or<br/>
> whether the form.lfm is open in the editor (view form as...), when<br/>
> properties of an embedded frame are changed inside the frame?<br/>
><br/>
><br/>
> It would help a lot when there existed documentation about what's going<br/>
> on in the form and frame designers, so that a user can know what<br/>
> (possibly unwanted) behaviour is by design, how to avoid it, and what<br/>
> can be considered a bug.
</div>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">Here is a start:</p>
<p style="margin: 0px;">http://wiki.lazarus.freepascal.org/IDE_Development#Frames</p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;"> </p>
<p style="margin: 0px;">Mattias</p>
<p style="margin: 0px;"> </p>
</body>
</html>