全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1031
推到 Plurk!
推到 Facebook!

窗体控制

答題得分者是:aquarius
zzmbeyond01
中階會員


發表:98
回覆:167
積分:53
註冊:2003-09-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-19 13:34:22 IP:222.183.xxx.xxx 未訂閱
各位大大好: 请问如何控制子窗体在主窗体上面的显示。 我有一个程序主窗体(From1),同时显示另一个窗体显示提示信息(From2)。希望Form2始终显示在Form1客户区域的右上方,并且随着主窗体Form1尺寸变化,比例放大Form2。 如图:
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Menus, ToolWin, ComCtrls;    type
  TForm1 = class(TForm)
    ToolBar1: TToolBar;
    MainMenu1: TMainMenu;
    file1: TMenuItem;
    open1: TMenuItem;
    close1: TMenuItem;
    form1: TMenuItem;
    showform21: TMenuItem;
    Panel1: TPanel;
    procedure showform21Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    uses Unit2;    {$R *.dfm}    procedure TForm1.showform21Click(Sender: TObject);
begin
form2.show
end;    end.     
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-19 14:17:02 IP:202.39.xxx.xxx 未訂閱
攔截 Form1 的 WM_MOVE Message 在 Form1 的 OnResize Event 中 來變化 Form2 的大小與移動 Form2 的位置    --
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-19 18:53:16 IP:210.243.xxx.xxx 未訂閱
這個 SAMPLE CODE 再改一改應該就是你要的東西了!!     
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;    type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation
{$R *.DFM}
uses
  unit2 ;    procedure TForm1.FormCreate(Sender: TObject);
begin
  form2:=Tform2.CreateParented(handle) ;
  form2.Width:=form1.Width div 4 ;
  form2.Height:=form1.Height div 6 ;
  form2.Left:=form1.Width-form2.Width ;
  form2.Top:=0 ;
  form2.Show ;
end;    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeAndNil(form2) ;
end;    procedure TForm1.FormResize(Sender: TObject);
begin
  form2.Width:=form1.Width div 4 ;
  form2.Height:=form1.Height div 6 ;
end;    end.
 
...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
系統時間:2024-05-17 10:30:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!