同题!

解决方案 »

  1.   

    设置控件的Align的值就可以了
      

  2.   

    Form change , Component change:
    unit VSize;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls,TypInfo, ComCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Edit1: TEdit;
        Label1: TLabel;
        RadioButton1: TRadioButton;
        Panel1: TPanel;
        StatusBar1: TStatusBar;
        procedure FormCreate(Sender: TObject);
        procedure FormResize(Sender: TObject);
      private
        { Private declarations }
        OW,OH,OP: Longint;
        aName: array of String;
        aLeft,aTop,aWidth,aHeight,aFWidth,aFHeight: array of Longint;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      V: Variant;
      I,J: Integer;
    begin
      OW := TForm(Sender).Width;
      OH := TForm(Sender).Height;
      OP := TForm(Sender).PixelsPerInch;
      J := 0;
      // 記錄屬於 TControl 的元件總數
      for I := 0 to ComponentCount-1 do
          if (Components[I] is TControl) then Inc(J);
      if J > 0 then begin
         SetLength(aName,J);
         SetLength(aLeft,J);   SetLength(aTop,J);    SetLength(aWidth,J);
         SetLength(aHeight,J); SetLength(aFWidth,J); SetLength(aFHeight,J);
         for I := Low(aName) to High(aName) do begin
             aName[I] := '';
             aLeft[I] := 0; aTop[I] := 0; aWidth[I] := 0;
             aHeight[I] := 0; aFWidth[I] := 0; aFHeight[I] := 0;
         end;
      end;
      J := -1;
      for I := 0 to ComponentCount-1 do begin
          if not (Components[I] is TControl) then Continue;
          Inc(J);
          aName[J] := TControl(Components[I]).Name;
          aLeft[J] := TControl(Components[I]).Left;
          aTop[J] := TControl(Components[I]).Top;
          aWidth[J] := TControl(Components[I]).Width;
          aHeight[J] := TControl(Components[I]).Height;
          // 檢查是否有 font property
          V := GetPropValue (Components[I], 'Font');
          if not VarIsNull(V) then begin
             aFWidth[J] := TEdit(Components[I]).Font.Size;
             aFHeight[J] := TEdit(Components[I]).Font.Height;
          end;
      end;
    end;procedure TForm1.FormResize(Sender: TObject);
    var
      V: Variant;
      I,J: Integer;
      L,W,H,T,FS,FH: Longint;
      NW,NH,NP: Longint;
    begin
      // TStatusBar 的 Panel 要特別處理 
      NW := TForm(Sender).Width;
      NH := TForm(Sender).Height;
      NP := TForm(Sender).PixelsPerInch;
      J := -1;
      for I := 0 to ComponentCount-1 do begin
          if not (Components[I] is TControl) then Continue;
          Inc(J);
          L := aLeft[J];
          W := aWidth[J];
          H := aHeight[J];
          T := aTop[J];
          if OW <> 0 then TControl(Components[I]).Left   := Longint(L*NW div OW);
          if OH <> 0 then TControl(Components[I]).Top    := Longint(T*NH div OH);
          if OW <> 0 then TControl(Components[I]).Width  := Longint(W*NW div OW);
          if OH <> 0 then TControl(Components[I]).Height := Longint(H*NH div OH);
          // 檢查是否有 font property
          V := GetPropValue (Components[I], 'Font');
          if not VarIsNull(V) then begin
             FS := aFWidth[J];
             FH := aFHeight[J];
             if (OP <> 0) and (OW <> 0) then begin
                TEdit(Components[I]).Font.Size := Longint((FS * NP div OP) * NW div OW);
                TEdit(Components[I]).Font.Height := Longint((FH * NP div OP) * NH div OH);
             end;
          end;
      end;
    end;end.
      

  3.   

    可能我没说清楚我的问题,我说的是在设计期,自己写控件的时候。
    Linux2001, 
    citytramper(从开始到现在),
    shang53(阿遙) 你们的方法不是适合。
      

  4.   

    align:=alclient 填满上一级窗体.