<!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>