From: Peter T. <pe...@us...> - 2003-03-14 13:58:03
|
Update of /cvsroot/jvcl/dev/p3/examples/JediSurveyor/Surveyor In directory sc8-pr-cvs1:/tmp/cvs-serv10590/p3/examples/JediSurveyor/Surveyor Added Files: MainFrm.dfm MainFrm.pas js.dof js.dpr js.res Log Message: New survey application toolkit: Survey Builder, Surveyor and Survey reporter --- NEW FILE: MainFrm.dfm --- object frmMain: TfrmMain Left = 250 Top = 112 BorderStyle = bsDialog Caption = 'JEDI Surveyor - [%s]' ClientHeight = 403 ClientWidth = 604 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Shell Dlg 2' Font.Style = [] OldCreateOrder = False Scaled = False OnCloseQuery = FormCloseQuery OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object pnlTop: TPanel Left = 0 Top = 0 Width = 604 Height = 87 Align = alTop BevelInner = bvRaised BevelOuter = bvLowered Color = clWindow TabOrder = 0 DesignSize = ( 604 87) object lblTitle: TLabel Left = 12 Top = 7 Width = 27 Height = 16 Caption = 'Title' Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -13 Font.Name = 'MS Shell Dlg 2' Font.Style = [fsBold] ParentFont = False ShowAccelChar = False end object JediLogo: TJvImageSquare Left = 542 Top = 11 Width = 53 Height = 48 Cursor = crHandPoint HiColor = clWindow BorderStyle = bsNone ImageList = il48 Text = 'JediLogo' end object lblProgress: TLabel Left = 587 Top = 66 Width = 3 Height = 13 Alignment = taRightJustify Anchors = [akRight, akBottom] end object lblDescription: TJvLinkLabel Left = 24 Top = 24 Width = 483 Height = 54 Anchors = [akLeft, akTop, akRight, akBottom] Transparent = False LinkColor = clBlue LinkColorClicked = clRed LinkColorHot = clPurple LinkStyle = [fsUnderline] HotLinks = False AutoHeight = False MarginWidth = 0 MarginHeight = 0 OnLinkClick = lblDescriptionLinkClick end end object JvFooter1: TJvFooter Left = 0 Top = 357 Width = 604 Height = 46 Align = alBottom DesignSize = ( 604 46) object JvBevel1: TJvBevel Left = 0 Top = 0 Width = 604 Height = 3 Align = alTop Shape = bsTopLine end object lblSurveyTitle: TLabel Left = 18 Top = 18 Width = 3 Height = 13 Enabled = False end object btnPrev: TJvFooterBtn Left = 352 Top = 10 Width = 80 Height = 25 Action = acPrevPage Anchors = [akRight, akBottom] Caption = '<< &Prev' TabOrder = 0 HotTrackFont.Charset = DEFAULT_CHARSET HotTrackFont.Color = clWindowText HotTrackFont.Height = -11 HotTrackFont.Name = 'MS Sans Serif' HotTrackFont.Style = [] ButtonIndex = 2 SpaceInterval = 0 end object btnNext: TJvFooterBtn Left = 432 Top = 10 Width = 80 Height = 25 Action = acNextPage Anchors = [akRight, akBottom] Caption = '&Next >>' Default = True TabOrder = 1 HotTrackFont.Charset = DEFAULT_CHARSET HotTrackFont.Color = clWindowText HotTrackFont.Height = -11 HotTrackFont.Name = 'MS Sans Serif' HotTrackFont.Style = [] ButtonIndex = 3 SpaceInterval = 6 end object btnClose: TJvFooterBtn Left = 525 Top = 10 Width = 74 Height = 25 Action = acExit Anchors = [akRight, akBottom] Caption = 'Close' TabOrder = 2 HotTrackFont.Charset = DEFAULT_CHARSET HotTrackFont.Color = clWindowText HotTrackFont.Height = -11 HotTrackFont.Name = 'MS Sans Serif' HotTrackFont.Style = [] ButtonIndex = 4 SpaceInterval = 6 end object btnOpen: TButton Left = 14 Top = 10 Width = 80 Height = 25 Action = acLoadSurvey TabOrder = 3 end end object sbSurvey: TJvScrollBox Left = 0 Top = 87 Width = 604 Height = 270 Align = alClient BorderStyle = bsNone TabOrder = 2 end object OpenSurveyDialog: TJvOpenDialog DefaultExt = 'xml' Filter = 'Survey files|*.jsf|All files|*.*' InitialDir = '.' Options = [ofEnableSizing] Title = 'Select Survey File' AutoSize = True Height = 0 UseUserSize = True Width = 0 Left = 324 Top = 18 end object il48: TImageList Height = 48 Width = 48 Left = 210 Top = 18 Bitmap = { 494C010101000400040030003000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000C00000003000000001001000000000000048 000000000000000000000000000000000000631063106310410C410CC51C2729 27292729C51CC51C420C420C420C420C410C410C220842084208420821082108 4208210821082108420842082108220822082208FF03FF031F001F001F001F00 1F001F001F001F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000631063106310410C410CC51C2729 27292729C51CC51C420C420C420C420C410C410C220842084208420821082108 4208210821082108420842082108220822082208FF03FF031F001F001F001F00 1F001F001F001F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000631063106310410C410CC51C2729 27292729C51CC51C420C420C420C420C410C410C220842084208420821082108 4208210821082108420842082108220822082208FF03FF031F001F001F001F00 1F001F001F001F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000410C410C410C2108210862108414 8414841462106210410C631063106310430C430C431042084208420842084208 4208220822082208420842082208420842084208FF03FF031F001F001F001F00 E07FE07FE07F1F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000410C410C410C2108210862108414 8414841462106210410C631063106310430C430C431042084208420842084208 4208220822082208420842082208420842084208FF03FF031F001F001F001F00 E07FE07FE07F1F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000002108210821084208420821088414 84148414420C420C6310492D492D492DA418A4188514420C420C420C420C420C 420C420C420C420C420842084208630C630C630CFF03FF031F00E07FE07FE07F 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000002004200420048414841421086310 63106310C71CC71C841407250725072585148514C71C64106410641063106310 430C630C630C630C430C430C630C641064106410FF03FF031F00E07FE07FE07F 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000002004200420048414841421086310 63106310C71CC71C841407250725072585148514C71C64106410641063106310 430C630C630C630C430C430C630C641064106410FF03FF031F00E07FE07FE07F 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000002004200420048414841421086310 63106310C71CC71C841407250725072585148514C71C64106410641063106310 430C630C630C630C430C430C630C641064106410FF03FF031F00E07FE07FE07F 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000001040104010421082108630C2108 21082108851485142B2985148514851465106510A618E920E920E92085148514 6410641064106410640C640CA618651065106510FF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000001040104010421082108630C2108 21082108851485142B2985148514851465106510A618E920E920E92085148514 6410641064106410640C640CA618651065106510FF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401042104210442082208 22082208430C430C09218F318F318F31A814A814A7148F318F318F31A818A818 A718A614A614A614861486140B21650C650C650CFF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401042108210842084208 420842084308430865106F2D6F2D6F2D143E143E0B1DB135B135B1356E296E29 0C21E91CE91CE91C0C210C212D25A714A714A714FF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401042108210842084208 420842084308430865106F2D6F2D6F2D143E143E0B1DB135B135B1356E296E29 0C21E91CE91CE91C0C210C212D25A714A714A714FF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401042108210842084208 420842084308430865106F2D6F2D6F2D143E143E0B1DB135B135B1356E296E29 0C21E91CE91CE91C0C210C212D25A714A714A714FF03FF031F001F001F001F00 1F001F001F00E07FE07FE07F1F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401044208420842084310 43104310640C640C6510E91CE91CE91C143E143E5646702970297029574A574A B2354F294F294F29D335D3352C212C292C292C29FF03FF031F001F001F001F00 1F001F001F001F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401044208420842084310 43104310640C640C6510E91CE91CE91C143E143E5646702970297029574A574A B2354F294F294F29D335D3352C212C292C292C29FF03FF031F001F001F001F00 1F001F001F001F001F001F001F001F001F000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208631063108414440C 440C440CA618A618E920E91CE91CE91C2F252F25994E994E994E994EBA52BA52 373ED635D635D635373E373EB435902D902D902DFF03FF03FF03FF03FF03FF03 FF03FF03FF03FF03FF03FF03FF03FF03FF030000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208631063106410630C 630C630C65106510C9186F2D6F2D6F2DF43DF43DF6391C5B1C5B1C5B3C633C63 3C5FDB56DB56DB56BA4EBA4E594636423642364299529952143EEA1CEA1CEA1C 861086106510630C630C630C4208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208631063106410630C 630C630C65106510C9186F2D6F2D6F2DF43DF43DF6391C5B1C5B1C5B3C633C63 3C5FDB56DB56DB56BA4EBA4E594636423642364299529952143EEA1CEA1CEA1C 861086106510630C630C630C4208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208631063106410630C 630C630C65106510C9186F2D6F2D6F2DF43DF43DF6391C5B1C5B1C5B3C633C63 3C5FDB56DB56DB56BA4EBA4E594636423642364299529952143EEA1CEA1CEA1C 861086106510630C630C630C4208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208440C440C640C6610 66106610A714A714EA1C2D212D212D21732D732D7A463C5F3C5F3C5F7C6B7C6B 7D6F7C6B7C6B7C6B7C6B7C6B3C63BB4ABB4ABB4AB431B4312F25EB1CEB1CEB1C A714A7142B25A618A618A618630C630C22080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208440C440C640C6610 66106610A714A714EA1C2D212D212D21732D732D7A463C5F3C5F3C5F7C6B7C6B 7D6F7C6B7C6B7C6B7C6B7C6B3C63BB4ABB4ABB4AB431B4312F25EB1CEB1CEB1C A714A7142B25A618A618A618630C630C22080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000A210A210A214D294D299031B235 B235B235143E143E3642784A784A784ABA4EBA4EFB565C635C635C637C6B7C6B 9C739C739C739C737C6B7C6B5C63FC56FC56FC56BB52BB52784A564656465646 F43DF43DB2356F2D6F2D6F2D2C292C29E91C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000420842084208440C440C65108610 86108610A814A814EA1C2E252E252E25732D732D38423C5F3C5F3C5F7C6B7C6B 9C6F9C739C739C737C6B7C6BFB56183A183A183A942D942D50250D210D210D21 CA18CA18A81487108710871087108710650C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000420842084208440C440C65108610 86108610A814A814EA1C2E252E252E25732D732D38423C5F3C5F3C5F7C6B7C6B 9C6F9C739C739C737C6B7C6BFB56183A183A183A942D942D50250D210D210D21 CA18CA18A81487108710871087108710650C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000420842084208440C440C65108610 86108610A814A814EA1C2E252E252E25732D732D38423C5F3C5F3C5F7C6B7C6B 9C6F9C739C739C737C6B7C6BFB56183A183A183A942D942D50250D210D210D21 CA18CA18A81487108710871087108710650C0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208420C420C8514640C 640C640C86148614CA1890319031903199529952994E9A4A9A4A9A4A1C5B1C5B 3C5F5C635C635C637C6B7C6BBA4E7A467A467A46F639F6392E21A914A914A914 86148614450C630C630C630C430C430C22080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000220822082208420C420C8514640C 640C640C86148614CA1890319031903199529952994E9A4A9A4A9A4A1C5B1C5B 3C5F5C635C635C637C6B7C6BBA4E7A467A467A46F639F6392E21A914A914A914 86148614450C630C630C630C430C430C22080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000022082208220822082208430C6414 641464140A210A21D139F239F239F2394E294E29712D173E173E173E7A467A46 3A3EBA4EBA4EBA4EDB56DB563D5FD635D635D6354F294F296E290B210B210B21 66106610430C430C430C430C4208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000210821082108220C220CA6186C31 6C316C310A210A218614A714A714A7140A210A214D29702970297029173E173E 942DB431B431B431BA4EBA4EF639DB56DB56DB564F294F29C918871487148714 86148614640C2208220822084208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000210821082108220C220CA6186C31 6C316C310A210A218614A714A714A7140A210A214D29702970297029173E173E 942DB431B431B431BA4EBA4EF639DB56DB56DB564F294F29C918871487148714 86148614640C2208220822084208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000210821082108220C220CA6186C31 6C316C310A210A218614A714A714A7140A210A214D29702970297029173E173E 942DB431B431B431BA4EBA4EF639DB56DB56DB564F294F29C918871487148714 86148614640C2208220822084208420822080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000042084208420884148414A518A518 A518A51843104310440C851485148514A818A818A818902D902D902D2E252E25 2D212F252F252F25153E153E702DB231B231B23157465746CA18661066106610 640C640C43084208420842082208220842080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000042084208420884148414A518A518 A518A51843104310440C851485148514A818A818A818902D902D902D2E252E25 2D212F252F252F25153E153E702DB231B231B23157465746CA18661066106610 640C640C43084208420842082208220842080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000010801080108210821084208420C 420C420C420C420C43086410641064106510651087144D294D294D29A818A818 E91CC918C918C9182C252C256F2DEA18EA18EA18913191319131861086108610 4310431085142204220422044208420821080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401040108010821084208 42084208420842082208430C430C430C85148514A718A718A718A71865106510 8614861486148614871487142C29A614A614A614871087104E29EA20EA20EA20 430C430C430C2208220822082104210421080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401040108010821084208 42084208420842082208430C430C430C85148514A718A718A718A71865106510 8614861486148614871487142C29A614A614A614871087104E29EA20EA20EA20 430C430C430C2208220822082104210421080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401040108010821084208 42084208420842082208430C430C430C85148514A718A718A718A71865106510 8614861486148614871487142C29A614A614A614871087104E29EA20EA20EA20 430C430C430C2208220822082104210421080000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401040104010401042108 2108210842084208220842084208420864106410A718641064106410640C640C 6410640C640C640C64106410C81C851485148514440C440C65100A210A210A21 85148514420C2208220822082104210421040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000104010401040104010401042108 2108210842084208220842084208420864106410A718641064106410640C640C 6410640C640C640C64106410C81C851485148514440C440C65100A210A210A21 85148514420C2208220822082104210421040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040104010401042208 22082208420842082104420842084208430C430C4310430C430C430C42084208 630C430C430C430C430C430C640C851485148514420C420C4308440C440C440C C71CC71C42082208220822082104210401040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000401040104 01040104220822082108420842084208420C420C420821082108210842084208 420C420842084208430C430C430C631063106310420842084208220822082208 430C430C64102108210821080104010400040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000401040104 01040104220822082108420842084208420C420C420821082108210842084208 420C420842084208430C430C430C631063106310420842084208220822082208 430C430C64102108210821080104010400040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000401040104 01040104220822082108420842084208420C420C420821082108210842084208 420C420842084208430C430C430C631063106310420842084208220822082208 430C430C64102108210821080104010400040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000401040104 0104010401040104210821082108210885148514420842084208420842084208 8414631063106310220822084208220C220C220C420842082208420842084208 2208220821082108210821080104010401040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000401040104 0104010401040104210821082108210885148514420842084208420842084208 8414631063106310220822084208220C220C220C420842082208420842084208 2208220821082108210821080104010401040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000004000400040004000400040104 0104010401040104010421082108210821082108210421082108210821082108 4208210821082108220822084208420C420C420C631063104208210821082108 210821082108630C630C630C2108210801040000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 28000000C0000000300000000100010000000000800400000000000000000000 000000000000000000000000FFFFFF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000} end object alMain: TActionList OnUpdate = alMainUpdate Left = 168 Top = 12 object acStartPage: TAction Caption = 'Start Page' OnExecute = acStartPageExecute end object acPrevPage: TAction Caption = '&<< Prev' ShortCut = 16421 OnExecute = acPrevPageExecute end object acNextPage: TAction Caption = 'Next &>>' ShortCut = 16423 OnExecute = acNextPageExecute end object acLastPage: TAction Caption = 'Last Page' OnExecute = acLastPageExecute end object acLoadSurvey: TAction Caption = '&Open...' ShortCut = 16463 OnExecute = acLoadSurveyExecute end object acSendMail: TJvSendMail Caption = 'Send' Mail.FindOptions = [] Mail.HtmlBody = False Mail.LogonOptions = [loLogonUI] end object acGotoJVCL: TJvWebAction Caption = 'Goto JVCL Web Site' ShortCut = 16458 URL = 'http://jvcl.sourceforge.net' end object acExit: TAction Caption = 'Close' ShortCut = 32883 OnExecute = acExitExecute end end end --- NEW FILE: MainFrm.pas --- unit MainFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, JvScrollBox, ComCtrls, JvProgressBar, JvBevel, Buttons, JvBitBtn, JvFooter, JvComponent, JvSurveyIntf, JvDialogs, ImgList, JvImageWindow, ActnList, JvActions, JvLinkLabel, JvRadioButton, JvCheckBox; type TfrmMain = class(TForm) pnlTop: TPanel; lblTitle: TLabel; JvFooter1: TJvFooter; btnPrev: TJvFooterBtn; btnNext: TJvFooterBtn; btnClose: TJvFooterBtn; sbSurvey: TJvScrollBox; OpenSurveyDialog: TJvOpenDialog; JediLogo: TJvImageSquare; il48: TImageList; alMain: TActionList; acStartPage: TAction; acPrevPage: TAction; acNextPage: TAction; acLoadSurvey: TAction; acSendMail: TJvSendMail; acGotoJVCL: TJvWebAction; acLastPage: TAction; acExit: TAction; JvBevel1: TJvBevel; lblProgress: TLabel; lblDescription: TJvLinkLabel; lblSurveyTitle: TLabel; btnOpen: TButton; procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure acStartPageExecute(Sender: TObject); procedure acLastPageExecute(Sender: TObject); procedure acExitExecute(Sender: TObject); procedure acPrevPageExecute(Sender: TObject); procedure alMainUpdate(Action: TBasicAction; var Handled: Boolean); procedure acNextPageExecute(Sender: TObject); procedure acLoadSurveyExecute(Sender: TObject); procedure lblDescriptionLinkClick(Sender: TObject; LinkNumber: Integer; LinkText: String); private FFilename: string; FCompletedSurvey:boolean; private { Private declarations } FSurvey: IJvSurvey; FPageIndex: integer; edUserName, edUserEMail: TEdit; procedure CreateEverything; procedure LoadSettings; procedure ReadCommandLine; procedure LoadSurvey(const AFilename: string); function GetTempSurveyFileName: string; procedure PromptForSurveyFile(const AFilename: string); procedure SaveSettings; procedure FreeEverything; procedure ClearScrollBox; function CheckPage(Index:integer): boolean; procedure StartPage; procedure EndPage; procedure CreateExclusivePage(Index:integer); procedure CreateMultiplePage(Index:integer); procedure CreateFreeFormPage(Index:integer); procedure SavePage; procedure UpdateProgress; procedure CreatePage(Index: integer); procedure DoSendMail(Sender: TObject); property Filename: string read FFilename write FFilename; public { Public declarations } end; var frmMain: TfrmMain; resourcestring SMainFormCaptionFmt = 'JEDI Surveyor - (%s)'; SDefaultSurveyName = 'No survey loaded!'; SStartPageTitle = 'Welcome to the JEDI Surveyor'; SStartPageDescription = 'The JEDI Surveyor is a tool to collect user input on various issues.' + ' Currently no survey is loaded. To load a survey, click the "Open" button and select a survey file from the dialog.'; SEndPageTitle = 'Survey completed'; SEndPageDescriptionFmt = 'Click the "Send" button below to send an e-mail to %s with your answers. The results of the survey will be made available at the following location: <link>%s</link>. Enter a username and and e-mail address to help us keep track of participants (optional).'; SExpiredSurveyCaption = 'Survey expired!'; SExpiredSurveyTextFmt = 'This survey expired on %s, would you like to view it anyway?'; SErrSurveyImplementationNotFound = 'Fatal Error: No IJvSurvey implementation found, cannot continue!'; SUsername = '&Username:'; SEmail = '&E-mail address:'; SSend = '&Send'; SSaveResponseCaption = 'Save responses'; SSaveResponsePrompt = 'You haven''t completed the survey. Do you want to save your responses this far?'; SPageOfPageFmt = 'Page %d of %d'; const cStartOffset = 24; cDefaultControlWidth = 125; implementation uses JclStrings, JclSysInfo, JvFunctions, JvSurveyUtils, Math; {$R *.dfm} function TextSize(Canvas: TCanvas; DefaultHeight:integer; const S: string): TSize; var i: integer; T:TStringlist; begin Result.cx := 0; Result.cy := 0; T := TStringlist.Create; try T.Text := S; for i := 0 to T.Count - 1 do begin Result.cx := Max(Result.cx, Canvas.TextWidth(T[i])); Inc(Result.cy, DefaultHeight); end; finally T.Free; end; if Result.cy <= 0 then Result.cy := DefaultHeight; end; { TfrmMain } procedure TfrmMain.CreatePage(Index: integer); begin if (Index < 0) then StartPage else if (FSurvey.Items.Count > 0) and (Index >= FSurvey.Items.Count) then EndPage else begin lblTitle.Caption := FSurvey.Items[Index].Title; lblDescription.Caption := FSurvey.Items[Index].Description; case FSurvey.Items[Index].SurveyType of stExclusive: CreateExclusivePage(Index); stMultiple: CreateMultiplePage(Index); stFreeForm: CreateFreeFormPage(Index); end; end; UpdateProgress; end; procedure TfrmMain.FormCreate(Sender: TObject); begin CreateEverything; LoadSettings; ReadCommandLine; end; procedure TfrmMain.CreateEverything; begin FPageIndex := -1; if Assigned(CreateSurvey) then FSurvey := CreateSurvey else begin ShowMessage(SErrSurveyImplementationNotFound); Application.Terminate; Close; end; end; procedure TfrmMain.FreeEverything; begin FSurvey := nil; end; procedure TfrmMain.LoadSettings; begin JediLogo.Anchors := [akRight, akTop]; JediLogo.Action := acGotoJVCL; // TODO:save additional properties end; procedure TfrmMain.ReadCommandLine; var S:string; i: integer; begin S := ''; for i := 1 to ParamCount do if FileExists(ExpandUNCFileName(ParamStr(i))) then begin S := ExpandUNCFileName(ParamStr(i)); Break; end; if S <> '' then LoadSurvey(S) else StartPage; end; procedure TfrmMain.SaveSettings; begin // TODO: save settings end; procedure TfrmMain.PromptForSurveyFile(const AFilename: string); begin OpenSurveyDialog.Filename := AFilename; acLoadSurvey.Execute; end; procedure TfrmMain.LoadSurvey(const AFilename: string); begin if FileExists(AFilename) then begin FSurvey.LoadFromFile(AFilename); FFilename := AFilename; StartPage; if (FSurvey.ExpiryDate < Date) and not YesNo(SExpiredSurveyCaption, Format(SExpiredSurveyTextFmt,[DateToStr(FSurvey.ExpiryDate)])) then PromptForSurveyFile(AFilename) end else PromptForSurveyFile(AFilename); Caption := Format(SMainFormCaptionFmt, [ExtractFileName(Filename)]); lblSurveyTitle.Caption := FSurvey.Title; end; procedure TfrmMain.StartPage; begin SavePage; ClearScrollBox; FPageIndex := -1; lblTitle.Caption := SStartPageTitle; if (FSurvey.Items.Count < 1) then lblDescription.Caption := SStartPageDescription else lblDescription.Caption := FSurvey.Description; lblProgress.Visible := false; end; procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if not FCompletedSurvey and (FSurvey.Items.Count > 0) and YesNo(SSaveResponseCaption,SSaveResponsePrompt) then FSurvey.SaveToFile(Filename); SaveSettings; FreeEverything; end; procedure TfrmMain.ClearScrollBox; begin while sbSurvey.ControlCount > 0 do sbSurvey.Controls[0].Free; edUserName := nil; edUserEMail := nil; end; procedure TfrmMain.EndPage; begin SavePage; ClearScrollBox; FPageIndex := FSurvey.Items.Count; lblTitle.Caption := SEndPageTitle; lblDescription.Caption := Format(SEndPageDescriptionFmt, [FSurvey.Recipient, FSurvey.ResultHRef]); // TODO: enable mail button edUserName := TEdit.Create(self); with edUserName do begin Parent := sbSurvey; SetBounds(18, 36, sbSurvey.ClientWidth - 36, Height); TabOrder := 0; Text := FSurvey.SurveyTaker.UserName; end; with TLabel.Create(self) do begin Parent := sbSurvey; SetBounds(18, 18, Width, Height); Caption := SUserName; FocusControl := edUserName; end; edUserEmail := TEdit.Create(self); with edUserEmail do begin Parent := sbSurvey; SetBounds(18, 84, sbSurvey.ClientWidth - 36, Height); TabOrder := 1; Text := FSurvey.SurveyTaker.MailAddress; end; with TLabel.Create(self) do begin Parent := sbSurvey; SetBounds(18, 66, Width, Height); Caption := SEMail; FocusControl := edUserEmail; end; with TButton.Create(self) do begin Parent := sbSurvey; SetBounds(sbSurvey.ClientWidth - 25 - Width, 126, Width, Height); Caption := SSend; OnClick := DoSendMail; TabOrder := 2; Enabled := FSurvey.ExpiryDate >= Date; end; UpdateProgress; end; procedure TfrmMain.acStartPageExecute(Sender: TObject); begin CreatePage(-1); end; procedure TfrmMain.acLastPageExecute(Sender: TObject); begin CreatePage(FSurvey.Items.Count); end; procedure TfrmMain.acExitExecute(Sender: TObject); begin Close; end; procedure TfrmMain.acPrevPageExecute(Sender: TObject); begin SavePage; Dec(FPageIndex); CreatePage(FPageIndex); UpdateProgress; end; procedure TfrmMain.acNextPageExecute(Sender: TObject); begin SavePage; Inc(FPageIndex); CreatePage(FPageIndex); UpdateProgress; end; procedure TfrmMain.alMainUpdate(Action: TBasicAction; var Handled: Boolean); begin acPrevPage.Enabled := (FPageIndex >= 0); acNextPage.Enabled := (Filename <> '') and (FSurvey.Items.Count > 0) and (FPageIndex < FSurvey.Items.Count) and CheckPage(FPageIndex); lblProgress.Visible := (FPageIndex >= 0) and (FPageIndex <= FSurvey.Items.Count); acLoadSurvey.Visible := FPageIndex = -1; acLoadSurvey.Enabled := acLoadSurvey.Visible; lblSurveyTitle.Visible := not acLoadSurvey.Visible; end; function TfrmMain.CheckPage(Index:integer): boolean; function HasCheckedItems: boolean; var i: integer; begin if (FSurvey.Items[Index].SurveyType = stFreeForm) or not FSurvey.Items[Index].Required then Result := true else begin with sbSurvey do for i := 0 to ControlCount - 1 do if ((Controls[i] is TRadioButton) and TRadioButton(Controls[i]).Checked) or ((Controls[i] is TCheckBox) and TCheckBox(Controls[i]).Ch... [truncated message content] |