Changeset 15
- Timestamp:
- Mar 22, 2018, 8:31:19 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DbEngines/UEngineMySQL.pas
r14 r15 69 69 var 70 70 DbRows: TDbRows; 71 DbRows2: TDbRows;72 71 NewTable: TTable; 73 72 I: Integer; -
trunk/DbEngines/UEngineXML.pas
r13 r15 77 77 while Assigned(Node2) and (Node2.NodeName = 'Value') and (I < Row.Values.Count) do begin 78 78 case TField(Row.Parent.Fields[I]).DataType.FieldType of 79 ftString: TValueString(Row.Values[I]).Value := Node2.TextContent;80 ftInteger: TValueInteger(Row.Values[I]).Value := StrToInt( Node2.TextContent);79 ftString: TValueString(Row.Values[I]).Value := string(Node2.TextContent); 80 ftInteger: TValueInteger(Row.Values[I]).Value := StrToInt(string(Node2.TextContent)); 81 81 ftDateTime: if Node2.TextContent <> '' then 82 TValueDateTime(Row.Values[I]).Value := XMLTimeToDateTime( Node2.TextContent);83 ftBoolean: TValueBoolean(Row.Values[I]).Value := StrToBool( Node2.TextContent);82 TValueDateTime(Row.Values[I]).Value := XMLTimeToDateTime(string(Node2.TextContent)); 83 ftBoolean: TValueBoolean(Row.Values[I]).Value := StrToBool(string(Node2.TextContent)); 84 84 end; 85 85 Node2 := Node2.NextSibling; … … 97 97 Node.AppendChild(NewNode); 98 98 case TField(Row.Parent.Fields[I]).DataType.FieldType of 99 ftString: NewNode.TextContent := TValueString(Row.Values[I]).Value;100 ftInteger: NewNode.TextContent := IntToStr(TValueInteger(Row.Values[I]).Value);101 ftDateTime: NewNode.TextContent := DateTimeToXMLTime(TValueDateTime(Row.Values[I]).Value);102 ftBoolean: NewNode.TextContent := BoolToStr(TValueBoolean(Row.Values[I]).Value);103 ftFloat: NewNode.TextContent := FloatToStr(TValueFloat(Row.Values[I]).Value);99 ftString: NewNode.TextContent := UnicodeString(TValueString(Row.Values[I]).Value); 100 ftInteger: NewNode.TextContent := UnicodeString(IntToStr(TValueInteger(Row.Values[I]).Value)); 101 ftDateTime: NewNode.TextContent := UnicodeString(DateTimeToXMLTime(TValueDateTime(Row.Values[I]).Value)); 102 ftBoolean: NewNode.TextContent := UnicodeString(BoolToStr(TValueBoolean(Row.Values[I]).Value)); 103 ftFloat: NewNode.TextContent := UnicodeString(FloatToStr(TValueFloat(Row.Values[I]).Value)); 104 104 end; 105 105 end; … … 244 244 NewNode: TDOMNode; 245 245 begin 246 ReadXMLFile(Doc, UTF8Decode(FileName));246 ReadXMLFile(Doc, FileName); 247 247 with Doc do try 248 248 if Doc.DocumentElement.NodeName <> 'MyData' then … … 275 275 SaveNodeTables(Database.Tables, NewNode); 276 276 end; 277 ForceDirectories UTF8(ExtractFileDir(FileName));278 WriteXMLFile(Doc, UTF8Decode(FileName));277 ForceDirectories(ExtractFileDir(FileName)); 278 WriteXMLFile(Doc, FileName); 279 279 finally 280 280 Doc.Free; -
trunk/Forms/UFormDatabases.pas
r11 r15 55 55 56 56 uses 57 UCore, UForm Tables, UFormConnect;57 UCore, UFormConnect; 58 58 59 59 { TFormDatabases } -
trunk/Forms/UFormField.lfm
r8 r15 10 10 OnShow = FormShow 11 11 Position = poMainFormCenter 12 LCLVersion = '1. 5'12 LCLVersion = '1.8.0.4' 13 13 object EditName: TEdit 14 14 Left = 168 15 Height = 3 515 Height = 36 16 16 Top = 11 17 17 Width = 264 … … 20 20 object Label1: TLabel 21 21 Left = 17 22 Height = 2 522 Height = 26 23 23 Top = 21 24 Width = 6224 Width = 56 25 25 Caption = 'Name:' 26 26 ParentColor = False … … 38 38 object EditTextBefore: TEdit 39 39 Left = 167 40 Height = 3 540 Height = 36 41 41 Top = 88 42 42 Width = 265 … … 45 45 object Label2: TLabel 46 46 Left = 16 47 Height = 2 547 Height = 26 48 48 Top = 98 49 Width = 1 1049 Width = 101 50 50 Caption = 'Text before:' 51 51 ParentColor = False … … 53 53 object EditTextAfter: TEdit 54 54 Left = 167 55 Height = 3 555 Height = 36 56 56 Top = 136 57 57 Width = 265 … … 60 60 object Label3: TLabel 61 61 Left = 16 62 Height = 2 562 Height = 26 63 63 Top = 144 64 Width = 9364 Width = 86 65 65 Caption = 'Text after:' 66 66 ParentColor = False … … 68 68 object Label4: TLabel 69 69 Left = 17 70 Height = 2 570 Height = 26 71 71 Top = 56 72 Width = 9472 Width = 87 73 73 Caption = 'Data type:' 74 74 ParentColor = False … … 76 76 object ComboBoxType: TComboBox 77 77 Left = 167 78 Height = 3778 Height = 40 79 79 Top = 48 80 80 Width = 265 … … 99 99 Top = 184 100 100 Width = 936 101 ActivePage = TabSheet Float101 ActivePage = TabSheetBoolean 102 102 Anchors = [akTop, akLeft, akRight, akBottom] 103 103 ShowTabs = False 104 TabIndex = 4104 TabIndex = 3 105 105 TabOrder = 6 106 106 object TabSheetString: TTabSheet 107 Caption = 'TabSheetString'108 107 ClientHeight = 194 109 108 ClientWidth = 930 110 109 object EditStringDefault: TEdit 111 110 Left = 160 112 Height = 3 5111 Height = 36 113 112 Top = 8 114 113 Width = 265 … … 117 116 object Label5: TLabel 118 117 Left = 16 119 Height = 2 5118 Height = 26 120 119 Top = 8 121 Width = 1 27120 Width = 117 122 121 Caption = 'Default value:' 123 122 ParentColor = False … … 125 124 end 126 125 object TabSheetInteger: TTabSheet 127 Caption = 'TabSheetInteger'128 126 ClientHeight = 194 129 127 ClientWidth = 930 130 128 object Label10: TLabel 131 129 Left = 12 132 Height = 2 5130 Height = 26 133 131 Top = 21 134 Width = 96132 Width = 87 135 133 Caption = 'Minimum:' 136 134 ParentColor = False … … 138 136 object SpinEditMin: TSpinEdit 139 137 Left = 153 140 Height = 3 5138 Height = 36 141 139 Top = 19 142 140 Width = 255 … … 146 144 object SpinEditMax: TSpinEdit 147 145 Left = 153 148 Height = 3 5146 Height = 36 149 147 Top = 56 150 148 Width = 255 … … 153 151 object Label11: TLabel 154 152 Left = 12 155 Height = 2 5153 Height = 26 156 154 Top = 58 157 Width = 100155 Width = 91 158 156 Caption = 'Maximum:' 159 157 ParentColor = False … … 161 159 end 162 160 object TabSheetDateTime: TTabSheet 163 Caption = 'TabSheetDateTime'164 161 ClientHeight = 194 165 162 ClientWidth = 930 166 163 object DateEditMin: TDateEdit 167 164 Left = 136 168 Height = 3 5165 Height = 36 169 166 Top = 24 170 167 Width = 216 171 168 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames] 172 OKCaption = 'OK'173 CancelCaption = 'Cancel'174 169 DateOrder = doNone 175 170 ButtonWidth = 23 … … 180 175 object Label6: TLabel 181 176 Left = 16 182 Height = 2 5177 Height = 26 183 178 Top = 32 184 Width = 96179 Width = 87 185 180 Caption = 'Minimum:' 186 181 ParentColor = False … … 188 183 object DateEditMax: TDateEdit 189 184 Left = 136 190 Height = 3 5185 Height = 36 191 186 Top = 72 192 187 Width = 216 193 188 CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames] 194 OKCaption = 'OK'195 CancelCaption = 'Cancel'196 189 DateOrder = doNone 197 190 ButtonWidth = 23 … … 202 195 object Label7: TLabel 203 196 Left = 16 204 Height = 2 5197 Height = 26 205 198 Top = 80 206 Width = 100199 Width = 91 207 200 Caption = 'Maximum:' 208 201 ParentColor = False … … 210 203 end 211 204 object TabSheetBoolean: TTabSheet 212 Caption = 'TabSheetBoolean'213 205 end 214 206 object TabSheetFloat: TTabSheet 215 Caption = 'TabSheetFloat'216 207 ClientHeight = 194 217 208 ClientWidth = 930 218 209 object FloatSpinEditMin: TFloatSpinEdit 219 210 Left = 144 220 Height = 3 5211 Height = 36 221 212 Top = 16 222 213 Width = 266 … … 229 220 object Label8: TLabel 230 221 Left = 8 231 Height = 2 5222 Height = 26 232 223 Top = 25 233 Width = 96224 Width = 87 234 225 Caption = 'Minimum:' 235 226 ParentColor = False … … 237 228 object FloatSpinEditMax: TFloatSpinEdit 238 229 Left = 144 239 Height = 3 5230 Height = 36 240 231 Top = 64 241 232 Width = 266 … … 248 239 object Label9: TLabel 249 240 Left = 8 250 Height = 2 5241 Height = 26 251 242 Top = 73 252 Width = 100243 Width = 91 253 244 Caption = 'Maximum:' 254 245 ParentColor = False -
trunk/Forms/UFormField.pas
r14 r15 60 60 61 61 uses 62 UDataTypes , UCore;62 UDataTypes; 63 63 64 64 {$R *.lfm} -
trunk/Forms/UFormFields.lfm
r11 r15 9 9 OnShow = FormShow 10 10 Position = poMainFormCenter 11 LCLVersion = '1. 5'11 LCLVersion = '1.8.0.4' 12 12 object ToolBar1: TToolBar 13 13 Left = 0 … … 122 122 object MenuItem1: TMenuItem 123 123 Action = AAdd 124 Bitmap.Data = {125 36100000424D3610000000000000360000002800000020000000200000000100126 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF127 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF128 FF00DBDBDBFF949494FF707070FF707070FF707070FF707070FF707070FF7070129 70FF707070FF707070FF707070FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF130 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF131 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF132 FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051133 04FF005104FF005104FF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF134 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF135 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF136 FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0137 7FFF76D07FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF138 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF139 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF140 FF00005104FF76D07FFF09A514FF089F12FF069710FF06920EFF06920EFF0694141 0FFF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF142 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF143 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF144 FF00005104FF76D07FFF09A514FF089F12FF079910FF06940FFF06920EFF0692145 0EFF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF146 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF147 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF148 FF00005104FF76D07FFF09A514FF09A514FF089F12FF079910FF06940FFF0692149 0EFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF150 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF151 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF152 FF00005104FF76D07FFF09A715FF09A514FF09A514FF089F12FF079910FF0694153 0FFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF154 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF155 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF156 FF00005104FF76D07FFF09A715FF09A514FF09A514FF09A514FF089F12FF0799157 10FF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF158 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF159 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF160 FF00005104FF76D07FFF09A715FF09A715FF09A514FF09A514FF09A514FF089F161 12FF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF162 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F3F3F3FFDBDB163 DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF164 CFFF005104FF76D07FFF09A715FF09A715FF09A715FF09A514FF09A514FF09A5165 14FF089F12FF76D07FFF005104FF646464FFABABABFFCFCFCFFFCFCFCFFFCFCF166 CFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFDBDBDBFFDBDBDBFF9494167 94FF707070FF707070FF707070FF707070FF707070FF707070FF707070FF7070168 70FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A5169 14FF09A514FF76D07FFF005104FF4C4C4CFF646464FF707070FF707070FF7070170 70FF707070FF707070FF707070FF707070FF707070FF949494FF005104FF0051171 04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051172 04FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7173 15FF09A514FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051174 04FF005104FF005104FF005104FF005104FF005104FF707070FF005104FF76D0175 7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0176 7FFF76D07FFF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7177 15FF09A715FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0178 7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF707070FF005104FF76D0179 7FFF74CD7BFF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A7180 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7181 15FF09A715FF09A514FF09A514FF09A514FF089F12FF079910FF06940FFF0692182 0EFF06920EFF06940FFF069710FF76D07FFF005104FF707070FF005104FF76D0183 7FFF79CF7FFF74CD7BFF6FCC76FF6ACA72FF6ACA72FF50C159FF25B130FF09A7184 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7185 15FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF079910FF0694186 0FFF06940FFF06920EFF06940FFF76D07FFF005104FF707070FF005104FF76D0187 7FFF7ED184FF79CF7FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF5AC462FF32B5188 3CFF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7189 15FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF0799190 10FF069710FF06940FFF06920EFF76D07FFF005104FF707070FF005104FF76D0191 7FFF84D38AFF7ED184FF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8192 6DFF41BB4AFF25B130FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7193 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F194 12FF089F12FF069710FF06940FFF76D07FFF005104FF707070FF005104FF76D0195 7FFF84D38AFF84D38AFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA196 72FF6ACA72FF50C159FF32B53CFF09A715FF09A715FF09A715FF09A715FF09A7197 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5198 14FF089F12FF089F12FF069710FF76D07FFF005104FF707070FF005104FF76D0199 7FFF8CD692FF84D38AFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC200 76FF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A715FF09A7201 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5202 14FF09A514FF089F12FF089F12FF76D07FFF005104FF707070FF005104FF76D0203 7FFF90D795FF8CD692FF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD204 7BFF74CD7BFF6FCC76FF6ACA72FF66C86DFF66C86DFF41BB4AFF25B130FF09A7205 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7206 15FF09A514FF09A514FF089F12FF76D07FFF005104FF707070FF005104FF76D0207 7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0208 7FFF76D07FFF76D07FFF6FCC76FF6ACA72FF6ACA72FF66C86DFF66C86DFF41BB209 4AFF25B130FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0210 7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF949494FF005104FF0051211 04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051212 04FF005104FF76D07FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF66C86DFF66C8213 6DFF5AC462FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051214 04FF005104FF005104FF005104FF005104FF005104FFDBDBDBFFFFFFFF00FFFF215 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF216 FF00005104FF76D07FFF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8217 6DFF66C86DFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF218 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF219 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF220 FF00005104FF76D07FFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA221 72FF6ACA72FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF222 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF223 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF224 FF00005104FF76D07FFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC225 76FF6FCC76FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF226 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF227 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF228 FF00005104FF76D07FFF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD229 7BFF74CD7BFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF230 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF231 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF232 FF00005104FF76D07FFF8CD692FF8CD692FF84D38AFF84D38AFF7ED184FF79CF233 7FFF79CF7FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF234 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF235 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF236 FF00005104FF76D07FFF90D795FF8CD692FF8CD692FF84D38AFF84D38AFF7ED1237 84FF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF238 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF239 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF240 FF00005104FF76D07FFF9BDBA0FF90D795FF90D795FF8CD692FF84D38AFF84D3241 8AFF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF242 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF243 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF244 FF00005104FF76D07FFF9BDBA0FF9BDBA0FF90D795FF90D795FF8CD692FF8CD6245 92FF84D38AFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF246 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF247 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF248 FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0249 7FFF76D07FFF76D07FFF005104FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF250 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF251 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF252 FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051253 04FF005104FF005104FF005104FFDBDBDBFFF3F3F3FFFFFFFF00FFFFFF00FFFF254 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00255 }256 124 end 257 125 object MenuItem2: TMenuItem 258 126 Action = AModify 259 127 Default = True 260 Bitmap.Data = {261 36100000424D3610000000000000360000002800000020000000200000000100262 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF263 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF264 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF265 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF266 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF267 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF268 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF269 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF270 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF271 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF272 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF273 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF274 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF275 FF00BABABAFFCFCFCFFFF6F6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF276 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF277 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF278 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF279 FF00BABABAFF415D77FF4D697FFFC0C7CCFFFFFFFF00FFFFFF00FFFFFF00FFFF280 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF281 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF282 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF283 FF00D8D8D8FF415D77FF597EAEFF5492E5FF69AAEDFFA3CEF5FFFFFFFF00FFFF284 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF285 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF286 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF287 FF00F6F6F6FF8EAAC2FF9BC1F3FFA8CAF6FF649CE8FF5492E5FF5094E6FF69AA288 EDFFC8E0F8FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF289 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF290 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF291 FF00FFFFFF00ECF5FDFF81B0EEFFC8E0F8FFBDD8FAFF81B0EEFF5492E5FF5492292 E5FF5094E6FF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF293 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF294 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF295 FF00FFFFFF00FFFFFF00649CE8FFBDD8FAFFD6E8FEFFC8E0F8FF9BC1F3FF5094296 E6FF209BEDFF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF297 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF298 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF299 FF00FFFFFF00FFFFFF007CB3EEFF9BC1F3FFD6E8FEFFD6E8FEFFC8E0F8FF71C9300 FAFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF301 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF302 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF303 FF00FFFFFF00FFFFFF00A3CEF5FF77A9ECFFC8E0F8FFD6E8FEFFBFE4FEFF5BD5304 FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF305 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF306 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF307 FF00FFFFFF00FFFFFF00E0EFFCFF5492E5FFBDD8FAFFC8E0F8FFA9E6FFFF79E1308 FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF309 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF310 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF311 FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF6DBCF4FF98DBFCFF9CE4FFFF94E4312 FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF313 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF314 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF315 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4316 FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007D317 E7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF318 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF319 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7320 FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489321 EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF322 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF323 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9324 F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149C325 F1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF326 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF327 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B328 EDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1329 F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF330 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF331 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF332 FF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5333 FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF334 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF335 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF336 FF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5337 FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF338 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF339 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF340 FF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1341 FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF342 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF343 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF344 FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4345 FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF346 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF347 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF348 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4349 FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF611CDDFF5400350 D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF351 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF352 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7353 FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF8163F0FF7547E9FF611C354 DDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF355 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF356 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9357 F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF9185F9FF8A75F5FF8163F0FF7547358 E9FF611CDDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF359 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF360 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B361 EDFF55B9F4FF87D7FBFF9CE4FFFF9998FFFF9691FDFF9185F9FF8A75F5FF8163362 F0FF7547E9FF611CDDFFD4BFF4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF363 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF364 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF365 FF00209BEDFF55B9F4FF948CFBFF9998FFFF9998FFFF9691FDFF9185F9FF8A75366 F5FF8163F0FF7547E9FFD7C6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF367 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF368 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF369 FF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691FDFF9185370 F9FF8A75F5FF8163F0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF371 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF372 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF373 FF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691374 FDFF9185F9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF375 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF376 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF377 FF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998378 FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF379 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF380 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF381 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFFFFFF382 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF383 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF384 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF385 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF386 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF387 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF388 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF389 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF390 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00391 }392 128 end 393 129 object MenuItem3: TMenuItem 394 130 Action = ARemove 395 Bitmap.Data = {396 36100000424D3610000000000000360000002800000020000000200000000100397 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF398 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF399 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF400 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF401 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF402 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF403 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF404 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF405 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF406 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF407 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF408 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF409 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF410 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF411 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF412 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF413 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF414 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF415 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF416 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF417 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF418 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF419 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF420 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF421 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF422 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF423 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF424 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF425 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF426 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF427 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF428 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF429 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF430 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF431 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF432 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF433 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF434 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF435 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF436 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF437 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF438 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF439 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF440 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF441 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00463C442 8BFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C443 6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C444 6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C445 6AFF342C6AFF342C6AFF342C6AFF342C6AFF463C8BFFFFFFFF00FFFFFF003C34446 77FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F447 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F448 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F449 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF3C3477FFFFFFFF00FFFFFF00433B450 84FF5D51C1FF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716451 ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716452 ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716453 ABFF2716ABFF2716ABFF2716ABFF5D51C1FF433B84FFFFFFFF00FFFFFF004B42454 92FF6052CCFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18455 BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18456 BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18457 BAFF2A18BAFF2A18BAFF2A18BAFF6052CCFF4B4292FFFFFFFF00FFFFFF00544A458 A0FF6455D6FF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623459 CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623460 CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623461 CBFF3623CBFF3623CBFF3623CBFF6455D6FF544AA0FFFFFFFF00FFFFFF005D51462 AFFF6C5DE3FF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E463 DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E464 DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E465 DEFF503EDEFF503EDEFF4937DCFF6C5DE3FF5D51AFFFFFFFFF00FFFFFF006357466 B8FF7364EAFF6251E7FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757467 E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757468 E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757469 E8FF6757E8FF6757E8FF5C4AE6FF7364EAFF6357B8FFFFFFFF00FFFFFF006357470 B8FF7869EAFF7364EAFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F471 EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F472 EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F473 EBFF7D6FEBFF7869EAFF6757E8FF7869EAFF6357B8FFFFFFFF00FFFFFF006357474 B8FF7D6FEBFF8174ECFF8D81EEFF9387EFFF9387EFFF9387EFFF9387EFFF9387475 EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387476 EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387477 EFFF9387EFFF8D81EEFF7869EAFF7869EAFF6357B8FFFFFFFF00FFFFFF006E62478 C3FF7A6CE3FF897EE6FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186479 E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186480 E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186481 E7FF9186E7FF897EE6FF867AE6FF7A6CE3FF6E62C3FFFFFFFF00FFFFFF007468482 CEFF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62483 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62484 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62485 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF7468CEFFFFFFFF00FFFFFF00FFFF486 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF487 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF488 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF489 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF490 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF491 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF492 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF493 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF494 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF495 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF496 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF497 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF498 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF499 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF500 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF501 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF502 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF503 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF504 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF505 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF506 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF507 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF508 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF509 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF510 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF511 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF512 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF513 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF514 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF515 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF516 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF517 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF518 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF519 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF520 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF521 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF522 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF523 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF524 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF525 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00526 }527 131 end 528 132 end -
trunk/Forms/UFormFields.pas
r14 r15 6 6 7 7 uses 8 Classes, SysUtils, XMLConf,FileUtil, Forms, Controls, Graphics, Dialogs,8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, 9 9 ActnList, ComCtrls, Menus, UDatabase; 10 10 … … 55 55 56 56 uses 57 UFormField , UDataTypes;57 UFormField; 58 58 59 59 {$R *.lfm} -
trunk/Forms/UFormMain.lfm
r14 r15 5 5 Width = 1250 6 6 Caption = 'MyData' 7 ClientHeight = 8 207 ClientHeight = 815 8 8 ClientWidth = 1250 9 9 Menu = MainMenu1 … … 11 11 OnClose = FormClose 12 12 OnShow = FormShow 13 LCLVersion = '1. 5'13 LCLVersion = '1.8.0.4' 14 14 WindowState = wsMaximized 15 15 object StatusBar1: TStatusBar 16 16 Left = 0 17 Height = 2918 Top = 7 9117 Height = 30 18 Top = 785 19 19 Width = 1250 20 20 Panels = <> -
trunk/Forms/UFormMain.pas
r9 r15 41 41 42 42 uses 43 U FormDatabases, UCore, UFormTables;43 UCore, UFormTables; 44 44 45 45 { TFormMain } -
trunk/Forms/UFormRecords.lfm
r13 r15 9 9 OnShow = FormShow 10 10 Position = poMainFormCenter 11 LCLVersion = '1. 5'11 LCLVersion = '1.8.0.4' 12 12 object ListView1: TListView 13 13 Left = 4 … … 90 90 object MenuItem1: TMenuItem 91 91 Action = AAdd 92 Bitmap.Data = {93 36100000424D361000000000000036000000280000002000000020000000010094 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF95 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF96 FF00DBDBDBFF949494FF707070FF707070FF707070FF707070FF707070FF707097 70FF707070FF707070FF707070FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF98 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF99 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF100 FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051101 04FF005104FF005104FF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF102 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF103 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF104 FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0105 7FFF76D07FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF106 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF107 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF108 FF00005104FF76D07FFF09A514FF089F12FF069710FF06920EFF06920EFF0694109 0FFF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF110 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF111 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF112 FF00005104FF76D07FFF09A514FF089F12FF079910FF06940FFF06920EFF0692113 0EFF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF114 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF115 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF116 FF00005104FF76D07FFF09A514FF09A514FF089F12FF079910FF06940FFF0692117 0EFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF118 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF119 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF120 FF00005104FF76D07FFF09A715FF09A514FF09A514FF089F12FF079910FF0694121 0FFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF122 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF123 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF124 FF00005104FF76D07FFF09A715FF09A514FF09A514FF09A514FF089F12FF0799125 10FF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF126 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF127 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF128 FF00005104FF76D07FFF09A715FF09A715FF09A514FF09A514FF09A514FF089F129 12FF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF130 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F3F3F3FFDBDB131 DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF132 CFFF005104FF76D07FFF09A715FF09A715FF09A715FF09A514FF09A514FF09A5133 14FF089F12FF76D07FFF005104FF646464FFABABABFFCFCFCFFFCFCFCFFFCFCF134 CFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFDBDBDBFFDBDBDBFF9494135 94FF707070FF707070FF707070FF707070FF707070FF707070FF707070FF7070136 70FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A5137 14FF09A514FF76D07FFF005104FF4C4C4CFF646464FF707070FF707070FF7070138 70FF707070FF707070FF707070FF707070FF707070FF949494FF005104FF0051139 04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051140 04FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7141 15FF09A514FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051142 04FF005104FF005104FF005104FF005104FF005104FF707070FF005104FF76D0143 7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0144 7FFF76D07FFF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7145 15FF09A715FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0146 7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF707070FF005104FF76D0147 7FFF74CD7BFF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A7148 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7149 15FF09A715FF09A514FF09A514FF09A514FF089F12FF079910FF06940FFF0692150 0EFF06920EFF06940FFF069710FF76D07FFF005104FF707070FF005104FF76D0151 7FFF79CF7FFF74CD7BFF6FCC76FF6ACA72FF6ACA72FF50C159FF25B130FF09A7152 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7153 15FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF079910FF0694154 0FFF06940FFF06920EFF06940FFF76D07FFF005104FF707070FF005104FF76D0155 7FFF7ED184FF79CF7FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF5AC462FF32B5156 3CFF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7157 15FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF0799158 10FF069710FF06940FFF06920EFF76D07FFF005104FF707070FF005104FF76D0159 7FFF84D38AFF7ED184FF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8160 6DFF41BB4AFF25B130FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7161 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F162 12FF089F12FF069710FF06940FFF76D07FFF005104FF707070FF005104FF76D0163 7FFF84D38AFF84D38AFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA164 72FF6ACA72FF50C159FF32B53CFF09A715FF09A715FF09A715FF09A715FF09A7165 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5166 14FF089F12FF089F12FF069710FF76D07FFF005104FF707070FF005104FF76D0167 7FFF8CD692FF84D38AFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC168 76FF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A715FF09A7169 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5170 14FF09A514FF089F12FF089F12FF76D07FFF005104FF707070FF005104FF76D0171 7FFF90D795FF8CD692FF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD172 7BFF74CD7BFF6FCC76FF6ACA72FF66C86DFF66C86DFF41BB4AFF25B130FF09A7173 15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7174 15FF09A514FF09A514FF089F12FF76D07FFF005104FF707070FF005104FF76D0175 7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0176 7FFF76D07FFF76D07FFF6FCC76FF6ACA72FF6ACA72FF66C86DFF66C86DFF41BB177 4AFF25B130FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0178 7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF949494FF005104FF0051179 04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051180 04FF005104FF76D07FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF66C86DFF66C8181 6DFF5AC462FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051182 04FF005104FF005104FF005104FF005104FF005104FFDBDBDBFFFFFFFF00FFFF183 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF184 FF00005104FF76D07FFF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8185 6DFF66C86DFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF186 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF187 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF188 FF00005104FF76D07FFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA189 72FF6ACA72FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF190 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF191 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF192 FF00005104FF76D07FFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC193 76FF6FCC76FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF194 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF195 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF196 FF00005104FF76D07FFF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD197 7BFF74CD7BFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF198 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF199 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF200 FF00005104FF76D07FFF8CD692FF8CD692FF84D38AFF84D38AFF7ED184FF79CF201 7FFF79CF7FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF202 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF203 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF204 FF00005104FF76D07FFF90D795FF8CD692FF8CD692FF84D38AFF84D38AFF7ED1205 84FF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF206 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF207 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF208 FF00005104FF76D07FFF9BDBA0FF90D795FF90D795FF8CD692FF84D38AFF84D3209 8AFF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF210 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF211 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF212 FF00005104FF76D07FFF9BDBA0FF9BDBA0FF90D795FF90D795FF8CD692FF8CD6213 92FF84D38AFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF214 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF215 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF216 FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0217 7FFF76D07FFF76D07FFF005104FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF218 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF219 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF220 FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051221 04FF005104FF005104FF005104FFDBDBDBFFF3F3F3FFFFFFFF00FFFFFF00FFFF222 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00223 }224 92 end 225 93 object MenuItem2: TMenuItem 226 94 Action = AModify 227 95 Default = True 228 Bitmap.Data = {229 36100000424D3610000000000000360000002800000020000000200000000100230 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF231 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF232 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF233 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF234 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF235 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF236 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF237 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF238 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF239 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF240 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF241 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF242 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF243 FF00BABABAFFCFCFCFFFF6F6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF244 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF245 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF246 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF247 FF00BABABAFF415D77FF4D697FFFC0C7CCFFFFFFFF00FFFFFF00FFFFFF00FFFF248 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF249 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF250 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF251 FF00D8D8D8FF415D77FF597EAEFF5492E5FF69AAEDFFA3CEF5FFFFFFFF00FFFF252 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF253 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF254 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF255 FF00F6F6F6FF8EAAC2FF9BC1F3FFA8CAF6FF649CE8FF5492E5FF5094E6FF69AA256 EDFFC8E0F8FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF257 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF258 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF259 FF00FFFFFF00ECF5FDFF81B0EEFFC8E0F8FFBDD8FAFF81B0EEFF5492E5FF5492260 E5FF5094E6FF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF261 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF262 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF263 FF00FFFFFF00FFFFFF00649CE8FFBDD8FAFFD6E8FEFFC8E0F8FF9BC1F3FF5094264 E6FF209BEDFF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF265 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF266 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF267 FF00FFFFFF00FFFFFF007CB3EEFF9BC1F3FFD6E8FEFFD6E8FEFFC8E0F8FF71C9268 FAFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF269 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF270 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF271 FF00FFFFFF00FFFFFF00A3CEF5FF77A9ECFFC8E0F8FFD6E8FEFFBFE4FEFF5BD5272 FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF273 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF274 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF275 FF00FFFFFF00FFFFFF00E0EFFCFF5492E5FFBDD8FAFFC8E0F8FFA9E6FFFF79E1276 FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF277 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF278 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF279 FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF6DBCF4FF98DBFCFF9CE4FFFF94E4280 FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF281 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF282 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF283 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4284 FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007D285 E7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF286 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF287 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7288 FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489289 EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF290 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF291 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9292 F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149C293 F1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF294 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF295 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B296 EDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1297 F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF298 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF299 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF300 FF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5301 FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF302 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF303 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF304 FF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5305 FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF306 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF307 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF308 FF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1309 FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF310 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF311 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF312 FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4313 FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF314 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF315 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF316 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4317 FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF611CDDFF5400318 D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF319 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF320 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7321 FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF8163F0FF7547E9FF611C322 DDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF323 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF324 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9325 F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF9185F9FF8A75F5FF8163F0FF7547326 E9FF611CDDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF327 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF328 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B329 EDFF55B9F4FF87D7FBFF9CE4FFFF9998FFFF9691FDFF9185F9FF8A75F5FF8163330 F0FF7547E9FF611CDDFFD4BFF4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF331 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF332 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF333 FF00209BEDFF55B9F4FF948CFBFF9998FFFF9998FFFF9691FDFF9185F9FF8A75334 F5FF8163F0FF7547E9FFD7C6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF335 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF336 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF337 FF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691FDFF9185338 F9FF8A75F5FF8163F0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF339 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF340 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF341 FF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691342 FDFF9185F9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF343 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF344 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF345 FF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998346 FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF347 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF348 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF349 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFFFFFF350 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF351 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF352 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF353 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF354 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF355 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF356 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF357 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF358 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00359 }360 96 end 361 97 object MenuItem3: TMenuItem 362 98 Action = ARemove 363 Bitmap.Data = {364 36100000424D3610000000000000360000002800000020000000200000000100365 2000000000000010000064000000640000000000000000000000FFFFFF00FFFF366 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF367 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF368 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF369 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF370 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF371 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF372 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF373 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF374 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF375 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF376 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF377 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF378 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF379 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF380 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF381 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF382 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF383 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF384 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF385 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF386 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF387 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF388 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF389 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF390 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF391 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF392 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF393 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF394 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF395 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF396 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF397 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF398 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF399 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF400 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF401 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF402 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF403 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF404 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF405 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF406 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF407 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF408 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF409 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00463C410 8BFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C411 6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C412 6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C413 6AFF342C6AFF342C6AFF342C6AFF342C6AFF463C8BFFFFFFFF00FFFFFF003C34414 77FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F415 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F416 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F417 B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF3C3477FFFFFFFF00FFFFFF00433B418 84FF5D51C1FF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716419 ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716420 ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716421 ABFF2716ABFF2716ABFF2716ABFF5D51C1FF433B84FFFFFFFF00FFFFFF004B42422 92FF6052CCFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18423 BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18424 BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18425 BAFF2A18BAFF2A18BAFF2A18BAFF6052CCFF4B4292FFFFFFFF00FFFFFF00544A426 A0FF6455D6FF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623427 CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623428 CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623429 CBFF3623CBFF3623CBFF3623CBFF6455D6FF544AA0FFFFFFFF00FFFFFF005D51430 AFFF6C5DE3FF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E431 DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E432 DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E433 DEFF503EDEFF503EDEFF4937DCFF6C5DE3FF5D51AFFFFFFFFF00FFFFFF006357434 B8FF7364EAFF6251E7FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757435 E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757436 E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757437 E8FF6757E8FF6757E8FF5C4AE6FF7364EAFF6357B8FFFFFFFF00FFFFFF006357438 B8FF7869EAFF7364EAFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F439 EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F440 EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F441 EBFF7D6FEBFF7869EAFF6757E8FF7869EAFF6357B8FFFFFFFF00FFFFFF006357442 B8FF7D6FEBFF8174ECFF8D81EEFF9387EFFF9387EFFF9387EFFF9387EFFF9387443 EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387444 EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387445 EFFF9387EFFF8D81EEFF7869EAFF7869EAFF6357B8FFFFFFFF00FFFFFF006E62446 C3FF7A6CE3FF897EE6FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186447 E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186448 E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186449 E7FF9186E7FF897EE6FF867AE6FF7A6CE3FF6E62C3FFFFFFFF00FFFFFF007468450 CEFF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62451 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62452 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62453 C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF7468CEFFFFFFFF00FFFFFF00FFFF454 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF455 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF456 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF457 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF458 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF459 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF460 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF461 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF462 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF463 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF464 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF465 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF466 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF467 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF468 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF469 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF470 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF471 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF472 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF473 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF474 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF475 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF476 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF477 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF478 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF479 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF480 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF481 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF482 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF483 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF484 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF485 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF486 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF487 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF488 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF489 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF490 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF491 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF492 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF493 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00494 }495 99 end 496 100 end -
trunk/Forms/UFormRecords.pas
r13 r15 145 145 var 146 146 I: Integer; 147 NewColumn: TListColumn;148 147 begin 149 148 Table.LoadRecords; 150 ListView1.Columns.Clear; 149 150 ListView1.Columns.BeginUpdate; 151 while ListView1.Columns.Count > Table.Fields.Count do 152 ListView1.Columns[ListView1.ColumnCount - 1].Free; 153 while ListView1.Columns.Count < Table.Fields.Count do 154 ListView1.Columns.Add; 151 155 for I := 0 to Table.Fields.Count - 1 do begin 152 NewColumn := ListView1.Columns.Add; 153 NewColumn.Caption := TField(Table.Fields[I]).TextBefore; 154 NewColumn.Width := 200; 156 ListView1.Columns[I].Caption := TField(Table.Fields[I]).TextBefore; 157 ListView1.Columns[I].Width := 200; 155 158 end; 159 ListView1.Columns.EndUpdate; 156 160 157 161 ListView1.Items.Count := Table.Records.Count; -
trunk/Forms/UFormTables.pas
r13 r15 60 60 61 61 uses 62 U Core, UFormTable, UFormRecords, UFormFields;62 UFormTable, UFormRecords, UFormFields; 63 63 64 64 {$R *.lfm} -
trunk/Languages/MyData.cs.po
r14 r15 78 78 msgstr "Pole" 79 79 80 #: tformfield.dateeditmax.cancelcaption81 msgctxt "tformfield.dateeditmax.cancelcaption"82 msgid "Cancel"83 msgstr "Zrušit"84 85 #: tformfield.dateeditmax.okcaption86 msgctxt "tformfield.dateeditmax.okcaption"87 msgid "OK"88 msgstr "OK"89 90 #: tformfield.dateeditmin.cancelcaption91 msgctxt "tformfield.dateeditmin.cancelcaption"92 msgid "Cancel"93 msgstr "Zrušit"94 95 #: tformfield.dateeditmin.okcaption96 msgctxt "tformfield.dateeditmin.okcaption"97 msgid "OK"98 msgstr "OK"99 100 80 #: tformfield.label1.caption 101 81 msgid "Name:" … … 148 128 msgstr "Maximum:" 149 129 150 #: tformfield.tabsheetboolean.caption151 msgid "TabSheetBoolean"152 msgstr ""153 154 #: tformfield.tabsheetdatetime.caption155 msgid "TabSheetDateTime"156 msgstr ""157 158 #: tformfield.tabsheetfloat.caption159 msgid "TabSheetFloat"160 msgstr ""161 162 #: tformfield.tabsheetinteger.caption163 msgid "TabSheetInteger"164 msgstr ""165 166 #: tformfield.tabsheetstring.caption167 msgid "TabSheetString"168 msgstr ""169 170 130 #: tformfields.aadd.caption 171 131 msgctxt "tformfields.aadd.caption" … … 227 187 msgstr "Databáze" 228 188 229 #: tformmain.menuitem5.caption230 msgid "-"231 msgstr "-"232 233 189 #: tformmain.menuitempreferences.caption 234 190 msgid "Tools" -
trunk/Languages/MyData.po
r14 r15 69 69 msgstr "" 70 70 71 #: tformfield.dateeditmax.cancelcaption72 msgctxt "TFORMFIELD.DATEEDITMAX.CANCELCAPTION"73 msgid "Cancel"74 msgstr ""75 76 #: tformfield.dateeditmax.okcaption77 msgctxt "TFORMFIELD.DATEEDITMAX.OKCAPTION"78 msgid "OK"79 msgstr ""80 81 #: tformfield.dateeditmin.cancelcaption82 msgctxt "TFORMFIELD.DATEEDITMIN.CANCELCAPTION"83 msgid "Cancel"84 msgstr ""85 86 #: tformfield.dateeditmin.okcaption87 msgctxt "tformfield.dateeditmin.okcaption"88 msgid "OK"89 msgstr ""90 91 71 #: tformfield.label1.caption 92 72 msgid "Name:" … … 139 119 msgstr "" 140 120 141 #: tformfield.tabsheetboolean.caption142 msgid "TabSheetBoolean"143 msgstr ""144 145 #: tformfield.tabsheetdatetime.caption146 msgid "TabSheetDateTime"147 msgstr ""148 149 #: tformfield.tabsheetfloat.caption150 msgid "TabSheetFloat"151 msgstr ""152 153 #: tformfield.tabsheetinteger.caption154 msgid "TabSheetInteger"155 msgstr ""156 157 #: tformfield.tabsheetstring.caption158 msgid "TabSheetString"159 msgstr ""160 161 121 #: tformfields.aadd.caption 162 122 msgctxt "TFORMFIELDS.AADD.CAPTION" … … 218 178 msgstr "" 219 179 220 #: tformmain.menuitem5.caption221 msgid "-"222 msgstr ""223 224 180 #: tformmain.menuitempreferences.caption 225 181 msgid "Tools" -
trunk/MyData.lpi
r14 r15 2 2 <CONFIG> 3 3 <ProjectOptions> 4 <Version Value=" 9"/>4 <Version Value="10"/> 5 5 <General> 6 6 <SessionStorage Value="InProjectDir"/> … … 9 9 <ResourceType Value="res"/> 10 10 <UseXPManifest Value="True"/> 11 <XPManifest> 12 <DpiAware Value="True"/> 13 </XPManifest> 11 14 <Icon Value="0"/> 12 15 </General> … … 15 18 <OutDir Value="Languages"/> 16 19 </i18n> 17 <VersionInfo>18 <StringTable ProductVersion=""/>19 </VersionInfo>20 20 <BuildModes Count="2"> 21 21 <Item1 Name="Debug" Default="True"/> … … 29 29 <IncludeFiles Value="$(ProjOutDir)"/> 30 30 <OtherUnitFiles Value="Forms"/> 31 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS) "/>31 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 32 32 </SearchPaths> 33 33 <Parsing> … … 44 44 <OptimizationLevel Value="3"/> 45 45 </Optimizations> 46 <SmallerCode Value="True"/>47 46 </CodeGeneration> 48 47 <Linking> … … 57 56 </Options> 58 57 </Linking> 58 <Other> 59 <CompilerMessages> 60 <IgnoredMessages idx5024="True"/> 61 </CompilerMessages> 62 </Other> 59 63 </CompilerOptions> 60 64 </Item2> … … 212 216 <IncludeFiles Value="$(ProjOutDir)"/> 213 217 <OtherUnitFiles Value="Forms;DbEngines;/usr/lib/mysql/;/usr/lib64/mysql/"/> 214 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS) "/>218 <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 215 219 </SearchPaths> 216 220 <Parsing> … … 243 247 </Linking> 244 248 <Other> 249 <CompilerMessages> 250 <IgnoredMessages idx5024="True"/> 251 </CompilerMessages> 245 252 <CustomOptions Value="-dDEBUG"/> 246 253 </Other> -
trunk/MyData.lpr
r13 r15 8 8 {$ENDIF}{$ENDIF} 9 9 Interfaces, // this includes the LCL widgetset 10 Forms, UFormTables, U Database, UCore, Common, CoolTranslator, UEngineXML,11 UFormTable, UFormRecords, UFormRecord, UFormFields, UFormField, UDataTypes,12 TemplateGenerics, CoolWeb, synapse, U EngineMySQL, UEngineSQLite, UFormMain,10 Forms, UFormTables, UCore, Common, CoolTranslator, 11 UFormTable, UFormRecords, UFormRecord, UFormFields, UFormField, 12 TemplateGenerics, CoolWeb, synapse, UFormMain, SysUtils, 13 13 UFormConnect, UFormDatabases, UFormPreferences; 14 14 15 15 {$R *.res} 16 16 17 {$IFDEF DEBUG} 18 const 19 HeapTraceLog = 'heaptrclog.trc'; 20 {$ENDIF} 21 17 22 begin 23 {$IFDEF DEBUG} 24 // Heap trace 25 DeleteFile(ExtractFilePath(ParamStr(0)) + HeapTraceLog); 26 SetHeapTraceOutput(ExtractFilePath(ParamStr(0)) + HeapTraceLog); 27 {$ENDIF} 28 18 29 RequireDerivedFormResource := True; 19 30 Application.Initialize; -
trunk/Packages/Common/Common.lpk
r10 r15 4 4 <PathDelim Value="\"/> 5 5 <Name Value="Common"/> 6 <Type Value="RunAndDesignTime"/> 6 7 <AddToProjectUsesSection Value="True"/> 7 8 <Author Value="Chronos (robie@centrum.cz)"/> … … 10 11 <PathDelim Value="\"/> 11 12 <SearchPaths> 12 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS) "/>13 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 13 14 </SearchPaths> 15 <Parsing> 16 <SyntaxOptions> 17 <SyntaxMode Value="Delphi"/> 18 <CStyleOperator Value="False"/> 19 <AllowLabel Value="False"/> 20 <CPPInline Value="False"/> 21 </SyntaxOptions> 22 </Parsing> 23 <CodeGeneration> 24 <Optimizations> 25 <OptimizationLevel Value="0"/> 26 </Optimizations> 27 </CodeGeneration> 28 <Linking> 29 <Debugging> 30 <GenerateDebugInfo Value="False"/> 31 </Debugging> 32 </Linking> 33 <Other> 34 <CompilerMessages> 35 <IgnoredMessages idx5024="True"/> 36 </CompilerMessages> 37 </Other> 14 38 </CompilerOptions> 15 39 <Description Value="Various libraries"/> 16 40 <License Value="GNU/GPL"/> 17 41 <Version Minor="7"/> 18 <Files Count="2 0">42 <Files Count="21"> 19 43 <Item1> 20 44 <Filename Value="StopWatch.pas"/> … … 105 129 <UnitName Value="UScaleDPI"/> 106 130 </Item20> 131 <Item21> 132 <Filename Value="UTheme.pas"/> 133 <HasRegisterProc Value="True"/> 134 <UnitName Value="UTheme"/> 135 </Item21> 107 136 </Files> 108 137 <i18n> 109 138 <EnableI18N Value="True"/> 110 139 <OutDir Value="Languages"/> 140 <EnableI18NForLFM Value="True"/> 111 141 </i18n> 112 <Type Value="RunAndDesignTime"/> 113 <RequiredPkgs Count="2"> 142 <RequiredPkgs Count="3"> 114 143 <Item1> 115 <PackageName Value=" TemplateGenerics"/>144 <PackageName Value="LCL"/> 116 145 </Item1> 117 146 <Item2> 147 <PackageName Value="TemplateGenerics"/> 148 </Item2> 149 <Item3> 118 150 <PackageName Value="FCL"/> 119 151 <MinVersion Major="1" Valid="True"/> 120 </Item 2>152 </Item3> 121 153 </RequiredPkgs> 122 154 <UsageOptions> -
trunk/Packages/Common/Common.pas
r10 r15 8 8 9 9 uses 10 StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading, 11 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry, 12 UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort, 13 UPersistentForm, UFindFile, UScaleDPI, LazarusPackageIntf;10 StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading, 11 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry, 12 UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort, 13 UPersistentForm, UFindFile, UScaleDPI, UTheme, LazarusPackageIntf; 14 14 15 15 implementation … … 25 25 RegisterUnit('UFindFile', @UFindFile.Register); 26 26 RegisterUnit('UScaleDPI', @UScaleDPI.Register); 27 RegisterUnit('UTheme', @UTheme.Register); 27 28 end; 28 29 -
trunk/Packages/Common/Languages/UJobProgressView.po
r14 r15 14 14 msgstr "" 15 15 16 #: ujobprogressview.soperations 17 msgid "Operations" 18 msgstr "" 19 16 20 #: ujobprogressview.spleasewait 17 21 msgid "Please wait..." -
trunk/Packages/Common/UApplicationInfo.pas
r10 r15 14 14 TApplicationInfo = class(TComponent) 15 15 private 16 FDescription: string; 16 17 FIdentification: Byte; 17 18 FLicense: string; … … 33 34 constructor Create(AOwner: TComponent); override; 34 35 property Version: string read GetVersion; 36 function GetRegistryContext: TRegistryContext; 35 37 published 36 38 property Identification: Byte read FIdentification write FIdentification; … … 45 47 property EmailContact: string read FEmailContact write FEmailContact; 46 48 property AppName: string read FAppName write FAppName; 49 property Description: string read FDescription write FDescription; 47 50 property ReleaseDate: TDateTime read FReleaseDate write FReleaseDate; 48 51 property RegistryKey: string read FRegistryKey write FRegistryKey; … … 79 82 end; 80 83 84 function TApplicationInfo.GetRegistryContext: TRegistryContext; 85 begin 86 Result := TRegistryContext.Create(RegistryRoot, RegistryKey); 87 end; 88 81 89 end. -
trunk/Packages/Common/UCommon.pas
r10 r15 6 6 7 7 uses 8 {$IFDEF Windows}Windows,{$ENDIF} 8 {$ifdef Windows}Windows,{$endif} 9 {$ifdef Linux}baseunix,{$endif} 9 10 Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf, 10 11 FileUtil; //, ShFolder, ShellAPI; … … 62 63 procedure OpenWebPage(URL: string); 63 64 procedure OpenFileInShell(FileName: string); 64 procedure ExecuteProgram( CommandLine:string);65 procedure ExecuteProgram(Executable: string; Parameters: array of string); 65 66 procedure FreeThenNil(var Obj); 67 function RemoveQuotes(Text: string): string; 68 function ComputerName: string; 69 function OccurenceOfChar(What: Char; Where: string): Integer; 70 function GetDirCount(Dir: string): Integer; 71 function MergeArray(A, B: array of string): TArrayOfString; 72 function LoadFileToStr(const FileName: TFileName): AnsiString; 66 73 67 74 … … 105 112 Path := IncludeTrailingPathDelimiter(APath); 106 113 107 Find := FindFirst( UTF8Decode(Path + AFileSpec), faAnyFile xor faDirectory, SearchRec);114 Find := FindFirst(Path + AFileSpec, faAnyFile xor faDirectory, SearchRec); 108 115 while Find = 0 do begin 109 DeleteFile UTF8(Path + UTF8Encode(SearchRec.Name));116 DeleteFile(Path + SearchRec.Name); 110 117 111 118 Find := SysUtils.FindNext(SearchRec); … … 286 293 L: LongWord; 287 294 begin 288 289 295 L := MAX_USERNAME_LENGTH + 2; 290 296 SetLength(Result, L); … … 301 307 end; 302 308 end; 303 309 {$endif} 310 311 function ComputerName: string; 312 {$ifdef mswindows} 313 const 314 INFO_BUFFER_SIZE = 32767; 315 var 316 Buffer : array[0..INFO_BUFFER_SIZE] of WideChar; 317 Ret : DWORD; 318 begin 319 Ret := INFO_BUFFER_SIZE; 320 If (GetComputerNameW(@Buffer[0],Ret)) then begin 321 Result := UTF8Encode(WideString(Buffer)); 322 end 323 else begin 324 Result := 'ERROR_NO_COMPUTERNAME_RETURNED'; 325 end; 326 end; 327 {$endif} 328 {$ifdef unix} 329 var 330 Name: UtsName; 331 begin 332 fpuname(Name); 333 Result := Name.Nodename; 334 end; 335 {$endif} 336 337 {$ifdef windows} 304 338 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 305 339 const … … 395 429 end; 396 430 397 procedure ExecuteProgram( CommandLine:string);431 procedure ExecuteProgram(Executable: string; Parameters: array of string); 398 432 var 399 433 Process: TProcess; 434 I: Integer; 400 435 begin 401 436 try 402 437 Process := TProcess.Create(nil); 403 Process.CommandLine := CommandLine; 438 Process.Executable := Executable; 439 for I := 0 to Length(Parameters) - 1 do 440 Process.Parameters.Add(Parameters[I]); 404 441 Process.Options := [poNoConsole]; 405 442 Process.Execute; … … 416 453 417 454 procedure OpenWebPage(URL: string); 418 var419 Process: TProcess;420 Browser, Params: string;421 455 begin 422 456 OpenURL(URL); 423 {try 424 Process := TProcess.Create(nil); 425 Browser := ''; 426 //FindDefaultBrowser(Browser, Params); 427 //Process.Executable := Browser; 428 //Process.Parameters.Add(Format(Params, [ApplicationInfo.HomePage]); 429 Process.CommandLine := 'cmd.exe /c start ' + URL; 430 Process.Options := [poNoConsole]; 431 Process.Execute; 457 end; 458 459 procedure OpenFileInShell(FileName: string); 460 begin 461 ExecuteProgram('cmd.exe', ['/c', 'start', FileName]); 462 end; 463 464 function RemoveQuotes(Text: string): string; 465 begin 466 Result := Text; 467 if (Pos('"', Text) = 1) and (Text[Length(Text)] = '"') then 468 Result := Copy(Text, 2, Length(Text) - 2); 469 end; 470 471 function OccurenceOfChar(What: Char; Where: string): Integer; 472 var 473 I: Integer; 474 begin 475 Result := 0; 476 for I := 1 to Length(Where) do 477 if Where[I] = What then Inc(Result); 478 end; 479 480 function GetDirCount(Dir: string): Integer; 481 begin 482 Result := OccurenceOfChar(DirectorySeparator, Dir); 483 if Copy(Dir, Length(Dir), 1) = DirectorySeparator then 484 Dec(Result); 485 end; 486 487 function MergeArray(A, B: array of string): TArrayOfString; 488 var 489 I: Integer; 490 begin 491 SetLength(Result, Length(A) + Length(B)); 492 for I := 0 to Length(A) - 1 do 493 Result[I] := A[I]; 494 for I := 0 to Length(B) - 1 do 495 Result[Length(A) + I] := B[I]; 496 end; 497 498 function LoadFileToStr(const FileName: TFileName): AnsiString; 499 var 500 FileStream: TFileStream; 501 Read: Integer; 502 begin 503 Result := ''; 504 FileStream := TFileStream.Create(FileName, fmOpenRead); 505 try 506 if FileStream.Size > 0 then begin 507 SetLength(Result, FileStream.Size); 508 Read := FileStream.Read(Pointer(Result)^, FileStream.Size); 509 SetLength(Result, Read); 510 end; 432 511 finally 433 Process.Free; 434 end;} 435 end; 436 437 procedure OpenFileInShell(FileName: string); 438 begin 439 ExecuteProgram('cmd.exe /c start "' + FileName + '"'); 440 end; 512 FileStream.Free; 513 end; 514 end; 515 516 441 517 442 518 initialization -
trunk/Packages/Common/UDebugLog.pas
r10 r15 103 103 try 104 104 if ExtractFileDir(FileName) <> '' then 105 ForceDirectories UTF8(ExtractFileDir(FileName));106 if FileExists UTF8(FileName) then LogFile := TFileStream.Create(UTF8Decode(FileName), fmOpenWrite)105 ForceDirectories(ExtractFileDir(FileName)); 106 if FileExists(FileName) then LogFile := TFileStream.Create(UTF8Decode(FileName), fmOpenWrite) 107 107 else LogFile := TFileStream.Create(UTF8Decode(FileName), fmCreate); 108 108 LogFile.Seek(0, soFromEnd); -
trunk/Packages/Common/UFindFile.pas
r10 r15 55 55 end; 56 56 57 const 58 {$IFDEF WINDOWS} 59 FilterAll = '*.*'; 60 {$ENDIF} 61 {$IFDEF LINUX} 62 FilterAll = '*'; 63 {$ENDIF} 64 57 65 procedure Register; 58 66 … … 71 79 inherited Create(AOwner); 72 80 Path := IncludeTrailingBackslash(UTF8Encode(GetCurrentDir)); 73 FileMask := '*.*';81 FileMask := FilterAll; 74 82 FileAttr := [ffaAnyFile]; 75 83 s := TStringList.Create; … … 127 135 If not InSubFolders then Exit; 128 136 129 if SysUtils.FindFirst(UTF8Decode(inPath + '*.*'), faDirectory, Rec) = 0 then137 if SysUtils.FindFirst(UTF8Decode(inPath + FilterAll), faDirectory, Rec) = 0 then 130 138 try 131 139 repeat -
trunk/Packages/Common/UJobProgressView.lfm
r10 r15 14 14 OnDestroy = FormDestroy 15 15 Position = poScreenCenter 16 LCLVersion = '1. 1'16 LCLVersion = '1.6.0.4' 17 17 object PanelOperationsTitle: TPanel 18 18 Left = 0 -
trunk/Packages/Common/UJobProgressView.lrt
r10 r15 1 T JOBPROGRESSVIEW.LABELOPERATION.CAPTION=Operations:2 T JOBPROGRESSVIEW.LABELESTIMATEDTIMEPART.CAPTION=Estimated time:3 T JOBPROGRESSVIEW.LABELESTIMATEDTIMETOTAL.CAPTION=Total estimated time:1 TFORMJOBPROGRESSVIEW.LABELOPERATION.CAPTION=Operations: 2 TFORMJOBPROGRESSVIEW.LABELESTIMATEDTIMEPART.CAPTION=Estimated time: 3 TFORMJOBPROGRESSVIEW.LABELESTIMATEDTIMETOTAL.CAPTION=Total estimated time: -
trunk/Packages/Common/UJobProgressView.pas
r10 r15 166 166 STotalEstimatedTime = 'Total estimated time: %s'; 167 167 SFinished = 'Finished'; 168 SOperations = 'Operations'; 168 169 169 170 procedure Register; -
trunk/Packages/Common/UListViewSort.pas
r10 r15 9 9 uses 10 10 {$IFDEF Windows}Windows, CommCtrl, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils, 11 Controls, DateUtils, Dialogs, SpecializedList, Forms, Grids, StdCtrls, ExtCtrls; 11 Controls, DateUtils, Dialogs, SpecializedList, Forms, Grids, StdCtrls, ExtCtrls, 12 LclIntf, LMessages, LclType, LResources; 12 13 13 14 type … … 18 19 TCompareEvent = function (Item1, Item2: TObject): Integer of object; 19 20 TListFilterEvent = procedure (ListViewSort: TListViewSort) of object; 21 22 { TListViewSort } 20 23 21 24 TListViewSort = class(TComponent) … … 28 31 FColumn: Integer; 29 32 FOrder: TSortOrder; 33 FOldListViewWindowProc: TWndMethod; 34 FOnColumnWidthChanged: TNotifyEvent; 35 procedure DoColumnBeginResize(const AColIndex: Integer); 36 procedure DoColumnResized(const AColIndex: Integer); 37 procedure DoColumnResizing(const AColIndex, AWidth: Integer); 30 38 procedure SetListView(const Value: TListView); 31 39 procedure ColumnClick(Sender: TObject; Column: TListColumn); … … 40 48 procedure SetColumn(const Value: Integer); 41 49 procedure SetOrder(const Value: TSortOrder); 50 {$IFDEF WINDOWS} 51 procedure NewListViewWindowProc(var AMsg: TMessage); 52 {$ENDIF} 42 53 public 43 54 List: TListObject; … … 58 69 property OnCustomDraw: TLVCustomDrawItemEvent read FOnCustomDraw 59 70 write FOnCustomDraw; 71 property OnColumnWidthChanged: TNotifyEvent read FOnColumnWidthChanged 72 write FOnColumnWidthChanged; 60 73 property Column: Integer read FColumn write SetColumn; 61 74 property Order: TSortOrder read FOrder write SetOrder; … … 68 81 FOnChange: TNotifyEvent; 69 82 FStringGrid1: TStringGrid; 70 procedure DoOnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); 83 procedure GridDoOnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); 84 procedure GridDoOnResize(Sender: TObject); 71 85 public 72 86 constructor Create(AOwner: TComponent); override; 73 87 procedure UpdateFromListView(ListView: TListView); 74 88 function TextEntered: Boolean; 89 function TextEnteredCount: Integer; 90 function TextEnteredColumn(Index: Integer): Boolean; 75 91 function GetColValue(Index: Integer): string; 76 92 property StringGrid: TStringGrid read FStringGrid1 write FStringGrid1; … … 79 95 property Align; 80 96 property Anchors; 97 property BorderSpacing; 81 98 end; 82 99 … … 93 110 { TListViewFilter } 94 111 95 procedure TListViewFilter. DoOnKeyUp(Sender: TObject; var Key: Word;112 procedure TListViewFilter.GridDoOnKeyUp(Sender: TObject; var Key: Word; 96 113 Shift: TShiftState); 97 114 begin 98 115 if Assigned(FOnChange) then 99 116 FOnChange(Self); 117 end; 118 119 procedure TListViewFilter.GridDoOnResize(Sender: TObject); 120 begin 121 FStringGrid1.DefaultRowHeight := FStringGrid1.Height; 100 122 end; 101 123 … … 113 135 FStringGrid1.Options := [goFixedHorzLine, goFixedVertLine, goVertLine, 114 136 goHorzLine, goRangeSelect, goEditing, goAlwaysShowEditor, goSmoothScroll]; 115 FStringGrid1.OnKeyUp := DoOnKeyUp; 137 FStringGrid1.OnKeyUp := GridDoOnKeyUp; 138 FStringGrid1.OnResize := GridDoOnResize; 116 139 end; 117 140 … … 119 142 var 120 143 I: Integer; 121 NewColumn: TGridColumn;122 144 begin 123 145 with FStringGrid1 do begin 124 Columns.Clear; 146 Options := Options - [goEditing, goAlwaysShowEditor]; 147 //Columns.Clear; 125 148 while Columns.Count > ListView.Columns.Count do Columns.Delete(Columns.Count - 1); 126 while Columns.Count < ListView.Columns.Count do NewColumn :=Columns.Add;149 while Columns.Count < ListView.Columns.Count do Columns.Add; 127 150 for I := 0 to ListView.Columns.Count - 1 do begin 128 151 Columns[I].Width := ListView.Columns[I].Width; 129 152 end; 153 Options := Options + [goEditing, goAlwaysShowEditor]; 130 154 end; 131 155 end; 132 156 133 157 function TListViewFilter.TextEntered: Boolean; 158 begin 159 Result := TextEnteredCount > 0; 160 end; 161 162 function TListViewFilter.TextEnteredCount: Integer; 134 163 var 135 164 I: Integer; 136 165 begin 137 Result := False;166 Result := 0; 138 167 for I := 0 to FStringGrid1.ColCount - 1 do begin 139 168 if FStringGrid1.Cells[I, 0] <> '' then begin 140 Result := True; 141 Break; 169 Inc(Result); 142 170 end; 143 171 end; 172 end; 173 174 function TListViewFilter.TextEnteredColumn(Index: Integer): Boolean; 175 begin 176 Result := FStringGrid1.Cells[Index, 0] <> ''; 144 177 end; 145 178 … … 153 186 { TListViewSort } 154 187 188 {$IFDEF WINDOWS} 189 procedure TListViewSort.NewListViewWindowProc(var AMsg: TMessage); 190 var 191 vColWidth: Integer; 192 vMsgNotify: TLMNotify absolute AMsg; 193 Code: Integer; 194 begin 195 // call the old WindowProc of ListView 196 FOldListViewWindowProc(AMsg); 197 198 // Currently we care only with WM_NOTIFY message 199 if AMsg.Msg = WM_NOTIFY then 200 begin 201 Code := NMHDR(PHDNotify(vMsgNotify.NMHdr)^.Hdr).Code; 202 case Code of 203 HDN_ENDTRACKA, HDN_ENDTRACKW: 204 DoColumnResized(PHDNotify(vMsgNotify.NMHdr)^.Item); 205 206 HDN_BEGINTRACKA, HDN_BEGINTRACKW: 207 DoColumnBeginResize(PHDNotify(vMsgNotify.NMHdr)^.Item); 208 209 HDN_TRACKA, HDN_TRACKW: 210 begin 211 vColWidth := -1; 212 if (PHDNotify(vMsgNotify.NMHdr)^.PItem<>nil) 213 and (PHDNotify(vMsgNotify.NMHdr)^.PItem^.Mask and HDI_WIDTH <> 0) 214 then 215 vColWidth := PHDNotify(vMsgNotify.NMHdr)^.PItem^.cxy; 216 217 DoColumnResizing(PHDNotify(vMsgNotify.NMHdr)^.Item, vColWidth); 218 end; 219 end; 220 end; 221 end; 222 {$ENDIF} 223 224 procedure TListViewSort.DoColumnBeginResize(const AColIndex: Integer); 225 begin 226 end; 227 228 procedure TListViewSort.DoColumnResizing(const AColIndex, AWidth: Integer); 229 begin 230 end; 231 232 procedure TListViewSort.DoColumnResized(const AColIndex: Integer); 233 begin 234 if Assigned(FOnColumnWidthChanged) then 235 FOnColumnWidthChanged(Self); 236 end; 155 237 156 238 procedure TListViewSort.ColumnClick(Sender: TObject; Column: TListColumn); … … 179 261 procedure TListViewSort.SetListView(const Value: TListView); 180 262 begin 263 if FListView = Value then Exit; 264 if Assigned(FListView) then 265 ListView.WindowProc := FOldListViewWindowProc; 181 266 FListView := Value; 182 267 FListView.OnColumnClick := ColumnClick; 183 268 FListView.OnCustomDrawItem := ListViewCustomDrawItem; 184 269 FListView.OnClick := ListViewClick; 270 FOldListViewWindowProc := FListView.WindowProc; 271 {$IFDEF WINDOWS} 272 FListView.WindowProc := NewListViewWindowProc; 273 {$ENDIF} 185 274 end; 186 275 … … 199 288 if ListView.Items.Count <> List.Count then 200 289 ListView.Items.Count := List.Count; 201 if Assigned(FOnCompareItem) then Sort(FOnCompareItem);290 if Assigned(FOnCompareItem) and (Order <> soNone) then Sort(FOnCompareItem); 202 291 //ListView.Items[-1]; // Workaround for not show first row if selected 203 292 ListView.Refresh; … … 266 355 TP1: TPoint; 267 356 XBias, YBias: Integer; 268 OldColor: TColor; 357 PenColor: TColor; 358 BrushColor: TColor; 269 359 BiasTop, BiasLeft: Integer; 270 360 Rect1: TRect; … … 278 368 Item.Left := 0; 279 369 GetCheckBias(XBias, YBias, BiasTop, BiasLeft, ListView); 280 OldColor := ListView.Canvas.Pen.Color; 370 PenColor := ListView.Canvas.Pen.Color; 371 BrushColor := ListView.Canvas.Brush.Color; 281 372 //TP1 := Item.GetPosition; 282 373 lRect := Item.DisplayRect(drBounds); // Windows 7 workaround … … 321 412 end; 322 413 //ListView.Canvas.Brush.Color := ListView.Color; 323 ListView.Canvas.Brush.Color := clWindow;324 ListView.Canvas.Pen.Color := OldColor;414 ListView.Canvas.Brush.Color := BrushColor; 415 ListView.Canvas.Pen.Color := PenColor; 325 416 end; 326 417 -
trunk/Packages/Common/UMemory.pas
r10 r15 24 24 constructor Create; 25 25 destructor Destroy; override; 26 procedure WriteMemory(Position: Integer; Memory: TMemory); 27 procedure ReadMemory(Position: Integer; Memory: TMemory); 26 28 property Data: PByte read FData; 27 29 property Size: Integer read FSize write SetSize; … … 108 110 end; 109 111 112 procedure TMemory.WriteMemory(Position: Integer; Memory: TMemory); 113 begin 114 Move(Memory.FData, PByte(@FData + Position)^, Memory.Size); 115 end; 116 117 procedure TMemory.ReadMemory(Position: Integer; Memory: TMemory); 118 begin 119 Move(PByte(@FData + Position)^, Memory.FData, Memory.Size); 120 end; 121 110 122 end. 111 123 -
trunk/Packages/Common/UPersistentForm.pas
r10 r15 3 3 {$mode delphi} 4 4 5 // Date: 201 0-06-015 // Date: 2015-04-18 6 6 7 7 interface 8 8 9 9 uses 10 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry ;10 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls; 11 11 12 12 type … … 19 19 FMinVisiblePart: Integer; 20 20 FRegistryContext: TRegistryContext; 21 procedure LoadControl(Control: TControl); 22 procedure SaveControl(Control: TControl); 21 23 public 24 FormNormalSize: TRect; 25 FormRestoredSize: TRect; 26 FormWindowState: TWindowState; 27 Form: TForm; 28 procedure LoadFromRegistry(RegistryContext: TRegistryContext); 29 procedure SaveToRegistry(RegistryContext: TRegistryContext); 22 30 function CheckEntireVisible(Rect: TRect): TRect; 23 31 function CheckPartVisible(Rect: TRect; Part: Integer): TRect; … … 44 52 { TPersistentForm } 45 53 54 procedure TPersistentForm.LoadControl(Control: TControl); 55 var 56 I: Integer; 57 WinControl: TWinControl; 58 Count: Integer; 59 begin 60 if Control is TListView then begin 61 with Form, TRegistryEx.Create do 62 try 63 RootKey := RegistryContext.RootKey; 64 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True); 65 for I := 0 to TListView(Control).Columns.Count - 1 do begin 66 if ValueExists('ColWidth' + IntToStr(I)) then 67 TListView(Control).Columns[I].Width := ReadInteger('ColWidth' + IntToStr(I)); 68 end; 69 finally 70 Free; 71 end; 72 end; 73 74 if Control is TWinControl then begin 75 WinControl := TWinControl(Control); 76 if WinControl.ControlCount > 0 then begin 77 for I := 0 to WinControl.ControlCount - 1 do begin 78 if WinControl.Controls[I] is TControl then begin 79 LoadControl(WinControl.Controls[I]); 80 end; 81 end; 82 end; 83 end; 84 end; 85 86 procedure TPersistentForm.SaveControl(Control: TControl); 87 var 88 I: Integer; 89 WinControl: TWinControl; 90 begin 91 if Control is TListView then begin 92 with Form, TRegistryEx.Create do 93 try 94 RootKey := RegistryContext.RootKey; 95 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True); 96 for I := 0 to TListView(Control).Columns.Count - 1 do begin 97 WriteInteger('ColWidth' + IntToStr(I), TListView(Control).Columns[I].Width); 98 end; 99 finally 100 Free; 101 end; 102 end; 103 104 if Control is TWinControl then begin 105 WinControl := TWinControl(Control); 106 if WinControl.ControlCount > 0 then begin 107 for I := 0 to WinControl.ControlCount - 1 do begin 108 if WinControl.Controls[I] is TControl then begin 109 SaveControl(WinControl.Controls[I]); 110 end; 111 end; 112 end; 113 end; 114 end; 115 116 procedure TPersistentForm.LoadFromRegistry(RegistryContext: TRegistryContext); 117 begin 118 with TRegistryEx.Create do 119 try 120 RootKey := RegistryContext.RootKey; 121 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 122 // Normal size 123 FormNormalSize.Left := ReadIntegerWithDefault('NormalLeft', FormNormalSize.Left); 124 FormNormalSize.Top := ReadIntegerWithDefault('NormalTop', FormNormalSize.Top); 125 FormNormalSize.Right := ReadIntegerWithDefault('NormalWidth', FormNormalSize.Right - FormNormalSize.Left) 126 + FormNormalSize.Left; 127 FormNormalSize.Bottom := ReadIntegerWithDefault('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top) 128 + FormNormalSize.Top; 129 // Restored size 130 FormRestoredSize.Left := ReadIntegerWithDefault('RestoredLeft', FormRestoredSize.Left); 131 FormRestoredSize.Top := ReadIntegerWithDefault('RestoredTop', FormRestoredSize.Top); 132 FormRestoredSize.Right := ReadIntegerWithDefault('RestoredWidth', FormRestoredSize.Right - FormRestoredSize.Left) 133 + FormRestoredSize.Left; 134 FormRestoredSize.Bottom := ReadIntegerWithDefault('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top) 135 + FormRestoredSize.Top; 136 // Other state 137 FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(wsNormal))); 138 finally 139 Free; 140 end; 141 end; 142 143 procedure TPersistentForm.SaveToRegistry(RegistryContext: TRegistryContext); 144 begin 145 with Form, TRegistryEx.Create do 146 try 147 RootKey := RegistryContext.RootKey; 148 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 149 // Normal state 150 WriteInteger('NormalWidth', FormNormalSize.Right - FormNormalSize.Left); 151 WriteInteger('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top); 152 WriteInteger('NormalTop', FormNormalSize.Top); 153 WriteInteger('NormalLeft', FormNormalSize.Left); 154 // Restored state 155 WriteInteger('RestoredWidth', FormRestoredSize.Right - FormRestoredSize.Left); 156 WriteInteger('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top); 157 WriteInteger('RestoredTop', FormRestoredSize.Top); 158 WriteInteger('RestoredLeft', FormRestoredSize.Left); 159 // Other state 160 WriteInteger('WindowState', Integer(FormWindowState)); 161 finally 162 Free; 163 end; 164 end; 165 46 166 function TPersistentForm.CheckEntireVisible(Rect: TRect): TRect; 47 167 var … … 98 218 procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False); 99 219 var 100 Normal: TRect;101 Restored: TRect;102 220 LoadDefaults: Boolean; 103 221 begin 104 with TRegistryEx.Create do 105 try 106 RootKey := RegistryContext.RootKey; 107 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 108 109 //RestoredWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(Form.WindowState))); 110 //if RestoredWindowState = wsMinimized then 111 // RestoredWindowState := wsNormal; 112 //Form.WindowState := RestoredWindowState; 113 LoadDefaults := not ValueExists('NormalLeft'); 114 Normal := Bounds(ReadIntegerWithDefault('NormalLeft', (Screen.Width - Form.Width) div 2), 115 ReadIntegerWithDefault('NormalTop', (Screen.Height - Form.Height) div 2), 116 ReadIntegerWithDefault('NormalWidth', Form.Width), 117 ReadIntegerWithDefault('NormalHeight', Form.Height)); 118 Restored := Bounds(ReadIntegerWithDefault('RestoredLeft', (Screen.Width - Form.Width) div 2), 119 ReadIntegerWithDefault('RestoredTop', (Screen.Height - Form.Height) div 2), 120 ReadIntegerWithDefault('RestoredWidth', Form.Width), 121 ReadIntegerWithDefault('RestoredHeight', Form.Height)); 122 123 if not EqualRect(Normal, Restored) or 124 (LoadDefaults and DefaultMaximized) then begin 125 // Restore to maximized state 126 Form.WindowState := wsNormal; 127 if not EqualRect(Restored, Form.BoundsRect) then 128 Form.BoundsRect := Restored; 129 Form.WindowState := wsMaximized; 130 end else begin 131 // Restore to normal state 132 Form.WindowState := wsNormal; 133 if FEntireVisible then Normal := CheckEntireVisible(Normal) 134 else if FMinVisiblePart > 0 then 135 Normal := CheckPartVisible(Normal, FMinVisiblePart); 136 if not EqualRect(Normal, Form.BoundsRect) then 137 Form.BoundsRect := Normal; 138 end; 139 140 //if ReadBoolWithDefault('Visible', False) then Form.Show; 141 finally 142 Free; 143 end; 222 Self.Form := Form; 223 // Set default 224 FormNormalSize := Bounds((Screen.Width - Form.Width) div 2, 225 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height); 226 FormRestoredSize := Bounds((Screen.Width - Form.Width) div 2, 227 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height); 228 229 LoadFromRegistry(RegistryContext); 230 231 if not EqualRect(FormNormalSize, FormRestoredSize) or 232 (LoadDefaults and DefaultMaximized) then begin 233 // Restore to maximized state 234 Form.WindowState := wsNormal; 235 if not EqualRect(FormRestoredSize, Form.BoundsRect) then 236 Form.BoundsRect := FormRestoredSize; 237 Form.WindowState := wsMaximized; 238 end else begin 239 // Restore to normal state 240 Form.WindowState := wsNormal; 241 if FEntireVisible then FormNormalSize := CheckEntireVisible(FormNormalSize) 242 else if FMinVisiblePart > 0 then 243 FormNormalSize := CheckPartVisible(FormNormalSize, FMinVisiblePart); 244 if not EqualRect(FormNormalSize, Form.BoundsRect) then 245 Form.BoundsRect := FormNormalSize; 246 end; 247 LoadControl(Form); 144 248 end; 145 249 146 250 procedure TPersistentForm.Save(Form: TForm); 147 251 begin 148 with Form, TRegistryEx.Create do 149 try 150 RootKey := RegistryContext.RootKey; 151 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 152 WriteInteger('NormalWidth', Form.Width); 153 WriteInteger('NormalHeight', Form.Height); 154 WriteInteger('NormalTop', Form.Top); 155 WriteInteger('NormalLeft', Form.Left); 156 WriteInteger('RestoredWidth', Form.RestoredWidth); 157 WriteInteger('RestoredHeight', Form.RestoredHeight); 158 WriteInteger('RestoredTop', Form.RestoredTop); 159 WriteInteger('RestoredLeft', Form.RestoredLeft); 160 //WriteInteger('WindowState', Integer(Form.WindowState)); 161 //WriteBool('Visible', Form.Visible); 162 finally 163 Free; 164 end; 252 Self.Form := Form; 253 FormNormalSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 254 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 255 Form.RestoredHeight); 256 FormWindowState := Form.WindowState; 257 SaveToRegistry(RegistryContext); 258 SaveControl(Form); 165 259 end; 166 260 … … 168 262 begin 169 263 inherited; 264 if AOwner is TForm then Form := TForm(AOwner) 265 else Form := nil; 170 266 FMinVisiblePart := 50; 171 267 FRegistryContext.RootKey := HKEY_CURRENT_USER; -
trunk/Packages/Common/URegistry.pas
r10 r15 9 9 10 10 type 11 TRegistryRoot = (rrKeyClassesRoot = HKEY($80000000), 12 rrKeyCurrentUser = HKEY($80000001), 13 rrKeyLocalMachine = HKEY($80000002), 14 rrKeyUsers = HKEY($80000003), 15 rrKeyPerformanceData = HKEY($80000004), 16 rrKeyCurrentConfig = HKEY($80000005), 17 rrKeyDynData = HKEY($80000006)); 11 TRegistryRoot = (rrKeyClassesRoot, rrKeyCurrentUser, rrKeyLocalMachine, 12 rrKeyUsers, rrKeyPerformanceData, rrKeyCurrentConfig, rrKeyDynData); 18 13 19 14 { TRegistryContext } … … 23 18 Key: string; 24 19 class operator Equal(A, B: TRegistryContext): Boolean; 20 function Create(RootKey: TRegistryRoot; Key: string): TRegistryContext; overload; 21 function Create(RootKey: HKEY; Key: string): TRegistryContext; overload; 25 22 end; 26 23 … … 43 40 end; 44 41 45 function RegContext(RootKey: HKEY; Key: string): TRegistryContext; 46 42 const 43 RegistryRootHKEY: array[TRegistryRoot] of HKEY = (HKEY_CLASSES_ROOT, 44 HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_PERFORMANCE_DATA, 45 HKEY_CURRENT_CONFIG, HKEY_DYN_DATA); 47 46 48 47 implementation 49 48 50 function RegContext(RootKey: HKEY; Key: string): TRegistryContext;51 begin52 Result.RootKey := RootKey;53 Result.Key := Key;54 end;55 49 56 50 { TRegistryContext } … … 59 53 begin 60 54 Result := (A.Key = B.Key) and (A.RootKey = B.RootKey); 55 end; 56 57 function TRegistryContext.Create(RootKey: TRegistryRoot; Key: string): TRegistryContext; 58 begin 59 Result.RootKey := RegistryRootHKEY[RootKey]; 60 Result.Key := Key; 61 end; 62 63 function TRegistryContext.Create(RootKey: HKEY; Key: string): TRegistryContext; 64 begin 65 Result.RootKey := RootKey; 66 Result.Key := Key; 61 67 end; 62 68 -
trunk/Packages/Common/UScaleDPI.pas
r10 r15 17 17 TControlDimension = class 18 18 BoundsRect: TRect; 19 AuxSize: TPoint;20 19 FontHeight: Integer; 21 20 Controls: TObjectList; // TList<TControlDimension> 21 // Class specifics 22 ButtonSize: TPoint; // TToolBar 23 CoolBandWidth: Integer; 24 ConstraintsMin: TPoint; // TForm 25 ConstraintsMax: TPoint; // TForm 22 26 constructor Create; 23 27 destructor Destroy; override; … … 74 78 destructor TControlDimension.Destroy; 75 79 begin 76 Controls.Free;80 FreeAndNil(Controls); 77 81 inherited Destroy; 78 82 end; … … 113 117 Dimensions.Controls.Clear; 114 118 if Control is TToolBar then 115 Dimensions.AuxSize := Point(TToolBar(Control).ButtonWidth, TToolBar(Control).ButtonHeight); 116 119 Dimensions.ButtonSize := Point(TToolBar(Control).ButtonWidth, TToolBar(Control).ButtonHeight); 120 if Control is TForm then begin 121 Dimensions.ConstraintsMin := Point(TForm(Control).Constraints.MinWidth, 122 TForm(Control).Constraints.MinHeight); 123 Dimensions.ConstraintsMax := Point(TForm(Control).Constraints.MaxWidth, 124 TForm(Control).Constraints.MaxHeight); 125 end; 117 126 if Control is TWinControl then 118 127 for I := 0 to TWinControl(Control).ControlCount - 1 do begin 119 if TWinControl(Control).Controls[I] is TControl then begin 128 if TWinControl(Control).Controls[I] is TControl then 129 // Do not scale docked forms twice 130 if not (TWinControl(Control).Controls[I] is TForm) then begin 120 131 NewControl := TControlDimension.Create; 121 132 Dimensions.Controls.Add(NewControl); … … 133 144 Control.Font.Height := Dimensions.FontHeight; 134 145 if Control is TToolBar then begin 135 TToolBar(Control).ButtonWidth := Dimensions.AuxSize.X; 136 TToolBar(Control).ButtonHeight := Dimensions.AuxSize.Y; 146 TToolBar(Control).ButtonWidth := Dimensions.ButtonSize.X; 147 TToolBar(Control).ButtonHeight := Dimensions.ButtonSize.Y; 148 end; 149 if Control is TForm then begin 150 TForm(Control).Constraints.MinWidth := Dimensions.ConstraintsMin.X; 151 TForm(Control).Constraints.MinHeight := Dimensions.ConstraintsMin.Y; 152 TForm(Control).Constraints.MaxWidth := Dimensions.ConstraintsMax.X; 153 TForm(Control).Constraints.MaxHeight := Dimensions.ConstraintsMax.Y; 137 154 end; 138 155 if Control is TWinControl then 139 156 for I := 0 to TWinControl(Control).ControlCount - 1 do begin 140 if TWinControl(Control).Controls[I] is TControl then begin 157 if TWinControl(Control).Controls[I] is TControl then 158 // Do not scale docked forms twice 159 if not (TWinControl(Control).Controls[I] is TForm) then begin 141 160 RestoreDimensions(TWinControl(Control).Controls[I], TControlDimension(Dimensions.Controls[I])); 142 161 end; … … 152 171 Control.Font.Height := ScaleY(Dimensions.FontHeight, DesignDPI.Y); 153 172 if Control is TToolBar then begin 154 TToolBar(Control).ButtonWidth := ScaleX(Dimensions.AuxSize.X, DesignDPI.X); 155 TToolBar(Control).ButtonHeight := ScaleY(Dimensions.AuxSize.Y, DesignDPI.Y); 173 TToolBar(Control).ButtonWidth := ScaleX(Dimensions.ButtonSize.X, DesignDPI.X); 174 TToolBar(Control).ButtonHeight := ScaleY(Dimensions.ButtonSize.Y, DesignDPI.Y); 175 end; 176 if Control is TCoolBar then begin 177 with TCoolBar(Control) do 178 for I := 0 to Bands.Count - 1 do 179 with TCoolBand(Bands[I]) do begin 180 MinWidth := ScaleX(Dimensions.ButtonSize.X, DesignDPI.X); 181 MinHeight := ScaleY(Dimensions.ButtonSize.Y, DesignDPI.Y); 182 //Width := ScaleX(Dimensions.BoundsRect.Left - 183 end; 184 end; 185 if Control is TForm then begin 186 TForm(Control).Constraints.MinWidth := ScaleX(Dimensions.ConstraintsMin.X, DesignDPI.X); 187 TForm(Control).Constraints.MaxWidth := ScaleX(Dimensions.ConstraintsMax.X, DesignDPI.X); 188 TForm(Control).Constraints.MinHeight := ScaleY(Dimensions.ConstraintsMin.Y, DesignDPI.Y); 189 TForm(Control).Constraints.MaxHeight := ScaleY(Dimensions.ConstraintsMax.Y, DesignDPI.Y); 156 190 end; 157 191 if Control is TWinControl then 158 192 for I := 0 to TWinControl(Control).ControlCount - 1 do begin 159 if TWinControl(Control).Controls[I] is TControl then begin 193 if TWinControl(Control).Controls[I] is TControl then 194 // Do not scale docked forms twice 195 if not (TWinControl(Control).Controls[I] is TForm) then begin 160 196 ScaleDimensions(TWinControl(Control).Controls[I], TControlDimension(Dimensions.Controls[I])); 161 197 end; … … 183 219 184 220 SetLength(Temp, ImgList.Count); 185 TempBmp := TBitmap.Create;186 221 for I := 0 to ImgList.Count - 1 do 187 222 begin 223 TempBmp := TBitmap.Create; 224 TempBmp.PixelFormat := pf32bit; 188 225 ImgList.GetBitmap(I, TempBmp); 189 //TempBmp.PixelFormat := pfDevice;190 226 Temp[I] := TBitmap.Create; 191 227 Temp[I].SetSize(NewWidth, NewHeight); 228 Temp[I].PixelFormat := pf32bit; 192 229 Temp[I].TransparentColor := TempBmp.TransparentColor; 193 230 //Temp[I].TransparentMode := TempBmp.TransparentMode; … … 199 236 if (Temp[I].Width = 0) or (Temp[I].Height = 0) then Continue; 200 237 Temp[I].Canvas.StretchDraw(Rect(0, 0, Temp[I].Width, Temp[I].Height), TempBmp); 201 end;202 TempBmp.Free;238 TempBmp.Free; 239 end; 203 240 204 241 ImgList.Clear; … … 272 309 end; 273 310 274 311 if Control is TCoolBar then 312 with TCoolBar(Control) do begin 313 BeginUpdate; 314 for I := 0 to Bands.Count - 1 do 315 with Bands[I] do begin 316 MinWidth := ScaleX(MinWidth, FromDPI.X); 317 MinHeight := ScaleY(MinHeight, FromDPI.Y); 318 Width := ScaleX(Width, FromDPI.X); 319 //Control.Invalidate; 320 end; 321 EndUpdate; 322 end; 275 323 276 324 if Control is TToolBar then begin -
trunk/Packages/Common/UXMLUtils.pas
r10 r15 12 12 function DateTimeToXMLTime(Value: TDateTime; ApplyLocalBias: Boolean = True): WideString; 13 13 procedure WriteInteger(Node: TDOMNode; Name: string; Value: Integer); 14 procedure WriteInt64(Node: TDOMNode; Name: string; Value: Int64); 14 15 procedure WriteBoolean(Node: TDOMNode; Name: string; Value: Boolean); 15 16 procedure WriteString(Node: TDOMNode; Name: string; Value: string); 17 procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime); 16 18 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 19 function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64; 17 20 function ReadBoolean(Node: TDOMNode; Name: string; DefaultValue: Boolean): Boolean; 18 21 function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string; 22 function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime; 19 23 20 24 … … 72 76 Minute: Integer; 73 77 Second: Integer; 78 SecondFraction: Double; 74 79 Millisecond: Integer; 75 80 begin … … 94 99 if Pos('Z', XMLDateTime) > 0 then 95 100 LeftCutString(XMLDateTime, Part, 'Z'); 96 Millisecond := StrToInt(Part); 101 SecondFraction := StrToFloat('0' + DecimalSeparator + Part); 102 Millisecond := Trunc(SecondFraction * 1000); 97 103 end else begin 98 104 if Pos('+', XMLDateTime) > 0 then … … 138 144 end; 139 145 146 procedure WriteInt64(Node: TDOMNode; Name: string; Value: Int64); 147 var 148 NewNode: TDOMNode; 149 begin 150 NewNode := Node.OwnerDocument.CreateElement(Name); 151 NewNode.TextContent := IntToStr(Value); 152 Node.AppendChild(NewNode); 153 end; 154 140 155 procedure WriteBoolean(Node: TDOMNode; Name: string; Value: Boolean); 141 156 var … … 156 171 end; 157 172 173 procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime); 174 var 175 NewNode: TDOMNode; 176 begin 177 NewNode := Node.OwnerDocument.CreateElement(Name); 178 NewNode.TextContent := DateTimeToXMLTime(Value); 179 Node.AppendChild(NewNode); 180 end; 181 158 182 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 159 183 var … … 166 190 end; 167 191 192 function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64; 193 var 194 NewNode: TDOMNode; 195 begin 196 Result := DefaultValue; 197 NewNode := Node.FindNode(Name); 198 if Assigned(NewNode) then 199 Result := StrToInt64(NewNode.TextContent); 200 end; 201 168 202 function ReadBoolean(Node: TDOMNode; Name: string; DefaultValue: Boolean): Boolean; 169 203 var … … 186 220 end; 187 221 222 function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime 223 ): TDateTime; 224 var 225 NewNode: TDOMNode; 226 begin 227 Result := DefaultValue; 228 NewNode := Node.FindNode(Name); 229 if Assigned(NewNode) then 230 Result := XMLTimeToDateTime(NewNode.TextContent); 231 end; 232 188 233 end. 189 234 -
trunk/Packages/CoolTranslator/UCoolTranslator.pas
r10 r15 6 6 7 7 uses 8 Classes, SysUtils, Forms, ExtCtrls, Controls, Contnrs, 8 Classes, SysUtils, Forms, ExtCtrls, Controls, Contnrs, LazFileUtils, LazUTF8, 9 9 Translations, TypInfo, Dialogs, FileUtil, LCLProc, ULanguages, LCLType; 10 10 … … 46 46 procedure TranslateProperty(Component: TPersistent; PropInfo: PPropInfo); 47 47 function IsExcluded(Component: TPersistent; PropertyName: string): Boolean; 48 function GetLangFileDir: string; 48 49 public 49 50 ComponentExcludes: TComponentExcludesList; … … 150 151 I: Integer; 151 152 LocaleShort: string; 153 SearchMask: string; 152 154 begin 153 155 FPOFiles.Clear; … … 157 159 //ShowMessage(ExtractFileDir(Application.ExeName) + 158 160 // DirectorySeparator + 'Languages' + ' ' + '*.' + LocaleShort + '.po'); 159 FileList := FindAllFiles(ExtractFileDir(UTF8Encode(Application.ExeName)) + 160 DirectorySeparator + FPOFilesFolder, '*.' + LocaleShort + '.po'); 161 SearchMask := '*'; 162 if LocaleShort <> '' then SearchMask := SearchMask + '.' + LocaleShort; 163 SearchMask := SearchMask + '.po'; 164 FileList := FindAllFiles(GetLangFileDir, SearchMask); 161 165 for I := 0 to FileList.Count - 1 do begin 162 166 FileName := FileList[I]; 163 167 //FileName := FindLocaleFileName('.po'); 164 if FileExistsUTF8(FileName) then FPOFiles.Add(TPOFile.Create(FileName)); 168 if FileExists(FileName) and ( 169 ((LocaleShort = '') and (Pos('.', FileName) = Pos('.po', FileName))) or 170 (LocaleShort <> '')) then FPOFiles.Add(TPOFile.Create(FileName)); 165 171 end; 166 172 finally … … 174 180 FPoFilesFolder := AValue; 175 181 ReloadFiles; 182 CheckLanguageFiles; 176 183 end; 177 184 … … 284 291 end; 285 292 293 function TCoolTranslator.GetLangFileDir: string; 294 begin 295 Result := FPOFilesFolder; 296 if Copy(Result, 1, 1) <> DirectorySeparator then 297 Result := ExtractFileDir(UTF8Encode(Application.ExeName)) + 298 DirectorySeparator + Result; 299 end; 300 286 301 procedure TCoolTranslator.LanguageListToStrings(Strings: TStrings); 287 302 var … … 316 331 I: Integer; 317 332 begin 333 Result := ''; 318 334 if Text <> '' then begin 319 335 for I := 0 to FPoFiles.Count - 1 do begin … … 342 358 var 343 359 I: Integer; 344 begin 360 LangDir: string; 361 begin 362 LangDir := GetLangFileDir; 345 363 TLanguage(Languages[0]).Available := True; // Automatic 346 364 347 365 for I := 1 to Languages.Count - 1 do 348 366 with TLanguage(Languages[I]) do begin 349 Available := FileExists UTF8(POFilesFolder + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) +367 Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 350 368 '.' + Code + ExtensionSeparator + 'po') or (Code = 'en'); 351 369 end; … … 382 400 begin 383 401 // Win32 user may decide to override locale with LANG variable. 384 Lang := GetEnvironmentVariable UTF8('LANG');402 Lang := GetEnvironmentVariable('LANG'); 385 403 386 404 // Use user selected language … … 390 408 if Lang = '' then begin 391 409 for i := 1 to Paramcount - 1 do 392 if (ParamStr UTF8(i) = '--LANG') or (ParamStrUTF8(i) = '-l') or393 (ParamStr UTF8(i) = '--lang') then394 Lang := ParamStr UTF8(i + 1);410 if (ParamStr(i) = '--LANG') or (ParamStr(i) = '-l') or 411 (ParamStr(i) = '--lang') then 412 Lang := ParamStr(i + 1); 395 413 end; 396 414 if Lang = '' then 397 L CLGetLanguageIDs(Lang, T);415 LazGetLanguageIDs(Lang, T); 398 416 399 417 if Assigned(Language) and (Language.Code = '') and Assigned(FOnAutomaticLanguage) then begin 400 418 Lang := FOnAutomaticLanguage(Lang); 401 419 end; 402 403 if Lang = 'en' then Lang := ''; // English files are without en code404 420 405 421 Result := Lang; … … 423 439 Exit; 424 440 425 Result := ChangeFileExt(ParamStr UTF8(0), LCExt);441 Result := ChangeFileExt(ParamStr(0), LCExt); 426 442 if FileExistsUTF8(Result) then 427 443 Exit; -
trunk/Packages/CoolWeb/WebServer/UHTTPSessionFile.pas
r12 r15 51 51 begin 52 52 Result := BinToHexString(SHA1(FloatToStr(Now))); 53 while FileExists UTF8(Directory + DirectorySeparator + Result) do53 while FileExists(Directory + DirectorySeparator + Result) do 54 54 Result := BinToHexString(SHA1(FloatToStr(Now))); 55 55 end; … … 75 75 Lock.Acquire; 76 76 SessionFile := Directory + DirectorySeparator + HandlerData.SessionId; 77 if FileExists UTF8(SessionFile) then77 if FileExists(SessionFile) then 78 78 HandlerData.Session.LoadFromFile(SessionFile) 79 79 else HandlerData.SessionId := GetNewSessionId; … … 92 92 SessionFile := Directory + DirectorySeparator + HandlerData.SessionId; 93 93 ForceDirectories(Directory); 94 if DirectoryExists UTF8(Directory) then begin94 if DirectoryExists(Directory) then begin 95 95 DeleteFile(SessionFile); 96 96 HandlerData.Session.SaveToFile(SessionFile) -
trunk/UDataTypes.pas
r14 r15 6 6 7 7 uses 8 Classes, SysUtils, UDatabase, Contnrs,USqlDatabase;8 Classes, SysUtils, UDatabase, USqlDatabase; 9 9 10 10 type -
trunk/UDatabase.pas
r14 r15 68 68 property DataType: TDataType read FDataType write SetDataType; 69 69 constructor Create; 70 destructor Destroy; override; 70 71 end; 71 72 … … 484 485 begin 485 486 TypeRelated := TFieldString.Create; 487 end; 488 489 destructor TField.Destroy; 490 begin 491 DataType := nil; 492 inherited Destroy; 486 493 end; 487 494 … … 521 528 var 522 529 DbRows: TDbRows; 523 I: Integer;524 F: Integer;525 NewRecord: TRecord;526 NewValue: TValue;527 530 begin 528 531 Records.Clear; … … 581 584 destructor TDatabase.Destroy; 582 585 begin 586 Engine := nil; 583 587 Tables.Free; 584 588 inherited Destroy;
Note:
See TracChangeset
for help on using the changeset viewer.