TreeViewClasses.h
上传用户:szb0815
上传日期:2007-06-13
资源大小:338k
文件大小:6k
源码类别:

生物技术

开发平台:

C++ Builder

  1. //---------------------------------------------------------------------------
  2. #ifndef TreeViewClassesH
  3. #define TreeViewClassesH
  4. //---------------------------------------------------------------------------
  5. class TGeneData : public TObject
  6. {
  7.     private:
  8.         double *fData;
  9.         bool *fMask;
  10.     public:
  11.         __fastcall TGeneData();
  12.         __fastcall TGeneData(int Columns);
  13.         __fastcall ~TGeneData();
  14.         AnsiString ID;
  15.         AnsiString Name;
  16.         AnsiString Note;
  17.         int Columns;
  18.          __property double * Data = {read=fData};
  19.          __property bool * Mask = {read=fMask};
  20. };
  21. class TGeneTreeNode : public TObject
  22. {
  23.         public:
  24.         __fastcall TGeneTreeNode();
  25.         __fastcall ~TGeneTreeNode();
  26.         bool IsNode;
  27.         TGeneTreeNode *Parent;
  28.         TGeneTreeNode *Child1;
  29.         TGeneTreeNode *Child2;
  30.         double Corr;
  31.         double Resist, Weight;
  32.         double MinCoor, MaxCoor;
  33.         TColor Color;
  34.         TGeneData *Data;
  35.         double XPoint, YPoint;
  36.         int Elements;
  37.         void __fastcall SetCoor();
  38.         void __fastcall SetResist();
  39.         void __fastcall SetWeight(double Current);
  40.         void __fastcall SetParent(TGeneTreeNode *pParent);
  41.         void __fastcall SetData();
  42.         void __fastcall SaveData(TStringList *FileList, double LowCut, double HighCut,
  43.              int MinElements, bool SaveChildren, bool SaveList);
  44.         void __fastcall GetList(TStringList *List);
  45.         void __fastcall Draw(TImage *Image, double Scale);
  46.         void __fastcall DrawPS(TStringList *PSFile, int ScaleX, int ScaleY, int StartYCoor);
  47.         TGeneTreeNode* __fastcall Dist(int X, int Y, double *Dist);
  48.         TGeneTreeNode* __fastcall Include(int X, int Y, bool *Includes);
  49.         void __fastcall Limits(double *mincoor, double *maxcoor);
  50.         void __fastcall HotSpots(TWinControl *Control);
  51.         void __fastcall OnClick(System::TObject* Sender, TMouseButton Button,
  52.                 Classes::TShiftState Shift, int X, int Y);
  53.         void __fastcall WriteList(double Cutoff);
  54.         void __fastcall GetIDs(TStringList *IDList);
  55.         void __fastcall AddNote(TStrings *NewNote);
  56.         TGeneTreeNode* __fastcall FindNode(AnsiString NodeName);
  57.         //void __fastcall Active(TObject *pNode);
  58.         double XCoor, YCoor;
  59.         
  60.         void __fastcall MakeBarcode(TImage *Image,int ScaleX, int ScaleY,
  61.             double Contrast, TColor PositiveColor, TColor ZeroColor, TColor NegativeColor,
  62.             TColor MissingColor);
  63. };
  64. class TArrayData : public TObject
  65. {
  66.     private:
  67.         //double *fData;
  68.         //bool *fMask;
  69.     public:
  70.         __fastcall TArrayData();
  71.         //__fastcall TArrayData(int Columns);
  72.         __fastcall ~TArrayData();
  73.         AnsiString ID;
  74.         AnsiString Name;
  75.          //__property double * Data = {read=fData};
  76.          //__property bool * Mask = {read=fMask};
  77. };
  78. class TArrayTreeNode : public TObject
  79. {
  80.         public:
  81.         __fastcall TArrayTreeNode();
  82.         __fastcall ~TArrayTreeNode();
  83.         bool IsNode;
  84.         TArrayTreeNode *Parent;
  85.         TArrayTreeNode *Child1;
  86.         TArrayTreeNode *Child2;
  87.         double Corr;
  88.         double MinCoor, MaxCoor;
  89.         TColor Color;
  90.         TArrayData *Data;
  91.         double XPoint, YPoint;
  92.         void __fastcall SetCoor();
  93.         void __fastcall SetParent(TArrayTreeNode *pParent);
  94.         void __fastcall Draw(TImage *Image, double Scale);
  95.         void __fastcall DrawPS(TStringList *PSFile, int ScaleX, int ScaleY, int XOrigin, int YOrigin);
  96.         TArrayTreeNode* __fastcall Dist(int X, int Y, double *Dist);
  97.         TArrayTreeNode* __fastcall Include(int X, int Y, bool *Includes);
  98.         void __fastcall Limits(double *mincoor, double *maxcoor);
  99.         void __fastcall HotSpots(TWinControl *Control);
  100.         void __fastcall OnClick(System::TObject* Sender, TMouseButton Button,
  101.                 Classes::TShiftState Shift, int X, int Y);
  102.         //void __fastcall Active(TObject *pNode);
  103.         double XCoor, YCoor;
  104.         double Weight;
  105. };
  106. class TGeneCluster : public TObject
  107. {
  108.     private:
  109.         TGeneTreeNode *FBestNode;
  110.     protected:
  111.     void __fastcall SetBestNode(TGeneTreeNode *NewBestNode)
  112.     {
  113.         FBestNode = NewBestNode;
  114.         FBestNode->Limits(&MinCoor,&MaxCoor);
  115.     }
  116.     public:
  117.         __fastcall TGeneCluster();
  118.         __fastcall ~TGeneCluster();
  119.         bool Loaded;
  120.         AnsiString *DataFile;
  121.         AnsiString *TreeFile;
  122.         TStringList *Arrays;
  123.         TStringList *Genes;
  124.         TStringList *Nodes;
  125.         TStringList *ArrayNodes;
  126.         TStringList *GeneNames;
  127.         TGeneTreeNode  *TopNode;
  128.         TArrayTreeNode *TopArrayNode;
  129.         //TGeneTreeNode *ActiveNode;
  130.         __property TGeneTreeNode *BestNode = {read=FBestNode,write=SetBestNode};
  131.         Graphics::TBitmap *Bitmap;
  132.         int Rows, Columns;
  133.         AnsiString UniqueID;
  134.         double BestDist;
  135.         double MinCoor, MaxCoor;
  136.         long * ListIndex;
  137.         //void __fastcall Active(TObject *pNode);
  138.         double __fastcall Load(AnsiString DataFile);
  139.         void __fastcall Dist(int X, int Y);
  140.         void __fastcall Include(int X, int Y);
  141.         void __fastcall MakeThumbnail(TImage *Image, double ScaleX,
  142.             double ScaleY, double Contrast, double MaskVal,
  143.             TColor PositiveColor, TColor ZeroColor, TColor NegativeColor,
  144.             TColor MissingColor);
  145. };
  146. #endif