怎么开发一个带标题栏的panel,并在右上角带关闭按钮的
类似ThemeEngine中的TeHeaderPanel
没做过控件,不知道该怎么做
类似ThemeEngine中的TeHeaderPanel
没做过控件,不知道该怎么做
解决方案 »
- RenameFile的使用
- panel 控件数组的问题
- 关于delphi中用热键实现象QQ一样的功能,而且能够使整个应用程序最大化
- 小数问题 我的sql server数据库字段是real 写入 23.5566 在delphi中 (single,real)总是 23.556600571 我格式化成6位后为23.556601
- 菜鸟求助关于DBgrid的问题 (顺便B4一下那个说delphi不如.NET的猪)
- 哪里有有关Excel对象操作的相关资料下载,谢了
- 请问:DBGrid怎样浏览图片?
- 那个免费的数据库软件最好?
- 第一次问问题,信誉第一
- 哪位有没有经典加密算法(DES等)的delphi源代码?
- 有经验的高手请进:midas,scktsrvr,TSocketConnection之间恼火的问题怎么这么多
- fastreport、tee7和Quickreport安装疑问以及其他一些问题?
Font.Name:=Marlett;
Font.Charset:=SYMBOL_CHARSET;
SpeedButton.Caption:='r';关闭,'0',最小化
其他的看 rouqing 的,还有也就是加个颜色渐变什么的了
把form的颜色改改
Windows, Messages, SysUtils, Classes, Graphics, Controls, ExtCtrls, Forms, StdCtrls,Buttons;type
TTitlePanel = class(TCustomPanel)
private
HTopPanel:TPanel;
HTitleLabel:TLabel;
HCloseBtn:TBitBtn;
FTitle: String;
FOnClose: TNotifyEvent;
procedure SetTitle(const Value: String);
procedure SetTitleFont(const Value: TFont);
procedure CloseBtnClick(Sender:TObject);
function GetTitleFont: TFont;
procedure SetOnClose(const Value: TNotifyEvent);
protected
procedure CreateParams(var Params: TCreateParams); override;
public
constructor Create(AOwner: TComponent); override;
property DockManager;
published
property TitleFont:TFont read GetTitleFont write SetTitleFont;
property Align;
property Alignment;
property Anchors;
property AutoSize;
property BevelInner;
property BevelOuter;
property BevelWidth;
property BiDiMode;
property BorderWidth;
property BorderStyle;
property Title:String read FTitle write SetTitle stored True;
property Color;
property Constraints;
property Ctl3D;
property UseDockManager default True;
property DockSite;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property FullRepaint;
property Font;
property Locked;
property ParentBiDiMode;
property ParentBackground;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property TabStop;
property Visible;
property OnCanResize;
property OnClick;
property OnConstrainedResize;
property OnContextPopup;
property OnDockDrop;
property OnDockOver;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGetSiteInfo;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnResize;
property OnStartDock;
property OnStartDrag;
property OnUnDock;
property OnClose:TNotifyEvent read FOnClose write SetOnClose;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Samples', [TTitlePanel]);
end;{ TTitlePanel }procedure TTitlePanel.CloseBtnClick(Sender: TObject);
begin
Visible:=False;
if Assigned(FOnClose) then FOnClose(Sender);
end;constructor TTitlePanel.Create(AOwner: TComponent);
begin
inherited;
HTopPanel:=TPanel.Create(Self);
with HTopPanel do
begin
Height:=24;
Align:=alTop;
Parent:=Self;
BevelInner:=bvLowered;
end;
HCloseBtn:=TBitBtn.Create(HTopPanel);
with HCloseBtn do
begin
Top:=1;
Left:=1;
Width:=22;
Height:=22;
Kind:=bkCancel;
Caption:='';
Parent:=HTopPanel;
OnClick:=CloseBtnClick;
end;
HTitleLabel:=TLabel.Create(HTopPanel);
with HTitleLabel do
begin
Top:=2;
Left:=25;
Parent:=HTopPanel;
Caption:=FTitle;
end;
end;procedure TTitlePanel.CreateParams(var Params: TCreateParams);
const
BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
begin
inherited CreateParams(Params);
FTitle:=Params.Caption;
HtitleLabel.Caption:=FTitle;
Params.Caption:='';
end;function TTitlePanel.GetTitleFont: TFont;
begin
Result:=HTitleLabel.Font;
end;procedure TTitlePanel.SetOnClose(const Value: TNotifyEvent);
begin
FOnClose := Value;
end;procedure TTitlePanel.SetTitle(const Value: String);
begin
FTitle := Value;
HtitleLabel.Caption:=FTitle;
end;procedure TTitlePanel.SetTitleFont(const Value: TFont);
begin
HTitleLabel.Font.Assign(Value);
end;end.