added checking XML for unrecognized variation/variable values,
various fixes
This commit is contained in:
parent
1b0e2c0570
commit
f07fd06bdd
@ -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
|
||||
|
@ -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, '<random_batch>');
|
||||
WriteLn(F, '<flames name="random batch">');
|
||||
for i := 0 to BatchSize - 1 do
|
||||
begin
|
||||
inc(RandomIndex);
|
||||
@ -1963,7 +1972,7 @@ begin
|
||||
// Write(F, FlameToString(Title));
|
||||
// WriteLn(F, ' ');
|
||||
end;
|
||||
Write(F, '</random_batch>');
|
||||
Write(F, '</flames>');
|
||||
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('<flame ', Lowercase(FStrings.Text)) <> 0) then
|
||||
if (Pos('<flame ', Lowercase(FileStrings.Text)) <> 0) then
|
||||
begin
|
||||
for i := 0 to FStrings.Count - 1 do
|
||||
i := 0;
|
||||
while i < FileStrings.Count do
|
||||
begin
|
||||
p := Pos('<flame ', LowerCase(FStrings[i]));
|
||||
p := Pos('<flame ', LowerCase(FileStrings[i]));
|
||||
if (p <> 0) then
|
||||
begin
|
||||
MainForm.ListXMLScanner.LoadFromBuffer(PCHAR(FSTrings[i]));
|
||||
ParamStrings.Add(FileStrings[i]);
|
||||
repeat
|
||||
Inc(i);
|
||||
ParamStrings.Add(FileStrings[i]);
|
||||
until pos('</flame>', 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);
|
||||
@ -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('<flame ', LowerCase(FileStrings[i]));
|
||||
if (p <> 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('<flame ', LowerCase(FileStrings[i]));
|
||||
if (p <> 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('<flame ', LowerCase(FileStrings[i]));
|
||||
if (p <> 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('</flame>', 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.
|
||||
|
Loading…
Reference in New Issue
Block a user