title: how do I avoid this unwanted behaviour with Delphi's TSplitter and panels?
body: <p>Included is a small project demonstrating my problem.  I have a <code>TPageControl</code> aligned to the main form.  On each of two tabsheets I have panels client aligned.  On each of those panels I have 2 subpanels and a splitter.  The LH panel and splitter is aligned left, the RH panel client-aligned.</p>
  
  <p>Basically the problem is interaction between the 2 tabs.  To demonstrate:</p>
  
  <ul>
  <li>run the program</li>
  <li>stretch the main form horizontally.  Panel 3 will grow</li>
  <li>move the splitter as far to the right as it will go.  Panel 2 will grow, Panel 3 will shrink to its 10-pixel min-width constraint.</li>
  <li>select tabsheet 2.  Panel 5 is as designed, panel 6 grew when the main form was stretched</li>
  <li>reduce the main form width to its original width. Panel 6 shrinks too much (undesirable)</li>
  <li>click on tabsheet 1.  Main form increases in width again (undesirable)</li>
  </ul>
  
  <p>OK, the behaviour is probably explainable in terms of the rules of aligned panels, but can anybody suggest improvements to the operation?</p>
  
  <pre><code>unit Unit17;
  
  interface
  
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, ComCtrls;
  
  type
    TForm17 = class(TForm)
      PageControl1: TPageControl;
      TabSheet1: TTabSheet;
      TabSheet2: TTabSheet;
      Panel1: TPanel;
      Panel2: TPanel;
      Splitter1: TSplitter;
      Panel3: TPanel;
      Panel4: TPanel;
      Splitter2: TSplitter;
      Panel5: TPanel;
      Panel6: TPanel;
    private
      { Private declarations }
    public
      { Public declarations }
    end;
  
  var
    Form17: TForm17;
  
  implementation
  
  {$R *.dfm}
  
  end.
  
  
  object Form17: TForm17
    Left = 0
    Top = 0
    Caption = 'Form17'
    ClientHeight = 254
    ClientWidth = 314
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object PageControl1: TPageControl
      Left = 0
      Top = 0
      Width = 314
      Height = 254
      ActivePage = TabSheet1
      Align = alClient
      Constraints.MinWidth = 30
      TabOrder = 0
      ExplicitWidth = 480
      object TabSheet1: TTabSheet
        Caption = 'TabSheet1'
        ExplicitWidth = 281
        ExplicitHeight = 165
        object Panel1: TPanel
          Left = 0
          Top = 0
          Width = 306
          Height = 226
          Align = alClient
          Caption = 'Panel1'
          TabOrder = 0
          ExplicitWidth = 109
          ExplicitHeight = 165
          object Splitter1: TSplitter
            Left = 151
            Top = 1
            Width = 12
            Height = 224
            ExplicitLeft = 145
          end
          object Panel2: TPanel
            Left = 1
            Top = 1
            Width = 150
            Height = 224
            Align = alLeft
            Caption = 'Panel2'
            Constraints.MinWidth = 10
            TabOrder = 0
          end
          object Panel3: TPanel
            Left = 163
            Top = 1
            Width = 142
            Height = 224
            Align = alClient
            Caption = 'Panel3'
            Constraints.MinWidth = 10
            TabOrder = 1
            ExplicitLeft = 141
            ExplicitWidth = 330
          end
        end
      end
      object TabSheet2: TTabSheet
        Caption = 'TabSheet2'
        ImageIndex = 1
        ExplicitWidth = 281
        ExplicitHeight = 165
        object Panel4: TPanel
          Left = 0
          Top = 0
          Width = 306
          Height = 226
          Align = alClient
          Caption = 'Panel4'
          TabOrder = 0
          ExplicitWidth = 109
          ExplicitHeight = 165
          object Splitter2: TSplitter
            Left = 149
            Top = 1
            Width = 11
            Height = 224
            ExplicitLeft = 141
          end
          object Panel5: TPanel
            Left = 1
            Top = 1
            Width = 148
            Height = 224
            Align = alLeft
            Caption = 'Panel5'
            Constraints.MinWidth = 10
            TabOrder = 0
          end
          object Panel6: TPanel
            Left = 160
            Top = 1
            Width = 145
            Height = 224
            Align = alClient
            Caption = 'Panel6'
            Constraints.MinWidth = 10
            TabOrder = 1
            ExplicitLeft = 141
            ExplicitWidth = 139
            ExplicitHeight = 163
          end
        end
      end
    end
  end 
  </code></pre>