From f07fd06bddfe60e78097c8d1b7729c8da41bfa71 Mon Sep 17 00:00:00 2001 From: zueuk Date: Mon, 20 Apr 2009 08:11:31 +0000 Subject: [PATCH] added checking XML for unrecognized variation/variable values, various fixes --- 2.10/Source/Main.dfm | 388 ++++++++++++++----------------------------- 2.10/Source/Main.pas | 276 +++++++++++++++++++++++------- 2 files changed, 342 insertions(+), 322 deletions(-) diff --git a/2.10/Source/Main.dfm b/2.10/Source/Main.dfm index f814002..67943ef 100644 --- a/2.10/Source/Main.dfm +++ b/2.10/Source/Main.dfm @@ -43,7 +43,7 @@ object MainForm: TMainForm Images = Buttons ParentShowHint = False ShowHint = True - TabOrder = 0 + TabOrder = 1 object btnOpen: TToolButton Left = 0 Top = 0 @@ -312,20 +312,24 @@ object MainForm: TMainForm Width = 160 Height = 430 Align = alLeft + BevelOuter = bvNone Columns = < item Caption = 'Title' Width = 150 end> HideSelection = False + ParentShowHint = False PopupMenu = ListPopUp + ShowHint = True SmallImages = SmallImages - TabOrder = 1 + TabOrder = 0 ViewStyle = vsReport OnChange = ListViewChange OnChanging = ListViewChanging OnEdited = ListViewEdited OnInfoTip = ListViewInfoTip + OnSelectItem = ListViewSelectItem end object BackPanel: TPanel Left = 164 @@ -2365,275 +2369,143 @@ object MainForm: TMainForm Left = 40 Top = 56 Bitmap = { - 494C010101000500040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000002000000001002000000000000020 - 000000000000000000000000000000000000000000009C636300FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF009C636300FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CECE - CE0000000000000000000000000000000000FF6331000000000000000000FF63 - 310000000000000000000000000000636300639C9C000063630000313100CECE - CE00CEFFFF00FFFFFF009CCECE009CCECE009CCECE0031313100000000000000 - 00000000000063636300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00CEFFFF00CEFFFF00CEFFFF00CEFFFF00CEFF - FF009CFFFF000000000000000000000000009CCECE000063630031000000CEFF - FF00CECECE00CECECE00CEFFFF00FF6331003131310000000000000000000000 - 00000000000063636300FFFFFF003100FF003100FF0000006300FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CEFFFF00CEFFFF00CEFF - FF00CEFFFF000000000000000000000000000000000000000000000000000000 - 00000000000000000000FFFFFF00636363006363630063636300636363006363 - 6300636363006363630063636300636363006363630063636300636363006363 - 630063636300000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 - 000000000000FFFFFF00FF000000FF000000CEFFFF00CEFFFF00CEFFFF00FF00 - 0000630000009CFFFF009CFFFF0000FFFF0000FFFF0000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000009C636300FFFFFF00FFFF - FF00FF9C3100FFFFFF00FFFFFF009C636300FFFFFF00FFFFFF00FF9C3100FF9C - 3100FF9C3100FF9C3100FF633100FF633100FF633100FF633100FFFFFF00CECE - CE0000000000000000000000000000000000FF63310000000000000000000000 - 000000000000000000000000000000636300000000009C636300FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF009C636300FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CECE - CE0000000000000000000000000000000000FF63310000000000000000000000 - 0000000000000000000000000000006363009CCECE00639C9C00006363000063 - 6300CEFFFF00CEFFFF00CECECE009CCECE000000000000000000000000000000 - 00000000000063636300FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CEFF - FF00FFFFFF00000000000000000000000000006363009CCECE00639C9C00639C - 9C0000636300CECECE00CEFFFF00CECECE003131310000000000000000000000 - 0000000000006363630063636300636363006363630063636300636363006363 - 6300636363006363630063636300636363006363630063636300636363006363 - 6300636363000000000000000000000000000000000000000000000000000000 - 00009C9C9C00FFFFFF00FFFFFF00FFFFFF0063000000FFFFFF00CEFFFF00CEFF - FF00CEFFFF00FF0000009C0000009CFFFF0000FFFF0000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 - 0000000000009C9C9C009C9C9C00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CEFF - FF00CEFFFF00CEFFFF00CEFFFF009CFFFF000000000000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000009C636300FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF009C636300FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00CECE - CE000000000000000000000000000000000000000000FF633100000000000000 - 0000000000000000000000000000000000000000000063000000630000006300 - 0000630000006300000063000000630000006300000063000000630000006300 - 0000630000006300000063000000630000006300000063000000630000006300 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000006363009CCECE009CCECE00639C - 9C00639C9C000063630000636300313131000063630000000000000000000000 + 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000001000000001002000000000000010 + 0000000000000000000000000000000000000000000041414100464646004F4F + 4F00585858005C5D5D005F5F5F005D5D5D005B5B5B00575757004F4F4F004444 + 44003B3B3B000000000000000000000000000000000041414100464646004F4F + 4F00585858005C5D5D00425562004A9BB60044869C0044869C0044869C004486 + 9C0044869C0044869C003E718100000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000636300006363009CCE - CE009CCECE00639C9C00639C9C00006363000063630000000000000000000000 - 0000000000000000000000000000000000000000000000000000630000009C00 - 00009C0000006300000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000009C9C9C009C9C9C00FFFFFF00FFFFFF00FFFF - FF00CEFFFF00CEFFFF00CEFFFF00CEFFFF000000000000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 - 000000000000000000000000000000000000000000009C9C9C009C9C9C00FFFF - FF00FFFFFF00FFFFFF00CEFFFF00000000000000000000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FF000000FFFF3100FF9C - 3100FF9C3100FF633100FF633100FF633100FF633100FF633100FF633100FF63 - 3100FF633100FF633100FF633100FF633100FF633100FF633100FF633100FF63 - 3100000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FF000000FF000000FF00 - 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 - 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000063 - 6300006363000063630000636300000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006300 - 0000CE0031009C00000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FF6331000000000000000000FF000000CE00 - 3100CE0031006300000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000009C9C - 9C009C9C9C00FFFFFF00CEFFFF00000000000000000000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000009C9C9C0000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000FF633100FF000000FF000000FF00 - 0000000000009C00000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000084 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000FF0000FFFF000063FF00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000636300CEFFFF0000CEFF0000CEFF00009CCE0000CE - FF00009CCE0000CEFF00009CCE00009CCE00639C9C00009CCE00639C9C00009C - CE0000000000000000000000000000000000000000000000000000009C000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000009C00000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEF - FF00CEEFFF00CEEFFF0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFF7EF00FFF7E700FFF7EF00FFF7EF00FFF7 - EF00FFF7F700FFFFF70000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEF - FF00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C00000000000000000000000000000000000000000000000000DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0031638C000000 - 0000000000000000000000000000FFF7E700D6632100D6733100D6733100D663 - 1000D6632100FFF7EF0000000000000000000000000000000000FFFFFF00FFFF - FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEF - FF00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C00000000000000000000000000000000000000000000000000DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0031638C000000 - 0000000000000000000000000000FFEFE700E7A57B00FFFFE700FFF7E700FFAD - 6B00E7AD8400FFEFDE0000000000000000000000000000000000FFFFFF006BB5 - E700F7FFFF006BB5E7006BB5E7006BB5E700F7FFFF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00296BAD00296BAD00296BAD00296BAD00296BAD00296BAD00296BAD00296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C00000000000000000000000000000000000000000000000000DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0031638C000000 - 0000000000000000000000000000FFE7DE00E7945A00FFF7EF00FFCEAD00FFCE - AD00E78C4A00FFE7D60000000000000000000000000000000000F7FFFF00EFFF - FF00E7F7FF000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF000000000008297B005A9CBD000000000008185A000000000000000000296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C00000000000000000000000000000000000000000000000000000000000000 - 00000000000031638C0000000000000000000000000031638C0031638C000000 - 0000000000000000000000000000FFE7D600E7844200FFFFFF00FFB59400FFE7 - CE00E78C5200FFE7CE0000000000000000000000000000000000F7FFFF0063B5 - E70063B5E70000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF - FF00FFFFFF000000000000000000000000000000000000000000CEEFFF00CEEF - FF0000000000184A9C004A8CBD00185A9C00397BAD000000080000000000296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C0031638C0031638C0031638C0031638C0031638C0031638C0031638C003163 - 8C0031638C0031638C0000000000000000000000000031638C0031638C003163 - 8C0031638C0031638C0000000000FFDECE00E7843900FFFFF700FFC69C00FFD6 - A500F7B58C00FFDECE0000000000000000000000000000000000EFFFFF00DEF7 - FF00CEEFFF0000000000FFFFFF006BB5E700F7FFFF006BB5E7006BB5E7006BB5 - E700F7FFFF000000000000000000000000000000000000000000CEEFFF00CEEF - FF0008185A00396BAD00296BAD00185A9C004A8CBD00295A9C0000000000296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C003163 - 8C00000000000000000000000000000000000000000000000000000000000000 - 000031638C0031638C0000000000000000000000000031638C0031638C000000 - 0000000000000000000000000000FFDEC600E78C4200FFFFFF00FFFFF7000000 - 0000000000000000000000000000000000000000000000000000EFFFFF005AB5 - E7005AADE70000000000F7FFFF00EFFFFF00E7F7FF00E7F7FF00E7F7FF00E7F7 - FF00E7F7FF000000000000000000000000000000000000000000CEEFFF00CEEF - FF005A9CCE00396BAD0008397B0000081800084A8C008CBDDE00296BAD00296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE0000000000FFDEC600D6631800D6733900E77B39000000 - 0000F7A57B000000000000000000000000000000000000000000EFF7FF00CEEF - FF00BDE7FF0000000000F7FFFF0063B5E70063B5E700DEF7FF0063B5E70063B5 - E700DEF7FF000000000000000000000000000000000000000000CEEFFF00CEEF - FF0000000000397BAD00296BAD00396BAD004A7BBD006BADCE0008083900296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE0000000000FFE7D600FFDEC600FFD6C600FFD6C6000000 - 0000000000000000000000000000000000000000000000000000EFFFFF0063B5 - E700C6EFFF0000000000EFFFFF00DEF7FF00CEEFFF00CEEFFF00CEEFFF00D6F7 - FF00DEF7FF000000000000000000000000000000000000000000CEEFFF00CEEF - FF00000000000000000008296B007BADCE007BADCE00184A9C0000082900296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE0000000000000000000000000000000000000000000000 - 000031638C000000000000000000000000000000000000000000F7FFFF00EFF7 - FF00E7F7FF0000000000EFFFFF005AB5E7005AADE700C6EFFF00CEEFFF0063B5 - E700EFF7FF000000000000000000000000000000000000000000CEEFFF00CEEF - FF0000000000000000000000000008185A00000818000008290000081800296B - AD00CEEFFF00CEEFFF000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE000000000031638C0000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE000000 - 000031638C000000000000000000000000000000000000000000000000000000 - 00000000000000000000EFF7FF00CEEFFF00BDE7FF00BDE7FF00000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF000000 - 000000000000000000000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE00000000000000000000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000EFFFFF0063B5E700C6EFFF00C6EFFF0000000000C6EF - FF00000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF000000 - 0000ADCEEF00000000000000000000000000000000000000000031638C000000 - 0000DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDE - DE00000000000000000000000000000000000000000031638C0000000000DEDE - DE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE00DEDEDE000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000F7FFFF00EFF7FF00E7F7FF00E7F7FF00000000000000 - 0000000000000000000000000000000000000000000000000000CEEFFF00CEEF - FF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF00CEEFFF000000 - 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000041414100E1E1E100DEDE + DE00DEDEDE00E4E4E400EAEAEA00F2F2F200F5F5F500F7F7F700F9F9F900F8F8 + F800454545000000000000000000000000000000000041414100E1E1E100DEDE + DE00DEDEDE00E4E4E40045859B00A9EEFF0089E7FF0089E7FF0089E7FF0089E7 + FF00A9EEFF00A9EEFF0044869C00000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000003F3F3F00DCDCDC00DADA + DA00DBDBDB00DEDEDE00E6E6E600EEEEEE00F4F4F400F7F7F700F9F9F900F9F9 + F90058585800000000000000000000000000000000003F3F3F00DCDCDC00DADA + DA00DBDBDB00DEDEDE0042556200A9EEFF0089E7FF0089E7FF002D2D2D0089E7 + FF0089E7FF00A9EEFF0042556200000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000042424200D5D5D500D3D3 + D3008E99A00092B6D20096B4C500778B9B007890AA00F4F4F400F7F7F700F8F8 + F8006A6A6A000000000000000000000000000000000042424200D5D5D500D3D3 + D3008E99A00092B6D20096B4C50048809600A9EEFF0089E7FF007BCBE00089E7 + FF0072E2FF0044869C0000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000046464600CDCDCD00747D + 8700DFFFFF00B8C7CB006E8DB700EBFFFF007B8689007696B700F4F4F400F5F5 + F500747474000000000000000000000000000000000046464600CDCDCD00747D + 8700DFFFFF00B8C7CB006E8DB70042556200A9EEFF0089E7FF002D2D2D0089E7 + FF0072E2FF004255620000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000004F4F4F00CBCBCB00C2EA + FB00B2CCDD009D95A100E6C5900063668600E9FFFF007C888B0072859700F1F1 + F10076767600000000000000000000000000000000004F4F4F00CBCBCB00C2EA + FB00B2CCDD009D95A100E6C59000636686004C7B9100A9EEFF002D2D2D0072E2 + FF0044869C000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005A5B5A00CFCFCF00A8D8 + EA00B6AEBB00F7E3C200FFFFFF00FFD8A10063657C00E0FFFF00747D8E00ECEC + EC0073737300000000000000000000000000000000005A5B5A00CFCFCF00A8D8 + EA00B6AEBB00F7E3C200FFFFFF00FFD8A10042556200A9EEFF0089E7FF0072E2 + FF00425562000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000062626200D8D8D80082A0 + B900E2E5DF00EABE9300FFFFFF00FFFFF900C18563007FA0C50099AFBA00E5E5 + E500686868000000000000000000000000000000000062626200D8D8D80082A0 + B900E2E5DF00EABE9300FFFFFF00FFFFF900C185630050758C00A9EEFF004486 + 9C00686868000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000068686800E3E3E3006F6F + 6F00ACEEFF00FFC09600FFCFA600FDE7BA007C788A00C5E2EC0093B1CA00DDDD + DD00585858000000000000000000000000000000000068686800E3E3E3006F6F + 6F00ACEEFF00FFC09600FFCFA600FDE7BA007C788A004255620052748A004255 + 6200585858000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000006A6A6A00EDEDED00EAEA + EA0063636600B1E5FF00FFECCB00B7AEB800C5DDE900D7FFFF007F98A800D1D1 + D10049494900000000000000000000000000000000006A6A6A00EDEDED00EAEA + EA0063636600B1E5FF00FFECCB00B7AEB800C5DDE900D7FFFF007F98A800D1D1 + D100494949000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000067676700F4F4F400F2F2 + F200EEEEEE006F6F6F007198BC00CAEDF800AAD2E800868D9400CBCBCB00C0C0 + C0003E3E3E000000000000000000000000000000000067676700F4F4F400F2F2 + F200EEEEEE006F6F6F007198BC00CAEDF800AAD2E800868D9400CBCBCB00C0C0 + C0003E3E3E000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000005F5F5F00F7F7F700F5F5 + F500F3F3F300F0F0F000ECECEC00E6E6E600DDDDDD00D1D1D100BFBFBF00ADAD + AD003D3D3D00000000000000000000000000000000005F5F5F00F7F7F700F5F5 + F500F3F3F300F0F0F000ECECEC00E6E6E600DDDDDD00D1D1D100BFBFBF00ADAD + AD003D3D3D000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000050505000F9F9F900F8F8 + F800F7F7F700F4F4F400F1F1F100ECECEC00E1E1E1003B3B3B003D3D3D004343 + 43003F3F3F000000000000000000000000000000000050505000F9F9F900F8F8 + F800F7F7F700F4F4F400F1F1F100ECECEC00E1E1E1003B3B3B003D3D3D004343 + 43003F3F3F000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000041414100F9F9F900F7F7 + F700F7F7F700F6F6F600F3F3F300EEEEEE00E4E4E4004B4B4B00FFFFFF004545 + 4500000000000000000000000000000000000000000041414100F9F9F900F7F7 + F700F7F7F700F6F6F600F3F3F300EEEEEE00E4E4E4004B4B4B00FFFFFF004545 + 4500000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000037373700F7F7F700F7F7 + F700F6F6F600F4F4F400F1F1F100ECECEC00E0E0E000616161005B5B5B000000 + 0000000000000000000000000000000000000000000037373700F7F7F700F7F7 + F700F6F6F600F4F4F400F1F1F100ECECEC00E0E0E000616161005B5B5B000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000000000000000373737003E3E3E004949 + 4900525252005C5C5C0063636300696969006F6F6F0073737300000000000000 + 00000000000000000000000000000000000000000000373737003E3E3E004949 + 4900525252005C5C5C0063636300696969006F6F6F0073737300000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000200000000100010000000000000100000000000000000000 - 000000000000000000000000FFFFFF00DDE6EA00BBCCD500BBCCD500BBCCD500 - BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500 - 0000000000000000BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500 - BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500BBCCD500 - BBCCD500BBCCD500BBCCD500BBCCD5008001D500BBCCD5008001D500BBCCD500 - 8001D500BBCCD5008001D500BBCCD5008001D500BBCCD5008001D500BBCCD500 - 8001D500BBCCD5008001D500BBCCD5008001EA00BBCCD5008001EA00BBCCD500 - 8001EA00BBCCD5008001EA00BBCCD5008001EA00BBCCD5008003EA00BBCCD500 - 8007EA00BBCCD500800FEA00BBCCD50000000000000000000000000000000000 + 2800000040000000100000000100010000000000800000000000000000000000 + 000000000000000000000000FFFFFF0080078001000000008007800100000000 + 8007800100000000800780030000000080078003000000008007800700000000 + 8007800700000000800780070000000080078007000000008007800700000000 + 800780070000000080078007000000008007800700000000800F800F00000000 + 801F801F00000000803F803F0000000000000000000000000000000000000000 000000000000} end object MainMenu: TMainMenu @@ -2863,11 +2735,6 @@ object MainForm: TMainForm Hint = 'Set all weights to the same value' OnClick = mnuEqualizeClick end - object mnuNormalWeights: TMenuItem - Caption = 'Compute Weights' - Hint = 'Compute weights from triangle areas' - OnClick = mnuNormalWeightsClick - end object N7: TMenuItem Caption = '-' end @@ -3100,6 +2967,7 @@ object MainForm: TMainForm object ListXmlScanner: TEasyXmlScanner Normalize = True OnStartTag = ListXmlScannerStartTag + OnEmptyTag = ListXmlScannerEmptyTag Left = 40 Top = 120 end diff --git a/2.10/Source/Main.pas b/2.10/Source/Main.pas index bcf0d31..e25fb12 100644 --- a/2.10/Source/Main.pas +++ b/2.10/Source/Main.pas @@ -42,7 +42,7 @@ const RS_XO = 2; RS_VO = 3; - AppVersionString = 'Apophysis 2.08 beta 2'; + AppVersionString = 'Apophysis 2.09 pre-beta 1'; randFilename = 'apophysis.rand'; undoFilename = 'apophysis.undo'; @@ -73,7 +73,6 @@ type mnuCopyUPR: TMenuItem; mnuEditor: TMenuItem; mnuRandom: TMenuItem; - mnuNormalWeights: TMenuItem; mnuEqualize: TMenuItem; mnuRWeights: TMenuItem; mnuOptions: TMenuItem; @@ -208,7 +207,6 @@ type procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure mnuHelpTopicsClick(Sender: TObject); procedure mnuRefreshClick(Sender: TObject); - procedure mnuNormalWeightsClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure mnuCopyUPRClick(Sender: TObject); procedure mnuItemDeleteClick(Sender: TObject); @@ -293,6 +291,10 @@ type Change: TItemChange; var AllowChange: Boolean); procedure ListViewInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String); + procedure ListXmlScannerEmptyTag(Sender: TObject; TagName: String; + Attributes: TAttrList); + procedure ListViewSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); private Renderer: TRenderThread; @@ -338,6 +340,7 @@ type procedure LoadXMLFlame(filename, name: string); overload; procedure LoadXMLFlame(filename: string; index: integer); overload; + procedure CheckXMLFlame(filename: string; index: integer); overload; procedure DisableFavorites; procedure EnableFavorites; procedure ParseXML(var cp1: TControlPoint; const params: PCHAR); @@ -387,26 +390,32 @@ function GetWinVersion: TWin32Version; var MainForm: TMainForm; pname, ptime: string; - nxform: integer; MainCp: TControlPoint; ParseCp: TControlPoint; - mainCPindex: integer; implementation uses {$IFDEF DEBUG} - JclDebug, ExceptForm, + //JclDebug, ExceptForm, {$ENDIF} Editor, Options, Regstry, Render, FullScreen, FormRender, Mutate, Adjust, Browser, Save, About, CmapData, - HtmlHlp, ScriptForm, FormFavorites, FormExport, msMultiPartFormData, - ImageColoring, RndFlame, + HtmlHlp, ScriptForm, FormFavorites, FormExport, RndFlame, + {msMultiPartFormData,} ImageColoring, Tracer, Types; {$R *.DFM} +var + nxform: integer; + mainCPindex: integer; + + pxformnum: integer; + pversion: string; + xmlErrorsList: TStringList; + procedure NormalizeVariations(var cp1: TControlPoint); var totvar: double; @@ -614,10 +623,10 @@ begin cp.xform[i].vars[j] := 0; repeat a := random(NRVAR); - until Variations[a]; + until RandomVariations[a]; repeat b := random(NRVAR); - until Variations[b]; + until RandomVariations[b]; if (a = b) then begin cp.xform[i].vars[a] := 1; @@ -1083,7 +1092,7 @@ begin d := cp.xform[i].c[1][1]; e := cp.xform[i].c[2][0]; f := cp.xform[i].c[2][1]; - p := cp.xform[i].density; + p := cp.xform[i].weight; Strings.Add(Format('%.6g %.6g %.6g %.6g %.6g %.6g %.6g', [a, b, c, d, e, f, p])); end; @@ -1187,7 +1196,7 @@ begin MainCp.xform[sTransforms].c[1][1] := d; MainCp.xform[sTransforms].c[2][0] := e; MainCp.xform[sTransforms].c[2][1] := f; - MainCp.xform[sTransforms].density := p; + MainCp.xform[sTransforms].weight := p; inc(sTransforms); end else @@ -1243,7 +1252,7 @@ begin d := cp.xform[m].c[1][1]; e := cp.xform[m].c[2][0]; f := cp.xform[m].c[2][1]; - p := cp.xform[m].density; + p := cp.xform[m].weight; Write(IFile, Format('%.6g %.6g %.6g %.6g %.6g %.6g %.6g', [a, b, c, d, e, f, p])); WriteLn(IFile, ''); @@ -1356,7 +1365,7 @@ begin format('scale="%g" ', [cp1.pixels_per_unit]); if cp1.FAngle <> 0 then - parameters := parameters + format('angle="%g" ', [cp1.FAngle]) + + parameters := parameters + //format('angle="%g" ', [cp1.FAngle]) + format('rotate="%g" ', [-180 * cp1.FAngle/Pi]); if cp1.zoom <> 0 then parameters := parameters + format('zoom="%g" ', [cp1.zoom]); @@ -1942,7 +1951,7 @@ begin AssignFile(F, AppPath + randFilename); OpenFile := AppPath + randFilename; ReWrite(F); - WriteLn(F, ''); + WriteLn(F, ''); for i := 0 to BatchSize - 1 do begin inc(RandomIndex); @@ -1963,7 +1972,7 @@ begin // Write(F, FlameToString(Title)); // WriteLn(F, ' '); end; - Write(F, ''); + Write(F, ''); CloseFile(F); except on EInOutError do Application.MessageBox('Error creating batch', PChar(APP_NAME), 16); @@ -1977,36 +1986,55 @@ end; procedure ListXML(FileName: string; sel: integer); { List .flame file } var - i, p: integer; + i, j, p: integer; Title: string; ListItem: TListItem; - FStrings: TStringList; + FileStrings: TStringList; + ParamStrings: TStringList; begin - FStrings := TStringList.Create; - FStrings.LoadFromFile(FileName); + FileStrings := TStringList.Create; + FileStrings.LoadFromFile(FileName); + ParamStrings := TStringList.Create; try MainForm.ListView.Items.BeginUpdate; MainForm.ListView.Items.Clear; - if (Pos(' 0) then + if (Pos(' 0) then begin - for i := 0 to FStrings.Count - 1 do + i := 0; + while i < FileStrings.Count do begin - p := Pos(' 0) then begin - MainForm.ListXMLScanner.LoadFromBuffer(PCHAR(FSTrings[i])); + ParamStrings.Add(FileStrings[i]); + repeat + Inc(i); + ParamStrings.Add(FileStrings[i]); + until pos('', Lowercase(FileStrings[i])) <> 0; + + Assert(xmlErrorsList.Count = 0); + pname := ''; + ptime := ''; + pversion := ''; + MainForm.ListXMLScanner.LoadFromBuffer(PCHAR(ParamStrings.Text)); MainForm.ListXMLScanner.Execute; - if Trim(pname) = '' then - Title := '*untitled ' + ptime - else - Title := Trim(pname); + Title := Trim(pname); + if Title = '' then + Title := '*untitled ' + ptime; + if Title <> '' then begin { Otherwise bad format } ListItem := MainForm.ListView.Items.Add; - Listitem.Caption := Title; + ListItem.Caption := Title; + if xmlErrorsList.Count > 0 then begin + ListItem.ImageIndex := 1; + xmlErrorsList.Clear; + end; end; + ParamStrings.Clear; end; + Inc(i); end; end; MainForm.ListView.Items.EndUpdate; @@ -2015,7 +2043,8 @@ begin 1: MainForm.ListView.Selected := MainForm.ListView.Items[0]; end; finally - FStrings.Free; + ParamStrings.Free; + FileStrings.Free; end; end; @@ -2033,7 +2062,7 @@ begin mnuListRename.Enabled := True; mnuItemDelete.Enabled := True; OpenFile := OpenDialog.FileName; - MainForm.Caption := AppVersionString + ' - ' + OpenFile; // --Z-- + MainForm.Caption := AppVersionString + ' - ' + OpenFile; OpenFileType := ftXML; if UpperCase(ExtractFileExt(OpenDialog.FileName)) = '.IFS' then begin @@ -2127,16 +2156,6 @@ begin RedrawTimer.enabled := true; end; -procedure TMainForm.mnuNormalWeightsClick(Sender: TObject); -begin - StopThread; - UpdateUndo; -// TODO: ...something -// ComputeWeights(MainCp, MainTriangles, transforms); - RedrawTimer.Enabled := True; - UpdateWindows; -end; - procedure TMainForm.mnuRWeightsClick(Sender: TObject); begin StopThread; @@ -2239,7 +2258,7 @@ begin d := cp1.xform[m].c[1][1]; e := cp1.xform[m].c[2][0]; f := cp1.xform[m].c[2][1]; - p := cp1.xform[m].Density; + p := cp1.xform[m].weight; if m < Transforms then xf_str := 'p_xf' + inttostr(m) else begin if cp1.HasFinalXForm = false then break; @@ -2247,7 +2266,7 @@ begin end; Strings.Add(' ' + xf_str + '_p=' + Format('%.6g ', [p])); Strings.Add(' ' + xf_str + '_c=' + floatTostr(cp1.xform[m].color)); - Strings.Add(' ' + xf_str + '_sym=' + floatTostr(cp1.xform[m].symmetry)); + Strings.Add(' ' + xf_str + '_sym=' + floatTostr(cp1.xform[m].color_speed)); Strings.Add(' ' + xf_str + '_cfa=' + Format('%.6g ', [a]) + xf_str + '_cfb=' + Format('%.6g ', [b]) + xf_str + '_cfc=' + Format('%.6g ', [c]) + @@ -2543,6 +2562,7 @@ begin tbShowAlpha.Down := ShowTransparency; DrawSelection := true; FViewScale := 1; // prevent divide by zero (?) + xmlErrorsList := TStringList.Create; end; procedure TMainForm.FormShow(Sender: TObject); @@ -2608,7 +2628,7 @@ begin if FileExists(AppPath + randFilename) then DeleteFile(AppPath + randFilename); - // get filename from command line argument + // get filename from command line argument if ParamCount > 0 then openFile := ParamStr(1) else openFile := defFlameFile; @@ -2713,6 +2733,7 @@ begin MainCP.free; ParseCp.free; Favorites.Free; + xmlErrorsList.Free; end; procedure TMainForm.FormKeyPress(Sender: TObject; var Key: Char); @@ -2778,6 +2799,7 @@ begin begin pname := ''; ptime := ''; + pversion := ''; p := Pos(' 0) then begin @@ -2847,7 +2869,7 @@ var i, p: integer; FileStrings: TStringList; ParamStrings: TStringList; - Tokens: TStringList; +// Tokens: TStringList; flameindex: integer; begin FileStrings := TStringList.Create; @@ -2860,6 +2882,7 @@ begin begin pname := ''; ptime := ''; + pversion := ''; p := Pos(' 0) then begin @@ -2914,6 +2937,50 @@ begin end; end; +procedure TMainForm.CheckXMLFlame(filename: string; index: integer); +var + i, p: integer; + FileStrings: TStringList; + ParamStrings: TStringList; + Tokens: TStringList; + flameindex: integer; +begin + FileStrings := TStringList.Create; + ParamStrings := TStringList.Create; + + try + FileStrings.LoadFromFile(filename); + flameindex := 0; + for i := 0 to FileStrings.Count - 1 do + begin + pname := ''; + ptime := ''; + pversion := ''; + p := Pos(' 0) then + begin + if (flameIndex <> index) then begin + inc(flameIndex); + continue; + end; + ParamStrings.Add(FileStrings[i]); + Break; + end; + end; + repeat + inc(i); + ParamStrings.Add(FileStrings[i]); + until pos('', Lowercase(FileStrings[i])) <> 0; + + Assert(xmlErrorsList.Count = 0); + MainForm.ListXMLScanner.LoadFromBuffer(PCHAR(PAramStrings.Text)); + MainForm.ListXMLScanner.Execute; + finally + FileStrings.free; + ParamStrings.free; + end; +end; + procedure TMainForm.ResizeImage; var pw, ph: integer; @@ -2961,7 +3028,7 @@ begin if OpenFileType = ftXML then begin - LoadXMLFlame(OpenFile, ListView.Selected.Index); + LoadXMLFlame(OpenFile, {ListView.Selected.Index ?}Item.Index); end else begin @@ -3166,7 +3233,8 @@ label skip; begin for i := 0 to mainCP.NumXForms-1 do - if mainCP.xform[i].noPlot = false then goto skip; + if mainCP.xform[i].opacity <> 0 then goto skip; + // No visible xforms - exiting exit; skip: maincp.zoom := 0; @@ -3924,12 +3992,12 @@ begin if FinalXformLoaded = false then begin cp1{MainCP}.xform[nxform].Clear; - cp1{MainCP}.xform[nxform].symmetry := 1; + cp1{MainCP}.xform[nxform].color_speed := 1; end; if nxform < NXFORMS then for i := nxform to NXFORMS - 1 do - cp1.xform[i].density := 0; + cp1.xform[i].weight := 0; // Check for symmetry parameter if ParseCp.symmetry <> 0 then @@ -4162,8 +4230,56 @@ end; procedure TMainForm.ListXmlScannerStartTag(Sender: TObject; TagName: string; Attributes: TAttrList); begin - pname := Attributes.value('name'); - ptime := Attributes.value('time'); + if (TagName = 'flame') then begin + pname := Attributes.value('name'); + ptime := Attributes.value('time'); + pversion := Attributes.Value('version'); + pxformnum := 1; // hacky + end; +end; + +procedure TMainForm.ListXmlScannerEmptyTag(Sender: TObject; + TagName: String; Attributes: TAttrList); +const + ValidAttributes: array[0..9] of string = ( + 'coefs', 'post', 'weight', 'color', + 'symmetry', 'noplot', 'chaos', 'enabled', + 'plotmode', 'opacity' + ); +var + i, j: integer; + found: boolean; + attr: string; +begin + if (tagName = 'xform') or (tagName = 'finalxform') then begin + for i := 0 to Attributes.Count-1 do begin + attr := Attributes.Name(i); + found := false; + for j := 0 to High(ValidAttributes) do + if attr = ValidAttributes[j] then begin + found := true; + break; + end; + if found then continue; + + for j := 0 to NRVAR-1 do + if attr = Varnames(j) then begin + found := true; + break; + end; + if found then continue; + + for j := 0 to GetNrVariableNames-1 do + if attr = GetVariableNameAt(j) then begin + found := true; + break; + end; + if found then continue; + + xmlErrorsList.Add('in xform #' + IntToStr(pxformnum) + ' "' + attr + '"'); + end; + Inc(pxformnum); + end; end; procedure TMainForm.XMLScannerStartTag(Sender: TObject; TagName: string; @@ -4316,7 +4432,7 @@ begin with ParseCP.xform[nXform] do begin Clear; v := Attributes.Value('weight'); - if (v <> '') and (TagName = 'xform') then density := StrToFloat(v); + if (v <> '') and (TagName = 'xform') then weight := StrToFloat(v); if (TagName = 'finalxform') then begin v := Attributes.Value('enabled'); @@ -4324,12 +4440,14 @@ begin else ParseCP.finalXformEnabled := true; end; - if activexformset > 0 then density := 0; // tmp... + if activexformset > 0 then weight := 0; // tmp... v := Attributes.Value('color'); if v <> '' then color := StrToFloat(v); v := Attributes.Value('symmetry'); - if v <> '' then symmetry := StrToFloat(v); + if v <> '' then color_speed := StrToFloat(v); + v := Attributes.Value('color_speed'); + if v <> '' then color_speed := StrToFloat(v); v := Attributes.Value('coefs'); GetTokens(v, tokens); if Tokens.Count < 6 then ShowMessage('Not enough coefficients...crash?'); @@ -4363,13 +4481,16 @@ begin v := Attributes.Value('plotmode'); if v <> '' then begin if v = 'off' then begin - noPlot := true; + opacity := 0; //noPlot := true; end else begin - noPlot := false; + opacity := 1; //noPlot := false; end; end; + v := Attributes.Value('opacity'); + if v <> '' then opacity := StrToFloat(v); + for i := 0 to NRVAR - 1 do begin vars[i] := 0; @@ -4616,7 +4737,6 @@ procedure TMainForm.ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var scale: double; - rs: TSRect; begin case FMouseMoveState of msZoomWindowMove: @@ -4824,7 +4944,7 @@ const cornerSize = 32; var bkuPen: TPen; - dx, dy, cx, cy: integer; + dx, dy: integer; l, r, t, b: integer; begin bkuPen := TPen.Create; @@ -4939,7 +5059,7 @@ begin NewMenuItem.GroupIndex := 2; NewMenuItem.RadioItem := True; VarMenus[i] := NewMenuItem; - if i < NumBuiltinVars then + if i < NumBuiltinVariations then mnuBuiltinVars.Add(NewMenuItem) else mnuPluginVars.Add(NewMenuItem); @@ -5074,10 +5194,23 @@ end; procedure TMainForm.ListViewInfoTip(Sender: TObject; Item: TListItem; var InfoTip: String); -var - Bitmap: TBitmap; - lcp: TControlPoint; +//var + //Bitmap: TBitmap; + //lcp: TControlPoint; begin +{ + // Show unrecognized variations/variables in the tooltip + + CheckXMLFlame(OpenFile, Item.Index); + + InfoTip := InfoTip + #13#10 + 'Created with: ' + pversion; + + if xmlErrorsList.Count > 0 then begin + InfoTip := InfoTip + #13#10 + 'Unrecognized values:' + #13#10 + xmlErrorsList.Text; + xmlErrorsList.Clear; + end; +} + // flame preview in a tooltip... { BitMap := TBitMap.create; @@ -5120,4 +5253,23 @@ begin } end; +procedure TMainForm.ListViewSelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); +var + i: integer; + str: string; +begin +{ + CheckXMLFlame(OpenFile, Item.Index); + + if xmlErrorsList.Count > 0 then begin + str := 'Unrecognized values:' + #13#10 + xmlErrorsList.Text; + + InfoLabel.Caption := InfoLabel.Caption + #13#10 + str; + InfoLabel.Hint := str; + xmlErrorsList.Clear; + end +} +end; + end.