MyWinControl不能作為設計期間的容器

來源:互聯網
上載者:User

標籤:des   color   io   for   ar   代碼   amp   line   sp   

unit MyWinControl;

interface

uses
SysUtils, Classes, Controls, Windows;

type
TMyWinControl = class(TWinControl)
protected
procedure PaintWindow(DC: HDC); override;
public
constructor Create(AOwner: TComponent); override;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents(‘Samples‘, [TMyWinControl]);
end;

constructor TMyWinControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlState := ControlState + [csCustomPaint];
// 必須通知 WMPaint 需要畫自己
end;

procedure TMyWinControl.PaintWindow(DC: HDC);
var
Rect: TRect;
begin
Windows.GetClientRect(Handle, Rect);
FillRect(DC, Rect, COLOR_BTNSHADOW + 1);
SetBkMode(DC, TRANSPARENT);
DrawText(DC, ‘Hello, TMyWinControl‘, -1, Rect, DT_SINGLELINE or DT_VCENTER or DT_CENTER);
end;

end.

------------------------------------------------------------------------------------------------

但代碼指定則可以,而且還能跟隨父控制項一起銷毀:

procedure TForm1.Button1Click(Sender: TObject);
begin
button2.Parent:=MyWinControl1;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
MyWinControl1.Destroy;
end;

 

MyWinControl不能作為設計期間的容器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.