fcdbtreeview.hpp
上传用户:hylc_2004
上传日期:2014-01-23
资源大小:46800k
文件大小:22k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'fcdbtreeview.pas' rev: 5.00
  5. #ifndef fcdbtreeviewHPP
  6. #define fcdbtreeviewHPP
  7. #pragma delphiheader begin
  8. #pragma option push -w-
  9. #pragma option push -Vx
  10. #include <Menus.hpp> // Pascal unit
  11. #include <ImgList.hpp> // Pascal unit
  12. #include <fcTreeHeader.hpp> // Pascal unit
  13. #include <fcChangeLink.hpp> // Pascal unit
  14. #include <fcImager.hpp> // Pascal unit
  15. #include <fcButton.hpp> // Pascal unit
  16. #include <fcShapeBtn.hpp> // Pascal unit
  17. #include <fcScrollBar.hpp> // Pascal unit
  18. #include <Buttons.hpp> // Pascal unit
  19. #include <fcDBCommon.hpp> // Pascal unit
  20. #include <fcCanvas.hpp> // Pascal unit
  21. #include <fcCommon.hpp> // Pascal unit
  22. #include <ExtCtrls.hpp> // Pascal unit
  23. #include <StdCtrls.hpp> // Pascal unit
  24. #include <CommCtrl.hpp> // Pascal unit
  25. #include <DB.hpp> // Pascal unit
  26. #include <ComCtrls.hpp> // Pascal unit
  27. #include <Dialogs.hpp> // Pascal unit
  28. #include <Forms.hpp> // Pascal unit
  29. #include <Controls.hpp> // Pascal unit
  30. #include <Graphics.hpp> // Pascal unit
  31. #include <Classes.hpp> // Pascal unit
  32. #include <SysUtils.hpp> // Pascal unit
  33. #include <Messages.hpp> // Pascal unit
  34. #include <Windows.hpp> // Pascal unit
  35. #include <SysInit.hpp> // Pascal unit
  36. #include <System.hpp> // Pascal unit
  37. //-- user supplied -----------------------------------------------------------
  38. namespace Fcdbtreeview
  39. {
  40. //-- type declarations -------------------------------------------------------
  41. #pragma option push -b-
  42. enum TfcTreeHitTest { fchtdOnButton, fchtdOnStateIcon, fchtdOnImageIcon, fchtdOnText, fchtdOnActiveNode };
  43. #pragma option pop
  44. typedef Set<TfcTreeHitTest, fchtdOnButton, fchtdOnActiveNode>  TfcTreeHitTests;
  45. class DELPHICLASS TfcTreeDataLink;
  46. class DELPHICLASS TfcDBCustomTreeView;
  47. #pragma option push -b-
  48. enum TfcDBTreeViewOption { dtvoKeysScrollLevelOnly, dtvoAutoExpandOnDSScroll, dtvoExpandButtons3D, dtvoHideSelection, dtvoRowSelect, dtvoShowNodeHint, dtvoShowButtons, dtvoShowLines, dtvoShowRoot, dtvoShowHorzScrollBar, dtvoShowVertScrollBar, dtvoHotTracking, dtvoFlatCheckboxes };
  49. #pragma option pop
  50. typedef Set<TfcDBTreeViewOption, dtvoKeysScrollLevelOnly, dtvoFlatCheckboxes>  TfcDBTreeViewOptions;
  51. class DELPHICLASS TfcDBTreeNode;
  52. typedef void __fastcall (__closure *TfcDBTreeEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node);
  53. typedef void __fastcall (__closure *TfcDBTreeSectionEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, Fctreeheader::TfcTreeHeaderSection* Section, AnsiString &DisplayText);
  54. typedef void __fastcall (__closure *TfcDBTreeDrawSectionEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, Fctreeheader::TfcTreeHeaderSection* Section, const Types::TRect &ARect, AnsiString s, bool &DefaultDrawing);
  55. class DELPHICLASS TfcDBMultiSelectAttributes;
  56. class PASCALIMPLEMENTATION TfcDBMultiSelectAttributes : public Classes::TPersistent 
  57. {
  58. typedef Classes::TPersistent inherited;
  59. private:
  60. bool FEnabled;
  61. bool FAutoUnselect;
  62. int FMultiSelectLevel;
  63. bool FMultiSelectCheckbox;
  64. TfcDBCustomTreeView* TreeView;
  65. void __fastcall SetEnabled(bool val);
  66. void __fastcall SetMultiSelectLevel(int val);
  67. void __fastcall SetMultiSelectCheckBox(bool val);
  68. public:
  69. __fastcall TfcDBMultiSelectAttributes(Classes::TComponent* Owner);
  70. virtual void __fastcall Assign(Classes::TPersistent* Source);
  71. __published:
  72. __property bool AutoUnselect = {read=FAutoUnselect, write=FAutoUnselect, default=0};
  73. __property bool Enabled = {read=FEnabled, write=SetEnabled, default=0};
  74. __property int MultiSelectLevel = {read=FMultiSelectLevel, write=SetMultiSelectLevel, default=0};
  75. __property bool MultiSelectCheckbox = {read=FMultiSelectCheckbox, write=SetMultiSelectCheckBox, default=1};
  76. public:
  77. #pragma option push -w-inl
  78. /* TPersistent.Destroy */ inline __fastcall virtual ~TfcDBMultiSelectAttributes(void) { }
  79. #pragma option pop
  80. };
  81. typedef void __fastcall (__closure *TfcDBTreeMouseEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  82. typedef void __fastcall (__closure *TfcDBTreeMouseMoveEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, Classes::TShiftState Shift, int X, int Y);
  83. typedef void __fastcall (__closure *TfcDBTreeDrawTextEvent)(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, const Types::TRect &ARect, bool &DefaultDrawing);
  84. class DELPHICLASS TfcMultiSelectItem;
  85. class PASCALIMPLEMENTATION TfcDBCustomTreeView : public Controls::TWinControl 
  86. {
  87. typedef Controls::TWinControl inherited;
  88. private:
  89. TfcDBTreeViewOptions FOptions;
  90. Classes::TStrings* FDisplayFields;
  91. Forms::TFormBorderStyle FBorderStyle;
  92. TfcDBTreeEvent FOnCalcNodeAttributes;
  93. TfcDBTreeSectionEvent FOnCalcSectionAttributes;
  94. TfcDBTreeDrawSectionEvent FOnDrawSection;
  95. TfcDBTreeEvent FOnChange;
  96. TfcDBTreeEvent FOnUserExpand;
  97. TfcDBTreeEvent FOnUserCollapse;
  98. TfcDBMultiSelectAttributes* FMultiSelectAttributes;
  99. TfcDBTreeMouseEvent FOnMouseDown;
  100. TfcDBTreeMouseEvent FOnMouseUp;
  101. TfcDBTreeMouseEvent FOnDblClick;
  102. TfcDBTreeMouseMoveEvent FOnMouseMove;
  103. int FLevelIndent;
  104. AnsiString FDataSourcesMiddle;
  105. Fcimager::TfcCustomImager* FImager;
  106. Classes::TList* FMultiSelectList;
  107. Imglist::TCustomImageList* FImages;
  108. Imglist::TCustomImageList* FStateImages;
  109. Graphics::TColor FLineColor;
  110. Graphics::TColor FInactiveFocusColor;
  111. bool FScrollWithinLevel;
  112. bool FDisableThemes;
  113. Classes::TList* FDataLinks;
  114. Controls::TControlCanvas* FCanvas;
  115. Fccanvas::TfcCanvas* FPaintCanvas;
  116. Graphics::TBitmap* FPaintBitmap;
  117. bool SkipErase;
  118. bool SkipReload;
  119. TfcTreeDataLink* FFirstDataLink;
  120. TfcTreeDataLink* FLastDataLink;
  121. Db::TDataSet* FActiveDataSet;
  122. Db::TDataSet* FLastVisibleDataset;
  123. bool ActiveDataSetChanged;
  124. int ActiveNodeIndex;
  125. Extctrls::TTimer* HintTimer;
  126. int HintTimerCount;
  127. int LastHintRow;
  128. Classes::TList* Nodes;
  129. int RowHeight;
  130. int FixedOffset;
  131. int CacheSize;
  132. TfcDBTreeNode* FActiveNode;
  133. int MaxTextWidth;
  134. bool ResetScroll;
  135. bool Down;
  136. int MouseRow;
  137. int PaintingRow;
  138. TfcDBTreeDrawTextEvent FOnDrawText;
  139. Controls::TCursor SaveCursor;
  140. bool CheckMaxWidth;
  141. bool CheckMaxWidthGrow;
  142. bool InPaint;
  143. bool InComputeHorzWidthOnly;
  144. Fcchangelink::TfcChangeLink* FChangeLink;
  145. bool NodesCleared;
  146. bool HaveBadLink;
  147. bool FHideUpDownButtons;
  148. Fctreeheader::TfcTreeHeader* FHeader;
  149. void __fastcall SetHideUpDownButtons(bool val);
  150. Db::TDataSource* __fastcall GetDataSource(void);
  151. void __fastcall SetDataSource(Db::TDataSource* Value);
  152. Db::TDataSource* __fastcall GetLastDataSource(void);
  153. void __fastcall SetLastDataSource(Db::TDataSource* Value);
  154. void __fastcall SetDataSources(AnsiString Value);
  155. HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &Message);
  156. MESSAGE void __fastcall WMGetDlgCode(Messages::TWMNoParams &Message);
  157. HIDESBASE MESSAGE void __fastcall CMExit(Messages::TMessage &Message);
  158. HIDESBASE MESSAGE void __fastcall WMSetFocus(Messages::TWMSetFocus &Message);
  159. HIDESBASE MESSAGE void __fastcall WMEraseBkgnd(Messages::TWMEraseBkgnd &Message);
  160. HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
  161. HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &Message);
  162. HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
  163. void __fastcall TreeDownClick(System::TObject* Sender);
  164. void __fastcall TreeUpClick(System::TObject* Sender);
  165. TfcTreeDataLink* __fastcall GetParentDataLink(Db::TDataSet* Dataset);
  166. TfcTreeDataLink* __fastcall GetChildDataLink(Db::TDataSet* Dataset);
  167. void __fastcall MouseToRow(int X, int Y, int &Row);
  168. bool __fastcall RowToNode(int Row, TfcDBTreeNode* &Node);
  169. bool __fastcall NodeToRow(TfcDBTreeNode* Node, int &Row);
  170. void __fastcall SetBorderStyle(Forms::TBorderStyle Value);
  171. Types::TPoint __fastcall GetCenterPoint(const Types::TRect &ARect);
  172. void __fastcall ResetStartOffsets(Db::TDataSet* ActiveDataSet);
  173. int __fastcall GetStartOffset(void);
  174. void __fastcall SetStartOffset(Db::TDataSet* ActiveDataSet, int val);
  175. void __fastcall SetImages(Imglist::TCustomImageList* Value);
  176. void __fastcall SetStateImages(Imglist::TCustomImageList* Value);
  177. bool __fastcall UseStateImages(TfcDBTreeNode* Node);
  178. TfcMultiSelectItem* __fastcall GetMultiSelectItem(int Index);
  179. void __fastcall HintTimerEvent(System::TObject* Sender);
  180. int __fastcall GetMultiSelectListCount(void);
  181. int __fastcall GetStateImageWidth(void);
  182. void __fastcall ScrollRight(void);
  183. void __fastcall ScrollLeft(void);
  184. void __fastcall SetLineColor(Graphics::TColor Value);
  185. void __fastcall SetInactiveFocusColor(Graphics::TColor Value);
  186. void __fastcall SetOptions(TfcDBTreeViewOptions Value);
  187. int __fastcall GetStartX(TfcDBTreeNode* Node);
  188. void __fastcall SetDisplayFields(Classes::TStrings* Value);
  189. void __fastcall UpdateScrollBarPosition(void);
  190. void __fastcall SetLevelIndent(int val);
  191. void __fastcall SetImager(Fcimager::TfcCustomImager* Value);
  192. void __fastcall ImagerChange(System::TObject* Sender);
  193. void __fastcall SetHeader(Fctreeheader::TfcTreeHeader* Value);
  194. protected:
  195. Controls::THintWindow* HintWindow;
  196. void *LastActiveBookmark;
  197. void *FirstBookmark;
  198. int ScrollSize;
  199. int HotTrackRow;
  200. bool FMouseInControl;
  201. bool SkipFreeNodes;
  202. Classes::TList* OldNodes;
  203. Fcscrollbar::TfcScrollBar* HorzScrollBar;
  204. Fcscrollbar::TfcScrollBar* VertScrollBar;
  205. Fcshapebtn::TfcShapeBtn* UpTreeButton;
  206. Fcshapebtn::TfcShapeBtn* DownTreeButton;
  207. int StartOffsets[51];
  208. void *RootDataSetBookmark;
  209. DYNAMIC bool __fastcall DoMouseWheelDown(Classes::TShiftState Shift, const Types::TPoint &MousePos);
  210. DYNAMIC bool __fastcall DoMouseWheelUp(Classes::TShiftState Shift, const Types::TPoint &MousePos);
  211. AnsiString __fastcall GetNodeText(AnsiString DisplayFieldLine, Db::TDataSet* DataSet, Db::TField* &Field);
  212. virtual int __fastcall ComputeHeaderWidth(void);
  213. virtual bool __fastcall IsRootDataSetMoved(void);
  214. virtual void __fastcall DrawColumnText(TfcDBTreeNode* Node, const Types::TRect &ARect);
  215. virtual void __fastcall CreateWnd(void);
  216. virtual void __fastcall UpdateScrollBar(void);
  217. virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
  218. virtual void __fastcall PaintButton(TfcDBTreeNode* Node, const Types::TPoint &pt, int Size, bool Expanded);
  219. virtual void __fastcall PaintLines(TfcDBTreeNode* Node);
  220. virtual void __fastcall PaintImage(TfcDBTreeNode* Node);
  221. virtual void __fastcall DataChanged(Db::TDataSet* DataSet);
  222. virtual void __fastcall Scroll(Db::TDataSet* DataSet, int Distance);
  223. virtual void __fastcall LinkActive(Db::TDataSet* DataSet, bool Value);
  224. DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
  225. virtual void __fastcall DoCalcNodeAttributes(TfcDBTreeNode* Node);
  226. virtual void __fastcall DoCalcSectionAttributes(TfcDBTreeNode* Node, Fctreeheader::TfcTreeHeaderSection* Section, AnsiString &DisplayText);
  227. virtual void __fastcall DoDrawSection(TfcDBTreeNode* Node, Fctreeheader::TfcTreeHeaderSection* Section, const Types::TRect &ARect, AnsiString s, bool &DoDefault);
  228. virtual bool __fastcall InMasterChanging(Db::TDataSet* DataSet);
  229. virtual void __fastcall RefreshDataLinks(Db::TDataSource* FirstDS, Db::TDataSource* LastDS);
  230. virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation);
  231. DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  232. DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);
  233. DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
  234. Types::TRect __fastcall LevelRect(TfcDBTreeNode* Node);
  235. Types::TRect __fastcall TextRect(TfcDBTreeNode* Node, int Row);
  236. bool __fastcall MultiSelectCheckboxNeeded(TfcDBTreeNode* Node);
  237. bool __fastcall ValidMultiSelectLevel(int ALevel);
  238. virtual int __fastcall FindCurrentMultiSelectIndex(Db::TDataSet* DataSet);
  239. virtual void __fastcall Loaded(void);
  240. virtual void __fastcall FreeHintWindow(void);
  241. virtual Controls::THintWindow* __fastcall CreateHintWindow(void);
  242. virtual void __fastcall Change(TfcDBTreeNode* FSelected);
  243. void __fastcall SaveIfFirstRecordBookmark(Db::TDataSet* DataSet);
  244. void __fastcall FreeFirstBookmark(void);
  245. bool __fastcall HaveValidDataLinks(void);
  246. bool __fastcall IsChildDataSetOfActive(Db::TDataSet* DataSet);
  247. bool __fastcall IsMasterDataSetOfActive(Db::TDataSet* DataSet);
  248. void __fastcall ToggleMultiSelection(bool RequireControlKey, Classes::TShiftState Shift);
  249. virtual void __fastcall MouseLoop(int X, int Y);
  250. bool __fastcall UpdateDataLinkToActive(TfcDBTreeNode* Node);
  251. virtual void __fastcall PriorRow(bool WithinLevel);
  252. virtual void __fastcall NextRow(bool WithinLevel);
  253. virtual void __fastcall PriorPage(bool WithinLevel);
  254. virtual void __fastcall NextPage(bool WithinLevel);
  255. virtual Types::TRect __fastcall GetClientRect();
  256. virtual void __fastcall VScroll(int ScrollCode, int Position);
  257. virtual void __fastcall HScroll(int ScrollCode, int Position);
  258. virtual Fcshapebtn::TfcShapeBtn* __fastcall CreateUpTreeButton(void);
  259. virtual Fcshapebtn::TfcShapeBtn* __fastcall CreateDownTreeButton(void);
  260. virtual void __fastcall DoDrawText(TfcDBCustomTreeView* TreeView, TfcDBTreeNode* Node, const Types::TRect &ARect, bool &DefaultDrawing);
  261. virtual void __fastcall WndProc(Messages::TMessage &Message);
  262. void __fastcall FreeOldNodes(void);
  263. virtual void __fastcall DoUserExpand(TfcDBTreeNode* Node);
  264. virtual void __fastcall DoUserCollapse(TfcDBTreeNode* Node);
  265. virtual void __fastcall SetActiveDataSet(Db::TDataSet* DataSet);
  266. virtual void __fastcall SetLastVisibleDataSet(Db::TDataSet* DataSet);
  267. TfcTreeDataLink* __fastcall GetDataLink(Db::TDataSet* Dataset);
  268. int __fastcall GetDataLinkIndex(Db::TDataSet* Dataset);
  269. public:
  270. Variant Patch;
  271. virtual void __fastcall LayoutChanged(void);
  272. void __fastcall FreeLastActiveBookmark(void);
  273. void __fastcall FreeRootBookmark(void);
  274. __fastcall virtual TfcDBCustomTreeView(Classes::TComponent* AOwner);
  275. __fastcall virtual ~TfcDBCustomTreeView(void);
  276. void __fastcall MoveTo(TfcDBTreeNode* Node);
  277. TfcTreeHitTests __fastcall GetHitTestInfoAt(int X, int Y);
  278. virtual void __fastcall UnselectAll(void);
  279. virtual void __fastcall SelectAll(Db::TDataSet* ADataSet);
  280. virtual void __fastcall SelectRecord(void);
  281. virtual void __fastcall UnselectRecord(void);
  282. bool __fastcall IsSelectedRecord(void);
  283. void __fastcall InvalidateNode(TfcDBTreeNode* Node);
  284. void __fastcall InvalidateRow(int Row);
  285. virtual void __fastcall InvalidateClient(void);
  286. virtual void __fastcall Expand(TfcDBTreeNode* Node);
  287. virtual void __fastcall Collapse(TfcDBTreeNode* Node);
  288. void __fastcall MakeActiveDataSet(Db::TDataSet* DataSet, bool Collapse);
  289. TfcDBTreeNode* __fastcall GetNodeAt(int X, int Y);
  290. void __fastcall SortMultiSelectList(void);
  291. __property TfcDBTreeNode* ActiveNode = {read=FActiveNode};
  292. __property Fccanvas::TfcCanvas* Canvas = {read=FPaintCanvas};
  293. __property TfcMultiSelectItem* MultiSelectList[int Index] = {read=GetMultiSelectItem};
  294. __property int MultiSelectListCount = {read=GetMultiSelectListCount, nodefault};
  295. __property Db::TDataSet* ActiveDataSet = {read=FActiveDataSet, write=SetActiveDataSet};
  296. __property Db::TDataSet* LastVisibleDataSet = {read=FLastVisibleDataset, write=SetLastVisibleDataSet};
  297. __property int LevelIndent = {read=FLevelIndent, write=SetLevelIndent, nodefault};
  298. __property Graphics::TColor LineColor = {read=FLineColor, write=SetLineColor, default=-2147483632};
  299. __property Graphics::TColor InactiveFocusColor = {read=FInactiveFocusColor, write=SetInactiveFocusColor, default=-2147483633};
  300. __property ParentColor ;
  301. __property Forms::TBorderStyle BorderStyle = {read=FBorderStyle, write=SetBorderStyle, nodefault};
  302. __property Db::TDataSource* DataSourceFirst = {read=GetDataSource, write=SetDataSource};
  303. __property Db::TDataSource* DataSourceLast = {read=GetLastDataSource, write=SetLastDataSource};
  304. __property AnsiString DataSources = {read=FDataSourcesMiddle, write=SetDataSources};
  305. __property TfcDBTreeViewOptions Options = {read=FOptions, write=SetOptions, default=2018};
  306. __property Classes::TStrings* DisplayFields = {read=FDisplayFields, write=SetDisplayFields};
  307. __property Imglist::TCustomImageList* Images = {read=FImages, write=SetImages};
  308. __property Fcimager::TfcCustomImager* Imager = {read=FImager, write=SetImager};
  309. __property Imglist::TCustomImageList* StateImages = {read=FStateImages, write=SetStateImages};
  310. __property TfcDBMultiSelectAttributes* MultiSelectAttributes = {read=FMultiSelectAttributes, write=FMultiSelectAttributes};
  311. __property TfcDBTreeEvent OnCalcNodeAttributes = {read=FOnCalcNodeAttributes, write=FOnCalcNodeAttributes};
  312. __property TfcDBTreeSectionEvent OnCalcSectionAttributes = {read=FOnCalcSectionAttributes, write=FOnCalcSectionAttributes};
  313. __property TfcDBTreeDrawSectionEvent OnDrawSection = {read=FOnDrawSection, write=FOnDrawSection};
  314. __property TfcDBTreeEvent OnChange = {read=FOnChange, write=FOnChange};
  315. __property TfcDBTreeEvent OnUserCollapse = {read=FOnUserCollapse, write=FOnUserCollapse};
  316. __property TfcDBTreeEvent OnUserExpand = {read=FOnUserExpand, write=FOnUserExpand};
  317. __property TfcDBTreeMouseEvent OnDblClick = {read=FOnDblClick, write=FOnDblClick};
  318. __property TfcDBTreeMouseEvent OnMouseDown = {read=FOnMouseDown, write=FOnMouseDown};
  319. __property TfcDBTreeMouseMoveEvent OnMouseMove = {read=FOnMouseMove, write=FOnMouseMove};
  320. __property TfcDBTreeMouseEvent OnMouseUp = {read=FOnMouseUp, write=FOnMouseUp};
  321. __property TfcDBTreeDrawTextEvent OnDrawText = {read=FOnDrawText, write=FOnDrawText};
  322. __property Fctreeheader::TfcTreeHeader* Header = {read=FHeader, write=SetHeader};
  323. __property bool HideUpDownButtons = {read=FHideUpDownButtons, write=SetHideUpDownButtons, default=0};
  324. __property bool DisableThemes = {read=FDisableThemes, write=FDisableThemes, default=0};
  325. public:
  326. #pragma option push -w-inl
  327. /* TWinControl.CreateParented */ inline __fastcall TfcDBCustomTreeView(HWND ParentWindow) : Controls::TWinControl(ParentWindow) { }
  328. #pragma option pop
  329. };
  330. class PASCALIMPLEMENTATION TfcTreeDataLink : public Db::TDataLink 
  331. {
  332. typedef Db::TDataLink inherited;
  333. private:
  334. TfcDBCustomTreeView* FTree;
  335. protected:
  336. virtual void __fastcall DataSetChanged(void);
  337. virtual void __fastcall DataSetScrolled(int Distance);
  338. virtual void __fastcall ActiveChanged(void);
  339. virtual void __fastcall RecordChanged(Db::TField* Field);
  340. public:
  341. __fastcall TfcTreeDataLink(TfcDBCustomTreeView* ATree);
  342. __fastcall virtual ~TfcTreeDataLink(void);
  343. };
  344. class PASCALIMPLEMENTATION TfcMultiSelectItem : public System::TObject 
  345. {
  346. typedef System::TObject inherited;
  347. public:
  348. void *Bookmark;
  349. Db::TDataSet* DataSet;
  350. public:
  351. #pragma option push -w-inl
  352. /* TObject.Create */ inline __fastcall TfcMultiSelectItem(void) : System::TObject() { }
  353. #pragma option pop
  354. #pragma option push -w-inl
  355. /* TObject.Destroy */ inline __fastcall virtual ~TfcMultiSelectItem(void) { }
  356. #pragma option pop
  357. };
  358. class PASCALIMPLEMENTATION TfcDBTreeNode : public System::TObject 
  359. {
  360. typedef System::TObject inherited;
  361. protected:
  362. bool HasPrevSibling;
  363. bool HasNextSibling;
  364. public:
  365. int ActiveRecord;
  366. TfcTreeDataLink* DataLink;
  367. AnsiString Text;
  368. int Level;
  369. Db::TDataSet* DataSet;
  370. Db::TField* Field;
  371. bool Expanded;
  372. bool HasChildren;
  373. TfcDBTreeNode* Parent;
  374. int ImageIndex;
  375. int StateIndex;
  376. bool Selected;
  377. bool Hot;
  378. bool MultiSelected;
  379. Variant __fastcall GetFieldValue(AnsiString FieldName);
  380. public:
  381. #pragma option push -w-inl
  382. /* TObject.Create */ inline __fastcall TfcDBTreeNode(void) : System::TObject() { }
  383. #pragma option pop
  384. #pragma option push -w-inl
  385. /* TObject.Destroy */ inline __fastcall virtual ~TfcDBTreeNode(void) { }
  386. #pragma option pop
  387. };
  388. class DELPHICLASS TfcDBTreeView;
  389. class PASCALIMPLEMENTATION TfcDBTreeView : public TfcDBCustomTreeView 
  390. {
  391. typedef TfcDBCustomTreeView inherited;
  392. __published:
  393. __property DisableThemes ;
  394. __property Align ;
  395. __property BorderStyle ;
  396. __property Color ;
  397. __property DragCursor ;
  398. __property DragMode ;
  399. __property Enabled ;
  400. __property Font ;
  401. __property ParentColor ;
  402. __property ParentFont ;
  403. __property ParentShowHint ;
  404. __property TabStop ;
  405. __property TabOrder ;
  406. __property Visible ;
  407. __property Header ;
  408. __property Anchors ;
  409. __property BiDiMode ;
  410. __property Constraints ;
  411. __property ParentBiDiMode ;
  412. __property DataSourceFirst ;
  413. __property DataSourceLast ;
  414. __property DataSources ;
  415. __property DisplayFields ;
  416. __property Imager ;
  417. __property InactiveFocusColor ;
  418. __property LineColor ;
  419. __property Options ;
  420. __property OnStartDock ;
  421. __property OnEndDock ;
  422. __property LevelIndent ;
  423. __property Images ;
  424. __property StateImages ;
  425. __property MultiSelectAttributes ;
  426. __property PopupMenu ;
  427. __property HideUpDownButtons ;
  428. __property OnCalcNodeAttributes ;
  429. __property OnCalcSectionAttributes ;
  430. __property OnDrawSection ;
  431. __property OnChange ;
  432. __property OnUserCollapse ;
  433. __property OnUserExpand ;
  434. __property OnEnter ;
  435. __property OnExit ;
  436. __property OnKeyDown ;
  437. __property OnKeyUp ;
  438. __property OnKeyPress ;
  439. __property OnDblClick ;
  440. __property OnMouseDown ;
  441. __property OnMouseMove ;
  442. __property OnMouseUp ;
  443. __property OnDragDrop ;
  444. __property OnDragOver ;
  445. __property OnEndDrag ;
  446. __property OnStartDrag ;
  447. __property OnDrawText ;
  448. public:
  449. #pragma option push -w-inl
  450. /* TfcDBCustomTreeView.Create */ inline __fastcall virtual TfcDBTreeView(Classes::TComponent* AOwner) : TfcDBCustomTreeView(AOwner) { }
  451. #pragma option pop
  452. #pragma option push -w-inl
  453. /* TfcDBCustomTreeView.Destroy */ inline __fastcall virtual ~TfcDBTreeView(void) { }
  454. #pragma option pop
  455. public:
  456. #pragma option push -w-inl
  457. /* TWinControl.CreateParented */ inline __fastcall TfcDBTreeView(HWND ParentWindow) : TfcDBCustomTreeView(ParentWindow) { }
  458. #pragma option pop
  459. };
  460. //-- var, const, procedure ---------------------------------------------------
  461. } /* namespace Fcdbtreeview */
  462. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  463. using namespace Fcdbtreeview;
  464. #endif
  465. #pragma option pop // -w-
  466. #pragma option pop // -Vx
  467. #pragma delphiheader end.
  468. //-- end unit ----------------------------------------------------------------
  469. #endif // fcdbtreeview