8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

发现 TSplitter 在嵌套时不好用, 索性写了个替代品

来源:本站原创 浏览:129次 时间:2021-09-10
发现 TSplitter 在嵌套时不好用, 索性写了个替代品    


代替 TSplitter 的 TDirPanel 类:



unit DirPanel;interfaceuses  Classes, Controls, Forms, ExtCtrls;type  TDirPanel = class(TCustomPanel)  private    FLine: TPanel;    B: Boolean;    F: Integer;  protected    procedure LineMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer);    procedure LineMouseMove(Sender: TObject; Shift: TShiftState; X: Integer; Y: Integer);    procedure LineMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer);  public    constructor Create(AOwner: TComponent; aAlign: TAlign = alLeft); reintroduce;    destructor Destroy; override;  published  end;implementation{ TDirPanel }constructor TDirPanel.Create(AOwner: TComponent; aAlign: TAlign);begin  inherited Create(AOwner);  FLine := TPanel.Create(Self);  FLine.Parent := Self;  case aAlign of    alTop: begin      FLine.Align := alBottom;      FLine.Height := 5;      FLine.Cursor := crVSplit;      Constraints.MaxHeight := Screen.Height div 4;      Constraints.MinHeight := FLine.Height;    end;    alLeft: begin      FLine.Align := alRight;      FLine.Width := 5;      FLine.Cursor := crHSplit;      Constraints.MinWidth := FLine.Width;      Constraints.MaxWidth := Screen.Width div 2;    end;  end;  Align := aAlign;  BevelOuter := bvNone;  FLine.OnMouseDown := LineMouseDown;  FLine.OnMouseMove := LineMouseM����,����ove;  FLine.OnMouseUp := LineMouseUp;end;destructor TDirPanel.Destroy;begin  FLine.Free;  inherited;end;procedure TDirPanel.LineMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  B := True;  case Align of    alTop:  F := Y;    alLeft: F := X;  end;end;procedure TDirPanel.LineMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin  if not B then Exit;  case Align of    alTop: Height := Height + Y - F;    alLeft: Width := Width + X - F;  end;end;procedure TDirPanel.LineMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  B := False;end;end.


调用测试:



unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVw, DirPanel;type  TForm1 = class(TForm)    procedure FormCreate(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}var  dir1,dir2: TDirPanel;  body: TPanel;  web: TWebBrowser;  memo: TMemo;procedure TForm1.FormCreate(Sender: TObject);begin  body := TPanel.Create(Self);  body.Parent := Self;  body.Align := alClient;  body.BevelOuter := bvNone;  dir1 := TDirPanel.Create(Self);  dir2 := TDirPanel.Create(Self, alTop);  dir1.Parent := Self;  dir2.Parent := body;  web := TWebBrowser.Create(Self);  TControl(web).Parent := dir1;  web.Align := alClient;  web.Navigate('http://del.cnblogs.com');  memo := TMemo.Create(Self);  memo.Parent := dir2;  memo.Align := alClient;  memo.Text := 'memo';end;end.


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net