Design time 變化Edit的Border的顏色? |
尚未結案
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
Raize Components:
http://www.raize.com/DevTools/Products.htm 或者參考 Peter Below 大大的作品 TPBLineEdit
原始碼如下:
unit PBLineEdit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TPBLineEdit = class(Tedit) private { Private declarations } procedure WMNCPaint( var msg: TWMNCPaint ); message WM_NCPAINT; public Constructor Create( aOwner: TComponent ); override; property ParentColor default true; end; procedure Register; implementation procedure Register; begin RegisterComponents('PBGoodies', [TPBLineEdit]); end; { TPBLineEdit } constructor TPBLineEdit.Create(aOwner: TComponent); begin inherited; ParentColor := true; end; procedure TPBLineEdit.WMNCPaint(var msg: TWMNCPaint); var cv: TCanvas; dc: HDC; r: TRect; begin dc:= GetWindowDC( handle ); SaveDC( dc ); try cv:= TCanvas.Create; try cv.Handle := dc; cv.Lock; r:= Rect( 0, 0, Width, Height ); With cv.Brush Do Begin Color := Self.Color; Style := bsSolid; End; cv.FrameRect( r ); InflateRect( r, -1, -1 ); cv.FrameRect( r ); With cv.Pen Do Begin Color := clBlack; Style := psSolid; Width := 2; End; cv.MoveTo( r.Left, r.Bottom ); cv.LineTo( r.right, r.Bottom ); finally cv.Unlock; cv.free; end; finally RestoreDC( dc, -1 ); ReleaseDC( handle, dc ); end; end; end.-- He just never quits. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |