OSDN Git Service

冒険の書->忍法帖
[gikonavigoeson/gikonavi.git] / Component / GikoPanel.pas
1 unit GikoPanel;
2
3 interface
4
5 uses
6         Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,
7         Graphics;
8
9 type
10         TStaticBorderStyle = (sbsNone, sbsSingle, sbsSunken);
11
12         TGikoPanel = class(TWinControl)
13         private
14                 FBorderStyle: TStaticBorderStyle;
15                 procedure SetBorderStyle(Value: TStaticBorderStyle);
16         protected
17                 procedure CreateParams(var Params: TCreateParams); override;
18         public
19                 constructor Create(AOwner: TComponent); override;
20         published
21                 property BorderStyle: TStaticBorderStyle read FBorderStyle
22                         write SetBorderStyle default sbsNone;
23                 property Align;
24                 property Anchors;
25                 property AutoSize;
26                 property BevelEdges;
27                 property BevelInner;
28                 property BevelKind default bkNone;
29                 property BevelOuter;
30                 property Color;
31                 property Constraints;
32                 property DragCursor;
33                 property DragKind;
34                 property DragMode;
35                 property Enabled;
36                 property ParentColor;
37                 property ParentShowHint;
38                 property PopupMenu;
39                 property ShowHint;
40                 property TabOrder;
41                 property TabStop;
42                 property Visible;
43                 property OnClick;
44                 property OnContextPopup;
45                 property OnDblClick;
46                 property OnDragDrop;
47                 property OnDragOver;
48                 property OnEndDock;
49                 property OnEndDrag;
50                 property OnMouseDown;
51                 property OnMouseMove;
52                 property OnMouseUp;
53                 property OnStartDock;
54                 property OnStartDrag;
55         end;
56
57 procedure Register;
58
59 implementation
60
61 procedure Register;
62 begin
63         RegisterComponents('gikoNavi', [TGikoPanel]);
64 end;
65
66 constructor TGikoPanel.Create(AOwner: TComponent);
67 begin
68         inherited Create(AOwner);
69         ControlStyle := [csAcceptsControls, csCaptureMouse, csClickEvents,
70                 csOpaque, csReplicatable, csDoubleClicks];
71         Width := 185;
72         Height := 41;
73 end;
74
75 procedure TGikoPanel.CreateParams(var Params: TCreateParams);
76 const
77         Alignments: array[Boolean, TAlignment] of DWORD =
78                 ((SS_LEFT, SS_RIGHT, SS_CENTER), (SS_RIGHT, SS_LEFT, SS_CENTER));
79         Borders: array[TStaticBorderStyle] of DWORD = (0, WS_BORDER, SS_SUNKEN);
80 begin
81         inherited CreateParams(Params);
82         with Params do begin
83                 Style := Style or SS_NOTIFY or
84                         Borders[FBorderStyle];
85                 WindowClass.style := WindowClass.style and not CS_VREDRAW;
86         end;
87 end;
88
89 procedure TGikoPanel.SetBorderStyle(Value: TStaticBorderStyle);
90 begin
91         if FBorderStyle <> Value then   begin
92                 FBorderStyle := Value;
93                 RecreateWnd;
94         end;
95 end;
96
97 end.