日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi XE2 之 FireMonkey 入门(2)

發布時間:2025/3/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi XE2 之 FireMonkey 入门(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FireMonkey 的控件都是自己繪制的(而不是基于系統組件), 我想它們應該是基于一些基本圖形; 就從基本圖形開始吧.

FMX.Objects 單元給出的類:
TShape //基本圖形的基類 TLine TRectangle TRoundRect TCalloutRectangle TEllipse TCircle TPie TArc TPath TTextTImage TPaintBox TSelection TSelectionPoint

添加一個 TRectangle, 先縱觀一下它的可用功能:

{ TRectangle }publicconstructor Create(AOwner: TComponent); override;publishedproperty Fill;property Stroke;property StrokeCap;property StrokeDash;property StrokeJoin;property StrokeThickness;property XRadius: Single read FXRadius write SetXRadius;property YRadius: Single read FYRadius write SetYRadius;property Corners: TCorners read FCorners write SetCorners stored IsCornersStored;property CornerType: TCornerType read FCornerType write SetCornerType default TCornerType.ctRound;property Sides: TSides read FSides write SetSides stored IsSidesStored;{ TRectangle 的父類 TShape }protectedprocedure FillChanged(Sender: TObject); virtual;procedure StrokeChanged(Sender: TObject); virtual;function GetShapeRect: TRectF;procedure Painting; override;procedure AfterPaint; override;publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;property Fill: TBrush read FFill write SetFill;property Stroke: TBrush read FStroke write SetStroke;property StrokeThickness: Single read FStrokeThickness write SetStrokeThickness stored IsStrokeThicknessStored;property StrokeCap: TStrokeCap read FStrokeCap write SetStrokeCap default TStrokeCap.scFlat;property StrokeDash: TStrokeDash read FStrokeDash write SetStrokeDash default TStrokeDash.sdSolid;property StrokeJoin: TStrokeJoin read FStrokeJoin write SetStrokeJoin default TStrokeJoin.sjMiter;property ShapeRect: TRectF read GetShapeRect;{ TShape 的父類 TControl(來自 FMX.Types) }publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;procedure AddObject(AObject: TFmxObject); override;procedure RemoveObject(AObject: TFmxObject); override;procedure SetNewScene(AScene: IScene); virtual;procedure SetBounds(X, Y, AWidth, AHeight: Single); virtual;{ matrix }function AbsoluteToLocal(P: TPointF): TPointF; virtual;function LocalToAbsolute(P: TPointF): TPointF; virtual;function AbsoluteToLocalVector(P: TVector): TVector; virtual;function LocalToAbsoluteVector(P: TVector): TVector; virtual;function PointInObject(X, Y: Single): Boolean; virtual;{ optimizations }procedure RecalcUpdateRect; virtual;procedure RecalcNeedAlign; virtual;procedure RecalcOpacity; virtual;procedure RecalcAbsolute; virtual;procedure RecalcEnabled; virtual;procedure RecalcHasEffect; virtual;{ drag and drop }function MakeScreenshot: TBitmap;{ caret }procedure ShowCaretProc;procedure SetCaretPos(const APoint: TPointF);procedure SetCaretSize(const ASize: TPointF);procedure SetCaretColor(const AColor: TAlphaColor);procedure HideCaret;{ align }procedure BeginUpdate; virtual;procedure EndUpdate; virtual;procedure Realign; virtual;{ paining }procedure ApplyEffect;procedure Painting; virtual;procedure DoPaint; virtual;procedure AfterPaint; virtual;{ effects }procedure UpdateEffects;{ }procedure SetFocus;procedure PaintTo(const ACanvas: TCanvas; const ARect: TRectF; const AParent: TFmxObject = nil);procedure Repaint;procedure InvalidateRect(ARect: TRectF);procedure Lock;property AbsoluteMatrix: TMatrix read GetAbsoluteMatrix;property AbsoluteOpacity: Single read GetAbsoluteOpacity;property AbsoluteWidth: Single read GetAbsoluteWidth;property AbsoluteHeight: Single read GetAbsoluteHeight;property AbsoluteScale: TPointF read GetAbsoluteScale;property AbsoluteEnabled: Boolean read GetAbsoluteEnabled;property HasEffect: Boolean read GetAbsoluteHasEffect;property HasDisablePaintEffect: Boolean read GetAbsoluteHasDisablePaintEffect;property HasAfterPaintEffect: Boolean read GetAbsoluteHasAfterPaintEffect;property ChildrenRect: TRectF read GetChildrenRect;property InvertAbsoluteMatrix: TMatrix read GetInvertAbsoluteMatrix;property InPaintTo: Boolean read FInPaintTo;property LocalRect: TRectF read GetLocalRect;property AbsoluteRect: TRectF read GetAbsoluteRect;property UpdateRect: TRectF read GetUpdateRect;property BoundsRect: TRectF read GetBoundsRect write SetBoundsRect;property ParentedRect: TRectF read GetParentedRect;property ParentedVisible: Boolean read GetParentedVisible;property ClipRect: TRectF read GetClipRect;property Canvas: TCanvas read GetCanvas;property Scene: IScene read FScene;property AutoCapture: Boolean read FAutoCapture write FAutoCapture default False;property CanFocus: Boolean read FCanFocus write FCanFocus default False;property DisableFocusEffect: Boolean read FDisableFocusEffect write FDisableFocusEffect default False;property DisableDefaultAlign: Boolean read FDisableDefaultAlign write FDisableDefaultAlign;property TabOrder: TTabOrder read GetTabOrder write SetTabOrder default -1;published{ triggers }property IsMouseOver: Boolean read FIsMouseOver;property IsDragOver: Boolean read FIsDragOver;property IsFocused: Boolean read FIsFocused;property IsVisible: Boolean read FVisible;{ props }property Align: TAlignLayout read FAlign write SetAlign default TAlignLayout.alNone;property Cursor: TCursor read GetCursor write SetCursor default crDefault;property DragMode: TDragMode read GetDragMode write SetDragMode default TDragMode.dmManual;property EnableDragHighlight: Boolean read FEnableDragHighlight write FEnableDragHighlight default True;property Enabled: Boolean read FEnabled write SetEnabled default True;property Position: TPosition read FPosition write SetPosition;property RotationAngle: Single read FRotationAngle write SetRotationAngle;property RotationCenter: TPosition read FRotationCenter write FRotationCenter;property Locked: Boolean read FLocked write SetLocked default False;property Width: Single read FWidth write SetWidth;property Height: Single read FHeight write SetHeight;property Margins: TBounds read FMargins write FMargins;property Padding: TBounds read FPadding write FPadding;property Opacity: Single read FOpacity write SetOpacity stored IsOpacityStored;property ClipChildren: Boolean read FClipChildren write SetClipChildren default False;property ClipParent: Boolean read FClipParent write FClipParent default False;property HitTest: Boolean read FHitTest write SetHitTest default True;property CanClip: Boolean read FCanClip write FCanClip default True;property PopupMenu: TCustomPopupMenu read FPopupMenu write SetPopupMenu;property Scale: TPosition read FScale write FScale;property Visible: Boolean read FVisible write SetVisible default True;property DesignVisible: Boolean read FDesignVisible write SetDesignVisible default True;property OnDragEnter: TDragEnterEvent read FOnDragEnter write FOnDragEnter;property OnDragLeave: TNotifyEvent read FOnDragLeave write FOnDragLeave;property OnDragOver: TDragOverEvent read FOnDragOver write FOnDragOver;property OnDragDrop: TDragDropEvent read FOnDragDrop write FOnDragDrop;property OnDragEnd: TNotifyEvent read FOnDragEnd write FOnDragEnd;property OnKeyDown: TKeyEvent read FOnKeyDown write FOnKeyDown;property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;property OnClick: TNotifyEvent read FOnClick write FOnClick;property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;property OnCanFocus: TCanFocusEvent read FOnCanFocus write FOnCanFocus;property OnEnter: TNotifyEvent read FOnEnter write FOnEnter;property OnExit: TNotifyEvent read FOnExit write FOnExit;property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write FOnMouseWheel;property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;property OnPainting: TOnPaintEvent read FOnPainting write FOnPainting;property OnPaint: TOnPaintEvent read FOnPaint write FOnPaint;property OnResize: TNotifyEvent read FOnResize write FOnResize;property OnApplyStyleLookup: TNotifyEvent read FOnApplyStyleLookup write FOnApplyStyleLookup;{ TControl 的父類 TFmxObject (來自 FMX.Types) }publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;procedure Release(Delay: Single = 0.1);{ check for support interface }function IsIControl: Boolean;function AsIControl: IControl;procedure SetRoot(ARoot: IRoot);{ design }procedure SetDesign(Value: Boolean; SetChildren: Boolean = True);function ItemClass: string; virtual;{ clone }function Clone(const AOwner: TComponent): TFmxObject;procedure CloneChildFromStream(AStream: TStream);{ childs }procedure AddObject(AObject: TFmxObject); virtual;procedure InsertObject(Index: Integer; AObject: TFmxObject); virtual;procedure RemoveObject(AObject: TFmxObject); overload; virtual;procedure RemoveObject(Index: Integer); overload; virtual;procedure Exchange(AObject1, AObject2: TFmxObject); virtual;procedure DeleteChildren; virtual;procedure BringToFront;procedure SendToBack;procedure AddObjectsToList(const AList: TList);procedure AddControlsToList(const AList: TList);procedure Sort(Compare: TFmxObjectSortCompare); virtual;{ notify }procedure AddFreeNotify(const AObject: IFreeNotification);procedure RemoveFreeNotify(const AObject: IFreeNotification);{ tab }procedure GetTabOrderList(const List: TList; AChildren: Boolean);{ i/o }procedure LoadFromStream(const AStream: TStream);procedure SaveToStream(const Stream: TStream);procedure LoadFromBinStream(const AStream: TStream);procedure SaveToBinStream(const AStream: TStream);{ resource }function FindStyleResource(const AStyleLookup: string): TFmxObject; virtual;procedure UpdateStyle; virtual;{ animations }procedure StartAnimation(const AName: string); virtual;procedure StopAnimation(const AName: string); virtual;procedure StartTriggerAnimation(AInstance: TFmxObject; const ATrigger: string); virtual;procedure StartTriggerAnimationWait(AInstance: TFmxObject; const ATrigger: string); virtual;procedure StopTriggerAnimation(AInstance: TFmxObject); virtual;procedure ApplyTriggerEffect(AInstance: TFmxObject; const ATrigger: string); virtual;{ animation property }procedure AnimateFloat(const APropertyName: string; const NewValue: Single; Duration: ...);procedure AnimateColor(const APropertyName: string; NewValue: TAlphaColor; Duration: ...);procedure AnimateFloatDelay(const APropertyName: string; const NewValue: Single; Duration: ...);procedure AnimateFloatWait(const APropertyName: string; const NewValue: Single; Duration: ...);procedure StopPropertyAnimation(const APropertyName: string);{ }property Root: IRoot read FRoot;property Stored: Boolean read FStored write SetStored;{ }property TagObject: TObject read FTagObject write FTagObject;property TagFloat: Single read FTagFloat write FTagFloat;property TagString: string read FTagString write FTagString;{ children }property ChildrenCount: Integer read GetChildrenCount;property Children[Index: Integer]: TFmxObject read GetChild;{ binding }function FindBinding(const ABinding: string): TFmxObject;property Data: Variant read GetData write SetData;property Binding[const Index: string]: Variant read GetBinding write SetBinding;property Parent: TFmxObject read FParent write SetParent;property Index: Integer read GetIndex write SetIndex;publishedproperty BindingName: string read FBindingName write SetBindingName;property StyleName: string read FStyleName write SetStyleName;{ TFmxObject 的父類 TComponent (來自 System.Classes), 到這里不新鮮了 }publicconstructor Create(AOwner: TComponent); virtual;destructor Destroy; override;procedure BeforeDestruction; override;procedure DestroyComponents;procedure Destroying;function ExecuteAction(Action: TBasicAction): Boolean; dynamic;function FindComponent(const AName: string): TComponent;procedure FreeNotification(AComponent: TComponent);procedure RemoveFreeNotification(AComponent: TComponent);procedure FreeOnRelease;function GetEnumerator: TComponentEnumerator;function GetParentComponent: TComponent; dynamic;function GetNamePath: string; override;function HasParent: Boolean; dynamic;procedure InsertComponent(AComponent: TComponent);procedure RemoveComponent(AComponent: TComponent);procedure SetSubComponent(IsSubComponent: Boolean);function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; override;function UpdateAction(Action: TBasicAction): Boolean; virtual;function IsImplementorOf(const I: IInterface): Boolean;function ReferenceInterface(const I: IInterface; Operation: TOperation): Boolean;property ComObject: IUnknown read GetComObject;property Components[Index: Integer]: TComponent read GetComponent;property ComponentCount: Integer read GetComponentCount;property ComponentIndex: Integer read GetComponentIndex write SetComponentIndex;property ComponentState: TComponentState read FComponentState;property ComponentStyle: TComponentStyle read FComponentStyle;property DesignInfo: Longint read FDesignInfo write FDesignInfo;property Owner: TComponent read FOwner;property VCLComObject: Pointer read FVCLComObject write FVCLComObject;property Observers: TObservers read GetObservers;publishedproperty Name: TComponentName read FName write SetName stored False;property Tag: NativeInt read FTag write FTag default 0;{ TComponent 的父類 TPersistent (來自 System.Classes) }publicdestructor Destroy; override;procedure Assign(Source: TPersistent); virtual;function GetNamePath: string; dynamic;{ TPersistent 的父類 TObject (來自 System) }publicconstructor Create;procedure Free;class function InitInstance(Instance: Pointer): TObject;procedure CleanupInstance;function ClassType: TClass; inline;class function ClassName: string;class function ClassNameIs(const Name: string): Boolean;class function ClassParent: TClass;class function ClassInfo: Pointer; inline;class function InstanceSize: Longint; inline;class function InheritsFrom(AClass: TClass): Boolean;class function MethodAddress(const Name: ShortString): Pointer; overload;class function MethodAddress(const Name: string): Pointer; overload;class function MethodName(Address: Pointer): string;class function QualifiedClassName: string;function FieldAddress(const Name: ShortString): Pointer; overload;function FieldAddress(const Name: string): Pointer; overload;function GetInterface(const IID: TGUID; out Obj): Boolean;class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;class function GetInterfaceTable: PInterfaceTable;class function UnitName: string;class function UnitScope: string;function Equals(Obj: TObject): Boolean; virtual;function GetHashCode: Integer; virtual;function ToString: string; virtual;function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; virtual;procedure AfterConstruction; virtual;procedure BeforeDestruction; virtual;procedure Dispatch(var Message); virtual;procedure DefaultHandler(var Message); virtual;class function NewInstance: TObject; virtual;procedure FreeInstance; virtual;destructor Destroy; virtual;

慢慢消化...

總結

以上是生活随笔為你收集整理的Delphi XE2 之 FireMonkey 入门(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。