| Demo | '); + List.Add('Description | '); + List.Add('
|---|
' + SupplementaryDemosNote + '
'); +{$ENDIF} + + Result.AddStrings(FSupplementaryDemosDescription); + end; +{$IFDEF WIN32} + Result.Add(HTMLFooter); +{$ENDIF} +end; + +function TDemos.SelectDemo(DemoIndex: integer): TDemo; //Init and show demo by DemoIndex +var + Descriptions: TStrings; +begin + Result := GetItems(DemoIndex); + if (FSelectedDemo <> nil) and (Result <> FSelectedDemo) then + if FSelectedDemo.DemoType <> dtCategory then + FSelectedDemo.FreeFrame //In case of demo selection change we should free demo frame except category description + else + FSelectedDemo.Frame.Hide; + FSelectedDemo := Result; + with FSelectedDemo do + if FFrame = nil then begin + FFrame := FFrameClass.Create(nil); + if DemoType = dtCategory then begin + Descriptions := WrapDescription(FSelectedDemo); + try + TCategoryFrame(FFrame).SetDemoDescriptions(Descriptions); + finally + Descriptions.Free; + end; + end; + end + else + FFrame.Show; +end; + +{TDemo} +constructor TDemo.Create(Name, Hint, Description: string; DemoType: TDemoType; FrameClass: TDemoFrameClass; FileName: string = ''); +begin + inherited Create; + + FName := Name; + if FileName = '' then + FFileName := Name + else + FFileName := FileName; + FHint := Hint; + FDescription := Description; + FFrameClass := FrameClass; + FDemoType := DemoType; +end; + +destructor TDemo.Destroy; +begin + FreeFrame; + + inherited; +end; + +procedure TDemo.LoadDemoCode(Strings: TStrings); +var + FileName: string; +begin + if DemoType = dtCategory then + Strings.Clear + else begin + {$IFDEF LINUX} + FileName := Format('%s/%s/%s.pas', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ELSE} + FileName := Format('%s\%s\%s.pas', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + + if FileExists(FileName) then + Strings.LoadFromFile(FileName) + else + Strings.Clear; + end; +end; + +procedure TDemo.LoadFormCode(Strings: TStrings); +var + FileName: string; +begin + if DemoType = dtCategory then + Strings.Clear + else begin + {$IFDEF LINUX} + FileName := Format('%s/%s/%s.xfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + {$IFDEF CLR} + FileName := Format('%s\%s\%s.nfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + {$IFDEF WIN32} + FileName := Format('%s\%s\%s.dfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + + if FileExists(FileName) then + Strings.LoadFromFile(FileName) + else + Strings.Clear; + end; +end; + +procedure TDemo.OpenDemoFolder; +{$IFNDEF LINUX} +var + FolderName: string; +begin + if DemoType = dtDemo then begin + FolderName := ExtractFilePath(Application.ExeName) + Name; + ShellExecute(0, 'open', PChar(FolderName), '', '.', SW_SHOW); + end; +end; +{$ELSE} +begin + +end; +{$ENDIF} + +procedure TDemo.FreeFrame; +begin + FFrame.Free; + FFrame := nil; +end; + + +end. diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.dfm b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.dfm new file mode 100644 index 0000000..631bd91 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.dfm @@ -0,0 +1,937 @@ +object DemoForm: TDemoForm + Left = 71 + Top = 139 + Width = 957 + Height = 500 + Caption = 'Data Access Components demos' + Color = clSilver + Constraints.MinHeight = 500 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + Position = poScreenCenter + Scaled = False + ShowHint = True + WindowState = wsMaximized + OnCreate = FormCreate + OnDestroy = FormDestroy + OnResize = FormResize + PixelsPerInch = 96 + TextHeight = 13 + object TVSplitter: TSplitter + Left = 216 + Top = 69 + Height = 374 + Beveled = True + Color = 9790720 + MinSize = 150 + ParentColor = False + OnCanResize = TVSplitterCanResize + OnMoved = TVSplitterMoved + end + object MainPanel: TPanel + Left = 219 + Top = 69 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + Constraints.MinWidth = 730 + TabOrder = 2 + object pnDemo: TPanel + Left = 0 + Top = 0 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + TabOrder = 1 + end + object pnSource: TPanel + Left = 0 + Top = 0 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + Visible = False + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 443 + Width = 949 + Height = 20 + Font.Charset = DEFAULT_CHARSET + Font.Color = clBtnText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Panels = < + item + Width = 220 + end + item + Width = 100 + end + item + Width = 480 + end + item + Width = 50 + end> + UseSystemFont = False + end + object PanelUnderTree: TPanel + Left = 0 + Top = 69 + Width = 216 + Height = 374 + Align = alLeft + BevelOuter = bvNone + TabOrder = 0 + object TreeView: TTreeView + Left = 0 + Top = 22 + Width = 351 + Height = 352 + Align = alLeft + HideSelection = False + HotTrack = True + Images = ImageList1 + Indent = 21 + ParentShowHint = False + ReadOnly = True + ShowHint = True + TabOrder = 0 + OnChange = TreeViewChange + OnClick = TreeViewClick + OnKeyDown = TreeViewKeyDown + OnMouseMove = TreeViewMouseMove + end + object ToolBar: TToolBar + Left = 0 + Top = 0 + Width = 216 + Height = 22 + AutoSize = True + ButtonWidth = 28 + Caption = 'ToolBar' + DisabledImages = ilDisabledButtons + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Images = ilButtons + TabOrder = 1 + object tbBrowseBack: TToolButton + Left = 0 + Top = 0 + Hint = 'Back' + Caption = ' Back ' + DropdownMenu = BackHistoryPopup + ImageIndex = 0 + Style = tbsDropDown + OnClick = tbBrowseBackClick + end + object tbBrowseForward: TToolButton + Left = 41 + Top = 0 + Hint = 'Forward' + DropdownMenu = ForwardHistoryPopup + ImageIndex = 1 + Style = tbsDropDown + OnClick = tbBrowseForwardClick + end + end + end + object pnTopLabel: TPanel + Left = 0 + Top = 0 + Width = 949 + Height = 41 + Align = alTop + BevelOuter = bvNone + TabOrder = 3 + object lbTitle: TLabel + Left = 0 + Top = 0 + Width = 949 + Height = 42 + Cursor = crArrow + Align = alTop + Caption = 'DAC demos' + Color = 9790720 + Constraints.MinWidth = 130 + Font.Charset = RUSSIAN_CHARSET + Font.Color = clWhite + Font.Height = -35 + Font.Name = 'Verdana' + Font.Style = [fsBold, fsItalic] + ParentColor = False + ParentFont = False + OnMouseMove = lbTitleMouseMove + end + object lbAbout: TLabel + Left = 854 + Top = 12 + Width = 34 + Height = 13 + Caption = 'About' + Color = 9790720 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold, fsUnderline] + ParentColor = False + ParentFont = False + OnClick = lbAboutClick + OnMouseMove = lbAboutMouseMove + end + end + object Panel2: TPanel + Left = 0 + Top = 41 + Width = 949 + Height = 28 + Align = alTop + BevelOuter = bvNone + TabOrder = 4 + object Shape1: TShape + Left = 0 + Top = 25 + Width = 949 + Height = 3 + Align = alBottom + Brush.Color = 9790720 + Pen.Color = clBtnFace + end + object Panel1: TPanel + Left = 1 + Top = 1 + Width = 375 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 0 + object sbConnect: TSpeedButton + Left = 1 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Connect to database' + Caption = 'Connect' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + F6050000424DF60500000000000036000000280000001E000000100000000100 + 180000000000C005000000000000000000000000000000000000800080800080 + 8000808000808000808000808000808000808000808000804B40388000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 00808000803E3E3E800080800080800080800080000080008080008080008080 + 00808000808000808000808000808000808000808000804C40373E352D800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000803E3E3E33333380008080008000008000808000808000808000808000 + 808000808000808000807E6A5C80008066574B594B414C403880008080008080 + 0080800080800080800080800080800080800080800080686868800080555555 + 4949493E3E3E8000808000800000800080800080800080800080800080800080 + 8000808000808000807E6B5D72615466564B594B428000808000808000808000 + 808000808000808000808000808000808000808000806868685E5E5E54545449 + 49498000808000800000800080A2C8D864A8C0608D9F5D83964A768D346D8C30 + 70925C8AA38874647E6B5C73615466564B800080800080800080C8C8C8A7A7A7 + 8D8D8D8484847878787070707373738C8C8C7171716868685F5F5F5454548000 + 808000800000800080638CA53FBCE884D5E8A1EBF673E4FF24BEF3039FDE148B + BE45729080008080008080008066574B8000808000808E8E8EBBBBBBD1D1D1E6 + E6E6DFDFDFBCBCBCA0A0A08D8D8D767676800080800080800080555555800080 + 00008000806B94AD44C4F090EAFAA1EBF671D9F424BCF201A7E8039CDA2A6384 + 800080800080800080736154800080800080969696C3C3C3E4E4E4E6E6E6D5D5 + D5BBBBBBA8A8A89D9D9D6666668000808000808000805F5F5F80008000008000 + 806B94AD44C4F08DE4F4A1EBF670D7F224B9EE01A7E8039CDA2F688897806F91 + 7A6A887464800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6B6B6B7D7D7D77777771717180008080008000008000806B9CAD + 3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A8000808000808000 + 808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8A8A8A89D + 9D9D6D6D6D80008080008080008080008080008000008000806B9CB53BB8E67E + E4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D9D9D7070 + 708000808000808000808000808000800000800080739CB53BB8E67EE4FEA1EB + F66FD7F21FB7EE01A7E8039CDA346F8F80008080008080008080008080008080 + 00809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D727272800080 + 800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EAF56ED6F2 + 1FB7EE01A7E8039CDA317092800080800080800080800080800080800080A6A6 + A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D73737380008080008080 + 0080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF894E7F871 + D9F63CBDE9437C97800080800080800080800080800080800080A6A6A6C5C5C5 + E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D8000808000808000808000 + 8080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5F9FDA0DF + EA6691A2800080800080800080800080800080800080919191DBDBDBF4F4F4F4 + F4F4F4F4F4F4F4F4F4F4F4DBDBDB919191800080800080800080800080800080 + 0000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AFBFB8D1DB + 800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B9B9B9D9D + 9D9B9B9BA1A1A1AFAFAFD1D1D180008080008080008080008080008000008000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbConnectClick + end + object sbDisconnect: TSpeedButton + Left = 102 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Dsisconnect from database' + Caption = 'Disconnect' + Enabled = False + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 9A050000424D9A0500000000000036000000280000001E0000000F0000000100 + 1800000000006405000000000000000000000000000000000000800080800080 + 800080800080800080800080800080AFBBF7800080800080800080CFCBE38000 + 80800080800080800080800080800080800080800080800080800080CBCBCB80 + 0080800080800080D2D2D2800080800080800080000080008080008080008080 + 0080800080800080CFCBE31140FD6178EE8000806176EA3154F2CFCBE3800080 + 800080800080800080800080800080800080800080D2D2D27373739898988000 + 809696967F7F7FD2D2D280008080008000008000808000808000808000808000 + 808000808000803157F90134FF214BF90134FF3155F480008080008080008080 + 00808000808000808000808000808000808000808383836B6B6B7A7A7A6B6B6B + 8080808000808000808000800000800080A2C8D864A8C0608D9F5D83964A768D + 346D8CFFFFFF1140FD0134FF113FFC800080800080800080800080800080C8C8 + C8A7A7A78D8D8D848484787878707070FFFFFF7373736B6B6B72727280008080 + 00808000808000800000800080638CA53FBCE884D5E8A1EBF673E4FFFFFFFF61 + 7CF60134FF0134FF0134FF6178EE8000808000808000808000808E8E8EBBBBBB + D1D1D1E6E6E6DFDFDFFFFFFF9D9D9D6B6B6B6B6B6B6B6B6B9898988000808000 + 8080008000008000806B94AD44C4F090EAFAA1EBF671D9F4BFC8F70134FF3158 + FBFFFFFF3157F91140FDBFC8F7800080800080800080969696C3C3C3E4E4E4E6 + E6E6D5D5D5D5D5D56B6B6B848484FFFFFF838383737373D5D5D5800080800080 + 00008000806B94AD44C4F08DE4F4A1EBF670D7F224B9EEAFBBF7FFFFFF2F6888 + 800080CFCBE3800080800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3 + D3B8B8B8CBCBCBFFFFFF6B6B6B800080D2D2D280008080008080008000008000 + 806B9CAD3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A80008080 + 00808000808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6D6D6D80008080008080008080008080008000008000806B9CB5 + 3BB8E67EE4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D8000808000808000 + 808000808000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D + 9D9D7070708000808000808000808000808000800000800080739CB53BB8E67E + E4FEA1EBF66FD7F21FB7EE01A7E8039CDA346F8F800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D7272 + 72800080800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EA + F56ED6F21FB7EE01A7E8039CDA31709280008080008080008080008080008080 + 0080A6A6A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D737373800080 + 800080800080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF8 + 94E7F871D9F63CBDE9437C97800080800080800080800080800080800080A6A6 + A6C5C5C5E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D80008080008080 + 008080008080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5 + F9FDA0DFEA6691A2800080800080800080800080800080800080919191DBDBDB + F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4DBDBDB9191918000808000808000808000 + 808000800000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AF + BFB8D1DB800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B + 9B9B9D9D9D9B9B9BA1A1A1AFAFAFD1D1D1800080800080800080800080800080 + 0000800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000808000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbDisconnectClick + end + object btCreate: TSpeedButton + Left = 203 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Create database objects' + Caption = 'Create' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 36060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + AC9584785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E + 4B785E4B785E4B8000808000808000809292925B5B5B5B5B5B5B5B5B5B5B5B5B + 5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B800080800080800080 + AC9584FEFCFCFAEEE8F8E9E2F7E5DCF5E0D6F4DCD0F3D7C9F2D2C4F1CFBFEFCB + B9EEC8B5785E4B800080800080800080929292FCFCFCEDEDEDE8E8E8E4E4E4DF + DFDFDBDBDBD5D5D5D1D1D1CDCDCDC9C9C9C6C6C65B5B5B800080800080800080 + AC9584FFFFFFFEFDFBFDF9F7FCF5F2FAF1ECF9EBE5F7E6DEF6E1D7F4DBCFF3D6 + C9F0CBB9785E4B800080800080800080929292FFFFFFFCFCFCF8F8F8F4F4F4F0 + F0F0EAEAEAE5E5E5E0E0E0DADADAD5D5D5C9C9C95B5B5B800080800080800080 + AD9786FFFFFFFFFFFFFEFDFBFEF9F7FCF5F29B9491020202F8E6DEF6E1D7F4DB + CFF0CEBD785E4B800080800080800080949494FFFFFFFFFFFFFCFCFCF8F8F8F4 + F4F4939393020202E5E5E5E0E0E0DADADACCCCCC5B5B5B800080800080800080 + AF9A89A8A6A3020202868381D8D6D6020202020202D6CCC8F9EBE50202020202 + 02A38D82785E4B800080800080800080979797A5A5A5020202828282D6D6D602 + 0202020202CBCBCBEAEAEA0202020202028C8C8C5B5B5B800080800080800080 + B29C8CD9D9D9FFFFFF020202020202FFFDFBD7D5D2020202D6CCC9020202F8E6 + DEF2D5C7785E4B800080800080800080999999D9D9D9FFFFFF020202020202FC + FCFCD4D4D4020202CCCCCC020202E5E5E5D3D3D35B5B5B800080800080800080 + B59F8FFFFFFF020202FFFFFF020202FFFFFFFEFCFC020202D6D0CE020202FAEC + E5F4D9CD785E4B8000808000808000809C9C9CFFFFFF020202FFFFFF020202FF + FFFFFCFCFC020202D0D0D0020202EBEBEBD8D8D85B5B5B800080800080800080 + B9A393020202D9D9D9FFFFFF020202D9D9D9FFFFFF020202D7D4D2020202FBF0 + EBF5DDD1785E4B800080800080800080A0A0A0020202D9D9D9FFFFFF020202D9 + D9D9FFFFFF020202D3D3D3020202EFEFEFDCDCDC5B5B5B800080800080800080 + BBA697D9D9D9020202020202D9D9D9020202020202B9B9B9FFFCFC020202FCF5 + F1F6E2D8785E4B800080800080800080A3A3A3D9D9D9020202020202D9D9D902 + 0202020202B9B9B9FCFCFC020202F4F4F4E1E1E15B5B5B8000808000802AAFDA + 44CBF06BE5FF3BBEE599D8DF91E1F681D0E9FFFFFFFFFFFFFFFFFFFEFCFBFDF9 + F7D9CBC0785E4B800080800080ADADADC7C7C7DFDFDFBBBBBBD3D3D3DEDEDECE + CECEFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8C9C9C95B5B5B80008080008052DAFB + 32B7DF7FE9FD5FC6E693F0FF31B6DFA0E8F9FFFFFFFFFFFFFFFFFFFFFFFFFEFC + FCD9CBC0785E4B800080800080D4D4D4B4B4B4E3E3E3C4C4C4EAEAEAB3B3B3E5 + E5E5FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCC9C9C95B5B5B8000808000807CEAFF + 93F1FFBFF8FFAFE8F4C7FBFF93F1FF9FF0FFFFFFFFFFFFFFFFFFFFFAF0EB785E + 4B785E4B785E4B800080800080E4E4E4EAEAEAF3F3F3E5E5E5F6F6F6EAEAEAEB + EBEBFFFFFFFFFFFFFFFFFFEFEFEF5B5B5B5B5B5B5B5B5B80008080008021AAD9 + 55BFE1AFE8F4F0FFFDB4EBF655BFE138BBE5FFFFFFFFFFFFFFFFFF967E6BF4DB + CED1BAAF785E4B800080800080A9A9A9BDBDBDE5E5E5FCFCFCE8E8E8BDBDBDB9 + B9B9FFFFFFFFFFFFFFFFFF7A7A7AD9D9D9B9B9B95B5B5B8000808000807CEAFF + 96F3FFC7FBFFADE5F3C3FBFF96F3FF8BD7E2FEFDFBFDFBF9FDF9F6967E6BD1BA + AFAC9584800080800080800080E4E4E4ECECECF6F6F6E3E3E3F6F6F6ECECECD1 + D1D1FCFCFCFAFAFAF8F8F87A7A7AB9B9B992929280008080008080008051D9FA + 33B8E08CF1FF5AC2E390F1FF30B6DF4BD2F4BBA696B9A293B69F8FB29C8BB099 + 88800080800080800080800080D3D3D3B5B5B5EAEAEAC0C0C0EAEAEAB3B3B3CD + CDCDA3A3A3A0A0A09C9C9C9999999696968000808000808000808000802AAFDA + 44CBF07CEAFF25AEDB72E8FF4CD4F52AAFDA8000808000808000808000808000 + 80800080800080800080800080ADADADC7C7C7E4E4E4ACACACE1E1E1CECECEAD + ADAD800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + object btDrop: TSpeedButton + Left = 289 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Drop database objects' + Caption = 'Drop' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 36060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A + 77A37A779063608000808000808000807D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D + 7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D676767800080800080800080 + A67E78FFE8D2FFE8D2FFE8D1FFE6CEFFE3C5FFDEBDFFDDBAFFD8B2FFD6AEFFD2 + A5FFD2A3936662800080800080800080808080E3E3E3E3E3E3E3E3E3E1E1E1DD + DDDDD7D7D7D6D6D6D0D0D0CECECEC9C9C9C8C8C8696969800080800080800080 + AB817AFFE8D2FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFDAB6FFD7B0FFD4A9FFD2 + A4FFD2A3966965800080800080800080838383E3E3E3E3E3E3E1E1E1DDDDDDDB + DBDBD6D6D6D3D3D3CFCFCFCBCBCBC9C9C9C8C8C86C6C6C800080800080800080 + B0837CFFECD9FFECD9FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFD9B4FFD7B0FFD4 + A9FFD4A99A6C67800080800080800080858585E8E8E8E8E8E8E3E3E3E1E1E1DD + DDDDDBDBDBD6D6D6D2D2D2CFCFCFCBCBCBCBCBCB6F6F6F800080800080800080 + B6897FFFEEDDFFEEDDFFECD9DFD1D8FFE6CEFFE3C6FFE1C2EFD2BFFFD9B4FFD7 + B0FFD7B09E6F698000808000808000808A8A8AEAEAEAEAEAEAE8E8E8D4D4D4E1 + E1E1DDDDDDDBDBDBCFCFCFD2D2D2CFCFCFCFCFCF727272800080800080800080 + BC8E81FFF2E4FFF2E4CFCBE31342FD637AEEFFE6CE6378EA3356F2EFD2BFFFD9 + B4FFD9B4A2726B8000808000808000808F8F8FEFEFEFEFEFEFD2D2D27474749A + 9A9AE1E1E1979797808080CFCFCFD2D2D2D2D2D2757575800080800080800080 + C39581FFF4E8FFF4E8EFE6E63359F90336FF234DF90336FF3357F4EFD6C5FFDD + BBFFDDBBA5766D800080800080800080949494F1F1F1F1F1F1E6E6E68484846C + 6C6C7B7B7B6C6C6C828282D3D3D3D6D6D6D6D6D6787878800080800080800080 + CA9B84FFF7F0FFF7F0FFF4E8EFE6E61342FD0336FF1341FCEFDBD0FFE3C6FFE0 + C1FFE1C2A8796F800080800080800080999999F5F5F5F5F5F5F1F1F1E6E6E674 + 74746C6C6C747474D9D9D9DDDDDDDADADADBDBDB7B7B7B800080800080800080 + D2A187FFF9F4FFF9F4FFF7F0637EF60336FF0336FF0336FF637AEEFFE6CEFFE3 + C6FFE3C6AC7C718000808000808000809E9E9EF8F8F8F8F8F8F5F5F59F9F9F6C + 6C6C6C6C6C6C6C6C9A9A9AE1E1E1DDDDDDDDDDDD7D7D7D800080800080800080 + D9A88AFFFDFBFFFDFBBFC8F70336FF335AFBDFDAE73359F91342FDDFD1D8FFE6 + CEFFE6CEAE7E74800080800080800080A4A4A4FCFCFCFCFCFCD5D5D56C6C6C86 + 8686DEDEDE848484747474D4D4D4E1E1E1E1E1E1808080800080800080800080 + DFAE8CFFFFFFFFFFFFFFFDFBAFBBF7EFEBF0FFF4E8EFE6E6CFCBE3FFECD9FFC8 + C2FFB0B0B08075800080800080800080A9A9A9FFFFFFFFFFFFFCFCFCCBCBCBEC + ECECF1F1F1E6E6E6D2D2D2E8E8E8CCCCCCB8B8B8818181800080800080800080 + E5B38FFDFDFDFDFDFDFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3FFF5EAF4DECEB281 + 76B28176B28176800080800080800080ADADADFCFCFCFCFCFCFFFFFFFFFFFFFE + FEFEF9F9F9F7F7F7F2F2F2DBDBDB838383838383838383800080800080800080 + EAB891FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3F5E1D2B281 + 76EDA757D2AA95800080800080800080B1B1B1FEFEFEFEFEFEFFFFFFFFFFFFFF + FFFFFEFEFEF9F9F9F7F7F7DEDEDE838383969696A8A8A8800080800080800080 + EFBC92FFFFFFFFFFFFFCFCFCFAFAFAF7F7F7F5F5F5F2F1F1F0EDEAE9DAD0B281 + 76D9B198800080800080800080800080B5B5B5FFFFFFFFFFFFFBFBFBFAFAFAF7 + F7F7F5F5F5F1F1F1ECECECD8D8D8838383ADADAD800080800080800080800080 + F2BF94DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987B281 + 76800080800080800080800080800080B7B7B7A4A4A4A4A4A4A4A4A4A4A4A4A4 + A4A4A4A4A4A4A4A4A4A4A4A4A4A4838383800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + end + object cbDebug: TCheckBox + Left = 871 + Top = 8 + Width = 68 + Height = 13 + Hint = 'Set Debug property for connection and query components' + Caption = 'Debug' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + TabOrder = 1 + OnClick = cbDebugClick + end + object pnShowSource: TPanel + Left = 440 + Top = 1 + Width = 259 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 2 + object sbDemo: TSpeedButton + Left = 1 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo' + GroupIndex = 1 + Down = True + Caption = 'Demo' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbDemoClick + end + object sbSource: TSpeedButton + Left = 87 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo source code' + GroupIndex = 1 + Caption = 'Demo source' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbSourceClick + end + object sbFormText: TSpeedButton + Left = 173 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo form as text' + GroupIndex = 1 + Caption = 'Form as text' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbFormTextClick + end + end + object pnOpenDemoDir: TPanel + Left = 720 + Top = 1 + Width = 138 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 3 + object sbOpenDemoDir: TSpeedButton + Left = 1 + Top = 1 + Width = 136 + Height = 22 + Hint = 'Open folder containing the demo source files' + Caption = 'Open demo folder' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 1800000000000003000000000000000000000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF728890628190627A81527281526272425A62424A5232 + 3A42223232222232121A22121212121222FFFFFFFFFFFFFFFFFF72889090A0B0 + 72B0D00290D00290D00290D00290C01288C01281B01281B0227AA0227290224A + 62FFFFFFFFFFFFFFFFFF81889081C0D090A8B081E0FF62D0FF52C8FF52C8FF42 + C0F032B0F032A8F022A0E01290D0226A815B6369FFFFFFFFFFFF8190A081D0F0 + 90A8B090C0D072D8FF62D0FF62D0FF52C8FF52C0FF42B8F032B0F032A8F01288 + D0224A62FFFFFFFFFFFF8190A081D8F081C8E090A8B081E0FF72D0FF62D8FF62 + D0FF62D0FF52C8FF42C0F042B8F032B0F0226A816C8B9AFFFFFF8198A090E0F0 + 90E0FF90A8B090B8C072D8FF62D8FF62D8FF62D8FF62D0FF52D0FF52C8FF42B8 + F032A0E04B6979FFFFFF8198A090E0F0A0E8FF81C8E090A8B081E0FF81E0FF81 + E0FF81E0FF81E0FF81E0FF81E0FF72D8FF72D8FF52A8D087929D90A0A0A0E8F0 + A0E8FFA0E8FF90B0C090B0C090A8B090A8B081A0B081A0B08198A08198A08190 + A08190A081889072889090A0B0A0E8F0A0F0FFA0E8FFA0E8FF81D8FF62D8FF62 + D8FF62D8FF62D8FF62D8FF62D8FF728890FFFFFFFFFFFFFFFFFF90A0B0A0F0F0 + B0F0F0A0F0FFA0E8FFA0E8FF72D8FF90A0A08198A08198A08190A08190907288 + 90FFFFFFFFFFFFFFFFFF90A8B0A0D0E0B0F0F0B0F0F0A0F0FFA0E8FF90A0B0B3 + C9CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF906A52906A52906A52CDD6DA90A8B0 + 90A8B090A8B090A8B090A8B0B6C5CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFD2C7C6906A52906A52FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFF907A62C8BAB3FFFFFFFFFFFFA09081D2CDC7907A62FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8D8D3A09081A08881B098 + 81C5BEB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + ParentFont = False + Transparent = False + OnClick = sbOpenDemoDirClick + end + end + end + object ImageList1: TImageList + Height = 17 + Left = 616 + Top = 8 + end + object BackHistoryPopup: TPopupMenu + OnPopup = BackHistoryPopupPopup + Left = 8 + Top = 133 + end + object ForwardHistoryPopup: TPopupMenu + OnPopup = ForwardHistoryPopupPopup + Left = 40 + Top = 133 + end + object ilButtons: TImageList + Left = 88 + Top = 141 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C0D0 + C9007DAC86002C7D31000269090002640700005E0400206323006D967200C3CF + CB0000000000000000000000000000000000000000000000000000000000C0D0 + C9007DAC86002C7D31000269090002640700005E0400206323006D967200C3CF + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AEC7B600328C + 36000C98220011B62F000DB4250009B21C0006B0160001AE0B00009107001065 + 1400B4C6BB000000000000000000000000000000000000000000AEC7B600328C + 36000C98220011B62F000DB4250009B21C0006B0160001AE0B00009107001065 + 1400B4C6BB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B0C9B800178C23001CB6 + 45001BBA440017B83A0012B630003CC352001AB72D0008B21B0004AF110000AD + 090000670500B6C7BD00000000000000000000000000B0C9B800178C23001CB6 + 45001BBA440017B83A005DCD720079D588000BB3210008B21B0004AF110000AD + 090000670500B6C7BD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CCDDD30043A4480023B7530024BE + 580021BD51001CBA45006FD38800FFFFFF00B5E8BE000EB426000AB21D0007B1 + 180002AE0D0010691400C9D5D00000000000CCDDD30043A4480023B7530024BE + 580021BD51001CBA4500D4F2DC00FFFFFF00A6E4B1000EB426000AB21D0007B1 + 180002AE0D0010691400C9D5D000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009CCEA10017A437002EC26B002CC1 + 660025BF5A0076D69500FFFFFF00FFFFFF009AE0AB0013B6310011B62E000BB3 + 210009B21C00078E120086A88B00000000009CCEA10017A437002EC26B002CC1 + 660025BF5A001CBB470075D69400FFFFFF00FFFFFF00A6E4B10011B62E000BB3 + 210009B21C00078E120086A88B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B1410028BB5E002EC26B002EC2 + 6B007CD9A100FFFFFF00FFFFFF00ACE6BF001CBB47001ABA430015B8380012B6 + 30000FB52A000AB21D00227A27000000000040B1410028BB5E002EC26B002EC2 + 6B001CBB47001CBB470025BE590076D69700FFFFFF00FFFFFF00A6E4B10014B7 + 34000FB52A000AB21D00227A2700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B141002EC26B002EC26B007CD9 + A300FFFFFF00FFFFFF00F1FBF50092DFAC0092DFAC008EDDA3008DDDA2008BDC + 9D0014B7340011B62F00057710000000000040B141002EC26B0062D19000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A8E5 + B60014B7340011B62F0005771000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B841002EC26B0048CA7E00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF001BBA440017B83A00097E14000000000040B841002EC26B0062D19000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5F3 + DE001BBA440017B83A00097E1400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040BB410033C36E002EC26B007CD9 + A300FFFFFF00FFFFFF00FFFFFF00A4E4BE0097E1B50097E1B50095E0B10092DF + AC0021BD51001CBA4500077F13000000000040BB410033C36E002EC26B002EC2 + 6B002EC26B002EC26B002EC26B0089DDAC00FFFFFF00FFFFFF00D7F3E2002EC2 + 6B0021BD51001CBA4500077F1300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040BB410044C665003FC776002EC2 + 6B007CD9A300FFFFFF00FFFFFF00D8F4E3003BC674002EC26B002EC26B002CC1 + 660025BF5A0023BE5700238B2C000000000040BB410044C665003FC776002EC2 + 6B002EC26B002EC26B0055CD8700F2FBF600FFFFFF00D8F4E3002EC26B002CC1 + 660025BF5A0023BE5700238B2C00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A2D7A50031BE3C0072D5950052CC + 820035C470007CD9A300FFFFFF00FFFFFF00A4E4BE002EC26B002EC26B002EC2 + 6B002DC26A0033963B009EC8A40000000000A2D7A50031BE3C0072D5950052CC + 820035C470002EC26B00BEECD100FFFFFF00D8F4E3002EC26B002EC26B002EC2 + 6B002DC26A001AA73E009EC8A400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D7E7DC0040C2400075D6830082DA + A00066D28E0044C879007FDAA400F2FBF60089DDAC002EC26B002EC26B002EC2 + 6B002BBF640023962900C3E2C70000000000D7E7DC0040BB410075D6830082DA + A00066D28E002EC26B002EC26B0097E1B5002EC26B002EC26B002EC26B002EC2 + 6B002BBF640023962900C3E2C700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C9E3CD0040C2400077D7 + 800098E0AD0076D798005ACE86003AC573002EC26B002EC26B002EC26B0028BD + 5E00189E2600C9E4CD00000000000000000000000000C9E3CD0040BB410077D7 + 800098E0AD0076D798005ACE86003AC573002EC26B002EC26B002EC26B0028BD + 5E00189E2600C9E4CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CAE4CE0040C2 + 400047CB490084DA91008CDCA6006AD391004ECB7F002DBF610017B1360043B5 + 4700CAE5CE000000000000000000000000000000000000000000CAE4CE0040BB + 410047CB490084DA91008CDCA6006AD391004ECB7F002DBF610017B1360043B5 + 4700CAE5CE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DBE9 + DF009AD99D0040C2400040C2400040C2400040C2400040C240009AD99D00DBEA + DE0000000000000000000000000000000000000000000000000000000000DBE9 + DF009AD99D0040C2400040C2400040C2400040C2400040C240009AD99D00DBEA + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000E00FE00F00000000 + C007C00700000000800380030000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000008003800300000000 + C007C00700000000E00FE00F0000000000000000000000000000000000000000 + 000000000000} + end + object ilDisabledButtons: TImageList + Left = 120 + Top = 141 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC009B9B9B005D5D5D00404040003D3D3D00383838004848480086868600CCCC + CC0000000000000000000000000000000000000000000000000000000000CCCC + CC009B9B9B005D5D5D00404040003D3D3D00383838004848480086868600CCCC + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFBFBF006868 + 6800656565007B7B7B0076767600727272006F6F6F006A6A6A00575757004343 + 4300C0C0C0000000000000000000000000000000000000000000BFBFBF006868 + 6800656565007B7B7B0076767600727272006F6F6F006A6A6A00575757004343 + 4300C0C0C0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1C1C1005F5F5F008383 + 830085858500808080007B7B7B00929292007C7C7C00727272006C6C6C006868 + 68003E3E3E00C2C2C200000000000000000000000000C1C1C1005F5F5F008383 + 83008585850080808000A5A5A500B3B3B30074747400727272006C6C6C006868 + 68003E3E3E00C2C2C20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D8D8D8007D7D7D00888888008E8E + 8E008B8B8B0085858500B1B1B100FFFFFF00D5D5D50077777700727272007070 + 70006A6A6A0045454500D2D2D20000000000D8D8D8007D7D7D00888888008E8E + 8E008B8B8B0085858500E8E8E800FFFFFF00CDCDCD0077777700727272007070 + 70006A6A6A0045454500D2D2D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BBBBBB0073737300979797009595 + 95008F8F8F00B7B7B700FFFFFF00FFFFFF00C8C8C8007C7C7C007B7B7B007474 + 740072727200595959009B9B9B0000000000BBBBBB0073737300979797009595 + 95008F8F8F0086868600B7B7B700FFFFFF00FFFFFF00CDCDCD007B7B7B007474 + 740072727200595959009B9B9B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000828282008E8E8E00979797009797 + 9700BDBDBD00FFFFFF00FFFFFF00D3D3D30086868600848484007F7F7F007B7B + 7B0079797900727272005757570000000000828282008E8E8E00979797009797 + 970086868600868686008E8E8E00B8B8B800FFFFFF00FFFFFF00CDCDCD007D7D + 7D00797979007272720057575700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000828282009797970097979700BEBE + BE00FFFFFF00FFFFFF00F8F8F800C7C7C700C7C7C700C2C2C200C2C2C200C0C0 + C0007D7D7D007B7B7B004B4B4B00000000008282820097979700B1B1B100FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D0D0 + D0007D7D7D007B7B7B004B4B4B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008787870097979700A4A4A400FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00858585008080800051515100000000008787870097979700B1B1B100FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E9E9 + E900858585008080800051515100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000888888009999990097979700BEBE + BE00FFFFFF00FFFFFF00FFFFFF00D1D1D100CBCBCB00CBCBCB00C9C9C900C7C7 + C7008B8B8B008585850051515100000000008888880099999900979797009797 + 9700979797009797970097979700C5C5C500FFFFFF00FFFFFF00EAEAEA009797 + 97008B8B8B008585850051515100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000888888009A9A9A009F9F9F009797 + 9700BEBEBE00FFFFFF00FFFFFF00EBEBEB009E9E9E0097979700979797009595 + 95008F8F8F008E8E8E006363630000000000888888009A9A9A009F9F9F009797 + 97009797970097979700AAAAAA00F8F8F800FFFFFF00EBEBEB00979797009595 + 95008F8F8F008E8E8E0063636300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C2C2C20087878700B6B6B600A8A8 + A8009B9B9B00BEBEBE00FFFFFF00FFFFFF00D1D1D10097979700979797009797 + 9700979797006F6F6F00B8B8B80000000000C2C2C20087878700B6B6B600A8A8 + A8009B9B9B0097979700DEDEDE00FFFFFF00EBEBEB0097979700979797009797 + 97009797970077777700B8B8B800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000E1E1E1008C8C8C00B2B2B200BEBE + BE00B1B1B100A1A1A100BFBFBF00F8F8F800C5C5C50097979700979797009797 + 97009393930068686800D6D6D60000000000E1E1E10088888800B2B2B200BEBE + BE00B1B1B1009797970097979700CBCBCB009797970097979700979797009797 + 97009393930068686800D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D9D9D9008C8C8C00B2B2 + B200C8C8C800B9B9B900ABABAB009D9D9D009797970097979700979797009090 + 90006B6B6B00DADADA00000000000000000000000000D9D9D90088888800B2B2 + B200C8C8C800B9B9B900ABABAB009D9D9D009797970097979700979797009090 + 90006B6B6B00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DADADA008C8C + 8C0095959500BABABA00C3C3C300B3B3B300A6A6A600929292007B7B7B008787 + 8700DBDBDB000000000000000000000000000000000000000000DADADA008888 + 880095959500BABABA00C3C3C300B3B3B300A6A6A600929292007B7B7B008787 + 8700DBDBDB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000E4E4 + E400C0C0C0008C8C8C008C8C8C008C8C8C008C8C8C008C8C8C00C0C0C000E4E4 + E40000000000000000000000000000000000000000000000000000000000E4E4 + E400C0C0C0008C8C8C008C8C8C008C8C8C008C8C8C008C8C8C00C0C0C000E4E4 + E400000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000E00FE00F00000000 + C007C00700000000800380030000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000008003800300000000 + C007C00700000000E00FE00F0000000000000000000000000000000000000000 + 000000000000} + end +end diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.pas b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.pas new file mode 100644 index 0000000..95bbae7 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.pas @@ -0,0 +1,667 @@ +{$I DacDemo.inc} + +unit DemoForm; + +interface + +uses +{$IFNDEF WIN32} + Types, +{$ENDIF} + SysUtils, Classes, DB, +{$IFDEF LINUX} + QControls, QStdCtrls, QComCtrls, QGraphics, QMenus, QTypes, QImgList, QForms, + QButtons, QExtCtrls, Qt, QDialogs, +{$ELSE} + Windows, Forms, Messages, Controls, StdCtrls, + Graphics, ImgList, ToolWin, + ComCtrls, Dialogs, ExtCtrls, Tabs, Menus, DBCtrls, Buttons, ShellAPI, +{$IFNDEF VER130} + Variants, +{$ENDIF} +{$ENDIF} +{$IFDEF CLR} + System.ComponentModel, +{$ENDIF} + DBAccess, + DAScript, + DemoBase, + DemoFrame, + CategoryFrame + {$IFDEF XPMAN}, UxTheme{$ENDIF} + {$IFDEF USE_SYNEDIT}, SynMemo, SynEdit, SynEditHighlighter, SynHighlighterPas{$ENDIF} + ; +const + MAX_HISTORY_SIZE = 6; + +type + TDemoForm = class(TForm) + StatusBar: TStatusBar; + ImageList1: TImageList; + PanelUnderTree: TPanel; + TreeView: TTreeView; + MainPanel: TPanel; + Shape1: TShape; + TVSplitter: TSplitter; + pnTopLabel: TPanel; + lbTitle: TLabel; + lbAbout: TLabel; + Panel2: TPanel; + Panel1: TPanel; + sbConnect: TSpeedButton; + sbDisconnect: TSpeedButton; + btCreate: TSpeedButton; + btDrop: TSpeedButton; + cbDebug: TCheckBox; + pnSource: TPanel; + pnDemo: TPanel; + sbDemo: TSpeedButton; + pnShowSource: TPanel; + ToolBar: TToolBar; + tbBrowseBack: TToolButton; + tbBrowseForward: TToolButton; + BackHistoryPopup: TPopupMenu; + ForwardHistoryPopup: TPopupMenu; + ilButtons: TImageList; + ilDisabledButtons: TImageList; + sbSource: TSpeedButton; + sbFormText: TSpeedButton; + pnOpenDemoDir: TPanel; + sbOpenDemoDir: TSpeedButton; + + procedure FormCreate(Sender: TObject); virtual; + procedure TreeViewChange(Sender: TObject; Node: TTreeNode); + procedure TreeViewKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TreeViewClick(Sender: TObject); + procedure TreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure TVSplitterMoved(Sender: TObject); + procedure TVSplitterCanResize(Sender: TObject; var NewSize: Integer; + var Accept: Boolean); + procedure lbAboutClick(Sender: TObject); virtual; + procedure lbAboutMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure lbTitleMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure cbDebugClick(Sender: TObject); + procedure sbOpenDemoDirClick(Sender: TObject); + procedure sbConnectClick(Sender: TObject); + procedure sbDisconnectClick(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure HistoryItemClick(Sender: TObject); + procedure sbDemoClick(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure BackHistoryPopupPopup(Sender: TObject); + procedure ForwardHistoryPopupPopup(Sender: TObject); + procedure tbBrowseBackClick(Sender: TObject); + procedure tbBrowseForwardClick(Sender: TObject); + procedure btScriptClick(Sender: TObject); + procedure OnScriptError(Sender: TObject; E: Exception; SQL: String; + var Action: TErrorAction); + procedure sbSourceClick(Sender: TObject); + procedure sbFormTextClick(Sender: TObject); + protected + Demos: TDemos; + ActiveNode: TTreeNode; + //History + History: Array of integer; //Absolute indexes in TreeView + HistoryIndex: integer; //Current History index + HistoryEnd: integer; + IgnoreScriptErrors: boolean; + DropScriptActive: boolean; + DemoSourceLoaded, FormSourceLoaded: boolean; + + //Product customization + function GetConnection: TCustomDAConnection; virtual; abstract; //This function should return DAC product specific connection (i.e. OraSession, MyConnection) + function ApplicationTitle: string; virtual; abstract; //This function should return DAC product specific title + function ProductName: string; virtual; abstract; ////This function should return product name + procedure RegisterDemos; virtual; abstract; //This procedure should regiter DAC product specific demos + //XP manifest + {$IFDEF XPMAN} + procedure ReplaceFlatStyle(Control: TWinControl; Flat: boolean); + {$ENDIF} + //Demo selection + procedure InitializeDemoFrame(Frame: TDemoFrame; DemoType: TDemoType); virtual; + procedure UpdateDemo; + procedure ShowDemo; + procedure ShowDemoSource; + procedure ShowFormSource; + {$IFNDEF WIN32} + procedure OnNavigate(DemoDescription: string); + {$ELSE} + procedure OnNavigate(Index: integer); + {$ENDIF} + //History + procedure SelectDemo; + procedure NavigateHistory(Offset: integer); + procedure GetBackHistory(BackList: TStrings); + procedure GetForwardHistory(ForwardList: TStrings); + procedure DisableBrowse(Back, Forward: boolean); + procedure FillHistoryPopup(BackHistory: boolean); + //Connection + procedure AfterConnect(Sender: TObject); + procedure AfterDisconnect(Sender: TObject); + public +{$IFDEF USE_SYNEDIT} + SourceBrowser: TSynMemo; +{$ELSE} + SourceBrowser: TMemo; +{$ENDIF} + function GetIsXPMan: boolean; + function ProductColor: TColor; virtual; abstract; //This function should return DAC product specific color + procedure ExecCreateScript; virtual; abstract; + procedure ExecDropScript; virtual; abstract; + end; + +implementation + +{$IFDEF CLR} +{$R *.nfm} +{$ENDIF} +{$IFDEF WIN32} +{$R *.dfm} +{$ENDIF} +{$IFDEF LINUX} +{$R *.xfm} +{$ENDIF} + +{$IFDEF XPMAN} + {$R WindowsXP.res} +{$ENDIF} + +procedure TDemoForm.FormCreate(Sender: TObject); +begin + SetLength(History, MAX_HISTORY_SIZE); + HistoryIndex := -1; + Demos := TDemos.Create(TreeView.Items); + RegisterDemos; +{$IFDEF XPMAN} + if GetIsXPMan then begin + ReplaceFlatStyle(Self, False); + pnTopLabel.Color := ProductColor; + end; +{$ENDIF} + +{$IFDEF USE_SYNEDIT} + SourceBrowser := TSynMemo.Create(pnSource); + + SourceBrowser.Highlighter := TSynPasSyn.Create(SourceBrowser); + SourceBrowser.Options := [eoAltSetsColumnMode, eoAutoIndent, eoAutoSizeMaxScrollWidth, eoDisableScrollArrows, eoDragDropEditing, eoDropFiles, eoEnhanceEndKey, eoGroupUndo, eoHideShowScrollbars, eoKeepCaretX, eoShowScrollHint, eoSmartTabDelete, eoSmartTabs, eoTabIndent, eoTabsToSpaces]; + with SourceBrowser.Gutter do begin + Visible := True; + AutoSize := True; + DigitCount := 3; + LeftOffset := 0; + RightOffset := 0; + ShowLineNumbers := True; + Width := 1; + end; +{$ELSE} + SourceBrowser := TMemo.Create(pnSource); + SourceBrowser.ScrollBars := ssVertical; + SourceBrowser.Font.Name := 'Courier New'; + SourceBrowser.Font.Size := 10; +{$ENDIF} + with SourceBrowser do begin + Parent := pnSource; + Align := alClient; + ReadOnly := True; + end; + Resize; + TreeView.Items[0].Expand(True); + TreeView.Items[0].Selected := True; + with GetConnection do begin + AfterConnect := Self.AfterConnect; + AfterDisconnect := Self.AfterDisconnect; + end; + SelectDemo; +end; + +procedure TDemoForm.FormDestroy(Sender: TObject); +begin + with GetConnection do begin + AfterConnect := nil; + AfterDisconnect := nil; + end; + SetLength(History, 0); + Demos.Free; +end; + +//TreeView routines +procedure TDemoForm.TreeViewChange(Sender: TObject; Node: TTreeNode); +begin + if (TreeView.Selected.Data <> nil) then + StatusBar.Panels[0].Text := TDemo(TreeView.Selected.Data).Hint + else + StatusBar.Panels[0].Text := TreeView.Selected.Text; + StatusBar.Repaint; +end; + +procedure TDemoForm.TreeViewKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if Key = {$IFDEF LINUX}4100{$ELSE}13{$ENDIF} then + SelectDemo; +end; + +procedure TDemoForm.TreeViewClick(Sender: TObject); +begin + SelectDemo; +end; + +//TreeView Hints +procedure TDemoForm.TreeViewMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +var + Node: TTreeNode; +begin + Node := TreeView.GetNodeAt(X, Y); + if (Node <> nil) and (Node.Data <> nil) then + TreeView.Hint := TDemo(Node.Data).Hint + else + TreeView.Hint := ''; +end; + +//Sizing constraints +procedure TDemoForm.TVSplitterMoved(Sender: TObject); +begin + if PanelUnderTree.ClientWidth = 0 then + PanelUnderTree.ClientWidth := 150; +end; + +procedure TDemoForm.TVSplitterCanResize(Sender: TObject; + var NewSize: Integer; var Accept: Boolean); +begin + Accept := (NewSize >= PanelUnderTree.Constraints.MinWidth) and + ((ClientWidth - MainPanel.Constraints.MinWidth - NewSize) > 0); +end; + +function TDemoForm.GetIsXPMan: boolean; +begin + Result := {$IFDEF XPMAN}UseThemes; {$ELSE} False;{$ENDIF} +end; + +{$IFDEF XPMAN} +procedure TDemoForm.ReplaceFlatStyle(Control: TWinControl; Flat: boolean); +var + i: integer; +begin + for i := 0 to Control.ControlCount - 1 do + if Control.Controls[i] is TSpeedButton then + TSpeedButton(Control.Controls[i]).Flat := Flat + else + if Control.Controls[i] is TDBNavigator then + TDBNavigator(Control.Controls[i]).Flat := Flat + else + if Control.Controls[i] is TWinControl then begin + if Control.Controls[i] is TPanel then begin + TPanel(Control.Controls[i]).ParentBackground := False; + TPanel(Control.Controls[i]).Color := clBtnFace; + end; + ReplaceFlatStyle(TWinControl(Control.Controls[i]), Flat); + end; +end; +{$ENDIF} + +//Demo Change +procedure TDemoForm.InitializeDemoFrame(Frame: TDemoFrame; DemoType: TDemoType); +begin + Frame.Connection := GetConnection; + Frame.SetDebug(cbDebug.Checked); + Frame.Parent := pnDemo; + if DemoType = dtCategory then //Attach browser event handlers + TCategoryFrame(Frame).OnNavigate := OnNavigate; +{$IFDEF XPMAN} + if GetIsXPMan then + ReplaceFlatStyle(Frame, False); +{$ENDIF} + Frame.Initialize; +end; + +procedure TDemoForm.UpdateDemo; +var + i: integer; +begin + for i := 1 to StatusBar.Panels.Count - 1 do + StatusBar.Panels[i].Text := ''; + ActiveNode := TreeView.Selected; + if (ActiveNode <> nil) then + with Demos.SelectDemo(ActiveNode.AbsoluteIndex) do begin + InitializeDemoFrame(Frame, DemoType); + DemoSourceLoaded := False; + FormSourceLoaded := False; + if DemoType = dtCategory then begin + pnShowSource.Visible := False; + pnOpenDemoDir.Visible := False; + ShowDemo; + end + else begin + pnShowSource.Visible := True; + {$IFNDEF LINUX} + pnOpenDemoDir.Visible := True; + {$ELSE} + pnOpenDemoDir.Visible := False; + {$ENDIF} + if sbDemo.Down then + ShowDemo + else + if sbSource.Down then + ShowDemoSource + else + ShowFormSource; + end; + Self.Caption := ApplicationTitle + ' - ' + Name; + Application.Title := ApplicationTitle; + end; + StatusBar.Repaint; +end; + +procedure TDemoForm.ShowDemo; +begin + pnSource.Visible := False; + pnDemo.Visible := True; +end; + +procedure TDemoForm.ShowDemoSource; +begin + if not DemoSourceLoaded then begin + Demos.SelectedDemo.LoadDemoCode(SourceBrowser.Lines); + DemoSourceLoaded := True; + FormSourceLoaded := False; + end; + pnSource.Visible := True; + pnDemo.Visible := False; +end; + +procedure TDemoForm.ShowFormSource; +begin + if not FormSourceLoaded then begin + Demos.SelectedDemo.LoadFormCode(SourceBrowser.Lines); + FormSourceLoaded := True; + DemoSourceLoaded := False; + end; + pnSource.Visible := True; + pnDemo.Visible := False; +end; + +//User control +procedure TDemoForm.sbOpenDemoDirClick(Sender: TObject); +begin + Demos.SelectedDemo.OpenDemoFolder; +end; + +procedure TDemoForm.cbDebugClick(Sender: TObject); +begin + Demos.SelectedDemo.Frame.SetDebug(cbDebug.Checked); +end; + +{$IFNDEF WIN32} +procedure TDemoForm.OnNavigate(DemoDescription: string); +var + Node: TTreeNode; + DemoName, CategoryName, FolderName: string; + ListBox: TListBox; + i: integer; +begin + Node := TreeView.Items.GetFirstNode; + DemoName := Trim(Copy(DemoDescription, 1, pos('-', DemoDescription) - 1)); + while Node <> nil do begin + if TDemo(Node.Data).Name = DemoName then begin + TreeView.Selected := Node; + SelectDemo; + break; + end; + Node := Node.GetNext; + end; + // Demo was not found in the tree. This is supplementary demo. + + if (Demos.SelectedDemo.DemoType = dtCategory) and (DemoName <> '') then begin + ListBox := TCategoryFrame(Demos.SelectedDemo.Frame).DemosDescription; + for i := ListBox.ItemIndex downto 0 do + if (ListBox.Items[i] <> '') and (ListBox.Items[i][1] = ' ') then begin + CategoryName := Trim(ListBox.Items[i]); + Break; + end; + end; +{$IFNDEF LINUX} + FolderName := ExtractFilePath(ExtractFileDir(Application.ExeName)) + CategoryName + '\' + DemoName; + ShellExecute(0, 'open', FolderName, '', '.', SW_SHOW); +{$ENDIF} +end; + +{$ELSE} +procedure TDemoForm.OnNavigate(Index: integer); +begin + TreeView.Items[Index].Selected := True; + SelectDemo; +end; +{$ENDIF} + +procedure TDemoForm.lbAboutClick(Sender: TObject); +begin + lbAbout.Font.Color := $FFFFFF; + lbAbout.Cursor := crDefault; +end; + +//About highlite +procedure TDemoForm.lbAboutMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + lbAbout.Font.Color := TColor($FF00001A); //clHotLight + lbAbout.Cursor := crHandPoint; +end; + +procedure TDemoForm.lbTitleMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + lbAbout.Font.Color := $FFFFFF; + lbAbout.Cursor := crDefault; +end; + +procedure TDemoForm.sbConnectClick(Sender: TObject); +begin + GetConnection.Connect; +end; + +procedure TDemoForm.sbDisconnectClick(Sender: TObject); +begin + GetConnection.Disconnect; +end; + +procedure TDemoForm.AfterConnect(Sender: TObject); +begin + sbDisconnect.Enabled := True; + sbConnect.Enabled := False; +end; + +procedure TDemoForm.AfterDisconnect(Sender: TObject); +begin + sbDisconnect.Enabled := False; + sbConnect.Enabled := True; +end; + +//History +procedure TDemoForm.SelectDemo; +var + i: integer; +begin + if TreeView.Selected = ActiveNode then //Same demo selected + Exit; + UpdateDemo; + if HistoryIndex = (MAX_HISTORY_SIZE - 1) then + for i := 0 to MAX_HISTORY_SIZE - 2 do + History[i] := History[i + 1] + else + Inc(HistoryIndex); + History[HistoryIndex] := ActiveNode.AbsoluteIndex; + HistoryEnd := HistoryIndex; + DisableBrowse(HistoryIndex = 0, True); +end; + +procedure TDemoForm.NavigateHistory(Offset: integer); +begin + if ((HistoryIndex + Offset) < 0) or ((HistoryIndex + Offset) >= MAX_HISTORY_SIZE) then + raise Exception.Create('Wrong history index'); + HistoryIndex := HistoryIndex + Offset; + TreeView.Items[Demos.GetDemoIndex(History[HistoryIndex])].Selected := True; + DisableBrowse(HistoryIndex = 0, HistoryIndex = HistoryEnd); + UpdateDemo; +end; + +procedure TDemoForm.GetBackHistory(BackList: TStrings); +var + i: integer; +begin + BackList.Clear; + for i := HistoryIndex - 1 downto 0 do + BackList.Add(Demos[History[i]].Name); +end; + +procedure TDemoForm.GetForwardHistory(ForwardList: TStrings); +var + i: integer; +begin + ForwardList.Clear; + for i := HistoryIndex + 1 to HistoryEnd do + ForwardList.Add(Demos[History[i]].Name); +end; + +procedure TDemoForm.DisableBrowse(Back, Forward: boolean); +begin + tbBrowseBack.Enabled := not Back; + tbBrowseForward.Enabled := not Forward; +end; + +procedure TDemoForm.FillHistoryPopup(BackHistory: boolean); +var + NewItem: TMenuItem; + List: TStrings; + i: integer; + HistoryPopup: TPopupMenu; +begin + if BackHistory then + HistoryPopup := BackHistoryPopup + else + HistoryPopup := ForwardHistoryPopup; + HistoryPopup.Items.Clear; + List := TStringList.Create; + if BackHistory then + GetBackHistory(List) + else + GetForwardHistory(List); + for i := 1 to List.Count do begin + NewItem := TMenuItem.Create(HistoryPopup); + HistoryPopup.Items.Add(NewItem); + NewItem.Caption := List[i - 1]; + if BackHistory then + NewItem.Tag := -i + else + NewItem.Tag := i; + NewItem.OnClick := HistoryItemClick; + end; + List.Free; +end; + +procedure TDemoForm.HistoryItemClick(Sender: TObject); +begin + if Sender is TMenuItem then + NavigateHistory(TMenuItem(Sender).Tag); +end; + +procedure TDemoForm.BackHistoryPopupPopup(Sender: TObject); +begin + FillHistoryPopup(True); +end; + +procedure TDemoForm.ForwardHistoryPopupPopup(Sender: TObject); +begin + FillHistoryPopup(False); +end; + +procedure TDemoForm.tbBrowseBackClick(Sender: TObject); +begin + NavigateHistory(-1); +end; + +procedure TDemoForm.tbBrowseForwardClick(Sender: TObject); +begin + NavigateHistory(1); +end; + +procedure TDemoForm.sbDemoClick(Sender: TObject); +begin + ShowDemo; +end; + +procedure TDemoForm.sbSourceClick(Sender: TObject); +begin + ShowDemoSource; +end; + +procedure TDemoForm.sbFormTextClick(Sender: TObject); +begin + ShowFormSource; +end; + +procedure TDemoForm.FormResize(Sender: TObject); +begin + lbAbout.Left := lbAbout.Parent.ClientWidth - 100; + cbDebug.Left := cbDebug.Parent.ClientWidth - 100; + pnOpenDemoDir.Left := cbDebug.Left - (pnOpenDemoDir.Width + 15); + pnShowSource.Left := pnOpenDemoDir.Left - (pnShowSource.Width + 15); +end; + +procedure TDemoForm.OnScriptError(Sender: TObject; E: Exception; + SQL: String; var Action: TErrorAction); +var + OperationStr, + ScriptFileStr, + MessageStr: string; +begin + if DropScriptActive then begin + OperationStr := 'drop'; + ScriptFileStr := 'UninstallDemoObjects.sql'; + end + else begin + OperationStr := 'create'; + ScriptFileStr := 'InstallDemoObjects.sql'; + end; + MessageStr := Format('An error has been occured: %s' + + #$d#$d'You can manually %s objects required for demo by using the ' + + 'following file: %%%s%%\Demos\%s' + + #$d'%%%s%% is the %s installation path on your computer.' + #13#10 + 'Ignore this exception?', + [E.Message, OperationStr, ProductName, ScriptFileStr, ProductName, ProductName]); + Action := eaContinue; + if not IgnoreScriptErrors then + case MessageDlg(MessageStr, mtError, [mbYes, mbNo{$IFNDEF LINUX}, mbYesToAll{$ENDIF}], 0) of + mrNo: + Action := eaAbort; + {$IFNDEF LINUX} + mrYesToAll: + IgnoreScriptErrors := True; + {$ENDIF} + end; +end; + +procedure TDemoForm.btScriptClick(Sender: TObject); +var + s: string; +begin + DropScriptActive := Sender = btDrop; + if DropScriptActive then + s := 'removed from database' + else + s := 'created in database'; + if MessageDlg(Format('Objects required for the demo will be %s. Continue?', [s]), + mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin + IgnoreScriptErrors := False; + GetConnection.Connect; + if Sender = btCreate then + ExecCreateScript + else + ExecDropScript; + end; +end; + +end. diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.xfm b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.xfm new file mode 100644 index 0000000..d21e0f9 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoForm.xfm @@ -0,0 +1,792 @@ +object DemoForm: TDemoForm + Left = 75 + Top = 162 + Width = 957 + Height = 500 + HorzScrollBar.Range = 219 + VertScrollBar.Range = 89 + ActiveControl = TreeView + Caption = 'Data Access Components demos' + Color = clSilver + Constraints.MinHeight = 500 + Font.Color = clText + Font.Height = 13 + Font.Name = 'helvetica' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + ParentFont = False + Position = poScreenCenter + Scaled = False + ShowHint = True + WindowState = wsMaximized + OnCreate = FormCreate + OnDestroy = FormDestroy + OnResize = FormResize + PixelsPerInch = 75 + object TVSplitter: TSplitter + Left = 216 + Top = 69 + Height = 411 + Beveled = True + Color = 9790720 + MinSize = 150 + OnCanResize = TVSplitterCanResize + OnMoved = TVSplitterMoved + end + object MainPanel: TPanel + Left = 219 + Top = 69 + Width = 738 + Height = 411 + Align = alClient + BevelOuter = bvNone + Constraints.MinWidth = 730 + TabOrder = 2 + object pnDemo: TPanel + Left = 0 + Top = 0 + Width = 738 + Height = 411 + Align = alClient + BevelOuter = bvNone + Color = clButton + ParentColor = False + TabOrder = 1 + end + object pnSource: TPanel + Left = 0 + Top = 0 + Width = 738 + Height = 411 + Align = alClient + BevelOuter = bvNone + Color = clButton + ParentColor = False + TabOrder = 0 + Visible = False + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 480 + Width = 957 + Height = 20 + Font.Color = clButtonText + Font.Height = 11 + Font.Name = 'Tahoma' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Panels = < + item + Width = 220 + end + item + Width = 100 + end + item + Width = 480 + end + item + end> + ParentFont = False + end + object PanelUnderTree: TPanel + Left = 0 + Top = 69 + Width = 216 + Height = 411 + Align = alLeft + BevelOuter = bvNone + TabOrder = 0 + object TreeView: TTreeView + Left = 0 + Top = 25 + Width = 351 + Height = 386 + Align = alLeft + Columns = <> + Images = ImageList1 + Indent = 21 + ParentShowHint = False + ReadOnly = True + ShowHint = True + TabOrder = 0 + OnChange = TreeViewChange + OnClick = TreeViewClick + OnKeyDown = TreeViewKeyDown + OnMouseMove = TreeViewMouseMove + end + object ToolBar: TToolBar + Left = 0 + Top = 0 + Width = 216 + Height = 25 + AutoSize = True + ButtonHeight = 23 + ButtonWidth = 28 + Caption = 'ToolBar' + Color = clButton + DisabledImages = ilDisabledButtons + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Images = ilButtons + ParentColor = False + TabOrder = 1 + object tbBrowseBack: TToolButton + Left = 1 + Top = 2 + Height = 23 + Hint = 'Back' + Style = tbsDropDown + Caption = ' Back ' + DropDownMenu = BackHistoryPopup + ImageIndex = 0 + OnClick = tbBrowseBackClick + end + object tbBrowseForward: TToolButton + Left = 43 + Top = 2 + Height = 23 + Hint = 'Forward' + Style = tbsDropDown + Caption = 'tbBrowseForward' + DropDownMenu = ForwardHistoryPopup + ImageIndex = 1 + OnClick = tbBrowseForwardClick + end + end + end + object pnTopLabel: TPanel + Left = 0 + Top = 0 + Width = 957 + Height = 41 + Align = alTop + BevelOuter = bvNone + TabOrder = 3 + object lbTitle: TLabel + Left = 0 + Top = 0 + Width = 957 + Height = 42 + Cursor = crArrow + Align = alTop + Caption = 'DAC demos' + Color = 9790720 + Constraints.MinWidth = 130 + Font.CharSet = fcsUnicode + Font.Color = clWhite + Font.Height = 35 + Font.Name = 'Verdana' + Font.Pitch = fpVariable + Font.Style = [fsItalic] + Font.Weight = 40 + ParentColor = False + ParentFont = False + OnMouseMove = lbTitleMouseMove + end + object lbAbout: TLabel + Left = 854 + Top = 12 + Width = 28 + Height = 18 + Caption = 'About' + Color = 9790720 + Font.Color = clWhite + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsUnderline] + Font.Weight = 40 + ParentColor = False + ParentFont = False + OnClick = lbAboutClick + OnMouseMove = lbAboutMouseMove + end + end + object Panel2: TPanel + Left = 0 + Top = 41 + Width = 957 + Height = 28 + Align = alTop + BevelOuter = bvNone + Color = clButton + ParentColor = False + TabOrder = 4 + object Shape1: TShape + Left = 0 + Top = 25 + Width = 957 + Height = 3 + Align = alBottom + Brush.Color = 9790720 + Pen.Color = clButton + Pen.Width = 0 + end + object Panel1: TPanel + Left = 1 + Top = 1 + Width = 375 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + ParentColor = False + TabOrder = 0 + object sbConnect: TSpeedButton + Left = 1 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Connect to database' + Caption = 'Connect' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Glyph.Data = { + FA050000424DF60500000000000036000000280000001E000000100000000100 + 180000000000C005000000000000000000000000000000000000800080800080 + 8000808000808000808000808000808000808000808000804B40388000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 00808000803E3E3E800080800080800080800080000080008080008080008080 + 00808000808000808000808000808000808000808000804C40373E352D800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000803E3E3E33333380008080008000008000808000808000808000808000 + 808000808000808000807E6A5C80008066574B594B414C403880008080008080 + 0080800080800080800080800080800080800080800080686868800080555555 + 4949493E3E3E8000808000800000800080800080800080800080800080800080 + 8000808000808000807E6B5D72615466564B594B428000808000808000808000 + 808000808000808000808000808000808000808000806868685E5E5E54545449 + 49498000808000800000800080A2C8D864A8C0608D9F5D83964A768D346D8C30 + 70925C8AA38874647E6B5C73615466564B800080800080800080C8C8C8A7A7A7 + 8D8D8D8484847878787070707373738C8C8C7171716868685F5F5F5454548000 + 808000800000800080638CA53FBCE884D5E8A1EBF673E4FF24BEF3039FDE148B + BE45729080008080008080008066574B8000808000808E8E8EBBBBBBD1D1D1E6 + E6E6DFDFDFBCBCBCA0A0A08D8D8D767676800080800080800080555555800080 + 00008000806B94AD44C4F090EAFAA1EBF671D9F424BCF201A7E8039CDA2A6384 + 800080800080800080736154800080800080969696C3C3C3E4E4E4E6E6E6D5D5 + D5BBBBBBA8A8A89D9D9D6666668000808000808000805F5F5F80008000008000 + 806B94AD44C4F08DE4F4A1EBF670D7F224B9EE01A7E8039CDA2F688897806F91 + 7A6A887464800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6B6B6B7D7D7D77777771717180008080008000008000806B9CAD + 3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A8000808000808000 + 808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8A8A8A89D + 9D9D6D6D6D80008080008080008080008080008000008000806B9CB53BB8E67E + E4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D9D9D7070 + 708000808000808000808000808000800000800080739CB53BB8E67EE4FEA1EB + F66FD7F21FB7EE01A7E8039CDA346F8F80008080008080008080008080008080 + 00809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D727272800080 + 800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EAF56ED6F2 + 1FB7EE01A7E8039CDA317092800080800080800080800080800080800080A6A6 + A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D73737380008080008080 + 0080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF894E7F871 + D9F63CBDE9437C97800080800080800080800080800080800080A6A6A6C5C5C5 + E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D8000808000808000808000 + 8080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5F9FDA0DF + EA6691A2800080800080800080800080800080800080919191DBDBDBF4F4F4F4 + F4F4F4F4F4F4F4F4F4F4F4DBDBDB919191800080800080800080800080800080 + 0000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AFBFB8D1DB + 800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B9B9B9D9D + 9D9B9B9BA1A1A1AFAFAFD1D1D180008080008080008080008080008000008000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbConnectClick + end + object sbDisconnect: TSpeedButton + Left = 102 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Dsisconnect from database' + Caption = 'Disconnect' + Enabled = False + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Glyph.Data = { + 9E050000424D9A0500000000000036000000280000001E0000000F0000000100 + 1800000000006405000000000000000000000000000000000000800080800080 + 800080800080800080800080800080AFBBF7800080800080800080CFCBE38000 + 80800080800080800080800080800080800080800080800080800080CBCBCB80 + 0080800080800080D2D2D2800080800080800080000080008080008080008080 + 0080800080800080CFCBE31140FD6178EE8000806176EA3154F2CFCBE3800080 + 800080800080800080800080800080800080800080D2D2D27373739898988000 + 809696967F7F7FD2D2D280008080008000008000808000808000808000808000 + 808000808000803157F90134FF214BF90134FF3155F480008080008080008080 + 00808000808000808000808000808000808000808383836B6B6B7A7A7A6B6B6B + 8080808000808000808000800000800080A2C8D864A8C0608D9F5D83964A768D + 346D8CFFFFFF1140FD0134FF113FFC800080800080800080800080800080C8C8 + C8A7A7A78D8D8D848484787878707070FFFFFF7373736B6B6B72727280008080 + 00808000808000800000800080638CA53FBCE884D5E8A1EBF673E4FFFFFFFF61 + 7CF60134FF0134FF0134FF6178EE8000808000808000808000808E8E8EBBBBBB + D1D1D1E6E6E6DFDFDFFFFFFF9D9D9D6B6B6B6B6B6B6B6B6B9898988000808000 + 8080008000008000806B94AD44C4F090EAFAA1EBF671D9F4BFC8F70134FF3158 + FBFFFFFF3157F91140FDBFC8F7800080800080800080969696C3C3C3E4E4E4E6 + E6E6D5D5D5D5D5D56B6B6B848484FFFFFF838383737373D5D5D5800080800080 + 00008000806B94AD44C4F08DE4F4A1EBF670D7F224B9EEAFBBF7FFFFFF2F6888 + 800080CFCBE3800080800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3 + D3B8B8B8CBCBCBFFFFFF6B6B6B800080D2D2D280008080008080008000008000 + 806B9CAD3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A80008080 + 00808000808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6D6D6D80008080008080008080008080008000008000806B9CB5 + 3BB8E67EE4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D8000808000808000 + 808000808000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D + 9D9D7070708000808000808000808000808000800000800080739CB53BB8E67E + E4FEA1EBF66FD7F21FB7EE01A7E8039CDA346F8F800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D7272 + 72800080800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EA + F56ED6F21FB7EE01A7E8039CDA31709280008080008080008080008080008080 + 0080A6A6A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D737373800080 + 800080800080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF8 + 94E7F871D9F63CBDE9437C97800080800080800080800080800080800080A6A6 + A6C5C5C5E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D80008080008080 + 008080008080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5 + F9FDA0DFEA6691A2800080800080800080800080800080800080919191DBDBDB + F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4DBDBDB9191918000808000808000808000 + 808000800000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AF + BFB8D1DB800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B + 9B9B9D9D9D9B9B9BA1A1A1AFAFAFD1D1D1800080800080800080800080800080 + 0000800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000808000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbDisconnectClick + end + object btCreate: TSpeedButton + Left = 203 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Create database objects' + Caption = 'Create' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Glyph.Data = { + 3A060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + AC9584785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E + 4B785E4B785E4B8000808000808000809292925B5B5B5B5B5B5B5B5B5B5B5B5B + 5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B800080800080800080 + AC9584FEFCFCFAEEE8F8E9E2F7E5DCF5E0D6F4DCD0F3D7C9F2D2C4F1CFBFEFCB + B9EEC8B5785E4B800080800080800080929292FCFCFCEDEDEDE8E8E8E4E4E4DF + DFDFDBDBDBD5D5D5D1D1D1CDCDCDC9C9C9C6C6C65B5B5B800080800080800080 + AC9584FFFFFFFEFDFBFDF9F7FCF5F2FAF1ECF9EBE5F7E6DEF6E1D7F4DBCFF3D6 + C9F0CBB9785E4B800080800080800080929292FFFFFFFCFCFCF8F8F8F4F4F4F0 + F0F0EAEAEAE5E5E5E0E0E0DADADAD5D5D5C9C9C95B5B5B800080800080800080 + AD9786FFFFFFFFFFFFFEFDFBFEF9F7FCF5F29B9491020202F8E6DEF6E1D7F4DB + CFF0CEBD785E4B800080800080800080949494FFFFFFFFFFFFFCFCFCF8F8F8F4 + F4F4939393020202E5E5E5E0E0E0DADADACCCCCC5B5B5B800080800080800080 + AF9A89A8A6A3020202868381D8D6D6020202020202D6CCC8F9EBE50202020202 + 02A38D82785E4B800080800080800080979797A5A5A5020202828282D6D6D602 + 0202020202CBCBCBEAEAEA0202020202028C8C8C5B5B5B800080800080800080 + B29C8CD9D9D9FFFFFF020202020202FFFDFBD7D5D2020202D6CCC9020202F8E6 + DEF2D5C7785E4B800080800080800080999999D9D9D9FFFFFF020202020202FC + FCFCD4D4D4020202CCCCCC020202E5E5E5D3D3D35B5B5B800080800080800080 + B59F8FFFFFFF020202FFFFFF020202FFFFFFFEFCFC020202D6D0CE020202FAEC + E5F4D9CD785E4B8000808000808000809C9C9CFFFFFF020202FFFFFF020202FF + FFFFFCFCFC020202D0D0D0020202EBEBEBD8D8D85B5B5B800080800080800080 + B9A393020202D9D9D9FFFFFF020202D9D9D9FFFFFF020202D7D4D2020202FBF0 + EBF5DDD1785E4B800080800080800080A0A0A0020202D9D9D9FFFFFF020202D9 + D9D9FFFFFF020202D3D3D3020202EFEFEFDCDCDC5B5B5B800080800080800080 + BBA697D9D9D9020202020202D9D9D9020202020202B9B9B9FFFCFC020202FCF5 + F1F6E2D8785E4B800080800080800080A3A3A3D9D9D9020202020202D9D9D902 + 0202020202B9B9B9FCFCFC020202F4F4F4E1E1E15B5B5B8000808000802AAFDA + 44CBF06BE5FF3BBEE599D8DF91E1F681D0E9FFFFFFFFFFFFFFFFFFFEFCFBFDF9 + F7D9CBC0785E4B800080800080ADADADC7C7C7DFDFDFBBBBBBD3D3D3DEDEDECE + CECEFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8C9C9C95B5B5B80008080008052DAFB + 32B7DF7FE9FD5FC6E693F0FF31B6DFA0E8F9FFFFFFFFFFFFFFFFFFFFFFFFFEFC + FCD9CBC0785E4B800080800080D4D4D4B4B4B4E3E3E3C4C4C4EAEAEAB3B3B3E5 + E5E5FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCC9C9C95B5B5B8000808000807CEAFF + 93F1FFBFF8FFAFE8F4C7FBFF93F1FF9FF0FFFFFFFFFFFFFFFFFFFFFAF0EB785E + 4B785E4B785E4B800080800080E4E4E4EAEAEAF3F3F3E5E5E5F6F6F6EAEAEAEB + EBEBFFFFFFFFFFFFFFFFFFEFEFEF5B5B5B5B5B5B5B5B5B80008080008021AAD9 + 55BFE1AFE8F4F0FFFDB4EBF655BFE138BBE5FFFFFFFFFFFFFFFFFF967E6BF4DB + CED1BAAF785E4B800080800080A9A9A9BDBDBDE5E5E5FCFCFCE8E8E8BDBDBDB9 + B9B9FFFFFFFFFFFFFFFFFF7A7A7AD9D9D9B9B9B95B5B5B8000808000807CEAFF + 96F3FFC7FBFFADE5F3C3FBFF96F3FF8BD7E2FEFDFBFDFBF9FDF9F6967E6BD1BA + AFAC9584800080800080800080E4E4E4ECECECF6F6F6E3E3E3F6F6F6ECECECD1 + D1D1FCFCFCFAFAFAF8F8F87A7A7AB9B9B992929280008080008080008051D9FA + 33B8E08CF1FF5AC2E390F1FF30B6DF4BD2F4BBA696B9A293B69F8FB29C8BB099 + 88800080800080800080800080D3D3D3B5B5B5EAEAEAC0C0C0EAEAEAB3B3B3CD + CDCDA3A3A3A0A0A09C9C9C9999999696968000808000808000808000802AAFDA + 44CBF07CEAFF25AEDB72E8FF4CD4F52AAFDA8000808000808000808000808000 + 80800080800080800080800080ADADADC7C7C7E4E4E4ACACACE1E1E1CECECEAD + ADAD800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + object btDrop: TSpeedButton + Left = 289 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Drop database objects' + Caption = 'Drop' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Glyph.Data = { + 3A060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A + 77A37A779063608000808000808000807D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D + 7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D676767800080800080800080 + A67E78FFE8D2FFE8D2FFE8D1FFE6CEFFE3C5FFDEBDFFDDBAFFD8B2FFD6AEFFD2 + A5FFD2A3936662800080800080800080808080E3E3E3E3E3E3E3E3E3E1E1E1DD + DDDDD7D7D7D6D6D6D0D0D0CECECEC9C9C9C8C8C8696969800080800080800080 + AB817AFFE8D2FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFDAB6FFD7B0FFD4A9FFD2 + A4FFD2A3966965800080800080800080838383E3E3E3E3E3E3E1E1E1DDDDDDDB + DBDBD6D6D6D3D3D3CFCFCFCBCBCBC9C9C9C8C8C86C6C6C800080800080800080 + B0837CFFECD9FFECD9FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFD9B4FFD7B0FFD4 + A9FFD4A99A6C67800080800080800080858585E8E8E8E8E8E8E3E3E3E1E1E1DD + DDDDDBDBDBD6D6D6D2D2D2CFCFCFCBCBCBCBCBCB6F6F6F800080800080800080 + B6897FFFEEDDFFEEDDFFECD9DFD1D8FFE6CEFFE3C6FFE1C2EFD2BFFFD9B4FFD7 + B0FFD7B09E6F698000808000808000808A8A8AEAEAEAEAEAEAE8E8E8D4D4D4E1 + E1E1DDDDDDDBDBDBCFCFCFD2D2D2CFCFCFCFCFCF727272800080800080800080 + BC8E81FFF2E4FFF2E4CFCBE31342FD637AEEFFE6CE6378EA3356F2EFD2BFFFD9 + B4FFD9B4A2726B8000808000808000808F8F8FEFEFEFEFEFEFD2D2D27474749A + 9A9AE1E1E1979797808080CFCFCFD2D2D2D2D2D2757575800080800080800080 + C39581FFF4E8FFF4E8EFE6E63359F90336FF234DF90336FF3357F4EFD6C5FFDD + BBFFDDBBA5766D800080800080800080949494F1F1F1F1F1F1E6E6E68484846C + 6C6C7B7B7B6C6C6C828282D3D3D3D6D6D6D6D6D6787878800080800080800080 + CA9B84FFF7F0FFF7F0FFF4E8EFE6E61342FD0336FF1341FCEFDBD0FFE3C6FFE0 + C1FFE1C2A8796F800080800080800080999999F5F5F5F5F5F5F1F1F1E6E6E674 + 74746C6C6C747474D9D9D9DDDDDDDADADADBDBDB7B7B7B800080800080800080 + D2A187FFF9F4FFF9F4FFF7F0637EF60336FF0336FF0336FF637AEEFFE6CEFFE3 + C6FFE3C6AC7C718000808000808000809E9E9EF8F8F8F8F8F8F5F5F59F9F9F6C + 6C6C6C6C6C6C6C6C9A9A9AE1E1E1DDDDDDDDDDDD7D7D7D800080800080800080 + D9A88AFFFDFBFFFDFBBFC8F70336FF335AFBDFDAE73359F91342FDDFD1D8FFE6 + CEFFE6CEAE7E74800080800080800080A4A4A4FCFCFCFCFCFCD5D5D56C6C6C86 + 8686DEDEDE848484747474D4D4D4E1E1E1E1E1E1808080800080800080800080 + DFAE8CFFFFFFFFFFFFFFFDFBAFBBF7EFEBF0FFF4E8EFE6E6CFCBE3FFECD9FFC8 + C2FFB0B0B08075800080800080800080A9A9A9FFFFFFFFFFFFFCFCFCCBCBCBEC + ECECF1F1F1E6E6E6D2D2D2E8E8E8CCCCCCB8B8B8818181800080800080800080 + E5B38FFDFDFDFDFDFDFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3FFF5EAF4DECEB281 + 76B28176B28176800080800080800080ADADADFCFCFCFCFCFCFFFFFFFFFFFFFE + FEFEF9F9F9F7F7F7F2F2F2DBDBDB838383838383838383800080800080800080 + EAB891FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3F5E1D2B281 + 76EDA757D2AA95800080800080800080B1B1B1FEFEFEFEFEFEFFFFFFFFFFFFFF + FFFFFEFEFEF9F9F9F7F7F7DEDEDE838383969696A8A8A8800080800080800080 + EFBC92FFFFFFFFFFFFFCFCFCFAFAFAF7F7F7F5F5F5F2F1F1F0EDEAE9DAD0B281 + 76D9B198800080800080800080800080B5B5B5FFFFFFFFFFFFFBFBFBFAFAFAF7 + F7F7F5F5F5F1F1F1ECECECD8D8D8838383ADADAD800080800080800080800080 + F2BF94DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987B281 + 76800080800080800080800080800080B7B7B7A4A4A4A4A4A4A4A4A4A4A4A4A4 + A4A4A4A4A4A4A4A4A4A4A4A4A4A4838383800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + end + object cbDebug: TCheckBox + Left = 871 + Top = 8 + Width = 68 + Height = 13 + Hint = 'Set Debug property for connection and query components' + Caption = 'Debug' + Color = clButton + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + ParentColor = False + ParentFont = False + TabOrder = 1 + OnClick = cbDebugClick + end + object pnShowSource: TPanel + Left = 440 + Top = 1 + Width = 259 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + ParentColor = False + TabOrder = 2 + object sbDemo: TSpeedButton + Left = 1 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo' + GroupIndex = 1 + Down = True + Caption = 'Demo' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + ParentFont = False + Transparent = False + OnClick = sbDemoClick + end + object sbSource: TSpeedButton + Left = 87 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo source code' + GroupIndex = 1 + Caption = 'Demo source' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + ParentFont = False + Transparent = False + OnClick = sbSourceClick + end + object sbFormText: TSpeedButton + Left = 173 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo form as text' + GroupIndex = 1 + Caption = 'Form as text' + Flat = True + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + ParentFont = False + Transparent = False + OnClick = sbFormTextClick + end + end + object pnOpenDemoDir: TPanel + Left = 720 + Top = 1 + Width = 138 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + ParentColor = False + TabOrder = 3 + object sbOpenDemoDir: TSpeedButton + Left = 1 + Top = 1 + Width = 136 + Height = 22 + Hint = 'Open folder containing the demo source files' + Caption = 'Open demo folder' + Flat = True + Font.Color = clText + Font.Height = 11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [] + Font.Weight = 40 + Glyph.Data = { + 3A030000424D3603000000000000360000002800000010000000100000000100 + 18000000000000030000120B0000120B00000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF728890628190627A81527281526272425A62424A5232 + 3A42223232222232121A22121212121222FFFFFFFFFFFFFFFFFF72889090A0B0 + 72B0D00290D00290D00290D00290C01288C01281B01281B0227AA0227290224A + 62FFFFFFFFFFFFFFFFFF81889081C0D090A8B081E0FF62D0FF52C8FF52C8FF42 + C0F032B0F032A8F022A0E01290D0226A815B6369FFFFFFFFFFFF8190A081D0F0 + 90A8B090C0D072D8FF62D0FF62D0FF52C8FF52C0FF42B8F032B0F032A8F01288 + D0224A62FFFFFFFFFFFF8190A081D8F081C8E090A8B081E0FF72D0FF62D8FF62 + D0FF62D0FF52C8FF42C0F042B8F032B0F0226A816C8B9AFFFFFF8198A090E0F0 + 90E0FF90A8B090B8C072D8FF62D8FF62D8FF62D8FF62D0FF52D0FF52C8FF42B8 + F032A0E04B6979FFFFFF8198A090E0F0A0E8FF81C8E090A8B081E0FF81E0FF81 + E0FF81E0FF81E0FF81E0FF81E0FF72D8FF72D8FF52A8D087929D90A0A0A0E8F0 + A0E8FFA0E8FF90B0C090B0C090A8B090A8B081A0B081A0B08198A08198A08190 + A08190A081889072889090A0B0A0E8F0A0F0FFA0E8FFA0E8FF81D8FF62D8FF62 + D8FF62D8FF62D8FF62D8FF62D8FF728890FFFFFFFFFFFFFFFFFF90A0B0A0F0F0 + B0F0F0A0F0FFA0E8FFA0E8FF72D8FF90A0A08198A08198A08190A08190907288 + 90FFFFFFFFFFFFFFFFFF90A8B0A0D0E0B0F0F0B0F0F0A0F0FFA0E8FF90A0B0B3 + C9CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF906A52906A52906A52CDD6DA90A8B0 + 90A8B090A8B090A8B090A8B0B6C5CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFD2C7C6906A52906A52FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFF907A62C8BAB3FFFFFFFFFFFFA09081D2CDC7907A62FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8D8D3A09081A08881B098 + 81C5BEB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + ParentFont = False + Transparent = False + OnClick = sbOpenDemoDirClick + end + end + end + object ImageList1: TImageList + Height = 17 + Left = 616 + Top = 8 + end + object BackHistoryPopup: TPopupMenu + OnPopup = BackHistoryPopupPopup + Left = 8 + Top = 133 + end + object ForwardHistoryPopup: TPopupMenu + OnPopup = ForwardHistoryPopupPopup + Left = 40 + Top = 133 + end + object ilButtons: TImageList + Left = 88 + Top = 141 + Bitmap = { + 494D474C01000100100000001000000002000000424D36060000000000003600 + 0000280000002000000010000000010018000000000000060000120B0000120B + 00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0D0C97DAC862C7D3102690902 + 6407005E042063236D9672C3CFCBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFC0D0C97DAC862C7D31026909026407005E042063236D9672C3CFCBFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAEC7B6328C360C982211B62F0DB42509 + B21C06B01601AE0B009107106514B4C6BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + AEC7B6328C360C982211B62F0DB42509B21C06B01601AE0B009107106514B4C6 + BBFFFFFFFFFFFFFFFFFFFFFFFFB0C9B8178C231CB6451BBA4417B83A12B6303C + C3521AB72D08B21B04AF1100AD09006705B6C7BDFFFFFFFFFFFFFFFFFFB0C9B8 + 178C231CB6451BBA4417B83A5DCD7279D5880BB32108B21B04AF1100AD090067 + 05B6C7BDFFFFFFFFFFFFCCDDD343A44823B75324BE5821BD511CBA456FD388FF + FFFFB5E8BE0EB4260AB21D07B11802AE0D106914C9D5D0FFFFFFCCDDD343A448 + 23B75324BE5821BD511CBA45D4F2DCFFFFFFA6E4B10EB4260AB21D07B11802AE + 0D106914C9D5D0FFFFFF9CCEA117A4372EC26B2CC16625BF5A76D695FFFFFFFF + FFFF9AE0AB13B63111B62E0BB32109B21C078E1286A88BFFFFFF9CCEA117A437 + 2EC26B2CC16625BF5A1CBB4775D694FFFFFFFFFFFFA6E4B111B62E0BB32109B2 + 1C078E1286A88BFFFFFF40B14128BB5E2EC26B2EC26B7CD9A1FFFFFFFFFFFFAC + E6BF1CBB471ABA4315B83812B6300FB52A0AB21D227A27FFFFFF40B14128BB5E + 2EC26B2EC26B1CBB471CBB4725BE5976D697FFFFFFFFFFFFA6E4B114B7340FB5 + 2A0AB21D227A27FFFFFF40B1412EC26B2EC26B7CD9A3FFFFFFFFFFFFF1FBF592 + DFAC92DFAC8EDDA38DDDA28BDC9D14B73411B62F057710FFFFFF40B1412EC26B + 62D190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8E5B614B7 + 3411B62F057710FFFFFF40B8412EC26B48CA7EFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFF1BBA4417B83A097E14FFFFFF40B8412EC26B + 62D190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5F3DE1BBA + 4417B83A097E14FFFFFF40BB4133C36E2EC26B7CD9A3FFFFFFFFFFFFFFFFFFA4 + E4BE97E1B597E1B595E0B192DFAC21BD511CBA45077F13FFFFFF40BB4133C36E + 2EC26B2EC26B2EC26B2EC26B2EC26B89DDACFFFFFFFFFFFFD7F3E22EC26B21BD + 511CBA45077F13FFFFFF40BB4144C6653FC7762EC26B7CD9A3FFFFFFFFFFFFD8 + F4E33BC6742EC26B2EC26B2CC16625BF5A23BE57238B2CFFFFFF40BB4144C665 + 3FC7762EC26B2EC26B2EC26B55CD87F2FBF6FFFFFFD8F4E32EC26B2CC16625BF + 5A23BE57238B2CFFFFFFA2D7A531BE3C72D59552CC8235C4707CD9A3FFFFFFFF + FFFFA4E4BE2EC26B2EC26B2EC26B2DC26A33963B9EC8A4FFFFFFA2D7A531BE3C + 72D59552CC8235C4702EC26BBEECD1FFFFFFD8F4E32EC26B2EC26B2EC26B2DC2 + 6A1AA73E9EC8A4FFFFFFD7E7DC40C24075D68382DAA066D28E44C8797FDAA4F2 + FBF689DDAC2EC26B2EC26B2EC26B2BBF64239629C3E2C7FFFFFFD7E7DC40BB41 + 75D68382DAA066D28E2EC26B2EC26B97E1B52EC26B2EC26B2EC26B2EC26B2BBF + 64239629C3E2C7FFFFFFFFFFFFC9E3CD40C24077D78098E0AD76D7985ACE863A + C5732EC26B2EC26B2EC26B28BD5E189E26C9E4CDFFFFFFFFFFFFFFFFFFC9E3CD + 40BB4177D78098E0AD76D7985ACE863AC5732EC26B2EC26B2EC26B28BD5E189E + 26C9E4CDFFFFFFFFFFFFFFFFFFFFFFFFCAE4CE40C24047CB4984DA918CDCA66A + D3914ECB7F2DBF6117B13643B547CAE5CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + CAE4CE40BB4147CB4984DA918CDCA66AD3914ECB7F2DBF6117B13643B547CAE5 + CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBE9DF9AD99D40C24040C24040 + C24040C24040C2409AD99DDBEADEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFDBE9DF9AD99D40C24040C24040C24040C24040C2409AD99DDBEADEFFFF + FFFFFFFFFFFFFFFFFFFF424D7E000000000000003E0000002800000020000000 + 10000000010001000000000040000000120B0000120B00000200000002000000 + FFFFFF0000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000} + end + object ilDisabledButtons: TImageList + Left = 120 + Top = 141 + Bitmap = { + 494D474C01000100100000001000000002000000424D36060000000000003600 + 0000280000002000000010000000010018000000000000060000120B0000120B + 00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC9B9B9B5D5D5D4040403D + 3D3D383838484848868686CCCCCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFCCCCCC9B9B9B5D5D5D4040403D3D3D383838484848868686CCCCCCFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF6868686565657B7B7B76767672 + 72726F6F6F6A6A6A575757434343C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + BFBFBF6868686565657B7B7B7676767272726F6F6F6A6A6A575757434343C0C0 + C0FFFFFFFFFFFFFFFFFFFFFFFFC1C1C15F5F5F8383838585858080807B7B7B92 + 92927C7C7C7272726C6C6C6868683E3E3EC2C2C2FFFFFFFFFFFFFFFFFFC1C1C1 + 5F5F5F838383858585808080A5A5A5B3B3B37474747272726C6C6C6868683E3E + 3EC2C2C2FFFFFFFFFFFFD8D8D87D7D7D8888888E8E8E8B8B8B858585B1B1B1FF + FFFFD5D5D57777777272727070706A6A6A454545D2D2D2FFFFFFD8D8D87D7D7D + 8888888E8E8E8B8B8B858585E8E8E8FFFFFFCDCDCD7777777272727070706A6A + 6A454545D2D2D2FFFFFFBBBBBB7373739797979595958F8F8FB7B7B7FFFFFFFF + FFFFC8C8C87C7C7C7B7B7B7474747272725959599B9B9BFFFFFFBBBBBB737373 + 9797979595958F8F8F868686B7B7B7FFFFFFFFFFFFCDCDCD7B7B7B7474747272 + 725959599B9B9BFFFFFF8282828E8E8E979797979797BDBDBDFFFFFFFFFFFFD3 + D3D38686868484847F7F7F7B7B7B797979727272575757FFFFFF8282828E8E8E + 9797979797978686868686868E8E8EB8B8B8FFFFFFFFFFFFCDCDCD7D7D7D7979 + 79727272575757FFFFFF828282979797979797BEBEBEFFFFFFFFFFFFF8F8F8C7 + C7C7C7C7C7C2C2C2C2C2C2C0C0C07D7D7D7B7B7B4B4B4BFFFFFF828282979797 + B1B1B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0D0D07D7D + 7D7B7B7B4B4B4BFFFFFF878787979797A4A4A4FFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFF858585808080515151FFFFFF878787979797 + B1B1B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E9E98585 + 85808080515151FFFFFF888888999999979797BEBEBEFFFFFFFFFFFFFFFFFFD1 + D1D1CBCBCBCBCBCBC9C9C9C7C7C78B8B8B858585515151FFFFFF888888999999 + 979797979797979797979797979797C5C5C5FFFFFFFFFFFFEAEAEA9797978B8B + 8B858585515151FFFFFF8888889A9A9A9F9F9F979797BEBEBEFFFFFFFFFFFFEB + EBEB9E9E9E9797979797979595958F8F8F8E8E8E636363FFFFFF8888889A9A9A + 9F9F9F979797979797979797AAAAAAF8F8F8FFFFFFEBEBEB9797979595958F8F + 8F8E8E8E636363FFFFFFC2C2C2878787B6B6B6A8A8A89B9B9BBEBEBEFFFFFFFF + FFFFD1D1D19797979797979797979797976F6F6FB8B8B8FFFFFFC2C2C2878787 + B6B6B6A8A8A89B9B9B979797DEDEDEFFFFFFEBEBEB9797979797979797979797 + 97777777B8B8B8FFFFFFE1E1E18C8C8CB2B2B2BEBEBEB1B1B1A1A1A1BFBFBFF8 + F8F8C5C5C5979797979797979797939393686868D6D6D6FFFFFFE1E1E1888888 + B2B2B2BEBEBEB1B1B1979797979797CBCBCB9797979797979797979797979393 + 93686868D6D6D6FFFFFFFFFFFFD9D9D98C8C8CB2B2B2C8C8C8B9B9B9ABABAB9D + 9D9D9797979797979797979090906B6B6BDADADAFFFFFFFFFFFFFFFFFFD9D9D9 + 888888B2B2B2C8C8C8B9B9B9ABABAB9D9D9D9797979797979797979090906B6B + 6BDADADAFFFFFFFFFFFFFFFFFFFFFFFFDADADA8C8C8C959595BABABAC3C3C3B3 + B3B3A6A6A69292927B7B7B878787DBDBDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + DADADA888888959595BABABAC3C3C3B3B3B3A6A6A69292927B7B7B878787DBDB + DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4E4E4C0C0C08C8C8C8C8C8C8C + 8C8C8C8C8C8C8C8CC0C0C0E4E4E4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFE4E4E4C0C0C08C8C8C8C8C8C8C8C8C8C8C8C8C8C8CC0C0C0E4E4E4FFFF + FFFFFFFFFFFFFFFFFFFF424D7E000000000000003E0000002800000020000000 + 10000000010001000000000040000000120B0000120B00000200000002000000 + FFFFFF0000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000} + end +end diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.dfm b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.dfm new file mode 100644 index 0000000..08110ca --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.dfm @@ -0,0 +1,7 @@ +object DemoFrame: TDemoFrame + Left = 0 + Top = 0 + Width = 308 + Height = 228 + TabOrder = 0 +end diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.pas b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.pas new file mode 100644 index 0000000..6636031 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.pas @@ -0,0 +1,57 @@ +unit DemoFrame; + +interface + +uses + Classes, +{$IFDEF LINUX} + QControls, QStdCtrls, QGraphics, QForms, +{$ELSE} + Forms, Windows, Messages, SysUtils, StdCtrls, Graphics, Controls, Dialogs, + ComCtrls, Buttons, ExtCtrls, DBCtrls, +{$ENDIF} + DBAccess + {$IFNDEF VER130}, Variants{$ENDIF} + ; + +type + TDemoFrame = class(TFrame) + public + Connection: TCustomDAConnection; + procedure Initialize; virtual; + procedure SetDebug(Value: boolean); virtual; + + procedure AssignConnectionTo(Dest: TCustomDAConnection); + end; + + TDemoFrameClass = class of TDemoFrame; + + +implementation + +{$IFDEF CLR} +{$R *.nfm} +{$ENDIF} +{$IFDEF WIN32} +{$R *.dfm} +{$ENDIF} +{$IFDEF LINUX} +{$R *.xfm} +{$ENDIF} + +procedure TDemoFrame.Initialize; +begin +end; + +procedure TDemoFrame.SetDebug(Value: boolean); +begin +end; + +procedure TDemoFrame.AssignConnectionTo(Dest: TCustomDAConnection); +begin + Dest.Assign(Connection); + Dest.AfterConnect := nil; + Dest.AfterDisconnect := nil; +end; + +end. diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.xfm b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.xfm new file mode 100644 index 0000000..aac3159 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/DemoFrame.xfm @@ -0,0 +1,13 @@ +object DemoFrame: TDemoFrame + Left = 0 + Top = 0 + Width = 308 + Height = 228 + Font.Color = clBlack + Font.Height = 11 + Font.Name = 'helvetica' + Font.Pitch = fpVariable + Font.Style = [] + ParentFont = False + TabOrder = 0 +end diff --git a/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/HtmlConsts.pas b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/HtmlConsts.pas new file mode 100644 index 0000000..32944d8 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/Win32/SdacDemo/Base/HtmlConsts.pas @@ -0,0 +1,142 @@ +unit HtmlConsts; + +interface + +const + HTMLHeader: string = + ''#13#10 + + ''#13#10 + + ''#13#10 + + '| Demo | '); + List.Add('Description | '); + List.Add('
|---|
' + SupplementaryDemosNote + '
'); +{$ENDIF} + + Result.AddStrings(FSupplementaryDemosDescription); + end; +{$IFDEF WIN32} + Result.Add(HTMLFooter); +{$ENDIF} +end; + +function TDemos.SelectDemo(DemoIndex: integer): TDemo; //Init and show demo by DemoIndex +var + Descriptions: TStrings; +begin + Result := GetItems(DemoIndex); + if (FSelectedDemo <> nil) and (Result <> FSelectedDemo) then + if FSelectedDemo.DemoType <> dtCategory then + FSelectedDemo.FreeFrame //In case of demo selection change we should free demo frame except category description + else + FSelectedDemo.Frame.Hide; + FSelectedDemo := Result; + with FSelectedDemo do + if FFrame = nil then begin + FFrame := FFrameClass.Create(nil); + if DemoType = dtCategory then begin + Descriptions := WrapDescription(FSelectedDemo); + try + TCategoryFrame(FFrame).SetDemoDescriptions(Descriptions); + finally + Descriptions.Free; + end; + end; + end + else + FFrame.Show; +end; + +{TDemo} +constructor TDemo.Create(Name, Hint, Description: string; DemoType: TDemoType; FrameClass: TDemoFrameClass; FileName: string = ''); +begin + inherited Create; + + FName := Name; + if FileName = '' then + FFileName := Name + else + FFileName := FileName; + FHint := Hint; + FDescription := Description; + FFrameClass := FrameClass; + FDemoType := DemoType; +end; + +destructor TDemo.Destroy; +begin + FreeFrame; + + inherited; +end; + +procedure TDemo.LoadDemoCode(Strings: TStrings); +var + FileName: string; +begin + if DemoType = dtCategory then + Strings.Clear + else begin + {$IFDEF LINUX} + FileName := Format('%s/%s/%s.pas', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ELSE} + FileName := Format('%s\%s\%s.pas', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + + if FileExists(FileName) then + Strings.LoadFromFile(FileName) + else + Strings.Clear; + end; +end; + +procedure TDemo.LoadFormCode(Strings: TStrings); +var + FileName: string; +begin + if DemoType = dtCategory then + Strings.Clear + else begin + {$IFDEF LINUX} + FileName := Format('%s/%s/%s.xfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + {$IFDEF CLR} + FileName := Format('%s\%s\%s.nfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + {$IFDEF WIN32} + FileName := Format('%s\%s\%s.dfm', [ExtractFilePath(Application.ExeName), Name, FFileName]); + {$ENDIF} + + if FileExists(FileName) then + Strings.LoadFromFile(FileName) + else + Strings.Clear; + end; +end; + +procedure TDemo.OpenDemoFolder; +{$IFNDEF LINUX} +var + FolderName: string; +begin + if DemoType = dtDemo then begin + FolderName := ExtractFilePath(Application.ExeName) + Name; + ShellExecute(0, 'open', PChar(FolderName), '', '.', SW_SHOW); + end; +end; +{$ELSE} +begin + +end; +{$ENDIF} + +procedure TDemo.FreeFrame; +begin + FFrame.Free; + FFrame := nil; +end; + + +end. diff --git a/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.nfm b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.nfm new file mode 100644 index 0000000..631bd91 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.nfm @@ -0,0 +1,937 @@ +object DemoForm: TDemoForm + Left = 71 + Top = 139 + Width = 957 + Height = 500 + Caption = 'Data Access Components demos' + Color = clSilver + Constraints.MinHeight = 500 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = True + Position = poScreenCenter + Scaled = False + ShowHint = True + WindowState = wsMaximized + OnCreate = FormCreate + OnDestroy = FormDestroy + OnResize = FormResize + PixelsPerInch = 96 + TextHeight = 13 + object TVSplitter: TSplitter + Left = 216 + Top = 69 + Height = 374 + Beveled = True + Color = 9790720 + MinSize = 150 + ParentColor = False + OnCanResize = TVSplitterCanResize + OnMoved = TVSplitterMoved + end + object MainPanel: TPanel + Left = 219 + Top = 69 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + Constraints.MinWidth = 730 + TabOrder = 2 + object pnDemo: TPanel + Left = 0 + Top = 0 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + TabOrder = 1 + end + object pnSource: TPanel + Left = 0 + Top = 0 + Width = 730 + Height = 374 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + Visible = False + end + end + object StatusBar: TStatusBar + Left = 0 + Top = 443 + Width = 949 + Height = 20 + Font.Charset = DEFAULT_CHARSET + Font.Color = clBtnText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + Panels = < + item + Width = 220 + end + item + Width = 100 + end + item + Width = 480 + end + item + Width = 50 + end> + UseSystemFont = False + end + object PanelUnderTree: TPanel + Left = 0 + Top = 69 + Width = 216 + Height = 374 + Align = alLeft + BevelOuter = bvNone + TabOrder = 0 + object TreeView: TTreeView + Left = 0 + Top = 22 + Width = 351 + Height = 352 + Align = alLeft + HideSelection = False + HotTrack = True + Images = ImageList1 + Indent = 21 + ParentShowHint = False + ReadOnly = True + ShowHint = True + TabOrder = 0 + OnChange = TreeViewChange + OnClick = TreeViewClick + OnKeyDown = TreeViewKeyDown + OnMouseMove = TreeViewMouseMove + end + object ToolBar: TToolBar + Left = 0 + Top = 0 + Width = 216 + Height = 22 + AutoSize = True + ButtonWidth = 28 + Caption = 'ToolBar' + DisabledImages = ilDisabledButtons + EdgeInner = esNone + EdgeOuter = esNone + Flat = True + Images = ilButtons + TabOrder = 1 + object tbBrowseBack: TToolButton + Left = 0 + Top = 0 + Hint = 'Back' + Caption = ' Back ' + DropdownMenu = BackHistoryPopup + ImageIndex = 0 + Style = tbsDropDown + OnClick = tbBrowseBackClick + end + object tbBrowseForward: TToolButton + Left = 41 + Top = 0 + Hint = 'Forward' + DropdownMenu = ForwardHistoryPopup + ImageIndex = 1 + Style = tbsDropDown + OnClick = tbBrowseForwardClick + end + end + end + object pnTopLabel: TPanel + Left = 0 + Top = 0 + Width = 949 + Height = 41 + Align = alTop + BevelOuter = bvNone + TabOrder = 3 + object lbTitle: TLabel + Left = 0 + Top = 0 + Width = 949 + Height = 42 + Cursor = crArrow + Align = alTop + Caption = 'DAC demos' + Color = 9790720 + Constraints.MinWidth = 130 + Font.Charset = RUSSIAN_CHARSET + Font.Color = clWhite + Font.Height = -35 + Font.Name = 'Verdana' + Font.Style = [fsBold, fsItalic] + ParentColor = False + ParentFont = False + OnMouseMove = lbTitleMouseMove + end + object lbAbout: TLabel + Left = 854 + Top = 12 + Width = 34 + Height = 13 + Caption = 'About' + Color = 9790720 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWhite + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold, fsUnderline] + ParentColor = False + ParentFont = False + OnClick = lbAboutClick + OnMouseMove = lbAboutMouseMove + end + end + object Panel2: TPanel + Left = 0 + Top = 41 + Width = 949 + Height = 28 + Align = alTop + BevelOuter = bvNone + TabOrder = 4 + object Shape1: TShape + Left = 0 + Top = 25 + Width = 949 + Height = 3 + Align = alBottom + Brush.Color = 9790720 + Pen.Color = clBtnFace + end + object Panel1: TPanel + Left = 1 + Top = 1 + Width = 375 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 0 + object sbConnect: TSpeedButton + Left = 1 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Connect to database' + Caption = 'Connect' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + F6050000424DF60500000000000036000000280000001E000000100000000100 + 180000000000C005000000000000000000000000000000000000800080800080 + 8000808000808000808000808000808000808000808000804B40388000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 00808000803E3E3E800080800080800080800080000080008080008080008080 + 00808000808000808000808000808000808000808000804C40373E352D800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000803E3E3E33333380008080008000008000808000808000808000808000 + 808000808000808000807E6A5C80008066574B594B414C403880008080008080 + 0080800080800080800080800080800080800080800080686868800080555555 + 4949493E3E3E8000808000800000800080800080800080800080800080800080 + 8000808000808000807E6B5D72615466564B594B428000808000808000808000 + 808000808000808000808000808000808000808000806868685E5E5E54545449 + 49498000808000800000800080A2C8D864A8C0608D9F5D83964A768D346D8C30 + 70925C8AA38874647E6B5C73615466564B800080800080800080C8C8C8A7A7A7 + 8D8D8D8484847878787070707373738C8C8C7171716868685F5F5F5454548000 + 808000800000800080638CA53FBCE884D5E8A1EBF673E4FF24BEF3039FDE148B + BE45729080008080008080008066574B8000808000808E8E8EBBBBBBD1D1D1E6 + E6E6DFDFDFBCBCBCA0A0A08D8D8D767676800080800080800080555555800080 + 00008000806B94AD44C4F090EAFAA1EBF671D9F424BCF201A7E8039CDA2A6384 + 800080800080800080736154800080800080969696C3C3C3E4E4E4E6E6E6D5D5 + D5BBBBBBA8A8A89D9D9D6666668000808000808000805F5F5F80008000008000 + 806B94AD44C4F08DE4F4A1EBF670D7F224B9EE01A7E8039CDA2F688897806F91 + 7A6A887464800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6B6B6B7D7D7D77777771717180008080008000008000806B9CAD + 3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A8000808000808000 + 808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8A8A8A89D + 9D9D6D6D6D80008080008080008080008080008000008000806B9CB53BB8E67E + E4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D9D9D7070 + 708000808000808000808000808000800000800080739CB53BB8E67EE4FEA1EB + F66FD7F21FB7EE01A7E8039CDA346F8F80008080008080008080008080008080 + 00809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D727272800080 + 800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EAF56ED6F2 + 1FB7EE01A7E8039CDA317092800080800080800080800080800080800080A6A6 + A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D73737380008080008080 + 0080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF894E7F871 + D9F63CBDE9437C97800080800080800080800080800080800080A6A6A6C5C5C5 + E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D8000808000808000808000 + 8080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5F9FDA0DF + EA6691A2800080800080800080800080800080800080919191DBDBDBF4F4F4F4 + F4F4F4F4F4F4F4F4F4F4F4DBDBDB919191800080800080800080800080800080 + 0000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AFBFB8D1DB + 800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B9B9B9D9D + 9D9B9B9BA1A1A1AFAFAFD1D1D180008080008080008080008080008000008000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbConnectClick + end + object sbDisconnect: TSpeedButton + Left = 102 + Top = 1 + Width = 100 + Height = 22 + Hint = 'Dsisconnect from database' + Caption = 'Disconnect' + Enabled = False + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 9A050000424D9A0500000000000036000000280000001E0000000F0000000100 + 1800000000006405000000000000000000000000000000000000800080800080 + 800080800080800080800080800080AFBBF7800080800080800080CFCBE38000 + 80800080800080800080800080800080800080800080800080800080CBCBCB80 + 0080800080800080D2D2D2800080800080800080000080008080008080008080 + 0080800080800080CFCBE31140FD6178EE8000806176EA3154F2CFCBE3800080 + 800080800080800080800080800080800080800080D2D2D27373739898988000 + 809696967F7F7FD2D2D280008080008000008000808000808000808000808000 + 808000808000803157F90134FF214BF90134FF3155F480008080008080008080 + 00808000808000808000808000808000808000808383836B6B6B7A7A7A6B6B6B + 8080808000808000808000800000800080A2C8D864A8C0608D9F5D83964A768D + 346D8CFFFFFF1140FD0134FF113FFC800080800080800080800080800080C8C8 + C8A7A7A78D8D8D848484787878707070FFFFFF7373736B6B6B72727280008080 + 00808000808000800000800080638CA53FBCE884D5E8A1EBF673E4FFFFFFFF61 + 7CF60134FF0134FF0134FF6178EE8000808000808000808000808E8E8EBBBBBB + D1D1D1E6E6E6DFDFDFFFFFFF9D9D9D6B6B6B6B6B6B6B6B6B9898988000808000 + 8080008000008000806B94AD44C4F090EAFAA1EBF671D9F4BFC8F70134FF3158 + FBFFFFFF3157F91140FDBFC8F7800080800080800080969696C3C3C3E4E4E4E6 + E6E6D5D5D5D5D5D56B6B6B848484FFFFFF838383737373D5D5D5800080800080 + 00008000806B94AD44C4F08DE4F4A1EBF670D7F224B9EEAFBBF7FFFFFF2F6888 + 800080CFCBE3800080800080800080800080969696C3C3C3DFDFDFE6E6E6D3D3 + D3B8B8B8CBCBCBFFFFFF6B6B6B800080D2D2D280008080008080008000008000 + 806B9CAD3FBCE88EE4F5A1EBF670D7F224B9EE01A7E8039CDA306B8A80008080 + 00808000808000808000808000809B9B9BBBBBBBDFDFDFE6E6E6D3D3D3B8B8B8 + A8A8A89D9D9D6D6D6D80008080008080008080008080008000008000806B9CB5 + 3BB8E67EE4FEA1EBF672D9F224B9EE01A7E8039CDA326D8D8000808000808000 + 808000808000808000809E9E9EB8B8B8E0E0E0E6E6E6D5D5D5B8B8B8A8A8A89D + 9D9D7070708000808000808000808000808000800000800080739CB53BB8E67E + E4FEA1EBF66FD7F21FB7EE01A7E8039CDA346F8F800080800080800080800080 + 8000808000809E9E9EB8B8B8E0E0E0E6E6E6D3D3D3B6B6B6A8A8A89D9D9D7272 + 72800080800080800080800080800080000080008073A5BD3BB8E67EE4FEA0EA + F56ED6F21FB7EE01A7E8039CDA31709280008080008080008080008080008080 + 0080A6A6A6B8B8B8E0E0E0E5E5E5D2D2D2B6B6B6A8A8A89D9D9D737373800080 + 800080800080800080800080000080008073A5BD58C9E78CECFFA0EAF5A6EDF8 + 94E7F871D9F63CBDE9437C97800080800080800080800080800080800080A6A6 + A6C5C5C5E7E7E7E5E5E5E8E8E8E2E2E2D6D6D6BCBCBC7D7D7D80008080008080 + 008080008080008000008000806691A2A0DFEAC5F9FDC5F9FDC5F9FDC5F9FDC5 + F9FDA0DFEA6691A2800080800080800080800080800080800080919191DBDBDB + F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4DBDBDB9191918000808000808000808000 + 808000800000800080B8D1DB84AFBF6FA2B46B9BAE6C9DAF6B9BAE6FA2B484AF + BFB8D1DB800080800080800080800080800080800080D1D1D1AFAFAFA1A1A19B + 9B9B9D9D9D9B9B9BA1A1A1AFAFAFD1D1D1800080800080800080800080800080 + 0000800080800080800080800080800080800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 808000808000808000808000808000808000808000808000808000800000} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = sbDisconnectClick + end + object btCreate: TSpeedButton + Left = 203 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Create database objects' + Caption = 'Create' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 36060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + AC9584785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E4B785E + 4B785E4B785E4B8000808000808000809292925B5B5B5B5B5B5B5B5B5B5B5B5B + 5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B800080800080800080 + AC9584FEFCFCFAEEE8F8E9E2F7E5DCF5E0D6F4DCD0F3D7C9F2D2C4F1CFBFEFCB + B9EEC8B5785E4B800080800080800080929292FCFCFCEDEDEDE8E8E8E4E4E4DF + DFDFDBDBDBD5D5D5D1D1D1CDCDCDC9C9C9C6C6C65B5B5B800080800080800080 + AC9584FFFFFFFEFDFBFDF9F7FCF5F2FAF1ECF9EBE5F7E6DEF6E1D7F4DBCFF3D6 + C9F0CBB9785E4B800080800080800080929292FFFFFFFCFCFCF8F8F8F4F4F4F0 + F0F0EAEAEAE5E5E5E0E0E0DADADAD5D5D5C9C9C95B5B5B800080800080800080 + AD9786FFFFFFFFFFFFFEFDFBFEF9F7FCF5F29B9491020202F8E6DEF6E1D7F4DB + CFF0CEBD785E4B800080800080800080949494FFFFFFFFFFFFFCFCFCF8F8F8F4 + F4F4939393020202E5E5E5E0E0E0DADADACCCCCC5B5B5B800080800080800080 + AF9A89A8A6A3020202868381D8D6D6020202020202D6CCC8F9EBE50202020202 + 02A38D82785E4B800080800080800080979797A5A5A5020202828282D6D6D602 + 0202020202CBCBCBEAEAEA0202020202028C8C8C5B5B5B800080800080800080 + B29C8CD9D9D9FFFFFF020202020202FFFDFBD7D5D2020202D6CCC9020202F8E6 + DEF2D5C7785E4B800080800080800080999999D9D9D9FFFFFF020202020202FC + FCFCD4D4D4020202CCCCCC020202E5E5E5D3D3D35B5B5B800080800080800080 + B59F8FFFFFFF020202FFFFFF020202FFFFFFFEFCFC020202D6D0CE020202FAEC + E5F4D9CD785E4B8000808000808000809C9C9CFFFFFF020202FFFFFF020202FF + FFFFFCFCFC020202D0D0D0020202EBEBEBD8D8D85B5B5B800080800080800080 + B9A393020202D9D9D9FFFFFF020202D9D9D9FFFFFF020202D7D4D2020202FBF0 + EBF5DDD1785E4B800080800080800080A0A0A0020202D9D9D9FFFFFF020202D9 + D9D9FFFFFF020202D3D3D3020202EFEFEFDCDCDC5B5B5B800080800080800080 + BBA697D9D9D9020202020202D9D9D9020202020202B9B9B9FFFCFC020202FCF5 + F1F6E2D8785E4B800080800080800080A3A3A3D9D9D9020202020202D9D9D902 + 0202020202B9B9B9FCFCFC020202F4F4F4E1E1E15B5B5B8000808000802AAFDA + 44CBF06BE5FF3BBEE599D8DF91E1F681D0E9FFFFFFFFFFFFFFFFFFFEFCFBFDF9 + F7D9CBC0785E4B800080800080ADADADC7C7C7DFDFDFBBBBBBD3D3D3DEDEDECE + CECEFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8C9C9C95B5B5B80008080008052DAFB + 32B7DF7FE9FD5FC6E693F0FF31B6DFA0E8F9FFFFFFFFFFFFFFFFFFFFFFFFFEFC + FCD9CBC0785E4B800080800080D4D4D4B4B4B4E3E3E3C4C4C4EAEAEAB3B3B3E5 + E5E5FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCC9C9C95B5B5B8000808000807CEAFF + 93F1FFBFF8FFAFE8F4C7FBFF93F1FF9FF0FFFFFFFFFFFFFFFFFFFFFAF0EB785E + 4B785E4B785E4B800080800080E4E4E4EAEAEAF3F3F3E5E5E5F6F6F6EAEAEAEB + EBEBFFFFFFFFFFFFFFFFFFEFEFEF5B5B5B5B5B5B5B5B5B80008080008021AAD9 + 55BFE1AFE8F4F0FFFDB4EBF655BFE138BBE5FFFFFFFFFFFFFFFFFF967E6BF4DB + CED1BAAF785E4B800080800080A9A9A9BDBDBDE5E5E5FCFCFCE8E8E8BDBDBDB9 + B9B9FFFFFFFFFFFFFFFFFF7A7A7AD9D9D9B9B9B95B5B5B8000808000807CEAFF + 96F3FFC7FBFFADE5F3C3FBFF96F3FF8BD7E2FEFDFBFDFBF9FDF9F6967E6BD1BA + AFAC9584800080800080800080E4E4E4ECECECF6F6F6E3E3E3F6F6F6ECECECD1 + D1D1FCFCFCFAFAFAF8F8F87A7A7AB9B9B992929280008080008080008051D9FA + 33B8E08CF1FF5AC2E390F1FF30B6DF4BD2F4BBA696B9A293B69F8FB29C8BB099 + 88800080800080800080800080D3D3D3B5B5B5EAEAEAC0C0C0EAEAEAB3B3B3CD + CDCDA3A3A3A0A0A09C9C9C9999999696968000808000808000808000802AAFDA + 44CBF07CEAFF25AEDB72E8FF4CD4F52AAFDA8000808000808000808000808000 + 80800080800080800080800080ADADADC7C7C7E4E4E4ACACACE1E1E1CECECEAD + ADAD800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + object btDrop: TSpeedButton + Left = 289 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Drop database objects' + Caption = 'Drop' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + Glyph.Data = { + 36060000424D3606000000000000360000002800000020000000100000000100 + 1800000000000006000000000000000000000000000000000000800080800080 + A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A77A37A + 77A37A779063608000808000808000807D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D + 7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D676767800080800080800080 + A67E78FFE8D2FFE8D2FFE8D1FFE6CEFFE3C5FFDEBDFFDDBAFFD8B2FFD6AEFFD2 + A5FFD2A3936662800080800080800080808080E3E3E3E3E3E3E3E3E3E1E1E1DD + DDDDD7D7D7D6D6D6D0D0D0CECECEC9C9C9C8C8C8696969800080800080800080 + AB817AFFE8D2FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFDAB6FFD7B0FFD4A9FFD2 + A4FFD2A3966965800080800080800080838383E3E3E3E3E3E3E1E1E1DDDDDDDB + DBDBD6D6D6D3D3D3CFCFCFCBCBCBC9C9C9C8C8C86C6C6C800080800080800080 + B0837CFFECD9FFECD9FFE8D2FFE6CEFFE3C6FFE1C2FFDDBBFFD9B4FFD7B0FFD4 + A9FFD4A99A6C67800080800080800080858585E8E8E8E8E8E8E3E3E3E1E1E1DD + DDDDDBDBDBD6D6D6D2D2D2CFCFCFCBCBCBCBCBCB6F6F6F800080800080800080 + B6897FFFEEDDFFEEDDFFECD9DFD1D8FFE6CEFFE3C6FFE1C2EFD2BFFFD9B4FFD7 + B0FFD7B09E6F698000808000808000808A8A8AEAEAEAEAEAEAE8E8E8D4D4D4E1 + E1E1DDDDDDDBDBDBCFCFCFD2D2D2CFCFCFCFCFCF727272800080800080800080 + BC8E81FFF2E4FFF2E4CFCBE31342FD637AEEFFE6CE6378EA3356F2EFD2BFFFD9 + B4FFD9B4A2726B8000808000808000808F8F8FEFEFEFEFEFEFD2D2D27474749A + 9A9AE1E1E1979797808080CFCFCFD2D2D2D2D2D2757575800080800080800080 + C39581FFF4E8FFF4E8EFE6E63359F90336FF234DF90336FF3357F4EFD6C5FFDD + BBFFDDBBA5766D800080800080800080949494F1F1F1F1F1F1E6E6E68484846C + 6C6C7B7B7B6C6C6C828282D3D3D3D6D6D6D6D6D6787878800080800080800080 + CA9B84FFF7F0FFF7F0FFF4E8EFE6E61342FD0336FF1341FCEFDBD0FFE3C6FFE0 + C1FFE1C2A8796F800080800080800080999999F5F5F5F5F5F5F1F1F1E6E6E674 + 74746C6C6C747474D9D9D9DDDDDDDADADADBDBDB7B7B7B800080800080800080 + D2A187FFF9F4FFF9F4FFF7F0637EF60336FF0336FF0336FF637AEEFFE6CEFFE3 + C6FFE3C6AC7C718000808000808000809E9E9EF8F8F8F8F8F8F5F5F59F9F9F6C + 6C6C6C6C6C6C6C6C9A9A9AE1E1E1DDDDDDDDDDDD7D7D7D800080800080800080 + D9A88AFFFDFBFFFDFBBFC8F70336FF335AFBDFDAE73359F91342FDDFD1D8FFE6 + CEFFE6CEAE7E74800080800080800080A4A4A4FCFCFCFCFCFCD5D5D56C6C6C86 + 8686DEDEDE848484747474D4D4D4E1E1E1E1E1E1808080800080800080800080 + DFAE8CFFFFFFFFFFFFFFFDFBAFBBF7EFEBF0FFF4E8EFE6E6CFCBE3FFECD9FFC8 + C2FFB0B0B08075800080800080800080A9A9A9FFFFFFFFFFFFFCFCFCCBCBCBEC + ECECF1F1F1E6E6E6D2D2D2E8E8E8CCCCCCB8B8B8818181800080800080800080 + E5B38FFDFDFDFDFDFDFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3FFF5EAF4DECEB281 + 76B28176B28176800080800080800080ADADADFCFCFCFCFCFCFFFFFFFFFFFFFE + FEFEF9F9F9F7F7F7F2F2F2DBDBDB838383838383838383800080800080800080 + EAB891FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFAF6FFF9F3F5E1D2B281 + 76EDA757D2AA95800080800080800080B1B1B1FEFEFEFEFEFEFFFFFFFFFFFFFF + FFFFFEFEFEF9F9F9F7F7F7DEDEDE838383969696A8A8A8800080800080800080 + EFBC92FFFFFFFFFFFFFCFCFCFAFAFAF7F7F7F5F5F5F2F1F1F0EDEAE9DAD0B281 + 76D9B198800080800080800080800080B5B5B5FFFFFFFFFFFFFBFBFBFAFAFAF7 + F7F7F5F5F5F1F1F1ECECECD8D8D8838383ADADAD800080800080800080800080 + F2BF94DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987DCA987B281 + 76800080800080800080800080800080B7B7B7A4A4A4A4A4A4A4A4A4A4A4A4A4 + A4A4A4A4A4A4A4A4A4A4A4A4A4A4838383800080800080800080800080800080 + 8000808000808000808000808000808000808000808000808000808000808000 + 8080008080008080008080008080008080008080008080008080008080008080 + 0080800080800080800080800080800080800080800080800080} + NumGlyphs = 2 + ParentFont = False + Transparent = False + OnClick = btScriptClick + end + end + object cbDebug: TCheckBox + Left = 871 + Top = 8 + Width = 68 + Height = 13 + Hint = 'Set Debug property for connection and query components' + Caption = 'Debug' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentColor = False + ParentFont = False + TabOrder = 1 + OnClick = cbDebugClick + end + object pnShowSource: TPanel + Left = 440 + Top = 1 + Width = 259 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 2 + object sbDemo: TSpeedButton + Left = 1 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo' + GroupIndex = 1 + Down = True + Caption = 'Demo' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbDemoClick + end + object sbSource: TSpeedButton + Left = 87 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo source code' + GroupIndex = 1 + Caption = 'Demo source' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbSourceClick + end + object sbFormText: TSpeedButton + Left = 173 + Top = 1 + Width = 85 + Height = 22 + Hint = 'Show demo form as text' + GroupIndex = 1 + Caption = 'Form as text' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clBlack + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Pitch = fpVariable + Font.Style = [fsBold] + ParentFont = False + Transparent = False + OnClick = sbFormTextClick + end + end + object pnOpenDemoDir: TPanel + Left = 720 + Top = 1 + Width = 138 + Height = 24 + BevelOuter = bvNone + Color = 9790720 + TabOrder = 3 + object sbOpenDemoDir: TSpeedButton + Left = 1 + Top = 1 + Width = 136 + Height = 22 + Hint = 'Open folder containing the demo source files' + Caption = 'Open demo folder' + Flat = True + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + Glyph.Data = { + 36030000424D3603000000000000360000002800000010000000100000000100 + 1800000000000003000000000000000000000000000000000000FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFF728890628190627A81527281526272425A62424A5232 + 3A42223232222232121A22121212121222FFFFFFFFFFFFFFFFFF72889090A0B0 + 72B0D00290D00290D00290D00290C01288C01281B01281B0227AA0227290224A + 62FFFFFFFFFFFFFFFFFF81889081C0D090A8B081E0FF62D0FF52C8FF52C8FF42 + C0F032B0F032A8F022A0E01290D0226A815B6369FFFFFFFFFFFF8190A081D0F0 + 90A8B090C0D072D8FF62D0FF62D0FF52C8FF52C0FF42B8F032B0F032A8F01288 + D0224A62FFFFFFFFFFFF8190A081D8F081C8E090A8B081E0FF72D0FF62D8FF62 + D0FF62D0FF52C8FF42C0F042B8F032B0F0226A816C8B9AFFFFFF8198A090E0F0 + 90E0FF90A8B090B8C072D8FF62D8FF62D8FF62D8FF62D0FF52D0FF52C8FF42B8 + F032A0E04B6979FFFFFF8198A090E0F0A0E8FF81C8E090A8B081E0FF81E0FF81 + E0FF81E0FF81E0FF81E0FF81E0FF72D8FF72D8FF52A8D087929D90A0A0A0E8F0 + A0E8FFA0E8FF90B0C090B0C090A8B090A8B081A0B081A0B08198A08198A08190 + A08190A081889072889090A0B0A0E8F0A0F0FFA0E8FFA0E8FF81D8FF62D8FF62 + D8FF62D8FF62D8FF62D8FF62D8FF728890FFFFFFFFFFFFFFFFFF90A0B0A0F0F0 + B0F0F0A0F0FFA0E8FFA0E8FF72D8FF90A0A08198A08198A08190A08190907288 + 90FFFFFFFFFFFFFFFFFF90A8B0A0D0E0B0F0F0B0F0F0A0F0FFA0E8FF90A0B0B3 + C9CEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF906A52906A52906A52CDD6DA90A8B0 + 90A8B090A8B090A8B090A8B0B6C5CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFD2C7C6906A52906A52FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFF907A62C8BAB3FFFFFFFFFFFFA09081D2CDC7907A62FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8D8D3A09081A08881B098 + 81C5BEB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF} + ParentFont = False + Transparent = False + OnClick = sbOpenDemoDirClick + end + end + end + object ImageList1: TImageList + Height = 17 + Left = 616 + Top = 8 + end + object BackHistoryPopup: TPopupMenu + OnPopup = BackHistoryPopupPopup + Left = 8 + Top = 133 + end + object ForwardHistoryPopup: TPopupMenu + OnPopup = ForwardHistoryPopupPopup + Left = 40 + Top = 133 + end + object ilButtons: TImageList + Left = 88 + Top = 141 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000C0D0 + C9007DAC86002C7D31000269090002640700005E0400206323006D967200C3CF + CB0000000000000000000000000000000000000000000000000000000000C0D0 + C9007DAC86002C7D31000269090002640700005E0400206323006D967200C3CF + CB00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000AEC7B600328C + 36000C98220011B62F000DB4250009B21C0006B0160001AE0B00009107001065 + 1400B4C6BB000000000000000000000000000000000000000000AEC7B600328C + 36000C98220011B62F000DB4250009B21C0006B0160001AE0B00009107001065 + 1400B4C6BB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000B0C9B800178C23001CB6 + 45001BBA440017B83A0012B630003CC352001AB72D0008B21B0004AF110000AD + 090000670500B6C7BD00000000000000000000000000B0C9B800178C23001CB6 + 45001BBA440017B83A005DCD720079D588000BB3210008B21B0004AF110000AD + 090000670500B6C7BD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000CCDDD30043A4480023B7530024BE + 580021BD51001CBA45006FD38800FFFFFF00B5E8BE000EB426000AB21D0007B1 + 180002AE0D0010691400C9D5D00000000000CCDDD30043A4480023B7530024BE + 580021BD51001CBA4500D4F2DC00FFFFFF00A6E4B1000EB426000AB21D0007B1 + 180002AE0D0010691400C9D5D000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000009CCEA10017A437002EC26B002CC1 + 660025BF5A0076D69500FFFFFF00FFFFFF009AE0AB0013B6310011B62E000BB3 + 210009B21C00078E120086A88B00000000009CCEA10017A437002EC26B002CC1 + 660025BF5A001CBB470075D69400FFFFFF00FFFFFF00A6E4B10011B62E000BB3 + 210009B21C00078E120086A88B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B1410028BB5E002EC26B002EC2 + 6B007CD9A100FFFFFF00FFFFFF00ACE6BF001CBB47001ABA430015B8380012B6 + 30000FB52A000AB21D00227A27000000000040B1410028BB5E002EC26B002EC2 + 6B001CBB47001CBB470025BE590076D69700FFFFFF00FFFFFF00A6E4B10014B7 + 34000FB52A000AB21D00227A2700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B141002EC26B002EC26B007CD9 + A300FFFFFF00FFFFFF00F1FBF50092DFAC0092DFAC008EDDA3008DDDA2008BDC + 9D0014B7340011B62F00057710000000000040B141002EC26B0062D19000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A8E5 + B60014B7340011B62F0005771000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040B841002EC26B0048CA7E00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF001BBA440017B83A00097E14000000000040B841002EC26B0062D19000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D5F3 + DE001BBA440017B83A00097E1400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040BB410033C36E002EC26B007CD9 + A300FFFFFF00FFFFFF00FFFFFF00A4E4BE0097E1B50097E1B50095E0B10092DF + AC0021BD51001CBA4500077F13000000000040BB410033C36E002EC26B002EC2 + 6B002EC26B002EC26B002EC26B0089DDAC00FFFFFF00FFFFFF00D7F3E2002EC2 + 6B0021BD51001CBA4500077F1300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000040BB410044C665003FC776002EC2 + 6B007CD9A300FFFFFF00FFFFFF00D8F4E3003BC674002EC26B002EC26B002CC1 + 660025BF5A0023BE5700238B2C000000000040BB410044C665003FC776002EC2 + 6B002EC26B002EC26B0055CD8700F2FBF600FFFFFF00D8F4E3002EC26B002CC1 + 660025BF5A0023BE5700238B2C00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000A2D7A50031BE3C0072D5950052CC + 820035C470007CD9A300FFFFFF00FFFFFF00A4E4BE002EC26B002EC26B002EC2 + 6B002DC26A0033963B009EC8A40000000000A2D7A50031BE3C0072D5950052CC + 820035C470002EC26B00BEECD100FFFFFF00D8F4E3002EC26B002EC26B002EC2 + 6B002DC26A001AA73E009EC8A400000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D7E7DC0040C2400075D6830082DA + A00066D28E0044C879007FDAA400F2FBF60089DDAC002EC26B002EC26B002EC2 + 6B002BBF640023962900C3E2C70000000000D7E7DC0040BB410075D6830082DA + A00066D28E002EC26B002EC26B0097E1B5002EC26B002EC26B002EC26B002EC2 + 6B002BBF640023962900C3E2C700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C9E3CD0040C2400077D7 + 800098E0AD0076D798005ACE86003AC573002EC26B002EC26B002EC26B0028BD + 5E00189E2600C9E4CD00000000000000000000000000C9E3CD0040BB410077D7 + 800098E0AD0076D798005ACE86003AC573002EC26B002EC26B002EC26B0028BD + 5E00189E2600C9E4CD0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000CAE4CE0040C2 + 400047CB490084DA91008CDCA6006AD391004ECB7F002DBF610017B1360043B5 + 4700CAE5CE000000000000000000000000000000000000000000CAE4CE0040BB + 410047CB490084DA91008CDCA6006AD391004ECB7F002DBF610017B1360043B5 + 4700CAE5CE000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000DBE9 + DF009AD99D0040C2400040C2400040C2400040C2400040C240009AD99D00DBEA + DE0000000000000000000000000000000000000000000000000000000000DBE9 + DF009AD99D0040C2400040C2400040C2400040C2400040C240009AD99D00DBEA + DE00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000E00FE00F00000000 + C007C00700000000800380030000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000008003800300000000 + C007C00700000000E00FE00F0000000000000000000000000000000000000000 + 000000000000} + end + object ilDisabledButtons: TImageList + Left = 120 + Top = 141 + Bitmap = { + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000CCCC + CC009B9B9B005D5D5D00404040003D3D3D00383838004848480086868600CCCC + CC0000000000000000000000000000000000000000000000000000000000CCCC + CC009B9B9B005D5D5D00404040003D3D3D00383838004848480086868600CCCC + CC00000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000BFBFBF006868 + 6800656565007B7B7B0076767600727272006F6F6F006A6A6A00575757004343 + 4300C0C0C0000000000000000000000000000000000000000000BFBFBF006868 + 6800656565007B7B7B0076767600727272006F6F6F006A6A6A00575757004343 + 4300C0C0C0000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000C1C1C1005F5F5F008383 + 830085858500808080007B7B7B00929292007C7C7C00727272006C6C6C006868 + 68003E3E3E00C2C2C200000000000000000000000000C1C1C1005F5F5F008383 + 83008585850080808000A5A5A500B3B3B30074747400727272006C6C6C006868 + 68003E3E3E00C2C2C20000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000D8D8D8007D7D7D00888888008E8E + 8E008B8B8B0085858500B1B1B100FFFFFF00D5D5D50077777700727272007070 + 70006A6A6A0045454500D2D2D20000000000D8D8D8007D7D7D00888888008E8E + 8E008B8B8B0085858500E8E8E800FFFFFF00CDCDCD0077777700727272007070 + 70006A6A6A0045454500D2D2D200000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000BBBBBB0073737300979797009595 + 95008F8F8F00B7B7B700FFFFFF00FFFFFF00C8C8C8007C7C7C007B7B7B007474 + 740072727200595959009B9B9B0000000000BBBBBB0073737300979797009595 + 95008F8F8F0086868600B7B7B700FFFFFF00FFFFFF00CDCDCD007B7B7B007474 + 740072727200595959009B9B9B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000828282008E8E8E00979797009797 + 9700BDBDBD00FFFFFF00FFFFFF00D3D3D30086868600848484007F7F7F007B7B + 7B0079797900727272005757570000000000828282008E8E8E00979797009797 + 970086868600868686008E8E8E00B8B8B800FFFFFF00FFFFFF00CDCDCD007D7D + 7D00797979007272720057575700000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000828282009797970097979700BEBE + BE00FFFFFF00FFFFFF00F8F8F800C7C7C700C7C7C700C2C2C200C2C2C200C0C0 + C0007D7D7D007B7B7B004B4B4B00000000008282820097979700B1B1B100FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D0D0 + D0007D7D7D007B7B7B004B4B4B00000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000008787870097979700A4A4A400FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00858585008080800051515100000000008787870097979700B1B1B100FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E9E9 + E900858585008080800051515100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000888888009999990097979700BEBE + BE00FFFFFF00FFFFFF00FFFFFF00D1D1D100CBCBCB00CBCBCB00C9C9C900C7C7 + C7008B8B8B008585850051515100000000008888880099999900979797009797 + 9700979797009797970097979700C5C5C500FFFFFF00FFFFFF00EAEAEA009797 + 97008B8B8B008585850051515100000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000888888009A9A9A009F9F9F009797 + 9700BEBEBE00FFFFFF00FFFFFF00EBEBEB009E9E9E0097979700979797009595 + 95008F8F8F008E8E8E006363630000000000888888009A9A9A009F9F9F009797 + 97009797970097979700AAAAAA00F8F8F800FFFFFF00EBEBEB00979797009595 + 95008F8F8F008E8E8E0063636300000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000C2C2C20087878700B6B6B600A8A8 + A8009B9B9B00BEBEBE00FFFFFF00FFFFFF00D1D1D10097979700979797009797 + 9700979797006F6F6F00B8B8B80000000000C2C2C20087878700B6B6B600A8A8 + A8009B9B9B0097979700DEDEDE00FFFFFF00EBEBEB0097979700979797009797 + 97009797970077777700B8B8B800000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000E1E1E1008C8C8C00B2B2B200BEBE + BE00B1B1B100A1A1A100BFBFBF00F8F8F800C5C5C50097979700979797009797 + 97009393930068686800D6D6D60000000000E1E1E10088888800B2B2B200BEBE + BE00B1B1B1009797970097979700CBCBCB009797970097979700979797009797 + 97009393930068686800D6D6D600000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000D9D9D9008C8C8C00B2B2 + B200C8C8C800B9B9B900ABABAB009D9D9D009797970097979700979797009090 + 90006B6B6B00DADADA00000000000000000000000000D9D9D90088888800B2B2 + B200C8C8C800B9B9B900ABABAB009D9D9D009797970097979700979797009090 + 90006B6B6B00DADADA0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000DADADA008C8C + 8C0095959500BABABA00C3C3C300B3B3B300A6A6A600929292007B7B7B008787 + 8700DBDBDB000000000000000000000000000000000000000000DADADA008888 + 880095959500BABABA00C3C3C300B3B3B300A6A6A600929292007B7B7B008787 + 8700DBDBDB000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000E4E4 + E400C0C0C0008C8C8C008C8C8C008C8C8C008C8C8C008C8C8C00C0C0C000E4E4 + E40000000000000000000000000000000000000000000000000000000000E4E4 + E400C0C0C0008C8C8C008C8C8C008C8C8C008C8C8C008C8C8C00C0C0C000E4E4 + E400000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF00FFFFFFFF00000000E00FE00F00000000 + C007C00700000000800380030000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000000001000100000000 + 0001000100000000000100010000000000010001000000008003800300000000 + C007C00700000000E00FE00F0000000000000000000000000000000000000000 + 000000000000} + end +end diff --git a/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.pas b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.pas new file mode 100644 index 0000000..95bbae7 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoForm.pas @@ -0,0 +1,667 @@ +{$I DacDemo.inc} + +unit DemoForm; + +interface + +uses +{$IFNDEF WIN32} + Types, +{$ENDIF} + SysUtils, Classes, DB, +{$IFDEF LINUX} + QControls, QStdCtrls, QComCtrls, QGraphics, QMenus, QTypes, QImgList, QForms, + QButtons, QExtCtrls, Qt, QDialogs, +{$ELSE} + Windows, Forms, Messages, Controls, StdCtrls, + Graphics, ImgList, ToolWin, + ComCtrls, Dialogs, ExtCtrls, Tabs, Menus, DBCtrls, Buttons, ShellAPI, +{$IFNDEF VER130} + Variants, +{$ENDIF} +{$ENDIF} +{$IFDEF CLR} + System.ComponentModel, +{$ENDIF} + DBAccess, + DAScript, + DemoBase, + DemoFrame, + CategoryFrame + {$IFDEF XPMAN}, UxTheme{$ENDIF} + {$IFDEF USE_SYNEDIT}, SynMemo, SynEdit, SynEditHighlighter, SynHighlighterPas{$ENDIF} + ; +const + MAX_HISTORY_SIZE = 6; + +type + TDemoForm = class(TForm) + StatusBar: TStatusBar; + ImageList1: TImageList; + PanelUnderTree: TPanel; + TreeView: TTreeView; + MainPanel: TPanel; + Shape1: TShape; + TVSplitter: TSplitter; + pnTopLabel: TPanel; + lbTitle: TLabel; + lbAbout: TLabel; + Panel2: TPanel; + Panel1: TPanel; + sbConnect: TSpeedButton; + sbDisconnect: TSpeedButton; + btCreate: TSpeedButton; + btDrop: TSpeedButton; + cbDebug: TCheckBox; + pnSource: TPanel; + pnDemo: TPanel; + sbDemo: TSpeedButton; + pnShowSource: TPanel; + ToolBar: TToolBar; + tbBrowseBack: TToolButton; + tbBrowseForward: TToolButton; + BackHistoryPopup: TPopupMenu; + ForwardHistoryPopup: TPopupMenu; + ilButtons: TImageList; + ilDisabledButtons: TImageList; + sbSource: TSpeedButton; + sbFormText: TSpeedButton; + pnOpenDemoDir: TPanel; + sbOpenDemoDir: TSpeedButton; + + procedure FormCreate(Sender: TObject); virtual; + procedure TreeViewChange(Sender: TObject; Node: TTreeNode); + procedure TreeViewKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure TreeViewClick(Sender: TObject); + procedure TreeViewMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure TVSplitterMoved(Sender: TObject); + procedure TVSplitterCanResize(Sender: TObject; var NewSize: Integer; + var Accept: Boolean); + procedure lbAboutClick(Sender: TObject); virtual; + procedure lbAboutMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure lbTitleMouseMove(Sender: TObject; Shift: TShiftState; X, + Y: Integer); + procedure cbDebugClick(Sender: TObject); + procedure sbOpenDemoDirClick(Sender: TObject); + procedure sbConnectClick(Sender: TObject); + procedure sbDisconnectClick(Sender: TObject); + procedure FormDestroy(Sender: TObject); + procedure HistoryItemClick(Sender: TObject); + procedure sbDemoClick(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure BackHistoryPopupPopup(Sender: TObject); + procedure ForwardHistoryPopupPopup(Sender: TObject); + procedure tbBrowseBackClick(Sender: TObject); + procedure tbBrowseForwardClick(Sender: TObject); + procedure btScriptClick(Sender: TObject); + procedure OnScriptError(Sender: TObject; E: Exception; SQL: String; + var Action: TErrorAction); + procedure sbSourceClick(Sender: TObject); + procedure sbFormTextClick(Sender: TObject); + protected + Demos: TDemos; + ActiveNode: TTreeNode; + //History + History: Array of integer; //Absolute indexes in TreeView + HistoryIndex: integer; //Current History index + HistoryEnd: integer; + IgnoreScriptErrors: boolean; + DropScriptActive: boolean; + DemoSourceLoaded, FormSourceLoaded: boolean; + + //Product customization + function GetConnection: TCustomDAConnection; virtual; abstract; //This function should return DAC product specific connection (i.e. OraSession, MyConnection) + function ApplicationTitle: string; virtual; abstract; //This function should return DAC product specific title + function ProductName: string; virtual; abstract; ////This function should return product name + procedure RegisterDemos; virtual; abstract; //This procedure should regiter DAC product specific demos + //XP manifest + {$IFDEF XPMAN} + procedure ReplaceFlatStyle(Control: TWinControl; Flat: boolean); + {$ENDIF} + //Demo selection + procedure InitializeDemoFrame(Frame: TDemoFrame; DemoType: TDemoType); virtual; + procedure UpdateDemo; + procedure ShowDemo; + procedure ShowDemoSource; + procedure ShowFormSource; + {$IFNDEF WIN32} + procedure OnNavigate(DemoDescription: string); + {$ELSE} + procedure OnNavigate(Index: integer); + {$ENDIF} + //History + procedure SelectDemo; + procedure NavigateHistory(Offset: integer); + procedure GetBackHistory(BackList: TStrings); + procedure GetForwardHistory(ForwardList: TStrings); + procedure DisableBrowse(Back, Forward: boolean); + procedure FillHistoryPopup(BackHistory: boolean); + //Connection + procedure AfterConnect(Sender: TObject); + procedure AfterDisconnect(Sender: TObject); + public +{$IFDEF USE_SYNEDIT} + SourceBrowser: TSynMemo; +{$ELSE} + SourceBrowser: TMemo; +{$ENDIF} + function GetIsXPMan: boolean; + function ProductColor: TColor; virtual; abstract; //This function should return DAC product specific color + procedure ExecCreateScript; virtual; abstract; + procedure ExecDropScript; virtual; abstract; + end; + +implementation + +{$IFDEF CLR} +{$R *.nfm} +{$ENDIF} +{$IFDEF WIN32} +{$R *.dfm} +{$ENDIF} +{$IFDEF LINUX} +{$R *.xfm} +{$ENDIF} + +{$IFDEF XPMAN} + {$R WindowsXP.res} +{$ENDIF} + +procedure TDemoForm.FormCreate(Sender: TObject); +begin + SetLength(History, MAX_HISTORY_SIZE); + HistoryIndex := -1; + Demos := TDemos.Create(TreeView.Items); + RegisterDemos; +{$IFDEF XPMAN} + if GetIsXPMan then begin + ReplaceFlatStyle(Self, False); + pnTopLabel.Color := ProductColor; + end; +{$ENDIF} + +{$IFDEF USE_SYNEDIT} + SourceBrowser := TSynMemo.Create(pnSource); + + SourceBrowser.Highlighter := TSynPasSyn.Create(SourceBrowser); + SourceBrowser.Options := [eoAltSetsColumnMode, eoAutoIndent, eoAutoSizeMaxScrollWidth, eoDisableScrollArrows, eoDragDropEditing, eoDropFiles, eoEnhanceEndKey, eoGroupUndo, eoHideShowScrollbars, eoKeepCaretX, eoShowScrollHint, eoSmartTabDelete, eoSmartTabs, eoTabIndent, eoTabsToSpaces]; + with SourceBrowser.Gutter do begin + Visible := True; + AutoSize := True; + DigitCount := 3; + LeftOffset := 0; + RightOffset := 0; + ShowLineNumbers := True; + Width := 1; + end; +{$ELSE} + SourceBrowser := TMemo.Create(pnSource); + SourceBrowser.ScrollBars := ssVertical; + SourceBrowser.Font.Name := 'Courier New'; + SourceBrowser.Font.Size := 10; +{$ENDIF} + with SourceBrowser do begin + Parent := pnSource; + Align := alClient; + ReadOnly := True; + end; + Resize; + TreeView.Items[0].Expand(True); + TreeView.Items[0].Selected := True; + with GetConnection do begin + AfterConnect := Self.AfterConnect; + AfterDisconnect := Self.AfterDisconnect; + end; + SelectDemo; +end; + +procedure TDemoForm.FormDestroy(Sender: TObject); +begin + with GetConnection do begin + AfterConnect := nil; + AfterDisconnect := nil; + end; + SetLength(History, 0); + Demos.Free; +end; + +//TreeView routines +procedure TDemoForm.TreeViewChange(Sender: TObject; Node: TTreeNode); +begin + if (TreeView.Selected.Data <> nil) then + StatusBar.Panels[0].Text := TDemo(TreeView.Selected.Data).Hint + else + StatusBar.Panels[0].Text := TreeView.Selected.Text; + StatusBar.Repaint; +end; + +procedure TDemoForm.TreeViewKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if Key = {$IFDEF LINUX}4100{$ELSE}13{$ENDIF} then + SelectDemo; +end; + +procedure TDemoForm.TreeViewClick(Sender: TObject); +begin + SelectDemo; +end; + +//TreeView Hints +procedure TDemoForm.TreeViewMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +var + Node: TTreeNode; +begin + Node := TreeView.GetNodeAt(X, Y); + if (Node <> nil) and (Node.Data <> nil) then + TreeView.Hint := TDemo(Node.Data).Hint + else + TreeView.Hint := ''; +end; + +//Sizing constraints +procedure TDemoForm.TVSplitterMoved(Sender: TObject); +begin + if PanelUnderTree.ClientWidth = 0 then + PanelUnderTree.ClientWidth := 150; +end; + +procedure TDemoForm.TVSplitterCanResize(Sender: TObject; + var NewSize: Integer; var Accept: Boolean); +begin + Accept := (NewSize >= PanelUnderTree.Constraints.MinWidth) and + ((ClientWidth - MainPanel.Constraints.MinWidth - NewSize) > 0); +end; + +function TDemoForm.GetIsXPMan: boolean; +begin + Result := {$IFDEF XPMAN}UseThemes; {$ELSE} False;{$ENDIF} +end; + +{$IFDEF XPMAN} +procedure TDemoForm.ReplaceFlatStyle(Control: TWinControl; Flat: boolean); +var + i: integer; +begin + for i := 0 to Control.ControlCount - 1 do + if Control.Controls[i] is TSpeedButton then + TSpeedButton(Control.Controls[i]).Flat := Flat + else + if Control.Controls[i] is TDBNavigator then + TDBNavigator(Control.Controls[i]).Flat := Flat + else + if Control.Controls[i] is TWinControl then begin + if Control.Controls[i] is TPanel then begin + TPanel(Control.Controls[i]).ParentBackground := False; + TPanel(Control.Controls[i]).Color := clBtnFace; + end; + ReplaceFlatStyle(TWinControl(Control.Controls[i]), Flat); + end; +end; +{$ENDIF} + +//Demo Change +procedure TDemoForm.InitializeDemoFrame(Frame: TDemoFrame; DemoType: TDemoType); +begin + Frame.Connection := GetConnection; + Frame.SetDebug(cbDebug.Checked); + Frame.Parent := pnDemo; + if DemoType = dtCategory then //Attach browser event handlers + TCategoryFrame(Frame).OnNavigate := OnNavigate; +{$IFDEF XPMAN} + if GetIsXPMan then + ReplaceFlatStyle(Frame, False); +{$ENDIF} + Frame.Initialize; +end; + +procedure TDemoForm.UpdateDemo; +var + i: integer; +begin + for i := 1 to StatusBar.Panels.Count - 1 do + StatusBar.Panels[i].Text := ''; + ActiveNode := TreeView.Selected; + if (ActiveNode <> nil) then + with Demos.SelectDemo(ActiveNode.AbsoluteIndex) do begin + InitializeDemoFrame(Frame, DemoType); + DemoSourceLoaded := False; + FormSourceLoaded := False; + if DemoType = dtCategory then begin + pnShowSource.Visible := False; + pnOpenDemoDir.Visible := False; + ShowDemo; + end + else begin + pnShowSource.Visible := True; + {$IFNDEF LINUX} + pnOpenDemoDir.Visible := True; + {$ELSE} + pnOpenDemoDir.Visible := False; + {$ENDIF} + if sbDemo.Down then + ShowDemo + else + if sbSource.Down then + ShowDemoSource + else + ShowFormSource; + end; + Self.Caption := ApplicationTitle + ' - ' + Name; + Application.Title := ApplicationTitle; + end; + StatusBar.Repaint; +end; + +procedure TDemoForm.ShowDemo; +begin + pnSource.Visible := False; + pnDemo.Visible := True; +end; + +procedure TDemoForm.ShowDemoSource; +begin + if not DemoSourceLoaded then begin + Demos.SelectedDemo.LoadDemoCode(SourceBrowser.Lines); + DemoSourceLoaded := True; + FormSourceLoaded := False; + end; + pnSource.Visible := True; + pnDemo.Visible := False; +end; + +procedure TDemoForm.ShowFormSource; +begin + if not FormSourceLoaded then begin + Demos.SelectedDemo.LoadFormCode(SourceBrowser.Lines); + FormSourceLoaded := True; + DemoSourceLoaded := False; + end; + pnSource.Visible := True; + pnDemo.Visible := False; +end; + +//User control +procedure TDemoForm.sbOpenDemoDirClick(Sender: TObject); +begin + Demos.SelectedDemo.OpenDemoFolder; +end; + +procedure TDemoForm.cbDebugClick(Sender: TObject); +begin + Demos.SelectedDemo.Frame.SetDebug(cbDebug.Checked); +end; + +{$IFNDEF WIN32} +procedure TDemoForm.OnNavigate(DemoDescription: string); +var + Node: TTreeNode; + DemoName, CategoryName, FolderName: string; + ListBox: TListBox; + i: integer; +begin + Node := TreeView.Items.GetFirstNode; + DemoName := Trim(Copy(DemoDescription, 1, pos('-', DemoDescription) - 1)); + while Node <> nil do begin + if TDemo(Node.Data).Name = DemoName then begin + TreeView.Selected := Node; + SelectDemo; + break; + end; + Node := Node.GetNext; + end; + // Demo was not found in the tree. This is supplementary demo. + + if (Demos.SelectedDemo.DemoType = dtCategory) and (DemoName <> '') then begin + ListBox := TCategoryFrame(Demos.SelectedDemo.Frame).DemosDescription; + for i := ListBox.ItemIndex downto 0 do + if (ListBox.Items[i] <> '') and (ListBox.Items[i][1] = ' ') then begin + CategoryName := Trim(ListBox.Items[i]); + Break; + end; + end; +{$IFNDEF LINUX} + FolderName := ExtractFilePath(ExtractFileDir(Application.ExeName)) + CategoryName + '\' + DemoName; + ShellExecute(0, 'open', FolderName, '', '.', SW_SHOW); +{$ENDIF} +end; + +{$ELSE} +procedure TDemoForm.OnNavigate(Index: integer); +begin + TreeView.Items[Index].Selected := True; + SelectDemo; +end; +{$ENDIF} + +procedure TDemoForm.lbAboutClick(Sender: TObject); +begin + lbAbout.Font.Color := $FFFFFF; + lbAbout.Cursor := crDefault; +end; + +//About highlite +procedure TDemoForm.lbAboutMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + lbAbout.Font.Color := TColor($FF00001A); //clHotLight + lbAbout.Cursor := crHandPoint; +end; + +procedure TDemoForm.lbTitleMouseMove(Sender: TObject; + Shift: TShiftState; X, Y: Integer); +begin + lbAbout.Font.Color := $FFFFFF; + lbAbout.Cursor := crDefault; +end; + +procedure TDemoForm.sbConnectClick(Sender: TObject); +begin + GetConnection.Connect; +end; + +procedure TDemoForm.sbDisconnectClick(Sender: TObject); +begin + GetConnection.Disconnect; +end; + +procedure TDemoForm.AfterConnect(Sender: TObject); +begin + sbDisconnect.Enabled := True; + sbConnect.Enabled := False; +end; + +procedure TDemoForm.AfterDisconnect(Sender: TObject); +begin + sbDisconnect.Enabled := False; + sbConnect.Enabled := True; +end; + +//History +procedure TDemoForm.SelectDemo; +var + i: integer; +begin + if TreeView.Selected = ActiveNode then //Same demo selected + Exit; + UpdateDemo; + if HistoryIndex = (MAX_HISTORY_SIZE - 1) then + for i := 0 to MAX_HISTORY_SIZE - 2 do + History[i] := History[i + 1] + else + Inc(HistoryIndex); + History[HistoryIndex] := ActiveNode.AbsoluteIndex; + HistoryEnd := HistoryIndex; + DisableBrowse(HistoryIndex = 0, True); +end; + +procedure TDemoForm.NavigateHistory(Offset: integer); +begin + if ((HistoryIndex + Offset) < 0) or ((HistoryIndex + Offset) >= MAX_HISTORY_SIZE) then + raise Exception.Create('Wrong history index'); + HistoryIndex := HistoryIndex + Offset; + TreeView.Items[Demos.GetDemoIndex(History[HistoryIndex])].Selected := True; + DisableBrowse(HistoryIndex = 0, HistoryIndex = HistoryEnd); + UpdateDemo; +end; + +procedure TDemoForm.GetBackHistory(BackList: TStrings); +var + i: integer; +begin + BackList.Clear; + for i := HistoryIndex - 1 downto 0 do + BackList.Add(Demos[History[i]].Name); +end; + +procedure TDemoForm.GetForwardHistory(ForwardList: TStrings); +var + i: integer; +begin + ForwardList.Clear; + for i := HistoryIndex + 1 to HistoryEnd do + ForwardList.Add(Demos[History[i]].Name); +end; + +procedure TDemoForm.DisableBrowse(Back, Forward: boolean); +begin + tbBrowseBack.Enabled := not Back; + tbBrowseForward.Enabled := not Forward; +end; + +procedure TDemoForm.FillHistoryPopup(BackHistory: boolean); +var + NewItem: TMenuItem; + List: TStrings; + i: integer; + HistoryPopup: TPopupMenu; +begin + if BackHistory then + HistoryPopup := BackHistoryPopup + else + HistoryPopup := ForwardHistoryPopup; + HistoryPopup.Items.Clear; + List := TStringList.Create; + if BackHistory then + GetBackHistory(List) + else + GetForwardHistory(List); + for i := 1 to List.Count do begin + NewItem := TMenuItem.Create(HistoryPopup); + HistoryPopup.Items.Add(NewItem); + NewItem.Caption := List[i - 1]; + if BackHistory then + NewItem.Tag := -i + else + NewItem.Tag := i; + NewItem.OnClick := HistoryItemClick; + end; + List.Free; +end; + +procedure TDemoForm.HistoryItemClick(Sender: TObject); +begin + if Sender is TMenuItem then + NavigateHistory(TMenuItem(Sender).Tag); +end; + +procedure TDemoForm.BackHistoryPopupPopup(Sender: TObject); +begin + FillHistoryPopup(True); +end; + +procedure TDemoForm.ForwardHistoryPopupPopup(Sender: TObject); +begin + FillHistoryPopup(False); +end; + +procedure TDemoForm.tbBrowseBackClick(Sender: TObject); +begin + NavigateHistory(-1); +end; + +procedure TDemoForm.tbBrowseForwardClick(Sender: TObject); +begin + NavigateHistory(1); +end; + +procedure TDemoForm.sbDemoClick(Sender: TObject); +begin + ShowDemo; +end; + +procedure TDemoForm.sbSourceClick(Sender: TObject); +begin + ShowDemoSource; +end; + +procedure TDemoForm.sbFormTextClick(Sender: TObject); +begin + ShowFormSource; +end; + +procedure TDemoForm.FormResize(Sender: TObject); +begin + lbAbout.Left := lbAbout.Parent.ClientWidth - 100; + cbDebug.Left := cbDebug.Parent.ClientWidth - 100; + pnOpenDemoDir.Left := cbDebug.Left - (pnOpenDemoDir.Width + 15); + pnShowSource.Left := pnOpenDemoDir.Left - (pnShowSource.Width + 15); +end; + +procedure TDemoForm.OnScriptError(Sender: TObject; E: Exception; + SQL: String; var Action: TErrorAction); +var + OperationStr, + ScriptFileStr, + MessageStr: string; +begin + if DropScriptActive then begin + OperationStr := 'drop'; + ScriptFileStr := 'UninstallDemoObjects.sql'; + end + else begin + OperationStr := 'create'; + ScriptFileStr := 'InstallDemoObjects.sql'; + end; + MessageStr := Format('An error has been occured: %s' + + #$d#$d'You can manually %s objects required for demo by using the ' + + 'following file: %%%s%%\Demos\%s' + + #$d'%%%s%% is the %s installation path on your computer.' + #13#10 + 'Ignore this exception?', + [E.Message, OperationStr, ProductName, ScriptFileStr, ProductName, ProductName]); + Action := eaContinue; + if not IgnoreScriptErrors then + case MessageDlg(MessageStr, mtError, [mbYes, mbNo{$IFNDEF LINUX}, mbYesToAll{$ENDIF}], 0) of + mrNo: + Action := eaAbort; + {$IFNDEF LINUX} + mrYesToAll: + IgnoreScriptErrors := True; + {$ENDIF} + end; +end; + +procedure TDemoForm.btScriptClick(Sender: TObject); +var + s: string; +begin + DropScriptActive := Sender = btDrop; + if DropScriptActive then + s := 'removed from database' + else + s := 'created in database'; + if MessageDlg(Format('Objects required for the demo will be %s. Continue?', [s]), + mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin + IgnoreScriptErrors := False; + GetConnection.Connect; + if Sender = btCreate then + ExecCreateScript + else + ExecDropScript; + end; +end; + +end. diff --git a/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.nfm b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.nfm new file mode 100644 index 0000000..08110ca --- /dev/null +++ b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.nfm @@ -0,0 +1,7 @@ +object DemoFrame: TDemoFrame + Left = 0 + Top = 0 + Width = 308 + Height = 228 + TabOrder = 0 +end diff --git a/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.pas b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.pas new file mode 100644 index 0000000..6636031 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/DemoFrame.pas @@ -0,0 +1,57 @@ +unit DemoFrame; + +interface + +uses + Classes, +{$IFDEF LINUX} + QControls, QStdCtrls, QGraphics, QForms, +{$ELSE} + Forms, Windows, Messages, SysUtils, StdCtrls, Graphics, Controls, Dialogs, + ComCtrls, Buttons, ExtCtrls, DBCtrls, +{$ENDIF} + DBAccess + {$IFNDEF VER130}, Variants{$ENDIF} + ; + +type + TDemoFrame = class(TFrame) + public + Connection: TCustomDAConnection; + procedure Initialize; virtual; + procedure SetDebug(Value: boolean); virtual; + + procedure AssignConnectionTo(Dest: TCustomDAConnection); + end; + + TDemoFrameClass = class of TDemoFrame; + + +implementation + +{$IFDEF CLR} +{$R *.nfm} +{$ENDIF} +{$IFDEF WIN32} +{$R *.dfm} +{$ENDIF} +{$IFDEF LINUX} +{$R *.xfm} +{$ENDIF} + +procedure TDemoFrame.Initialize; +begin +end; + +procedure TDemoFrame.SetDebug(Value: boolean); +begin +end; + +procedure TDemoFrame.AssignConnectionTo(Dest: TCustomDAConnection); +begin + Dest.Assign(Connection); + Dest.AfterConnect := nil; + Dest.AfterDisconnect := nil; +end; + +end. diff --git a/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/HtmlConsts.pas b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/HtmlConsts.pas new file mode 100644 index 0000000..32944d8 --- /dev/null +++ b/internal/4.10.0.10/1/Demos/dotNet/SdacDemo/Base/HtmlConsts.pas @@ -0,0 +1,142 @@ +unit HtmlConsts; + +interface + +const + HTMLHeader: string = + ''#13#10 + + ''#13#10 + + ''#13#10 + + '| SQL Server Data Access Components | +sdac@crlab.com | +
| Frequently Asked Questions | ++ |
+This page contains a list of Frequently Asked Questions for SQL Server Data Access Components. +
++If you have encounter a question with using SDAC, please browse through this list first. +If this page does not answer your question, refer to the Getting Support topic in SDAC help. +
+ ++ +Installation and Deployment +
+ You may be having a compatibility issue that shows up in one or more of the following forms:
+
+ You can have such problems if you installed incompatible SDAC, ODAC, MyDAC or IBDAC versions. All these products use common base packages. The easiest way to avoid the problem is to uninstall all installed DAC products and then download from our site and install the last builds.
+If you have purchased a full version of SDAC, you are entitled to distribute pre-compiled programs created with its use. You are not entitled to propagate any components inherited from SDAC or using SDAC source code. For more information see the License.rtf file in your SDAC installation directory.
+You can create your own components that are inherited from SDAC or that use the SDAC source code. You are entitled to sell and distribute compiled application executables that use such components, but not their source code and not the components themselves.
+ +The basic SDAC license agreement will remain the same. With SDAC 4.00, the SDAC Edition Matrix will be reorganized and a new SDAC Subscription Program will be introduced.
+ +SDAC 4.00 will come in four editions: Trial, Standard, Professional, and Professional with Sources.
+When you upgrade to the new version, your edition level will be automatically updated using the following Edition Correspondence Table.
| Old Edition Level | New Edition Level |
|---|---|
| - No Correspondence - | SDAC Standard Edition |
| SDAC Standard Edition | SDAC Professional Edition |
| SDAC Professional Edition | SDAC Professional Edition with Sources |
| SDAC Trial Edition | SDAC Trial Edition |
+ The feature list for each edition can be found in the SDAC documentation and on the SDAC website.
+ +After SDAC 4.00, all upgrades to future versions are free to users with an active SDAC Subscription.
+Users that have a registration for versions of SDAC prior to SDAC 4.00 will have to first upgrade to SDAC 4.00 to jump in on the Subscription program.
+ +The SDAC Subscription Program is an annual maintenance and support service + for SDAC users.
+Users with a valid SDAC Subscription get the following benefits:
+Priority Support is an advanced product support program which offers you expedited individual assistance with SDAC-related questions from the SDAC developers themselves. Priority Support is carried out over email and has a two business day response policy.
+ + +The SDAC Subscription Program is available for registered users of SDAC 4.00 and higher.
+ +Yes, you can. SDAC version licenses are perpetual.
+ +An annual SDAC Subscription is included when ordering or upgrading to any registered (non-Trial) edition of SDAC 4.00 or higher.
+You can renew your SDAC Subscription on the SDAC Ordering Page. For more information, please contact sales@crlab.com.
+ +To upgrade to SDAC 4.00, you can get a Version Update from the SDAC Ordering Page. For more information, please contact sales@crlab.com.
+ +SDAC uses the lowest documented protocol level (OLE DB) to access + the database server. This allows SDAC to achieve high performance. From time to time + we compare SDAC with other products, and SDAC always takes first place.
+Locate is performed on the client. So if you had set FetchAll to False when opening + your dataset, cached only some of the rows on the client, and then invoked Locate, SDAC will have to + fetch all the remaining rows from the server before performing the operation. On subsequent calls, + Locate should work much faster.
+If the Locate method keeps working slowly on subsequent calls or you are working with FetchAll=True, + try the following. Perform local sorting by a field that is used in the Locate method. Just assign + corresponding field name to the IndexFieldNames property.
+To enable syntax highlighting for SDAC, you should download and install the freeware SynEdit component set.
+ +You can determine your SDAC version number in several ways: +
Just set the DBAccess.ChangeCursor variable to False anywhere in your program. + The cursor will stop changing after this command is executed.
+The values of these properties are templates for query statements, + and they cannot be manually executed. Usually there is no need to fill these properties + because the text of the query is generated automatically.
+ +In special cases, you can set these properties to perform more complicated processing + during a query. These properties are automatically processed by SDAC during the execution + of the Post, Delete, or RefreshRecord methods, and are used to construct the query to + the server. Their values can contain parameters with names of fields in the underlying + data source, which will be later replaced by appropriate data values.
+ +For example, you can use the SQLInsert template to insert a row into a query instance as follows.
+The value of the SQLInsert property will then be used by SDAC to perform the last step.
+ +Setting these properties is optional and allows you to automatically execute additional + SQL statements, add calls to stored procedures and functions, check input parameters, and/or + store comments during query execution. If these properties are not set, the SDAC dataset + object will generate the query itself using the appropriate insert, update, delete, or + refresh record syntax.
+ +Use the TCustomDAConnection.GetDatabaseNames method.
++ The following questions usually arise from the same problem: +
DbxSda is our dbExpress driver for SQL Server. + dbExpress technology serves for providing a more or less uniform way to access different servers + (SQL Server, MySQL, Oracle and so on). It is based on drivers that include server-specific features. + Like any universal tool, in many specialized cases dbExpress providers lose some functionality. + For example, the dbExpress design-time is quite poor and cannot be expanded.
+SDAC is a specialized set of components for SQL Server, which has advanced server-specific design-time + and a component interface similar to that of BDE.
+We tried to include maximal support of SQL Server-specific features in both DbxSda and SDAC. However, + the nature of dbExpress technology has some insurmountable restrictions. For example, Unicode fields + cannot be passed from a driver to dbExpress.
+SDAC and DbxSda use the same kernel and thus have similar performance. In some cases dbExpress is + slower because data undergoes additional conversion to correspond to dbExpress standards.
+To summarise, if it is important for you to be able to quickly adapt your application to a database + server other than SQL Server, it is probably better to use DbxSda. In other cases, especially when migrating + from BDE or ADO, you should use SDAC.
+Yes, SDAC is thread-safe but there is a restriction. But the same TCustomMSConnection object descendant cannot be used in several threads. So if you have a multithreaded application, you should have a TCustomMSConnection object descendant for each thread that uses SDAC.
+This error occurs when the database server is unable to determine which record + to modify or delete. In other words, there are either more than one record or no records that suit + the UPDATE criteria. Such situation can happen when you omit the unique field in a SELECT statement + (TCustomDADataSet.SQL) or when another user modifies the table simultaneously. This exception can + be suppressed. Refer to TCustomDADataSet.Options topic in SDAC help for more information.
+ +Usage of FetchAll=False mode has many advantages; however, it also has some restrictions + since it requires an additional connection to server to be created for data fetching. The + additional connection is created to prevent the main connection from blocking.
+ +These problems can be avoided by setting the FetchAll property to True. Please see description of the + FetchAll propery and the CreateConnection option in SDAC help for more information.
+ +One more way to solve these problems is to use the Multiple Active Result Sets (MARS) feature. + This feature lets you keep more than one unfetched record set within a single connection. + To enable MARS, set the MultipleActiveResultSets option of TMSConnection to True. + Note: To use MARS, you will need to have SQL Server 2005 and SQL Native Client installed.
+
© 2002-2007 Core Lab. All rights reserved.
+ +| SQL Server Data Access Components | +sdac@crlab.com | +
| History | ++ |
4.10.0.10 02.08.07
+4.10.0.9 12.06.07
+4.00.0.7 16.05.07
+4.00.0.6 20.04.07
+4.00.0.5 06.04.07
+4.00.0.4 20.03.07
+ +New functionality: ++ Support for more MS SQL server functionality: +
3.80.0.34 05.12.06
+3.80.0.33 31.10.06
+3.80.0.32 29.09.06
+3.80.0.31 28.08.06
+3.70.3.30 07.07.06
+3.70.3.29 31.05.06
+3.70.2.28 18.05.06
+3.70.1.27 12.05.06
+3.70.1.26 14.04.06
+3.70.1.25 10.03.06
+3.70.0.24 26.01.06
+3.55.2.22 19.12.05
+3.55.2.21 07.12.05
+3.55.1.20 24.10.05
+3.55.1.19 11.10.05
+3.55.1.18 02.09.05
+3.55.0.17 02.08.05
+3.55.0.16 05.07.05
+3.55.0.15 30.05.05
+3.50.0.14 29.04.05
+3.50.0.13 29.03.05
+3.50.0.12 24.02.05
+3.50.0.11 24.01.05
+3.00.2.9 23.11.04
+3.00.2.8 28.10.04
+3.00.2.5 21.10.04
+3.00.1.3 10.09.04
+3.00.0.2 20.08.04
+3.00.0.1 21.07.04
+2.45.2.25 15.03.04
+2.45.2.24 05.02.04
+2.45.2.23 30.12.03
+2.45.2.22 24.11.03
+2.45.2.21 02.10.03
+2.45.1.20 02.07.03
+2.45.1.19 10.06.03
+2.45.1.18 05.06.03
+2.45.0.17 05.05.03
+2.45.0.16 04.04.03
+2.40.0.15 24.02.03
+2.35.0.14 30.01.03
+2.35.0.13 04.01.03
+2.35.0.12 26.12.02
+
© 1997-2007 Core Lab. All rights reserved.
+| SQL Server Data Access Components | +sdac@crlab.com | +
| Readme | ++ |
+SQL Server Data Access Components (SDAC) is a library of components that provides access to the Microsoft SQL Server databases. SDAC connects to SQL Server directly through OLE DB, which is a native SQL Server interface. The SDAC library is designed to help programmers develop faster and cleaner SQL Server database applications. SDAC is a complete replacement for standard SQL Server connectivity solutions and presents an efficient alternative to the Borland Database Engine for access to SQL Server. +
+ ++In most cases the only OLE DB is reqired to be installed on the workstation. In the current versions of Microsoft Windows, as Windows 2000, OLE DB is already included as a standard package. But it is highly recommended to download the latest version (newer than 2.5) of Microsoft Data Access Components (MDAC) that include OLE DB at http://www.microsoft.com/data. +
+ ++Compiled versions of SDAC are installed automatically by the SDAC Installer for all supported IDEs. Versions of SDAC with Source Code must be installed manually. For more information, see the Installation topic of the SDAC Help documentation. +
+ ++It is important to know that ODAC, SDAC, MyDAC, and IBDAC components use the +common base packages, so product compatibility is provided for the current build only. +In the other words, if you upgrade one of the installed products, it +may conflict with older builds of other products. In order to continue using +the products simultaneously, you should upgrade all of them at the same time. +
+ ++ +SDAC comes with full documentation, which includes a detailed reference for all the SDAC components and classes and set of articles +that highlight SDAC advanced functionality. +The SDAC documentation is integrated into your IDE at install time. +It can be invoked from the SQL Server menu added to the Menu Bar, or by pressing F1 in an object inspector or on a selected code segment. + +
+ ++If you have a question regarding SDAC, look at the list of +Frequently Asked Questions or visit the SDAC forum online at +http://crlab.com/forums/viewforum.php?f=6. +
+ ++If your problem is not covered in the documentation, FAQ, or forum, refer to the Getting Support topic in SDAC help +for information on how to contact the SDAC support team. +
+ + + +
© 1997-2007 Core Lab. All rights reserved.
+ +