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.