home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 March / Chip_1999-03_cd.bin / zkuste / delphi / D12 / MRO.ZIP / MROUNIT1.PAS < prev    next >
Pascal/Delphi Source File  |  1996-05-06  |  40KB  |  1,424 lines

  1. {*********************************************************}
  2. {*            MROUNIT1.PAS 2.00             *}
  3. {*     Copyright (c) Tamarack Associates 1995, 1996.     *}
  4. {*           All rights reserved.          *}
  5. {*********************************************************}
  6.  
  7. {$I TADBMRO.INC}
  8.  
  9.  
  10. unit MROUnit1;
  11.  
  12. interface
  13.  
  14. uses
  15.   {$IFDEF WIN32}
  16.   Windows,
  17.   {$ELSE}
  18.   WinTypes,
  19.   {$ENDIF}
  20.   SysUtils, Messages, Classes, Graphics, Controls,
  21.   Forms, Dialogs, DB, StdCtrls, Mask, ExtCtrls, DBTables,
  22.   Grids, DBGrids, DBCtrls, Tabs,
  23.   {$IFDEF UseInfoPower}
  24.   wwTable, wwDatSrc, wwDBIGrd, wwDBGrid, wwDBComb,
  25.   {$ENDIF}
  26.   {$IFDEF UseTwwDBLookupCombo}
  27.   wwDBLook,
  28.   {$ENDIF}
  29.   {$IFDEF UseTwwDBLookupComboDlg}
  30.   wwDBDlg,
  31.   {$ENDIF}
  32.   {$IFDEF UseTDBComboBoxPlus}
  33.   Dblup1b,
  34.   {$ENDIF}
  35.   {$IFDEF UseTDBLookupComboPlus}
  36.   Dblup2,
  37.   {$ENDIF}
  38.   DBLookup,
  39.   {$IFDEF UseOrpheus}
  40.   OvcPB, OvcNF, OvcDbNf, OvcBase, OvcEF, OvcSF,
  41.   OvcDbSf, OvcPF, OvcDbPf, OvcCaret,
  42.   {$ENDIF}
  43.   taDBMRO;
  44. type
  45.   TForm1 = class(TForm)
  46.     TabSet1: TTabSet;
  47.     Notebook1: TNotebook;
  48.     FontDialog1: TFontDialog;
  49.     ColorDialog1: TColorDialog;
  50.  
  51.     {* Introduction *}
  52.     IntroPanel: TPanel;
  53.     IntroMemo: TMemo;
  54.     IntroTAPanel: TPanel;
  55.      IntroTALabel1: TLabel;
  56.      IntroTALabel2: TLabel;
  57.      IntroTALabel3: TLabel;
  58.  
  59.     {* Main Demo *}
  60.     MainMRO: TtaDBMRO;
  61.     MainDBNavigator: TDBNavigator;
  62.     MainRecordPanel: TPanel;
  63.      DBEdit1: TDBEdit;
  64.      DBEdit2: TDBEdit;
  65.      DBEdit3: TDBEdit;
  66.      DBEdit4: TDBEdit;
  67.      DBEdit5: TDBEdit;
  68.      DBEdit6: TDBEdit;
  69.      DBEdit7: TDBEdit;
  70.      DBEdit8: TDBEdit;
  71.      DBEdit9: TDBEdit;
  72.      DBEdit10: TDBEdit;
  73.      DBEdit11: TDBEdit;
  74.      DBText1: TDBText;
  75.      MainRecordLabel: TLabel;
  76.      MainRecordBevel: TBevel;
  77.      MainRecordGroupBox: TGroupBox;
  78.     MainTitlePanel: TPanel;
  79.      TitleLabel1: TLabel;
  80.      TitleLabel2: TLabel;
  81.      TitleLabel3: TLabel;
  82.      TitleLabel4: TLabel;
  83.      TitleLabel6: TLabel;
  84.      TitleLabel5: TLabel;
  85.      TitleLabel7: TLabel;
  86.      TitleLabel8: TLabel;
  87.      TitleLabel9: TLabel;
  88.      TitleLabel10: TLabel;
  89.      TitleLabel11: TLabel;
  90.     MainTAPanel: TPanel;
  91.      MainTALabel1: TLabel;
  92.      MainTALabel2: TLabel;
  93.      MainTALabel3: TLabel;
  94.     MainOptionsGroupBox: TGroupBox;
  95.      BorderStyleCheckBox: TCheckBox;
  96.      IndicatorCheckBox: TCheckBox;
  97.      RowLinesCheckBox: TCheckBox;
  98.      OnDrawBackgroundCheckBox: TCheckBox;
  99.      MROColorCheckBox: TCheckBox;
  100.      TitlesCheckBox: TCheckBox;
  101.      AutoHeightCheckBox: TCheckBox;
  102.      AutoWidthCheckBox: TCheckBox;
  103.      TabCheckBox: TCheckBox;
  104.      UseColorCheckBox: TCheckBox;
  105.      UseFontCheckBox: TCheckBox;
  106.  
  107.     {* Box Demo *}
  108.     BoxMRO: TtaDBMRO;
  109.     BoxRecordPanel: TPanel;
  110.      OrderNoLabel: TLabel;
  111.      OrderNoDBEdit: TDBEdit;
  112.      CompanyLabel: TLabel;
  113.      DBLookupCombo1: TDBLookupCombo;
  114.      TermsLabel: TLabel;
  115.      DBComboBox1: TDBComboBox;
  116.      DBCheckBox1: TDBCheckBox;
  117.      EmployeeLabel: TLabel;
  118.      DBLookupList1: TDBLookupList;
  119.      PaymentLabel: TLabel;
  120.      DBListBox1: TDBListBox;
  121.      DBRadioGroup1: TDBRadioGroup;
  122.     xdAllGroupBox: TGroupBox;
  123.     xdCtl3dCheckBox: TCheckBox;
  124.      xdEnabledCheckBox: TCheckBox;
  125.      xdColorBtn: TButton;
  126.      xdFontBtn: TButton;
  127.     xdLabelGroupBox: TGroupBox;
  128.      xdLabelJustifyComboBox: TComboBox;
  129.      xdLabelTransparentCheckBox: TCheckBox;
  130.      xdLabelAccelCharCheckBox2: TCheckBox;
  131.     xdPanelGroupBox: TGroupBox;
  132.      xdPanelComboBox: TComboBox;
  133.      xdPanelLabel: TLabel;
  134.      xdBevelInnerComboBox: TComboBox;
  135.      xdPanelLabel2: TLabel;
  136.      xdBevelOuterComboBox: TComboBox;
  137.      xdPanelLabel3: TLabel;
  138.      xdPanelScrollBar1: TScrollBar;
  139.      xdPanelLabel4: TLabel;
  140.      xdPanelScrollBar2: TScrollBar;
  141.     xdEditGroupBox: TGroupBox;
  142.      xdLookupListLabel: TLabel;
  143.      xdEditBorderStyleComboBox: TComboBox;
  144.     BlobMRO: TtaDBMRO;
  145.     BlobRecordPanel: TPanel;
  146.      SpeciesDBEdit: TDBEdit;
  147.      CommonNameDBText: TDBText;
  148.      DBMemo1: TDBMemo;
  149.      DBImage1: TDBImage;
  150.     bdAllGroupBox: TGroupBox;
  151.     bdCtl3DCheckBox: TCheckBox;
  152.      bdBorderStyleComboBox: TComboBox;
  153.      bdFontBtn: TButton;
  154.      bdColorBtn: TButton;
  155.     bdEditGroupBox: TGroupBox;
  156.     bdEditAlignComboBox: TComboBox;
  157.     bdTextGroupBox: TGroupBox;
  158.     bdTextTransparentCheckBox: TCheckBox;
  159.     bdMemoGroupBox: TGroupBox;
  160.     bdMemoAutoDisplayCheckBox: TCheckBox;
  161.     bdMemoWordWrapCheckBox: TCheckBox;
  162.     bdMemoAlignComboBox: TComboBox;
  163.     bdMemoScrollBarComboBox: TComboBox;
  164.     bdImageGroupBox: TGroupBox;
  165.     bdImageAutoDisplayCheckBox: TCheckBox;
  166.     bdImageStretchCheckBox: TCheckBox;
  167.  
  168.     {* Third Party *}
  169.     ThirdMRO: TtaDBMRO;
  170.     tpAllControlsGroupBox: TGroupBox;
  171.      tpCtl3DCheckBox: TCheckBox;
  172.      tpEnabledCheckBox: TCheckBox;
  173.      tpBorderStyleComboBox: TComboBox;
  174.      tpColorBtn: TButton;
  175.      tpFontBtn: TButton;
  176.     tpCombosGroupBox: TGroupBox;
  177.      tpHideButtonCheckBox: TCheckBox;
  178.     ThirdPanel: TPanel;
  179.      {* InfoPower *}
  180.      InfoPowerGroupBox: TGroupBox;
  181.       wwLabel1: TLabel;
  182.       wwLabel2: TLabel;
  183.  
  184.      {* Out & About Productions *}
  185.      OutAboutGroupBox: TGroupBox;
  186.       PlusLabel1: TLabel;
  187.       PlusLabel2: TLabel;
  188.  
  189.      {* Orpheus Controls *}
  190.      OrpheusGroupBox: TGroupBox;
  191.       OvcLabel1: TLabel;
  192.       OvcLabel2: TLabel;
  193.       OvcLabel3: TLabel;
  194.  
  195.     {* Data Access Controls *}
  196.     CustomerDataSource: TDataSource;
  197.     CustomerTable: TTable;
  198.     OrdersDataSource: TDataSource;
  199.     OrdersTable: TTable;
  200.     BioLifeDataSource: TDataSource;
  201.     BioLifeTable: TTable;
  202.     EmployeeDataSource: TDataSource;
  203.     EmployeeTable: TTable;
  204.  
  205.     CustomerTableCustNo: TFloatField;
  206.     CustomerTableCompany: TStringField;
  207.     CustomerTableAddr1: TStringField;
  208.     CustomerTableAddr2: TStringField;
  209.     CustomerTableCity: TStringField;
  210.     CustomerTableState: TStringField;
  211.     CustomerTableZip: TStringField;
  212.     CustomerTableCountry: TStringField;
  213.     CustomerTablePhone: TStringField;
  214.     CustomerTableFAX: TStringField;
  215.     CustomerTableTaxRate: TFloatField;
  216.     CustomerTableContact: TStringField;
  217.     CustomerTableLastInvoiceDate: TDateTimeField;
  218.  
  219.     BioLifeTableCommon_Name: TStringField;
  220.     BioLifeTableSpeciesName: TStringField;
  221.     BioLifeTableNotes: TMemoField;
  222.     BioLifeTableGraphic: TGraphicField;
  223.  
  224.     OrdersTableOrderNo: TFloatField;
  225.     OrdersTableCustNo: TFloatField;
  226.     OrdersTableSaleDate: TDateTimeField;
  227.     OrdersTableShipDate: TDateTimeField;
  228.     OrdersTableEmpNo: TIntegerField;
  229.     OrdersTableShipVIA: TStringField;
  230.     OrdersTableTerms: TStringField;
  231.     OrdersTablePaymentMethod: TStringField;
  232.     OrdersTableShipToContact: TStringField;
  233.     OrdersTableAmountPaid: TCurrencyField;
  234.  
  235.     EmployeeTableEmpNo: TIntegerField;
  236.     EmployeeTableLastName: TStringField;
  237.     xdCheckBoxGroupBox: TGroupBox;
  238.     xdCheckBoxJustifyComboBox1: TComboBox;
  239.     InfoCheckBox: TCheckBox;
  240.     procedure Notebook1PageChanged(Sender: TObject);
  241.     procedure TabSet1Change(Sender: TObject; NewTab: Integer;
  242.       var AllowChange: Boolean);
  243.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  244.       Shift: TShiftState);
  245.     procedure DBEdit1Exit(Sender: TObject);
  246.     procedure DBEdit11Exit(Sender: TObject);
  247.     procedure MainMRODrawBackground(Sender: TObject; Control: TControl;
  248.       const CellRect: TRect);
  249.  
  250.     procedure IndicatorCheckBoClick(Sender: TObject);
  251.     procedure RowLinesCheckBoxClick(Sender: TObject);
  252.     procedure OnDrawBackgroundCheckBoxClick(Sender: TObject);
  253.     procedure MROColorCheckBoxClick(Sender: TObject);
  254.     procedure TitlesCheckBoxClick(Sender: TObject);
  255.     procedure AutoWidthCheckBoxClick(Sender: TObject);
  256.     procedure AutoHeightCheckBoxClick(Sender: TObject);
  257.     procedure UseColorCheckBoxClick(Sender: TObject);
  258.     procedure UseFontCheckBoxClick(Sender: TObject);
  259.     procedure MainRecordPanelClick(Sender: TObject);
  260.  
  261.     procedure xdCtl3dCheckBoxClick(Sender: TObject);
  262.     procedure xdEnabledCheckBoxClick(Sender: TObject);
  263.     procedure xdColorBtnClick(Sender: TObject);
  264.     procedure xdFontBtnClick(Sender: TObject);
  265.     procedure xdEditBorderStyleComboBoxChange(Sender: TObject);
  266.     procedure xdLabelJustifyComboBoxChange(Sender: TObject);
  267.     procedure xdLabelTransparentCheckBoxClick(Sender: TObject);
  268.     procedure xdLabelAccelCharCheckBox2Click(Sender: TObject);
  269.     procedure xdPanelComboBoxChange(Sender: TObject);
  270.     procedure xdBevelInnerComboBoxChange(Sender: TObject);
  271.     procedure xdBevelOuterComboBoxChange(Sender: TObject);
  272.     procedure xdPanelScrollBar1Change(Sender: TObject);
  273.     procedure xdPanelScrollBar2Change(Sender: TObject);
  274.     procedure BlobRecordPanelClick(Sender: TObject);
  275.  
  276.     procedure bdCtl3DCheckBoxClick(Sender: TObject);
  277.     procedure bdBorderStyleComboBoxChange(Sender: TObject);
  278.     procedure bdFontBtnClick(Sender: TObject);
  279.     procedure bdColorBtnClick(Sender: TObject);
  280.     procedure bdEditAlignComboBoxChange(Sender: TObject);
  281.     procedure bdMemoAutoDisplayCheckBoxClick(Sender: TObject);
  282.     procedure bdMemoAlignComboBoxChange(Sender: TObject);
  283.     procedure bdMemoWordWrapCheckBoxClick(Sender: TObject);
  284.     procedure bdMemoScrollBarComboBoxChange(Sender: TObject);
  285.     procedure bdImageAutoDisplayCheckBoxClick(Sender: TObject);
  286.     procedure bdImageStretchCheckBoxClick(Sender: TObject);
  287.     procedure bdTextTransparentCheckBoxClick(Sender: TObject);
  288.     procedure BoxRecordPanelClick(Sender: TObject);
  289.  
  290.     procedure tpCtl3DCheckBoxClick(Sender: TObject);
  291.     procedure tpEnabledCheckBoxClick(Sender: TObject);
  292.     procedure tpBorderStyleComboBoxChange(Sender: TObject);
  293.     procedure tpColorBtnClick(Sender: TObject);
  294.     procedure xdCheckBoxJustifyComboBox1Change(Sender: TObject);
  295.     procedure BioLifeTableAfterInsert(DataSet: TDataset);
  296.     procedure BioLifeTableBeforePost(DataSet: TDataset);
  297.     procedure tpHideButtonCheckBoxClick(Sender: TObject);
  298.     procedure tpFontBtnClick(Sender: TObject);
  299.     procedure BorderStyleCheckBoxClick(Sender: TObject);
  300.     procedure FormCreate(Sender: TObject);
  301.   private
  302.     { Private declarations }
  303.     {$IFDEF UseTwwDBLookupCombo}
  304.     wwDBLookupCombo1: TwwDBCustomLookupCombo;
  305.     {$ENDIF}
  306.     {$IFDEF UseInfoPower}
  307.     wwDBComboBox1: TwwDBComboBox;
  308.     {$ENDIF}
  309.     {$IFDEF UseTOvcDBSimpleField}
  310.     OvcDbSimpleField1: TOvcDbSimpleField;
  311.     {$ENDIF}
  312.     {$IFDEF UseTOvcDBPictureField}
  313.     OvcDbPictureField1: TOvcDbPictureField;
  314.     {$ENDIF}
  315.     {$IFDEF UseTOvcDBNumericField}
  316.     OvcDbNumericField1: TOvcDbNumericField;
  317.     {$ENDIF}
  318.     {$IFDEF UseOrpheus}
  319.     OvcController1: TOvcController;
  320.     {$ENDIF}
  321.     {$IFDEF UseTDBLookupComboPlus}
  322.     DBLookupComboPlus1 : TDBLookupComboPlus;
  323.     {$ENDIF}
  324.     {$IFDEF UseTDBComboBoxPlus}
  325.     DBComboBoxPlus1 : TDBComboBoxPlus;
  326.     {$ENDIF}
  327.     {$IFDEF UseTDBLookupComboBox}
  328.     DBLookupComboBox1: TDBLookupComboBox;
  329.     {$ENDIF}
  330.     {$IFDEF UseTDBLookupListBox}
  331.     DBLookupListBox1: TDBLookupListBox;
  332.     {$ENDIF}
  333.     PROCEDURE WMParentNotify(VAR Msg : TWMParentNotify) ; MESSAGE WM_PARENTNOTIFY;
  334.   protected
  335.     { Protected declarations }
  336.     PROCEDURE ActiveChanged ; OVERRIDE;
  337.     PROCEDURE CreateThirdParty;
  338.     PROCEDURE FreeThirdParty;
  339.   public
  340.     { Public declarations }
  341.   end;
  342.  
  343. var
  344.   Form1: TForm1;
  345.  
  346. implementation
  347.  
  348. {$R *.DFM}
  349.  
  350.  
  351. FUNCTION CheckForTables : BOOLEAN;
  352. VAR     List : TStrings;
  353.  
  354.  PROCEDURE FindTable(T : STRING);
  355.  BEGIN
  356.   IF List.IndexOf(T) < 0 THEN
  357.    BEGIN
  358.     Result := FALSE;
  359.     MessageDlg('Table ' + T + ' not found',mtError,[mbOk],0)
  360.    END
  361.  END;
  362.  
  363. BEGIN
  364.  Result := FALSE;
  365.  List := TStringList.Create;
  366.  TRY
  367.   Session.GetAliasNames(List);
  368.   IF List.IndexOf('DBDEMOS') < 0 THEN
  369.    MessageDlg('Could not find alias DBDEMOS',mtError,[mbOk],0)
  370.   ELSE
  371.    BEGIN
  372.     Result := TRUE;
  373.     Session.GetTableNames('DBDEMOS','*.DB',FALSE,FALSE,List);
  374.     FindTable('CUSTOMER');
  375.     FindTable('ORDERS');
  376.     FindTable('EMPLOYEE');
  377.     FindTable('BIOLIFE')
  378.    END
  379.  FINALLY
  380.   List.Free
  381.  END
  382. END;
  383.  
  384. CONST iAutoDisplay : STRING = 'Autodisplay for the current record does not take'+
  385.                   ' affect until you move off the record';
  386.  
  387. PROCEDURE FYI(VAR S : STRING);
  388. BEGIN
  389.  IF (LENGTH(S) > 0) AND Form1.InfoCheckBox.Checked THEN
  390.   BEGIN
  391.    MessageDlg(S,mtInformation,[mbOk],0);
  392.    S := ''
  393.   END
  394. END;
  395.  
  396. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  397.   Shift: TShiftState);
  398. VAR F : TForm;
  399. begin
  400.  CASE Notebook1.PageIndex OF
  401.   1 : MainMRO.FormKeyDown(ActiveControl,Key,Shift);
  402.   2 : BoxMRO.FormKeyDownExt(ActiveControl,Key,Shift);
  403.   3 : BlobMRO.FormKeyDownExt(ActiveControl,Key,Shift);
  404.   4 : ThirdMRO.FormKeyDownExt(ActiveControl,Key,Shift);
  405.  END
  406. end;
  407.  
  408. {* Routine needed to implement Tabbing to next/prior record *}
  409.  
  410. PROCEDURE TForm1.WMParentNotify(VAR Msg : TWMParentNotify);
  411. BEGIN
  412.  MainMRO.MonitorFocus(Msg.Event);
  413.  INHERITED
  414. END;
  415.  
  416. {* Routine needed to implement Tabbing to next/prior record *}
  417.  
  418. PROCEDURE TForm1.ActiveChanged;
  419. BEGIN
  420.  MainMRO.MonitorFocus(WM_SETFOCUS);
  421.  {* The inherited routine is empty, so no real need to call it *}
  422.  INHERITED ActiveChanged
  423. END;
  424.  
  425. procedure TForm1.BorderStyleCheckBoxClick(Sender: TObject);
  426. begin
  427.  WITH Sender AS TCheckBox DO
  428.   WITH MainMRO DO
  429.    IF Checked THEN BorderStyle := bsSingle
  430.    ELSE BorderStyle := bsNone
  431. end;
  432.  
  433. procedure TForm1.IndicatorCheckBoClick(Sender: TObject);
  434. begin
  435.  WITH MainMRO DO
  436.   BEGIN
  437.    IF dgIndicator IN Options THEN
  438.     Options := Options - [dgIndicator]
  439.    ELSE
  440.     Options := Options + [dgIndicator]
  441.   END
  442. end;
  443.  
  444. procedure TForm1.RowLinesCheckBoxClick(Sender: TObject);
  445. begin
  446.  WITH MainMRO DO
  447.   IF dgRowLines IN Options THEN
  448.    Options := Options - [dgRowLines]
  449.   ELSE
  450.    Options := Options + [dgRowLines]
  451. end;
  452.  
  453. procedure TForm1.MainMRODrawBackground(Sender: TObject; Control: TControl;
  454.   const CellRect: TRect);
  455. begin
  456.  WITH MainMRO.Canvas DO
  457.   BEGIN
  458.    Brush.Color := clBtnFace;
  459.    FillRect(CellRect)
  460.   END
  461. end;
  462.  
  463. procedure TForm1.OnDrawBackgroundCheckBoxClick(Sender: TObject);
  464. begin
  465.  WITH MainMRO DO
  466.   BEGIN
  467.    IF (Sender AS TCheckBox).Checked THEN
  468.     OnDrawBackground := MainMRODrawBackground
  469.    ELSE OnDrawBackground := NIL;
  470.    Invalidate
  471.   END
  472. end;
  473.  
  474. procedure TForm1.TitlesCheckBoxClick(Sender: TObject);
  475. begin
  476.  WITH MainMRO DO
  477.   IF dgTitles IN Options THEN
  478.    Options := Options - [dgTitles]
  479.   ELSE
  480.    Options := Options + [dgTitles]
  481. end;
  482.  
  483. procedure TForm1.AutoHeightCheckBoxClick(Sender: TObject);
  484. begin
  485.  WITH MainMRO DO
  486.   BEGIN
  487.    AutoHeight := NOT AutoHeight;
  488.    IF NOT AutoHeight THEN Height := Height + 26
  489.   END
  490. end;
  491.  
  492. procedure TForm1.AutoWidthCheckBoxClick(Sender: TObject);
  493. begin
  494.  WITH MainMRO DO
  495.   BEGIN
  496.    AutoWidth := NOT AutoWidth;
  497.    IF NOT AutoWidth THEN Width := Width + 3
  498.   END
  499. end;
  500.  
  501. procedure TForm1.MROColorCheckBoxClick(Sender: TObject);
  502. begin
  503.  WITH MainMRO DO
  504.   IF Color = RecordPanel.Color THEN Color := clAqua
  505.   ELSE Color := RecordPanel.Color
  506. end;
  507.  
  508. procedure TForm1.UseColorCheckBoxClick(Sender: TObject);
  509. begin
  510.  WITH MainMRO DO
  511.   UseColor := NOT UseColor;
  512. end;
  513.  
  514. procedure TForm1.UseFontCheckBoxClick(Sender: TObject);
  515. begin
  516.  WITH MainMRO DO
  517.   UseFont := NOT UseFont
  518. end;
  519.  
  520. procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
  521.   var AllowChange: Boolean);
  522. begin
  523.  AllowChange := TRUE;
  524.  Notebook1.PageIndex := NewTab
  525. end;
  526.  
  527. {* Routine needed to implement Tabbing to next/prior record *}
  528.  
  529. procedure TForm1.DBEdit1Exit(Sender: TObject);
  530. begin
  531.  IF TabCheckBox.Checked THEN
  532.   MainMRO.FieldOnExit(ActiveControl,UseFontCheckBox,DBEdit11,FALSE)
  533. end;
  534.  
  535. {* Routine needed to implement Tabbing to next/prior record *}
  536.  
  537. procedure TForm1.DBEdit11Exit(Sender: TObject);
  538. begin
  539.  IF TabCheckBox.Checked THEN
  540.   MainMRO.FieldOnExit(ActiveControl,BorderStyleCheckBox,DBEdit1,TRUE)
  541. end;
  542.  
  543. procedure TForm1.MainRecordPanelClick(Sender: TObject);
  544. begin
  545.  IF DBEdit1.Enabled THEN DBEdit1.SetFocus
  546. end;
  547.  
  548. procedure TForm1.bdMemoAutoDisplayCheckBoxClick(Sender: TObject);
  549. begin
  550.  WITH DBMemo1 DO
  551.   AutoDisplay := NOT AutoDisplay;
  552.  BlobMRO.Invalidate;
  553.  FYI(iAutoDisplay)
  554. end;
  555.  
  556. procedure TForm1.bdImageAutoDisplayCheckBoxClick(Sender: TObject);
  557. begin
  558.  WITH DBImage1 DO
  559.   AutoDisplay := NOT AutoDisplay;
  560.  BlobMRO.Invalidate;
  561.  FYI(iAutoDisplay)
  562. end;
  563.  
  564. procedure TForm1.bdCtl3DCheckBoxClick(Sender: TObject);
  565. begin
  566.  WITH Sender AS TCheckBox DO
  567.   BEGIN
  568.    BlobRecordPanel.Ctl3D := Checked;
  569.  { BlobMRO.Ctl3D := Checked }
  570.   END;
  571.  BlobMRO.Invalidate
  572. end;
  573.  
  574. procedure TForm1.bdImageStretchCheckBoxClick(Sender: TObject);
  575. begin
  576.  WITH DBImage1 DO Stretch := NOT Stretch;
  577.  BlobMRO.Invalidate
  578. end;
  579.  
  580. procedure TForm1.bdMemoAlignComboBoxChange(Sender: TObject);
  581. begin
  582.  WITH Sender AS TComboBox DO
  583.   DBMemo1.Alignment := TAlignment(ItemIndex);
  584.  BlobMRO.Invalidate
  585. end;
  586.  
  587. procedure TForm1.bdMemoScrollBarComboBoxChange(Sender: TObject);
  588. begin
  589.  WITH DBMemo1, Sender AS TComboBox DO
  590.   ScrollBars := TScrollStyle(ItemIndex);
  591.  BlobMRO.Invalidate
  592. end;
  593.  
  594. procedure TForm1.bdFontBtnClick(Sender: TObject);
  595. begin
  596.  WITH FontDialog1 DO
  597.   BEGIN
  598.    Font := BlobRecordPanel.Font;
  599.    IF Execute THEN BlobRecordPanel.Font := Font
  600.   END;
  601.  BlobMRO.Perform(CM_FontChanged,0,0);
  602.  BlobMRO.Invalidate
  603. end;
  604.  
  605. procedure TForm1.bdColorBtnClick(Sender: TObject);
  606. begin
  607.  WITH ColorDialog1 DO
  608.   BEGIN
  609.    Color := SpeciesDBEdit.Color;
  610.    IF Execute THEN
  611.     BEGIN
  612.      SpeciesDBEdit.Color := Color;
  613.     {CommonNameEdit.Color := Color;}
  614.      DBMemo1.Color := Color;
  615.      DBImage1.Color := Color
  616.     END
  617.   END;
  618.  BlobMRO.Invalidate
  619. end;
  620.  
  621. procedure TForm1.bdEditAlignComboBoxChange(Sender: TObject);
  622. begin
  623.  WITH Sender AS TComboBox DO
  624.   BEGIN
  625.    CommonNameDBText.Alignment         := TAlignment(ItemIndex);
  626.    BioLifeTableSpeciesName.Alignment := TAlignment(ItemIndex)
  627.   END;
  628.  BlobMRO.Invalidate
  629. end;
  630.  
  631. procedure TForm1.xdCtl3dCheckBoxClick(Sender: TObject);
  632. begin
  633.  WITH Sender AS TCheckBox DO
  634.   BEGIN
  635.    BoxRecordPanel.Ctl3D := Checked;
  636.  { BoxMRO.Ctl3D := Checked }
  637.   END;
  638.  BoxMRO.Invalidate
  639. end;
  640.  
  641. procedure TForm1.xdFontBtnClick(Sender: TObject);
  642. begin
  643.  WITH FontDialog1 DO
  644.   BEGIN
  645.    Font := BoxRecordPanel.Font;
  646.    IF Execute THEN BoxRecordPanel.Font := Font
  647.   END;
  648.  BoxMRO.Perform(CM_FontChanged,0,0);
  649.  BoxMRO.Invalidate
  650. end;
  651.  
  652. procedure TForm1.xdEditBorderStyleComboBoxChange(Sender: TObject);
  653. begin
  654.  WITH Sender AS TComboBox DO
  655.   BEGIN
  656.    OrderNoDBEdit.BorderStyle := TBorderStyle(ItemIndex);
  657.    DBListBox1.BorderStyle    := TBorderStyle(ItemIndex);
  658.    {$IFDEF UseTDBLookupListBox}
  659.    DBLookupListBox1.BorderStyle := TBorderStyle(ItemIndex);
  660.    {$ELSE}
  661.    DBLookupList1.BorderStyle := TBorderStyle(ItemIndex);
  662.    {$ENDIF}
  663.    BoxMRO.BorderStyle         := TBorderStyle(ItemIndex)
  664.   END;
  665. {BoxMRO.Invalidate}
  666. end;
  667.  
  668. procedure TForm1.xdColorBtnClick(Sender: TObject);
  669. begin
  670.  WITH ColorDialog1 DO
  671.   BEGIN
  672.    Options := [cdPreventFullOpen];
  673.    Color := OrderNoDBEdit.Color;
  674.    IF Execute THEN
  675.     BEGIN
  676.      OrderNoDBEdit.Color := Color;
  677.      {$IFDEF UseTDBLookupComboBox}
  678.      DBLookupComboBox1.Color := Color;
  679.      {$ELSE}
  680.      DBLookupCombo1.Color := Color;
  681.      {$ENDIF}
  682.      {$IFDEF UseTDBLookupListBox}
  683.      DBLookupListBox1.Color := Color;
  684.      {$ELSE}
  685.      DBLookupList1.Color := Color;
  686.      {$ENDIF}
  687.      DBComboBox1.Color := Color;
  688.      DBListBox1.Color := Color;
  689.      DBRadioGroup1.Color := Color
  690.     END
  691.   END;
  692.  BoxMRO.Invalidate
  693. end;
  694.  
  695. procedure TForm1.xdLabelJustifyComboBoxChange(Sender: TObject);
  696. begin
  697.  WITH Sender AS TComboBox DO
  698.  OrderNoLabel.Alignment  := TAlignment(ItemIndex);
  699.  CompanyLabel.Alignment  := OrderNoLabel.Alignment;
  700.  EmployeeLabel.Alignment := OrderNoLabel.Alignment;
  701.  TermsLabel.Alignment     := OrderNoLabel.Alignment;
  702.  PaymentLabel.Alignment  := OrderNoLabel.Alignment;
  703.  BoxMRO.Invalidate
  704. end;
  705.  
  706. procedure TForm1.xdPanelComboBoxChange(Sender: TObject);
  707. begin
  708.  BoxRecordPanel.BorderStyle := TBorderStyle((Sender AS TComboBox).ItemIndex);
  709.  BoxMRO.Invalidate
  710. end;
  711.  
  712. procedure TForm1.xdBevelInnerComboBoxChange(Sender: TObject);
  713. begin
  714.  BoxRecordPanel.BevelInner := TPanelBevel((Sender AS TComboBox).ItemIndex);
  715.  BoxMRO.Invalidate
  716. end;
  717.  
  718. procedure TForm1.xdBevelOuterComboBoxChange(Sender: TObject);
  719. begin
  720.  BoxRecordPanel.BevelOuter := TPanelBevel((Sender AS TComboBox).ItemIndex);
  721.  BoxMRO.Invalidate
  722. end;
  723.  
  724. procedure TForm1.xdPanelScrollBar1Change(Sender: TObject);
  725. begin
  726.  WITH Sender AS TScrollBar DO
  727.   BoxRecordPanel.BevelWidth := Position;
  728.  BoxMRO.Invalidate
  729. end;
  730.  
  731. procedure TForm1.xdPanelScrollBar2Change(Sender: TObject);
  732. begin
  733.  WITH Sender AS TScrollBar DO
  734.   BoxRecordPanel.BorderWidth := Position;
  735.  BoxMRO.Invalidate
  736. end;
  737.  
  738. procedure TForm1.xdEnabledCheckBoxClick(Sender: TObject);
  739. CONST iEnabled : STRING = 'Not all controls have a uniform appearance when not Enabled';
  740. begin
  741.  WITH Sender AS TCheckBox DO
  742.   BEGIN
  743.    OrderNoDBEdit.Enabled  := Checked;
  744.    {$IFDEF UseTDBLookupComboBox}
  745.    DBLookupComboBox1.Enabled := Checked;
  746.    {$ELSE}
  747.    DBLookupCombo1.Enabled := Checked;
  748.    {$ENDIF}
  749.    {$IFDEF UseTDBLookupListBox}
  750.    DBLookupListBox1.Enabled  := Checked;
  751.    {$ELSE}
  752.    DBLookupList1.Enabled  := Checked;
  753.    {$ENDIF}
  754.    DBComboBox1.Enabled      := Checked;
  755.    DBListBox1.Enabled      := Checked;
  756.    DBRadioGroup1.Enabled  := Checked;
  757.    DBCheckBox1.Enabled      := Checked;
  758.    OrderNoLabel.Enabled   := Checked;
  759.    CompanyLabel.Enabled   := Checked;
  760.    TermsLabel.Enabled      := Checked;
  761.    EmployeeLabel.Enabled  := Checked;
  762.    PaymentLabel.Enabled   := Checked
  763.   END;
  764.  BoxMRO.Invalidate;
  765.  FYI(iEnabled);
  766. end;
  767.  
  768. procedure TForm1.BoxRecordPanelClick(Sender: TObject);
  769. begin
  770.  IF OrderNoDBEdit.Enabled THEN OrderNoDBEdit.SetFocus
  771. end;
  772.  
  773. PROCEDURE TForm1.CreateThirdParty;
  774. VAR      Count : INTEGER;
  775. BEGIN
  776.  Count := 0;
  777.  {$IFDEF UseTwwDBLookupCombo}
  778.  wwDBLookupCombo1 := TwwDBLookupCombo.Create(Self);
  779.  WITH wwDBLookupCombo1 DO
  780.   BEGIN
  781.    Parent := InfoPowerGroupBox;
  782.    Hint := 'TwwDBLookupCombo';
  783.    Left := 8;
  784.    Top := 32;
  785.    Width := 145;
  786.    Height := 25;
  787.    DropDownAlignment := taLeftJustify;
  788.    Selected.Add('Company'#9'30'#9'Company');
  789.    DataField := 'CustNo';
  790.    DataSource := OrdersDataSource;
  791.    LookupTable := CustomerTable;
  792.    LookupField := 'CustNo';
  793.    TabOrder := Count;
  794.    AutoDropDown := False;
  795.    ShowButton := True;
  796.   END;
  797.  INC(Count);
  798.  {$ENDIF}
  799.  {$IFDEF UseInfoPower}
  800.  wwDBComboBox1 := TwwDBComboBox.Create(Self);
  801.  WITH wwDBComboBox1 DO
  802.   BEGIN
  803.    Parent := InfoPowerGroupBox;
  804.    Hint := 'TwwDBComboBox';
  805.    Left := 8;
  806.    Top := 80;
  807.    Width := 145;
  808.    Height := 25;
  809.    DataField := 'ShipVIA';
  810.    DataSource := OrdersDataSource;
  811.    ItemHeight := 16;
  812.    Items.Add('DHL');
  813.    Items.Add('Emery');
  814.    Items.Add('FedEx');
  815.    Items.Add('UPS');
  816.    Items.Add('US Mail');
  817.    TabOrder := Count;
  818.   END;
  819.  {$ENDIF}
  820.  {$IFDEF UseOrpheus}
  821.  OrdersTable.Close;
  822.  OvcController1 := TOvcController.Create(Self);
  823.  {$ENDIF}
  824.  Count := 0;
  825.  {$IFDEF UseTOvcDBSimpleField}
  826.  OvcDBSimpleField1 := TOvcDBSimpleField.Create(Self);
  827.  WITH OvcDBSimpleField1 DO
  828.   BEGIN
  829.    Parent := OrpheusGroupBox;
  830.    Hint := 'TOvcDBSimpleField';
  831.    Left := 8;
  832.    Top := 27;
  833.    Width := 129;
  834.    Height := 21;
  835.    Cursor := crIBeam;
  836.    DataField := 'ShipVIA';
  837.    DataSource := OrdersDataSource;
  838.    FieldType := ftString;
  839.    CaretOvr.Shape := csBlock;
  840.    Controller := OvcController1;
  841.    ErrorColors.BackColor := clRed;
  842.    ErrorColors.TextColor := clBlack;
  843.    Font.Color := clBlack;
  844.    Font.Height := -11;
  845.    Font.Name := 'Arial';
  846.    Font.Style := [];
  847.    HighlightColors.BackColor := clHighlight;
  848.    HighlightColors.TextColor := clHighlightText;
  849.    MaxLength := 7;
  850.    ParentFont := False;
  851.    TabOrder := Count;
  852.   END;
  853.   INC(Count);
  854.  {$ENDIF}
  855.  {$IFDEF UseTOvcDBPictureField}
  856.  OvcDBPictureField1 := TOvcDBPictureField.Create(Self);
  857.  WITH OvcDBPictureField1 DO
  858.   BEGIN
  859.    Parent := OrpheusGroupBox;
  860.    Hint := 'TOvcDBPictureField';
  861.    Left := 8;
  862.    Top := 65;
  863.    Width := 129;
  864.    Height := 21;
  865.    Cursor := crIBeam;
  866.    DataField := 'PaymentMethod';
  867.    DataSource := OrdersDataSource;
  868.    FieldType := ftString;
  869.    CaretOvr.Shape := csBlock;
  870.    Controller := OvcController1;
  871.    ErrorColors.BackColor := clRed;
  872.    ErrorColors.TextColor := clBlack;
  873.    Font.Color := clBlack;
  874.    Font.Height := -11;
  875.    Font.Name := 'Arial';
  876.    Font.Style := [];
  877.    HighlightColors.BackColor := clHighlight;
  878.    HighlightColors.TextColor := clHighlightText;
  879.    MaxLength := 10;
  880.    ParentFont := False;
  881.    PictureMask := '!!!!!!!!!!';
  882.    RightJustify := True;
  883.    TabOrder := Count;
  884.   END;
  885.  INC(Count);
  886.  {$ENDIF}
  887.  {$IFDEF UseTOvcDBNumericField}
  888.  OvcDBNumericField1 := TOvcDBNumericField.Create(Self);
  889.  WITH OvcDBNumericField1 DO
  890.   BEGIN
  891.    Parent := OrpheusGroupBox;
  892.    Hint := 'TOvcDBNumericField';
  893.    Left := 8;
  894.    Top := 102;
  895.    Width := 129;
  896.    Height := 21;
  897.    Cursor := crIBeam;
  898.    DataField := 'AmountPaid';
  899.    DataSource := OrdersDataSource;
  900.    FieldType := ftCurrency;
  901.    CaretOvr.Shape := csBlock;
  902.    Controller := OvcController1;
  903.    ErrorColors.BackColor := clRed;
  904.    ErrorColors.TextColor := clBlack;
  905.    Font.Color := clBlack;
  906.    Font.Height := -11;
  907.    Font.Name := 'Arial';
  908.    Font.Style := [];
  909.    HighlightColors.BackColor := clHighlight;
  910.    HighlightColors.TextColor := clHighlightText;
  911.    ParentFont := False;
  912.    PictureMask := '$###,###.##';
  913.    TabOrder := Count;
  914.   END;
  915.  {$ENDIF}
  916.  Count := 0;
  917.  {$IFDEF UseOrpheus}
  918.  OrdersTable.Open;
  919.  {$ENDIF}
  920.  {$IFDEF UseTDBLookupComboPlus}
  921.  DBLookupComboPlus1 := TDBLookupComboPlus.Create(Self);
  922.  WITH DBLookupComboPlus1 DO
  923.   BEGIN
  924.    Parent := OutAboutGroupBox;
  925.    Hint := 'TDBLookupComboPlus';
  926.    Left := 8;
  927.    Top := 32;
  928.    Width := 145;
  929.    Height := 25;
  930.    DataField := 'EmpNo';
  931.    DataSource := OrdersDataSource;
  932.    LookupSource := EmployeeDataSource;
  933.    LookupDisplay := 'LastName';
  934.    LookupField := 'EmpNo';
  935.    LookupIndex := 'byName';
  936.    ListColor := clWindow;
  937.    ListFont.Color := clWindowText;
  938.    ListFont.Height := -13;
  939.    ListFont.Name := 'System';
  940.    ListFont.Style := [];
  941.    ListCursor := crDefault;
  942.    ButtonCursor := crDefault;
  943.    Style := DBLUP2.csIncSearch;
  944.    TabOrder := Count;
  945.   END;
  946.  INC(Count);
  947.  {$ENDIF}
  948.  {$IFDEF UseTDBComboBoxPlus}
  949.  DBComboBoxPlus1 := TDBComboBoxPlus.Create(Self);
  950.  WITH DBComboBoxPlus1 DO
  951.   BEGIN
  952.    Parent := OutAboutGroupBox;
  953.    Hint := 'TDBComboBoxPlus';
  954.    Left := 8;
  955.    Top := 80;
  956.    Width := 145;
  957.    Height := 25;
  958.  { DropDownAlign := TLeftRight.Left; }
  959.    LookupActive := True;
  960.    ListColor := clWindow;
  961.    ListDefaultDrawing := True;
  962.    ListFont.Color := clWindowText;
  963.    ListFont.Height := -13;
  964.    ListFont.Name := 'System';
  965.    ListFont.Style := [];
  966.    TitleColor := clBtnFace;
  967.    DataField := 'ShipVIA';
  968.    DataSource := OrdersDataSource;
  969.    Style := DBLUP1A.csIncSearch;
  970.    TabOrder := Count;
  971.  
  972.    ClearGridData;
  973.    RowCount := 6;
  974.    ColCount := 2;
  975.    AddRow(['DHL'    ,'DHL Worldwide Express']);
  976.    AddRow(['Emery'  ,'Emery Worldwide']);
  977.    AddRow(['FedEx'  ,'Federal Express']);
  978.    AddRow(['UPS'    ,'United Parcel Service']);
  979.    AddRow(['US Mail','United States Mail']);
  980.    SizeGridToData
  981.   END
  982.  {$ENDIF}
  983. END;
  984.  
  985. PROCEDURE TForm1.FreeThirdParty;
  986. BEGIN
  987.  {$IFDEF UseTwwDBLookupCombo}
  988.  wwDBLookupCombo1.Free;
  989.  wwDBLookupCombo1 := NIL;
  990.  {$ENDIF}
  991.  {$IFDEF UseInfoPower}
  992.  wwDBComboBox1.Free;
  993.  wwDBComboBox1 := NIL;
  994.  {$ENDIF}
  995.  {$IFDEF UseTOvcDBSimpleField}
  996.  OvcDbSimpleField1.Free;
  997.  OvcDbSimpleField1 := NIL;
  998.  {$ENDIF}
  999.  {$IFDEF UseTOvcDBPictureField}
  1000.  OvcDbPictureField1.Free;
  1001.  OvcDbPictureField1 := NIL;
  1002.  {$ENDIF}
  1003.  {$IFDEF UseTOvcDBNumericField}
  1004.  OvcDbNumericField1.Free;
  1005.  OvcDbNumericField1 := NIL;
  1006.  {$ENDIF}
  1007.  {$IFDEF UseTDBLookupComboPlus}
  1008.  DBLookupComboPlus1.Free;
  1009.  DBLookupComboPlus1 := NIL;
  1010.  {$ENDIF}
  1011.  {$IFDEF UseTDBComboBoxPlus}
  1012.  DBComboBoxPlus1.Free;
  1013.  DBComboBoxPlus1 := NIL;
  1014.  {$ENDIF}
  1015. END;
  1016.  
  1017. procedure TForm1.bdBorderStyleComboBoxChange(Sender: TObject);
  1018. begin
  1019.  WITH Sender AS TComboBox DO
  1020.   BEGIN
  1021.    SpeciesDBEdit.BorderStyle := TBorderStyle(ItemIndex);
  1022.    DBMemo1.BorderStyle         := TBorderStyle(ItemIndex);
  1023.    DBImage1.BorderStyle      := TBorderStyle(ItemIndex);
  1024.    BlobMRO.BorderStyle         := TBorderStyle(ItemIndex)
  1025.   END;
  1026. {BlobMRO.Invalidate}
  1027. end;
  1028.  
  1029. procedure TForm1.xdLabelTransparentCheckBoxClick(Sender: TObject);
  1030. begin
  1031.  WITH Sender AS TCheckBox DO
  1032.   BEGIN
  1033.    OrderNoLabel.Transparent := Checked;
  1034.    CompanyLabel.Transparent := Checked;
  1035.    EmployeeLabel.Transparent:= Checked;
  1036.    TermsLabel.Transparent   := Checked;
  1037.    PaymentLabel.Transparent := Checked
  1038.   END;
  1039.  BoxMRO.Invalidate
  1040. end;
  1041.  
  1042. procedure TForm1.xdLabelAccelCharCheckBox2Click(Sender: TObject);
  1043. begin
  1044.  WITH Sender AS TCheckBox DO
  1045.   BEGIN
  1046.    OrderNoLabel.ShowAccelChar := Checked;
  1047.    CompanyLabel.ShowAccelChar := Checked;
  1048.    EmployeeLabel.ShowAccelChar:= Checked;
  1049.    TermsLabel.ShowAccelChar   := Checked;
  1050.    PaymentLabel.ShowAccelChar := Checked;
  1051.   END;
  1052.  BoxMRO.Invalidate
  1053. end;
  1054.  
  1055. procedure TForm1.bdMemoWordWrapCheckBoxClick(Sender: TObject);
  1056. begin
  1057.  DBMemo1.WordWrap := (Sender AS TCheckBox).Checked;
  1058.  BlobMRO.Invalidate
  1059. end;
  1060.  
  1061. procedure TForm1.bdTextTransparentCheckBoxClick(Sender: TObject);
  1062. begin
  1063.  CommonNameDBText.Transparent := (Sender AS TCheckBox).Checked;
  1064.  BlobMRO.Invalidate
  1065. end;
  1066.  
  1067. procedure TForm1.BlobRecordPanelClick(Sender: TObject);
  1068. begin
  1069.  IF SpeciesDBEdit.Enabled THEN SpeciesDBEdit.SetFocus
  1070. end;
  1071.  
  1072. {$IFDEF UseTwwDBLookupCombo}
  1073.  {$IFDEF UseTDBLookupComboPlus}
  1074.   {$IFDEF UseTDBComboBoxPlus}
  1075.    {$IFDEF UseTOvcDBSimpleField}
  1076.     {$IFDEF UseTOvcDBPictureField}
  1077.      {$IFDEF UseTOvcDBNumericField}
  1078.       {$DEFINE AllThirdParty}
  1079.      {$ENDIF}
  1080.     {$ENDIF}
  1081.    {$ENDIF}
  1082.   {$ENDIF}
  1083.  {$ENDIF}
  1084. {$ENDIF}
  1085.  
  1086. {$IFNDEF UseTwwDBLookupCombo}
  1087.  {$IFNDEF UseTDBLookupComboPlus}
  1088.   {$IFNDEF UseTDBComboBoxPlus}
  1089.    {$IFNDEF UseTOvcDBSimpleField}
  1090.     {$IFNDEF UseTOvcDBPictureField}
  1091.      {$IFNDEF UseTOvcDBNumericField}
  1092.       {$IFNDEF UseInfoPower}
  1093.        {$DEFINE NoThirdParty}
  1094.       {$ENDIF}
  1095.      {$ENDIF}
  1096.     {$ENDIF}
  1097.    {$ENDIF}
  1098.   {$ENDIF}
  1099.  {$ENDIF}
  1100. {$ENDIF}
  1101.  
  1102. procedure TForm1.Notebook1PageChanged(Sender: TObject);
  1103. CONST      iThird : STRING = 'Only those third party tools that are installed ' +
  1104.                 'will appear on the form';
  1105.       iSlow  : STRING = 'This page is created at run time, so it ' +
  1106.                 'draws a bit slowly when first viewed';
  1107.       iPlusNT: STRING = 'TDBLookupComboPlus mis-positions its drop down ' +
  1108.                 'button under WinNT when compiled under Delphi ' +
  1109.                 '2.0.  See README.2xx for more details';
  1110.  
  1111.  {$IFDEF WIN32}
  1112.  PROCEDURE SwapControls;
  1113.  BEGIN
  1114.   {$IFDEF UseTDBLookupComboBox}
  1115.   IF DBLookupComboBox1 = NIL THEN
  1116.    BEGIN
  1117.     DBLookupComboBox1 := TDBLookupComboBox.Create(Self);
  1118.     WITH DBLookupCombo1 DO
  1119.      BEGIN
  1120.       DBLookupComboBox1.Parent       := Parent;
  1121.       DBLookupComboBox1.Hint       := 'TDBLookupComboBox';
  1122.       DBLookupComboBox1.DataSource := DataSource;
  1123.       DBLookupComboBox1.DataField  := DataField;
  1124.       DBLookupComboBox1.ListSource := LookupSource;
  1125.       DBLookupComboBox1.ListField  := LookupDisplay;
  1126.       DBLookupComboBox1.KeyField   := LookupField;
  1127.       DBLookupComboBox1.Top       := Top;
  1128.       DBLookupComboBox1.Left       := Left;
  1129.       DBLookupComboBox1.Width       := Width;
  1130.       DBLookupComboBox1.Height       := Height;
  1131.       DBLookupComboBox1.Font       := Font;
  1132.       DBLookupComboBox1.TabOrder   := TabOrder;
  1133.      END;
  1134.     DBLookupCombo1.Free;
  1135.     DBLookupCombo1 := NIL
  1136.    END;
  1137.   {$ENDIF}
  1138.   {$IFDEF UseTDBLookupListBox}
  1139.   IF DBLookupListBox1 = NIL THEN
  1140.    BEGIN
  1141.     WITH xdLookupListLabel DO Caption := Caption + 'Box';
  1142.     DBLookupListBox1 := TDBLookupListBox.Create(Self);
  1143.     WITH DBLookupList1 DO
  1144.      BEGIN
  1145.       DBLookupListBox1.Parent      := Parent;
  1146.       DBLookupListBox1.Hint      := 'TDBLookupListBox';
  1147.       DBLookupListBox1.DataSource := DataSource;
  1148.       DBLookupListBox1.DataField  := DataField;
  1149.       DBLookupListBox1.ListSource := LookupSource;
  1150.       DBLookupListBox1.ListField  := LookupDisplay;
  1151.       DBLookupListBox1.KeyField   := LookupField;
  1152.       DBLookupListBox1.Top      := Top;
  1153.       DBLookupListBox1.Left      := Left;
  1154.       DBLookupListBox1.Width      := Width;
  1155.       DBLookupListBox1.Height      := Height;
  1156.       DBLookupListBox1.Font      := Font;
  1157.       DBLookupListBox1.TabOrder   := TabOrder;
  1158.      END;
  1159.     DBLookupList1.Free;
  1160.     DBLookupList1 := NIL
  1161.    END;
  1162.   {$ENDIF}
  1163.  END;
  1164. {$ENDIF}
  1165.  
  1166. begin
  1167.  {* Having so many controls share the same DataSources causes some odd    *}
  1168.  {* problems.  So we simply turn things off when they are not visible    *}
  1169.  MainMRO.DataSource  := NIL;
  1170.  BoxMRO.DataSource   := NIL;
  1171.  BlobMRO.DataSource  := NIL;
  1172.  ThirdMRO.DataSource := NIL;
  1173.  CustomerTable.IndexFieldNames := 'CustNo';
  1174.  {$IFDEF WIN32}
  1175.  SwapControls;
  1176.  {$ENDIF}
  1177.  {$IFDEF UseTDBLookupComboBox}
  1178.  DBLookupComboBox1.ListSource := NIL;
  1179.  {$ELSE}
  1180.  DBLookupCombo1.LookupSource := NIL;
  1181.  {$ENDIF}
  1182.  FreeThirdParty;
  1183.  WITH Sender AS TNotebook DO
  1184.   CASE PageIndex OF
  1185.    1 : MainMRO.DataSource := CustomerDataSource;
  1186.    2 : BEGIN
  1187.     BoxMRO.DataSource := OrdersDataSource;
  1188.     {$IFDEF UseTDBLookupComboBox}
  1189.     DBLookupComboBox1.ListSource := CustomerDataSource
  1190.     {$ELSE}
  1191.     DBLookupCombo1.LookupSource := CustomerDataSource
  1192.     {$ENDIF}
  1193.        END;
  1194.    3 : BlobMRO.DataSource := BioLifeDataSource;
  1195.    4 : BEGIN
  1196.     {$IFNDEF NoThirdParty}
  1197.     FYI(iSlow);
  1198.     CreateThirdParty;
  1199.     {$ENDIF}
  1200.     ThirdMRO.DataSource := OrdersDataSource;
  1201.     {$IFNDEF AllThirdParty}
  1202.     FYI(iThird);
  1203.     {$ENDIF}
  1204.     {$IFDEF UseTDBLookupComboPlus}
  1205.      {$IFDEF WIN32}
  1206.     IF NOT NewStyleControls THEN FYI(iPlusNT);
  1207.      {$ENDIF}
  1208.     {$ENDIF}
  1209.        END
  1210.   END
  1211. end;
  1212.  
  1213. procedure TForm1.tpCtl3DCheckBoxClick(Sender: TObject);
  1214. {$IFDEF UseTDBLookupComboPlus}
  1215. CONST iPlus : STRING = 'TDBLookupComboPlus can become blank when Ctl3D is ' +
  1216.                'toggled.  This is not a problem with taDBMRO.  See ' +
  1217.                'README.2xx for more details.';
  1218. {$ENDIF}
  1219. begin
  1220.  WITH Sender AS TCheckBox DO
  1221.   BEGIN
  1222.    {$IFDEF UseTDBLookupComboPlus}
  1223.     {$IFDEF WIN32}
  1224.    FYI(iPlus);
  1225.     {$ENDIF}
  1226.    {$ENDIF}
  1227.    ThirdPanel.Ctl3D := Checked;
  1228.  { ThirdMRO.Ctl3D := Checked }
  1229.   END;
  1230.  ThirdMRO.Invalidate
  1231. end;
  1232.  
  1233. procedure TForm1.tpEnabledCheckBoxClick(Sender: TObject);
  1234. begin
  1235.  WITH Sender AS TCheckBox DO
  1236.   BEGIN
  1237.    {$IFDEF UseTwwDBLookupComboPlus}
  1238.    wwDBLookupCombo1.Enabled := Checked;
  1239.    {$ENDIF}
  1240.    {$IFDEF UseInfoPower}
  1241.    wwDBComboBox1.Enabled := Checked;
  1242.    {$ENDIF}
  1243.    {$IFDEF UseTDBLookupComboPlus}
  1244.    DBLookupComboPlus1.Enabled := Checked;
  1245.    {$ENDIF}
  1246.    {$IFDEF UseTDBComboBoxPlus}
  1247.    DBComboBoxPlus1.Enabled    := Checked;
  1248.    {$ENDIF}
  1249.    {$IFDEF UseTOvcDBSimpleField}
  1250.    OvcDBSimpleField1.Enabled  := Checked;
  1251.    {$ENDIF}
  1252.    {$IFDEF UseTOvcDBPictureField}
  1253.    OvcDBPictureField1.Enabled := Checked;
  1254.    {$ENDIF}
  1255.    {$IFDEF UseTOvcDBNumericField}
  1256.    OvcDBNumericField1.Enabled := Checked;
  1257.    {$ENDIF}
  1258.   END;
  1259.  ThirdMRO.Invalidate
  1260. end;
  1261.  
  1262. procedure TForm1.tpBorderStyleComboBoxChange(Sender: TObject);
  1263. begin
  1264.  WITH Sender AS TComboBox DO
  1265.   BEGIN
  1266.    {$IFDEF UseTwwDBLookupCombo}
  1267.  { wwDBLookupCombo1.BorderStyle := TBorderStyle(ItemIndex); }
  1268.    {$ENDIF}
  1269.    {$IFDEF UseInfoPower}
  1270.  { wwDBComboBox1.BorderStyle := TBorderStyle(ItemIndex); }
  1271.    {$ENDIF}
  1272.    {$IFDEF UseTDBLookupComboPlus}
  1273.    DBLookupComboPlus1.BorderStyle := TBorderStyle(ItemIndex);
  1274.    {$ENDIF}
  1275.    {$IFDEF UseTDBComboBoxPlus}
  1276.    DBComboBoxPlus1.BorderStyle      := TBorderStyle(ItemIndex);
  1277.    {$ENDIF}
  1278.    {$IFDEF UseTOvcDBSimpleField}
  1279.    OvcDBSimpleField1.BorderStyle  := TBorderStyle(ItemIndex);
  1280.    {$ENDIF}
  1281.    {$IFDEF UseTOvcDBPictureField}
  1282.    OvcDBPictureField1.BorderStyle := TBorderStyle(ItemIndex);
  1283.    {$ENDIF}
  1284.    {$IFDEF UseTOvcDBNumericField}
  1285.    OvcDBNumericField1.BorderStyle := TBorderStyle(ItemIndex);
  1286.    {$ENDIF}
  1287.    ThirdMRO.BorderStyle       := TBorderStyle(ItemIndex)
  1288.   END;
  1289. {ThirdMRO.Invalidate}
  1290. end;
  1291.  
  1292. procedure TForm1.tpColorBtnClick(Sender: TObject);
  1293. begin
  1294. WITH ColorDialog1 DO
  1295.   BEGIN
  1296.    Options := [cdPreventFullOpen];
  1297.    Color   := clWindow;
  1298.    IF Execute THEN
  1299.     BEGIN
  1300.      {$IFDEF UseTwwDBLookupCombo}
  1301.      IF wwDBLookupCombo1 IS TwwDBLookupCombo THEN
  1302.       TwwDBLookupCombo(wwDBLookupCombo1).Color := Color;
  1303.      {$ENDIF}
  1304.      {$IFDEF UseTwwDBLookupComboDlg}
  1305.      IF wwDBLookupCombo1 IS TwwDBLookupComboDlg THEN
  1306.       TwwDBLookupComboDlg(wwDBLookupCombo1).Color := Color;
  1307.      {$ENDIF}
  1308.      {$IFDEF UseInfoPower}
  1309.      wwDBComboBox1.Color := Color;
  1310.      {$ENDIF}
  1311.      {$IFDEF UseTDBLookupComboPlus}
  1312.      DBLookupComboPlus1.Color := Color;
  1313.      {$ENDIF}
  1314.      {$IFDEF UseTDBComboBoxPlus}
  1315.      DBComboBoxPlus1.Color := Color;
  1316.      {$ENDIF}
  1317.      {$IFDEF UseTOvcDBSimpleField}
  1318.      OvcDBSimpleField1.Color := Color;
  1319.      {$ENDIF}
  1320.      {$IFDEF UseTOvcDBPictureField}
  1321.      OvcDBPictureField1.Color := Color;
  1322.      {$ENDIF}
  1323.      {$IFDEF UseTOvcDBNumericField}
  1324.      OvcDBNumericField1.Color := Color;
  1325.      {$ENDIF}
  1326.     END
  1327.   END;
  1328.  ThirdMRO.Invalidate
  1329. end;
  1330.  
  1331. procedure TForm1.xdCheckBoxJustifyComboBox1Change(Sender: TObject);
  1332. CONST iCheckBox : STRING = 'Checkbox left justification only valid when '+
  1333.                'when Ctl3D is False (Win 3.1x only)';
  1334. begin
  1335.  WITH Sender AS TComboBox DO
  1336.   BEGIN
  1337.    OrdersTableOrderNo.Alignment := TAlignment(ItemIndex);
  1338.    DBCheckBox1.Alignment    := TAlignment(ItemIndex)
  1339.   END;
  1340.  BoxMRO.Invalidate;
  1341.  {$IFNDEF WIN32}
  1342.  IF NOT NewStyleControls THEN FYI(iCheckBox)
  1343.  {$ENDIF}
  1344. end;
  1345.  
  1346. procedure TForm1.BioLifeTableAfterInsert(DataSet: TDataset);
  1347. begin
  1348.  with DataSet do
  1349.   begin
  1350.    Post;
  1351.    Edit;
  1352.    FieldByName('Common_Name').AsString := ' ';
  1353.    FieldByName('Common_Name').Clear
  1354.   end
  1355. end;
  1356.  
  1357. procedure TForm1.BioLifeTableBeforePost(DataSet: TDataset);
  1358. var i : Integer;
  1359. begin
  1360.  with DataSet do
  1361.   if State = dsEdit then
  1362.    begin
  1363.     for i := 0 to FieldCount - 1 do
  1364.      if not Fields[i].IsNull then exit;
  1365.     Delete;
  1366.     Abort
  1367.    end
  1368. end;
  1369.  
  1370. procedure TForm1.tpHideButtonCheckBoxClick(Sender: TObject);
  1371. CONST      iSpeed : STRING = 'TwwDBComboBox cannot hide it'#39's button';
  1372. begin
  1373.  FYI(iSpeed);
  1374.  WITH Sender AS TCheckBox DO
  1375.   BEGIN
  1376.      {$IFDEF UseTwwDBLookupCombo}
  1377.      wwDBLookupCombo1.ShowButton := NOT Checked;
  1378.      {$ENDIF}
  1379.      {$IFDEF UseTDBLookupComboPlus}
  1380.      DBLookupComboPlus1.ShowSpeedButton := NOT Checked;
  1381.      {$ENDIF}
  1382.      {$IFDEF UseTDBComboBoxPlus}
  1383.      DBComboBoxPlus1.ShowSpeedButton := NOT Checked;
  1384.      {$ENDIF}
  1385.   END;
  1386.  ThirdMRO.Invalidate
  1387. end;
  1388.  
  1389. procedure TForm1.tpFontBtnClick(Sender: TObject);
  1390. begin
  1391.  WITH FontDialog1 DO
  1392.   BEGIN
  1393.    Font := ThirdPanel.Font;
  1394.    IF Execute THEN
  1395.     BEGIN
  1396.      {$IFDEF UseTOvcDBSimpleField}
  1397.      OvcDBSimpleField1.ParentFont := TRUE;
  1398.      {$ENDIF}
  1399.      {$IFDEF UseTOvcDBPictureField}
  1400.      OvcDBPictureField1.ParentFont := TRUE;
  1401.      {$ENDIF}
  1402.      {$IFDEF UseTOvcDBNumericField}
  1403.      OvcDBNumericField1.ParentFont := TRUE;
  1404.      {$ENDIF}
  1405.      ThirdPanel.Font := Font
  1406.     END
  1407.   END;
  1408.  ThirdMRO.Perform(CM_FontChanged,0,0);
  1409.  ThirdMRO.Invalidate
  1410. end;
  1411.  
  1412. procedure TForm1.FormCreate(Sender: TObject);
  1413. begin
  1414. {$IFDEF WIN32}
  1415. Caption := '32 Bit ' + Caption;
  1416. {$ELSE}
  1417. Caption := '16 Bit ' + Caption;
  1418. {$ENDIF}
  1419. end;
  1420.  
  1421. begin
  1422.  IF NOT CheckForTables THEN HALT
  1423. end.
  1424.