diff --git a/components/chemtext/demo/chemdemo/testchem.lfm b/components/chemtext/demo/chemdemo/testchem.lfm index c879d568f..a09437a28 100644 --- a/components/chemtext/demo/chemdemo/testchem.lfm +++ b/components/chemtext/demo/chemdemo/testchem.lfm @@ -117,7 +117,7 @@ object Form1: TForm1 object Edit1: TEdit Left = 32 Height = 26 - Top = 168 + Top = 184 Width = 329 OnChange = Edit1Change TabOrder = 0 @@ -126,7 +126,7 @@ object Form1: TForm1 object ChemLabel4: TChemLabel Left = 32 Height = 36 - Top = 208 + Top = 224 Width = 131 Arrow = caUTF8Single Caption = '(CH3)3COH' @@ -136,4 +136,12 @@ object Form1: TForm1 ParentColor = False ParentFont = False end + object Label4: TLabel + Left = 32 + Height = 18 + Top = 162 + Width = 140 + Caption = 'Type a formula here:' + ParentColor = False + end end diff --git a/components/chemtext/demo/chemdemo/testchem.pas b/components/chemtext/demo/chemdemo/testchem.pas index e41400552..9afc2b345 100644 --- a/components/chemtext/demo/chemdemo/testchem.pas +++ b/components/chemtext/demo/chemdemo/testchem.pas @@ -11,6 +11,7 @@ type { TForm1 } TForm1 = class(TForm) + Label4: TLabel; Spacer: TBevel; ChemLabel1: TChemLabel; ChemLabel2: TChemLabel; diff --git a/components/chemtext/demo/grid_sample/project1.lpi b/components/chemtext/demo/grid_sample/project1.lpi new file mode 100644 index 000000000..ac3c170fa --- /dev/null +++ b/components/chemtext/demo/grid_sample/project1.lpi @@ -0,0 +1,84 @@ + + + + + + + + + + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <Icon Value="0"/> + </General> + <VersionInfo> + <StringTable ProductVersion=""/> + </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + </local> + </RunParams> + <RequiredPackages Count="2"> + <Item1> + <PackageName Value="laz_chemtext"/> + </Item1> + <Item2> + <PackageName Value="LCL"/> + </Item2> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="project1.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="Unit1"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="project1"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Debugging> + <UseExternalDbgSyms Value="True"/> + </Debugging> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/chemtext/demo/grid_sample/project1.lpr b/components/chemtext/demo/grid_sample/project1.lpr new file mode 100644 index 000000000..ced6d8255 --- /dev/null +++ b/components/chemtext/demo/grid_sample/project1.lpr @@ -0,0 +1,21 @@ +program project1; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, Unit1 + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/components/chemtext/demo/grid_sample/unit1.lfm b/components/chemtext/demo/grid_sample/unit1.lfm new file mode 100644 index 000000000..1fdfed133 --- /dev/null +++ b/components/chemtext/demo/grid_sample/unit1.lfm @@ -0,0 +1,78 @@ +object Form1: TForm1 + Left = 280 + Height = 240 + Top = 130 + Width = 687 + Caption = 'ChemText in StringGrid' + ClientHeight = 240 + ClientWidth = 687 + OnCreate = FormCreate + LCLVersion = '1.9.0.0' + object StringGrid1: TStringGrid + Left = 8 + Height = 224 + Top = 8 + Width = 671 + Align = alClient + AutoFillColumns = True + BorderSpacing.Around = 8 + ColCount = 4 + DefaultDrawing = False + TabOrder = 0 + OnDrawCell = StringGrid1DrawCell + ColWidths = ( + 32 + 211 + 211 + 213 + ) + Cells = ( + 15 + 1 + 0 + 'Substance' + 1 + 1 + 'Water (H2O)' + 1 + 2 + 'Ferric chloride (Fe3Cl)' + 1 + 3 + 'Ammonium nitrate (NH4NO3)' + 1 + 4 + 'Copper sulfate (CuSO4)' + 2 + 0 + 'Density (g/cm³)' + 2 + 1 + '1.0' + 2 + 2 + '2.9' + 2 + 3 + '1.72' + 2 + 4 + '3.6' + 3 + 0 + 'Molar mass (g/mole)' + 3 + 1 + '18.01528' + 3 + 2 + '162.2' + 3 + 3 + '80.043' + 3 + 4 + '159.609' + ) + end +end diff --git a/components/chemtext/demo/grid_sample/unit1.pas b/components/chemtext/demo/grid_sample/unit1.pas new file mode 100644 index 000000000..70c9eb6f2 --- /dev/null +++ b/components/chemtext/demo/grid_sample/unit1.pas @@ -0,0 +1,62 @@ +unit Unit1; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids, Types; + +type + + { TForm1 } + + TForm1 = class(TForm) + StringGrid1: TStringGrid; + procedure FormCreate(Sender: TObject); + procedure StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer; + aRect: TRect; aState: TGridDrawState); + private + + public + + end; + +var + Form1: TForm1; + +implementation + +{$R *.lfm} + +uses + chemtext; + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + StringGrid1.DefaultRowHeight := ChemTextHeight(StringGrid1.Canvas, 'H2') + 2*constCellpadding; +end; + +procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer; + aRect: TRect; aState: TGridDrawState); +var + X, Y: Integer; + txt: String; +begin + X := ARect.Left + constCellpadding; + Y := ARect.Top + constCellpadding; + txt := StringGrid1.Cells[ACol, ARow]; + + StringGrid1.Canvas.FillRect(ARect); + + case ACol of + 0 : if ARow > 0 then StringGrid1.Canvas.TextOut(X, Y, IntToStr(ARow)); + 1 : ChemTextOut(StringGrid1.Canvas, X, Y, txt) + else StringGrid1.Canvas.TextOut(X, Y, txt); + end; +end; + +end. +