The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



Interface of SDL_ChemGrph


const
  vaNormal = $00;
  vaBold   = $01;
  vaInvert = $02;
  vaItalic = $04;
{$IFDEF PAIDVERS}
  SDLVersionInfo = 'chemgrph_r1200_full';
  IsLightEd = false;
{$ELSE}
  SDLVersionInfo = 'chemgrph_r1200_lighted';
  IsLightEd = true;
{$ENDIF}
  Release = 1200;


type
  TDirection = (diLeft, diTop, diRight, diBottom);
  TCGDispMode = (dmSkeleton, dmHeteroOnly, dmAllAtoms, dmNumbers);
                                        { event for mouse pos. in chart coords }
  TMoveOverStructEvent = procedure (Sender: TObject; ClosestAtom: integer;
                                    Dist: double; Shift: TShiftState;
                                    rMousePosX, rMousePosY: double) of object;

  TChemGraph = class (TGraphicControl)
              private
                FColorBakG    : TColor;
                FMolColor     : TColor;                   { color of structure }
                FColBlackLine : TColor;             { colors to draw the frame }
                FColGrayLine  : TColor;                       { -"- }
                FColWhiteLine : TColor;                       { -"- }
                FColorScheme  : TColorScheme;         { color scheme of frames }
                FTransForm    : array[0..2] of double; { 0 = k, 1 = dx, 2 = dy }
                FMaxBondLeng  : integer; {max. bond length on screen (in pixel)}
                FOnMMvInChart : TMoveOverStructEvent;
                FFrameStyle   : TFrameStyle;
                FClipBounds   : array[diLeft..diBottom] of integer;
                FDispMode     : TCGDispMode;
                FSuppressPaint: boolean;
                FDrawAsIs     : boolean;
                function  ConstructElemSymb (AtIx: integer;
                             var ESymb: string): integer;
                procedure DrawMolRaw (DispMode: TCGDispMode; TrafoK, TrafoDx,
                             TrafoDy: double; Clip: boolean; CV: TCanvas);
                procedure DrawConnections (AtIx: integer; HighOnly: boolean;
                             DisplayMode: TCGDispMode; TrafoK, TrafoDx,
                             TrafoDy: double; Clip: boolean; CV: TCanvas);
                procedure DispElemSymb (AtIx: integer; DispMode: TCGDispMode;
                             TrafoK, TrafoDx, TrafoDy: double;
                             Clip: boolean; CV: TCanvas);
                function  GetClipBoundary (ix: TDirection): integer;
                function  GetAtColor(AtIx: integer): TColor;
                function  GetVisAttrib (AtIx: integer): byte;
                procedure SetClipBoundary (ix: TDirection; ClipVal: integer);
                procedure SetColorBakG (Value: TColor);
                procedure SetColorScheme (Value: TColorScheme);
                procedure SetAtColor (AtIx: integer; value: TColor);
                procedure SetDispMode (value: TCGDispMode);
                procedure SetFrameStyle (value: TFrameStyle);
                procedure SetMaxbondleng (value: integer);
                procedure SetMolColor (value: TColor);
                procedure SetSuppressPaint (supp: boolean);
                procedure SetDrawAsIs (x: boolean);
                procedure SetVisAttrib (AtIx: integer; value: byte);
                procedure StructureHasChanged (Sender: TObject);
{$IFNDEF ISCLX}
                procedure WMMoveOverStruct(var Message: TWMMouse);
                             message WM_MOUSEMOVE;
{$ENDIF}
              protected
                procedure  Paint; override;
                procedure MoveOverStruct (ClosestAtom: integer; Dist: double;
                             Shift: TShiftState; RMousePosX, RMousePosY: double);
              public
                Structure   : TCtab;                        { connection table }
                constructor Create(AOwner: TComponent); override;
                destructor  Destroy; override;
                property  AtColor[AtIx: integer]: TColor
                             read GetAtColor write SetAtColor;
                property  AtVisAttrib[AtIx: integer]: byte
                             read GetVisAttrib write SetVisAttrib;
                property  ClipBoundary [ix: TDirection]: integer
                             read GetClipBoundary write SetClipBoundary;
                property  DrawUnscaled: boolean read FDrawAsIs write SetDrawAsIs;
                function  FindChainNexttoCursor (x,y: single;
                              var ChainAtoms: AtListType): integer;
                procedure FindRingNextToCursor (x,y: single;
                              var Ring: RingType);
                procedure OptimizeMolShape (IdealDist: integer);
                procedure ShowMoleculeInABox (Canvas: TCanvas; DispMode: TCGDispMode;
                              llx,lly,urx,ury: integer; MaxBondLeng: integer);
                property  SuppressPaint: boolean
                              read FSuppressPaint write SetSuppressPaint;
              published
                property Align;
                property ColorBkg: TColor read FColorBakg write SetColorBakG;
                property ColorScheme: TColorScheme
                            read FColorScheme write SetColorScheme;
                property ColorStructure: TColor read FMolColor write SetMolColor;
                property DisplayMode: TCGDispMode read FDispMode write SetDispMode;
                property Font;
                property FrameStyle: TFrameStyle
                            read FFrameStyle write SetFrameStyle;
                property MaxBondLeng: integer
                            read FMaxBondLeng write SetMaxBondleng;
                property ParentFont;
                property ParentShowHint;
                property PopupMenu;
                property ShowHint;
{$IFDEF GE_LEV17}
(**)              property StyleElements;
{$ENDIF}
                property Visible;
                property OnClick;
                property OnDblClick;
                property OnMouseMove;
                property OnMouseDown;
                property OnMouseUp;
                property OnMoveOverStruct: TMoveOverStructEvent
                            read FOnMMvInChart write FOnMMvInChart;
              end;





Last Update: 2023-Feb-06