ExtCtrls.Frame3D

本文介绍了一种使用 Delphi 在窗体上绘制3D边框的方法。通过定义矩形区域并调用 Frame3D 函数,可以轻松实现不同颜色和样式的3D效果。示例代码展示了如何创建两个具有黑色和红色边框的3D矩形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


uses ExtCtrls;

procedure TForm1.FormPaint(Sender: TObject);
var
  R1, R2: TRect;
begin
  R1 := Rect(10, 10, 150, 50);
  Frame3D(Canvas, R1, clBlack, clSilver, 1);

  R2 := Bounds(10, 80, 140, 40);
  Frame3D(Canvas, R2, clRed, clBlue, 1);
end;
//--------------------------------------------------------------------------- #ifndef MyTrayIconH #define MyTrayIconH //--------------------------------------------------------------------------- #include <SysUtils.hpp> #include <Classes.hpp> #include <System.hpp> #include <Controls.hpp> #include <Forms.hpp> #include <Extctrls.hpp> #include <ShellAPI.hpp> #include <StdLib.h> //--------------------------------------------------------------------------- #define WM_SYSTEM_MY_TRAY_NOTIFY (WM_USER + 1) namespace my_TrayIcon{ enum TMyTrayIconMessage {imClick, imDoubleClick, imMouseDown, imMouseUp, imLeftClickUp, imLeftDoubleClick, imRightClickUp, imRightDoubleClick, imNone}; } using namespace my_TrayIcon; class PACKAGE TMyTrayIcon : public TComponent { private: TNotifyIconDataW FData; bool FIsClicked; TIcon *FIcon; TImageList* FIconList; TPopupMenu* FPopupMenu; TTimer *FTimer; UnicodeString FHint; int FIconIndex; bool FVisible; bool FHide; bool FAnimate; TMyTrayIconMessage FAppRestore; TMyTrayIconMessage FPopupMenuShow; TWindowHook FApplicationHook; TNotifyEvent FOnMinimize; TNotifyEvent FOnRestore; TMouseMoveEvent FOnMouseMove; TMouseMoveEvent FOnMouseExit; TMouseMoveEvent FOnMouseEnter; TNotifyEvent FOnClick; TNotifyEvent FOnDblClick; TMouseEvent FOnMouseDown; TMouseEvent FOnMouseUp; TNotifyEvent FOnAnimate; TNotifyEvent FOnCreate; TNotifyEvent FOnDestroy; TNotifyEvent FOnActivate; TNotifyEvent FOnDeactivate; void __fastcall SetHint(String Hint); void __fastcall SetHide(bool Value); int __fastcall GetAnimateInterval(); void __fastcall SetAnimateInterval(int Value); bool __fastcall GetAnimate(); void __fastcall SetAnimate(bool Value); void __fastcall EndSession(); TShiftState ShiftState(); protected: virtual void __fastcall SetVisible(bool Value); virtual void __fastcall DoMessage(TMessage &Message); virtual void __fastcall DoClick(); virtual void __fastcall DoDblClick(); virtual void __fastcall DoMouseMove(TShiftState Shift, int X, int Y); virtual void __fastcall DoMouseDown(TMouseButton Button, TShiftState Shift, int X, int Y); virtual void __fastcall DoMouseUp(TMouseButton Button, TShiftState Shift, int X, int Y); virtual void __fastcall DoOnAnimate(TObject *Sender); virtual void __fastcall Notification(TComponent *AComponent, TOperation Operation); bool __fastcall ApplicationHookProc(TMessage &Message); virtual void __fastcall Loaded(); __property TNotifyIconDataW Data = {read=FData}; public: __fastcall TMyTrayIcon(TComponent* Owner); __fastcall ~TMyTrayIcon(); virtual void __fastcall Minimize(); virtual void __fastcall Restore(); virtual void __fastcall Update(); virtual void __fastcall ShowMenu(); virtual void __fastcall SetIconIndex(int Value); virtual void __fastcall SetDefaultIcon(); HWND __fastcall GetHandle(); __published: // Properties __property bool Visible = {read=FVisible,write=SetVisible,default=false}; __property UnicodeString Hint = {read=FHint,write=SetHint}; __property TPopupMenu* PopupMenu = {read=FPopupMenu,write=FPopupMenu}; __property bool Hide = {read=FHide,write=SetHide}; __property TMyTrayIconMessage RestoreOn = {read=FAppRestore,write=FAppRestore}; __property TMyTrayIconMessage PopupMenuOn = {read=FPopupMenuShow,write=FPopupMenuShow}; __property TImageList* Icons = {read=FIconList,write=FIconList}; __property int IconIndex = {read=FIconIndex,write=SetIconIndex,default=0}; __property int AnimateInterval = {read=GetAnimateInterval,write=SetAnimateInterval,default=1000}; __property bool Animate = {read=GetAnimate,write=SetAnimate,default=false}; __property bool Handle = {read=GetHandle}; // Events __property TNotifyEvent OnMinimize = {read=FOnMinimize,write=FOnMinimize}; __property TNotifyEvent OnRestore = {read=FOnRestore,write=FOnRestore}; __property TNotifyEvent OnClick = {read=FOnClick,write=FOnClick}; __property TMouseMoveEvent OnMouseEnter = {read=FOnMouseEnter,write=FOnMouseEnter}; __property TMouseMoveEvent OnMouseExit = {read=FOnMouseExit,write=FOnMouseExit}; __property TMouseMoveEvent OnMouseMove = {read=FOnMouseMove,write=FOnMouseMove}; __property TMouseEvent OnMouseUp = {read=FOnMouseUp,write=FOnMouseUp}; __property TMouseEvent OnMouseDown = {read=FOnMouseDown,write=FOnMouseDown}; __property TNotifyEvent OnAnimate = {read=FOnAnimate,write=FOnAnimate}; __property TNotifyEvent OnCreate = {read=FOnCreate,write=FOnCreate}; __property TNotifyEvent OnDestroy = {read=FOnDestroy,write=FOnDestroy}; __property TNotifyEvent OnActivate = {read=FOnActivate,write=FOnActivate}; __property TNotifyEvent OnDeactivate = {read=FOnDeactivate,write=FOnDeactivate}; }; //--------------------------------------------------------------------------- #endif 有什么问题
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值