Changeset 15


Ignore:
Timestamp:
Mar 22, 2018, 8:31:19 PM (6 years ago)
Author:
chronos
Message:
  • Modified: Update Common and CollTranslator packages to fix build under Lazarus 1.8.
  • Fixed: Some memory leaks.
Location:
trunk
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • trunk/DbEngines/UEngineMySQL.pas

    r14 r15  
    6969var
    7070  DbRows: TDbRows;
    71   DbRows2: TDbRows;
    7271  NewTable: TTable;
    7372  I: Integer;
  • trunk/DbEngines/UEngineXML.pas

    r13 r15  
    7777  while Assigned(Node2) and (Node2.NodeName = 'Value') and (I < Row.Values.Count) do begin
    7878    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));
    8181      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));
    8484    end;
    8585    Node2 := Node2.NextSibling;
     
    9797    Node.AppendChild(NewNode);
    9898    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));
    104104    end;
    105105  end;
     
    244244  NewNode: TDOMNode;
    245245begin
    246   ReadXMLFile(Doc, UTF8Decode(FileName));
     246  ReadXMLFile(Doc, FileName);
    247247  with Doc do try
    248248    if Doc.DocumentElement.NodeName <> 'MyData' then
     
    275275      SaveNodeTables(Database.Tables, NewNode);
    276276    end;
    277     ForceDirectoriesUTF8(ExtractFileDir(FileName));
    278     WriteXMLFile(Doc, UTF8Decode(FileName));
     277    ForceDirectories(ExtractFileDir(FileName));
     278    WriteXMLFile(Doc, FileName);
    279279  finally
    280280    Doc.Free;
  • trunk/Forms/UFormDatabases.pas

    r11 r15  
    5555
    5656uses
    57   UCore, UFormTables, UFormConnect;
     57  UCore, UFormConnect;
    5858
    5959{ TFormDatabases }
  • trunk/Forms/UFormField.lfm

    r8 r15  
    1010  OnShow = FormShow
    1111  Position = poMainFormCenter
    12   LCLVersion = '1.5'
     12  LCLVersion = '1.8.0.4'
    1313  object EditName: TEdit
    1414    Left = 168
    15     Height = 35
     15    Height = 36
    1616    Top = 11
    1717    Width = 264
     
    2020  object Label1: TLabel
    2121    Left = 17
    22     Height = 25
     22    Height = 26
    2323    Top = 21
    24     Width = 62
     24    Width = 56
    2525    Caption = 'Name:'
    2626    ParentColor = False
     
    3838  object EditTextBefore: TEdit
    3939    Left = 167
    40     Height = 35
     40    Height = 36
    4141    Top = 88
    4242    Width = 265
     
    4545  object Label2: TLabel
    4646    Left = 16
    47     Height = 25
     47    Height = 26
    4848    Top = 98
    49     Width = 110
     49    Width = 101
    5050    Caption = 'Text before:'
    5151    ParentColor = False
     
    5353  object EditTextAfter: TEdit
    5454    Left = 167
    55     Height = 35
     55    Height = 36
    5656    Top = 136
    5757    Width = 265
     
    6060  object Label3: TLabel
    6161    Left = 16
    62     Height = 25
     62    Height = 26
    6363    Top = 144
    64     Width = 93
     64    Width = 86
    6565    Caption = 'Text after:'
    6666    ParentColor = False
     
    6868  object Label4: TLabel
    6969    Left = 17
    70     Height = 25
     70    Height = 26
    7171    Top = 56
    72     Width = 94
     72    Width = 87
    7373    Caption = 'Data type:'
    7474    ParentColor = False
     
    7676  object ComboBoxType: TComboBox
    7777    Left = 167
    78     Height = 37
     78    Height = 40
    7979    Top = 48
    8080    Width = 265
     
    9999    Top = 184
    100100    Width = 936
    101     ActivePage = TabSheetFloat
     101    ActivePage = TabSheetBoolean
    102102    Anchors = [akTop, akLeft, akRight, akBottom]
    103103    ShowTabs = False
    104     TabIndex = 4
     104    TabIndex = 3
    105105    TabOrder = 6
    106106    object TabSheetString: TTabSheet
    107       Caption = 'TabSheetString'
    108107      ClientHeight = 194
    109108      ClientWidth = 930
    110109      object EditStringDefault: TEdit
    111110        Left = 160
    112         Height = 35
     111        Height = 36
    113112        Top = 8
    114113        Width = 265
     
    117116      object Label5: TLabel
    118117        Left = 16
    119         Height = 25
     118        Height = 26
    120119        Top = 8
    121         Width = 127
     120        Width = 117
    122121        Caption = 'Default value:'
    123122        ParentColor = False
     
    125124    end
    126125    object TabSheetInteger: TTabSheet
    127       Caption = 'TabSheetInteger'
    128126      ClientHeight = 194
    129127      ClientWidth = 930
    130128      object Label10: TLabel
    131129        Left = 12
    132         Height = 25
     130        Height = 26
    133131        Top = 21
    134         Width = 96
     132        Width = 87
    135133        Caption = 'Minimum:'
    136134        ParentColor = False
     
    138136      object SpinEditMin: TSpinEdit
    139137        Left = 153
    140         Height = 35
     138        Height = 36
    141139        Top = 19
    142140        Width = 255
     
    146144      object SpinEditMax: TSpinEdit
    147145        Left = 153
    148         Height = 35
     146        Height = 36
    149147        Top = 56
    150148        Width = 255
     
    153151      object Label11: TLabel
    154152        Left = 12
    155         Height = 25
     153        Height = 26
    156154        Top = 58
    157         Width = 100
     155        Width = 91
    158156        Caption = 'Maximum:'
    159157        ParentColor = False
     
    161159    end
    162160    object TabSheetDateTime: TTabSheet
    163       Caption = 'TabSheetDateTime'
    164161      ClientHeight = 194
    165162      ClientWidth = 930
    166163      object DateEditMin: TDateEdit
    167164        Left = 136
    168         Height = 35
     165        Height = 36
    169166        Top = 24
    170167        Width = 216
    171168        CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
    172         OKCaption = 'OK'
    173         CancelCaption = 'Cancel'
    174169        DateOrder = doNone
    175170        ButtonWidth = 23
     
    180175      object Label6: TLabel
    181176        Left = 16
    182         Height = 25
     177        Height = 26
    183178        Top = 32
    184         Width = 96
     179        Width = 87
    185180        Caption = 'Minimum:'
    186181        ParentColor = False
     
    188183      object DateEditMax: TDateEdit
    189184        Left = 136
    190         Height = 35
     185        Height = 36
    191186        Top = 72
    192187        Width = 216
    193188        CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
    194         OKCaption = 'OK'
    195         CancelCaption = 'Cancel'
    196189        DateOrder = doNone
    197190        ButtonWidth = 23
     
    202195      object Label7: TLabel
    203196        Left = 16
    204         Height = 25
     197        Height = 26
    205198        Top = 80
    206         Width = 100
     199        Width = 91
    207200        Caption = 'Maximum:'
    208201        ParentColor = False
     
    210203    end
    211204    object TabSheetBoolean: TTabSheet
    212       Caption = 'TabSheetBoolean'
    213205    end
    214206    object TabSheetFloat: TTabSheet
    215       Caption = 'TabSheetFloat'
    216207      ClientHeight = 194
    217208      ClientWidth = 930
    218209      object FloatSpinEditMin: TFloatSpinEdit
    219210        Left = 144
    220         Height = 35
     211        Height = 36
    221212        Top = 16
    222213        Width = 266
     
    229220      object Label8: TLabel
    230221        Left = 8
    231         Height = 25
     222        Height = 26
    232223        Top = 25
    233         Width = 96
     224        Width = 87
    234225        Caption = 'Minimum:'
    235226        ParentColor = False
     
    237228      object FloatSpinEditMax: TFloatSpinEdit
    238229        Left = 144
    239         Height = 35
     230        Height = 36
    240231        Top = 64
    241232        Width = 266
     
    248239      object Label9: TLabel
    249240        Left = 8
    250         Height = 25
     241        Height = 26
    251242        Top = 73
    252         Width = 100
     243        Width = 91
    253244        Caption = 'Maximum:'
    254245        ParentColor = False
  • trunk/Forms/UFormField.pas

    r14 r15  
    6060
    6161uses
    62   UDataTypes, UCore;
     62  UDataTypes;
    6363
    6464{$R *.lfm}
  • trunk/Forms/UFormFields.lfm

    r11 r15  
    99  OnShow = FormShow
    1010  Position = poMainFormCenter
    11   LCLVersion = '1.5'
     11  LCLVersion = '1.8.0.4'
    1212  object ToolBar1: TToolBar
    1313    Left = 0
     
    122122    object MenuItem1: TMenuItem
    123123      Action = AAdd
    124       Bitmap.Data = {
    125         36100000424D3610000000000000360000002800000020000000200000000100
    126         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    127         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    128         FF00DBDBDBFF949494FF707070FF707070FF707070FF707070FF707070FF7070
    129         70FF707070FF707070FF707070FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF
    130         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    131         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    132         FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    133         04FF005104FF005104FF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    134         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    135         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    136         FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    137         7FFF76D07FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    138         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    139         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    140         FF00005104FF76D07FFF09A514FF089F12FF069710FF06920EFF06920EFF0694
    141         0FFF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    142         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    143         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    144         FF00005104FF76D07FFF09A514FF089F12FF079910FF06940FFF06920EFF0692
    145         0EFF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    146         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    147         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    148         FF00005104FF76D07FFF09A514FF09A514FF089F12FF079910FF06940FFF0692
    149         0EFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    150         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    151         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    152         FF00005104FF76D07FFF09A715FF09A514FF09A514FF089F12FF079910FF0694
    153         0FFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    154         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    155         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    156         FF00005104FF76D07FFF09A715FF09A514FF09A514FF09A514FF089F12FF0799
    157         10FF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    158         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    159         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    160         FF00005104FF76D07FFF09A715FF09A715FF09A514FF09A514FF09A514FF089F
    161         12FF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    162         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F3F3F3FFDBDB
    163         DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF
    164         CFFF005104FF76D07FFF09A715FF09A715FF09A715FF09A514FF09A514FF09A5
    165         14FF089F12FF76D07FFF005104FF646464FFABABABFFCFCFCFFFCFCFCFFFCFCF
    166         CFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFDBDBDBFFDBDBDBFF9494
    167         94FF707070FF707070FF707070FF707070FF707070FF707070FF707070FF7070
    168         70FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A5
    169         14FF09A514FF76D07FFF005104FF4C4C4CFF646464FF707070FF707070FF7070
    170         70FF707070FF707070FF707070FF707070FF707070FF949494FF005104FF0051
    171         04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    172         04FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    173         15FF09A514FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051
    174         04FF005104FF005104FF005104FF005104FF005104FF707070FF005104FF76D0
    175         7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    176         7FFF76D07FFF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    177         15FF09A715FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    178         7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF707070FF005104FF76D0
    179         7FFF74CD7BFF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A7
    180         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    181         15FF09A715FF09A514FF09A514FF09A514FF089F12FF079910FF06940FFF0692
    182         0EFF06920EFF06940FFF069710FF76D07FFF005104FF707070FF005104FF76D0
    183         7FFF79CF7FFF74CD7BFF6FCC76FF6ACA72FF6ACA72FF50C159FF25B130FF09A7
    184         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    185         15FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF079910FF0694
    186         0FFF06940FFF06920EFF06940FFF76D07FFF005104FF707070FF005104FF76D0
    187         7FFF7ED184FF79CF7FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF5AC462FF32B5
    188         3CFF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    189         15FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF0799
    190         10FF069710FF06940FFF06920EFF76D07FFF005104FF707070FF005104FF76D0
    191         7FFF84D38AFF7ED184FF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8
    192         6DFF41BB4AFF25B130FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    193         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F
    194         12FF089F12FF069710FF06940FFF76D07FFF005104FF707070FF005104FF76D0
    195         7FFF84D38AFF84D38AFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA
    196         72FF6ACA72FF50C159FF32B53CFF09A715FF09A715FF09A715FF09A715FF09A7
    197         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5
    198         14FF089F12FF089F12FF069710FF76D07FFF005104FF707070FF005104FF76D0
    199         7FFF8CD692FF84D38AFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC
    200         76FF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A715FF09A7
    201         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5
    202         14FF09A514FF089F12FF089F12FF76D07FFF005104FF707070FF005104FF76D0
    203         7FFF90D795FF8CD692FF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD
    204         7BFF74CD7BFF6FCC76FF6ACA72FF66C86DFF66C86DFF41BB4AFF25B130FF09A7
    205         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    206         15FF09A514FF09A514FF089F12FF76D07FFF005104FF707070FF005104FF76D0
    207         7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    208         7FFF76D07FFF76D07FFF6FCC76FF6ACA72FF6ACA72FF66C86DFF66C86DFF41BB
    209         4AFF25B130FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    210         7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF949494FF005104FF0051
    211         04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    212         04FF005104FF76D07FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF66C86DFF66C8
    213         6DFF5AC462FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051
    214         04FF005104FF005104FF005104FF005104FF005104FFDBDBDBFFFFFFFF00FFFF
    215         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    216         FF00005104FF76D07FFF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8
    217         6DFF66C86DFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    218         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    219         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    220         FF00005104FF76D07FFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA
    221         72FF6ACA72FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    222         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    223         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    224         FF00005104FF76D07FFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC
    225         76FF6FCC76FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    226         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    227         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    228         FF00005104FF76D07FFF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD
    229         7BFF74CD7BFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    230         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    231         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    232         FF00005104FF76D07FFF8CD692FF8CD692FF84D38AFF84D38AFF7ED184FF79CF
    233         7FFF79CF7FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    234         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    235         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    236         FF00005104FF76D07FFF90D795FF8CD692FF8CD692FF84D38AFF84D38AFF7ED1
    237         84FF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    238         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    239         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    240         FF00005104FF76D07FFF9BDBA0FF90D795FF90D795FF8CD692FF84D38AFF84D3
    241         8AFF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    242         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    243         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    244         FF00005104FF76D07FFF9BDBA0FF9BDBA0FF90D795FF90D795FF8CD692FF8CD6
    245         92FF84D38AFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    246         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    247         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    248         FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    249         7FFF76D07FFF76D07FFF005104FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF
    250         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    251         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    252         FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    253         04FF005104FF005104FF005104FFDBDBDBFFF3F3F3FFFFFFFF00FFFFFF00FFFF
    254         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    255       }
    256124    end
    257125    object MenuItem2: TMenuItem
    258126      Action = AModify
    259127      Default = True
    260       Bitmap.Data = {
    261         36100000424D3610000000000000360000002800000020000000200000000100
    262         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    263         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    264         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    265         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    266         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    267         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    268         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    269         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    270         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    271         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    272         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    273         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    274         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    275         FF00BABABAFFCFCFCFFFF6F6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    276         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    277         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    278         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    279         FF00BABABAFF415D77FF4D697FFFC0C7CCFFFFFFFF00FFFFFF00FFFFFF00FFFF
    280         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    281         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    282         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    283         FF00D8D8D8FF415D77FF597EAEFF5492E5FF69AAEDFFA3CEF5FFFFFFFF00FFFF
    284         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    285         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    286         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    287         FF00F6F6F6FF8EAAC2FF9BC1F3FFA8CAF6FF649CE8FF5492E5FF5094E6FF69AA
    288         EDFFC8E0F8FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    289         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    290         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    291         FF00FFFFFF00ECF5FDFF81B0EEFFC8E0F8FFBDD8FAFF81B0EEFF5492E5FF5492
    292         E5FF5094E6FF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    293         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    294         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    295         FF00FFFFFF00FFFFFF00649CE8FFBDD8FAFFD6E8FEFFC8E0F8FF9BC1F3FF5094
    296         E6FF209BEDFF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    297         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    298         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    299         FF00FFFFFF00FFFFFF007CB3EEFF9BC1F3FFD6E8FEFFD6E8FEFFC8E0F8FF71C9
    300         FAFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF
    301         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    302         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    303         FF00FFFFFF00FFFFFF00A3CEF5FF77A9ECFFC8E0F8FFD6E8FEFFBFE4FEFF5BD5
    304         FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF
    305         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    306         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    307         FF00FFFFFF00FFFFFF00E0EFFCFF5492E5FFBDD8FAFFC8E0F8FFA9E6FFFF79E1
    308         FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF
    309         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    310         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    311         FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF6DBCF4FF98DBFCFF9CE4FFFF94E4
    312         FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF
    313         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    314         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    315         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4
    316         FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007D
    317         E7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    318         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    319         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7
    320         FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489
    321         EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    322         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    323         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9
    324         F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149C
    325         F1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    326         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    327         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B
    328         EDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1
    329         F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    330         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    331         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    332         FF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5
    333         FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF
    334         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    335         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    336         FF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5
    337         FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF
    338         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    339         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    340         FF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1
    341         FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF
    342         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    343         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    344         FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4
    345         FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF
    346         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    347         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    348         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4
    349         FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF611CDDFF5400
    350         D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    351         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    352         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7
    353         FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF8163F0FF7547E9FF611C
    354         DDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    355         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    356         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9
    357         F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF9185F9FF8A75F5FF8163F0FF7547
    358         E9FF611CDDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    359         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    360         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B
    361         EDFF55B9F4FF87D7FBFF9CE4FFFF9998FFFF9691FDFF9185F9FF8A75F5FF8163
    362         F0FF7547E9FF611CDDFFD4BFF4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    363         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    364         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    365         FF00209BEDFF55B9F4FF948CFBFF9998FFFF9998FFFF9691FDFF9185F9FF8A75
    366         F5FF8163F0FF7547E9FFD7C6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    367         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    368         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    369         FF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691FDFF9185
    370         F9FF8A75F5FF8163F0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    371         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    372         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    373         FF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691
    374         FDFF9185F9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    375         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    376         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    377         FF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998
    378         FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    379         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    380         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    381         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFFFFFF
    382         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    383         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    384         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    385         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    386         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    387         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    388         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    389         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    390         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    391       }
    392128    end
    393129    object MenuItem3: TMenuItem
    394130      Action = ARemove
    395       Bitmap.Data = {
    396         36100000424D3610000000000000360000002800000020000000200000000100
    397         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    398         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    399         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    400         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    401         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    402         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    403         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    404         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    405         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    406         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    407         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    408         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    409         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    410         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    411         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    412         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    413         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    414         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    415         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    416         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    417         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    418         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    419         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    420         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    421         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    422         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    423         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    424         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    425         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    426         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    427         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    428         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    429         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    430         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    431         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    432         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    433         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    434         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    435         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    436         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    437         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    438         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    439         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    440         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    441         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00463C
    442         8BFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    443         6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    444         6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    445         6AFF342C6AFF342C6AFF342C6AFF342C6AFF463C8BFFFFFFFF00FFFFFF003C34
    446         77FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    447         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    448         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    449         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF3C3477FFFFFFFF00FFFFFF00433B
    450         84FF5D51C1FF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    451         ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    452         ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    453         ABFF2716ABFF2716ABFF2716ABFF5D51C1FF433B84FFFFFFFF00FFFFFF004B42
    454         92FF6052CCFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    455         BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    456         BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    457         BAFF2A18BAFF2A18BAFF2A18BAFF6052CCFF4B4292FFFFFFFF00FFFFFF00544A
    458         A0FF6455D6FF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    459         CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    460         CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    461         CBFF3623CBFF3623CBFF3623CBFF6455D6FF544AA0FFFFFFFF00FFFFFF005D51
    462         AFFF6C5DE3FF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    463         DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    464         DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    465         DEFF503EDEFF503EDEFF4937DCFF6C5DE3FF5D51AFFFFFFFFF00FFFFFF006357
    466         B8FF7364EAFF6251E7FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    467         E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    468         E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    469         E8FF6757E8FF6757E8FF5C4AE6FF7364EAFF6357B8FFFFFFFF00FFFFFF006357
    470         B8FF7869EAFF7364EAFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    471         EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    472         EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    473         EBFF7D6FEBFF7869EAFF6757E8FF7869EAFF6357B8FFFFFFFF00FFFFFF006357
    474         B8FF7D6FEBFF8174ECFF8D81EEFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    475         EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    476         EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    477         EFFF9387EFFF8D81EEFF7869EAFF7869EAFF6357B8FFFFFFFF00FFFFFF006E62
    478         C3FF7A6CE3FF897EE6FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    479         E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    480         E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    481         E7FF9186E7FF897EE6FF867AE6FF7A6CE3FF6E62C3FFFFFFFF00FFFFFF007468
    482         CEFF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    483         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    484         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    485         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF7468CEFFFFFFFF00FFFFFF00FFFF
    486         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    487         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    488         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    489         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    490         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    491         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    492         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    493         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    494         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    495         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    496         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    497         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    498         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    499         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    500         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    501         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    502         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    503         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    504         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    505         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    506         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    507         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    508         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    509         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    510         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    511         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    512         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    513         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    514         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    515         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    516         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    517         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    518         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    519         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    520         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    521         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    522         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    523         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    524         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    525         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    526       }
    527131    end
    528132  end
  • trunk/Forms/UFormFields.pas

    r14 r15  
    66
    77uses
    8   Classes, SysUtils, XMLConf, FileUtil, Forms, Controls, Graphics, Dialogs,
     8  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
    99  ActnList, ComCtrls, Menus, UDatabase;
    1010
     
    5555
    5656uses
    57   UFormField, UDataTypes;
     57  UFormField;
    5858
    5959{$R *.lfm}
  • trunk/Forms/UFormMain.lfm

    r14 r15  
    55  Width = 1250
    66  Caption = 'MyData'
    7   ClientHeight = 820
     7  ClientHeight = 815
    88  ClientWidth = 1250
    99  Menu = MainMenu1
     
    1111  OnClose = FormClose
    1212  OnShow = FormShow
    13   LCLVersion = '1.5'
     13  LCLVersion = '1.8.0.4'
    1414  WindowState = wsMaximized
    1515  object StatusBar1: TStatusBar
    1616    Left = 0
    17     Height = 29
    18     Top = 791
     17    Height = 30
     18    Top = 785
    1919    Width = 1250
    2020    Panels = <>
  • trunk/Forms/UFormMain.pas

    r9 r15  
    4141
    4242uses
    43   UFormDatabases, UCore, UFormTables;
     43  UCore, UFormTables;
    4444
    4545{ TFormMain }
  • trunk/Forms/UFormRecords.lfm

    r13 r15  
    99  OnShow = FormShow
    1010  Position = poMainFormCenter
    11   LCLVersion = '1.5'
     11  LCLVersion = '1.8.0.4'
    1212  object ListView1: TListView
    1313    Left = 4
     
    9090    object MenuItem1: TMenuItem
    9191      Action = AAdd
    92       Bitmap.Data = {
    93         36100000424D3610000000000000360000002800000020000000200000000100
    94         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    95         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    96         FF00DBDBDBFF949494FF707070FF707070FF707070FF707070FF707070FF7070
    97         70FF707070FF707070FF707070FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF
    98         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    99         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    100         FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    101         04FF005104FF005104FF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    102         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    103         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    104         FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    105         7FFF76D07FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    106         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    107         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    108         FF00005104FF76D07FFF09A514FF089F12FF069710FF06920EFF06920EFF0694
    109         0FFF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    110         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    111         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    112         FF00005104FF76D07FFF09A514FF089F12FF079910FF06940FFF06920EFF0692
    113         0EFF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    114         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    115         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    116         FF00005104FF76D07FFF09A514FF09A514FF089F12FF079910FF06940FFF0692
    117         0EFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    118         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    119         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    120         FF00005104FF76D07FFF09A715FF09A514FF09A514FF089F12FF079910FF0694
    121         0FFF06920EFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    122         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    123         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    124         FF00005104FF76D07FFF09A715FF09A514FF09A514FF09A514FF089F12FF0799
    125         10FF06940FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    126         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    127         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    128         FF00005104FF76D07FFF09A715FF09A715FF09A514FF09A514FF09A514FF089F
    129         12FF079910FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    130         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00F3F3F3FFDBDB
    131         DBFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCF
    132         CFFF005104FF76D07FFF09A715FF09A715FF09A715FF09A514FF09A514FF09A5
    133         14FF089F12FF76D07FFF005104FF646464FFABABABFFCFCFCFFFCFCFCFFFCFCF
    134         CFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFCFCFCFFFDBDBDBFFDBDBDBFF9494
    135         94FF707070FF707070FF707070FF707070FF707070FF707070FF707070FF7070
    136         70FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A5
    137         14FF09A514FF76D07FFF005104FF4C4C4CFF646464FF707070FF707070FF7070
    138         70FF707070FF707070FF707070FF707070FF707070FF949494FF005104FF0051
    139         04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    140         04FF005104FF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    141         15FF09A514FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051
    142         04FF005104FF005104FF005104FF005104FF005104FF707070FF005104FF76D0
    143         7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    144         7FFF76D07FFF76D07FFF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    145         15FF09A715FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    146         7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF707070FF005104FF76D0
    147         7FFF74CD7BFF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A7
    148         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    149         15FF09A715FF09A514FF09A514FF09A514FF089F12FF079910FF06940FFF0692
    150         0EFF06920EFF06940FFF069710FF76D07FFF005104FF707070FF005104FF76D0
    151         7FFF79CF7FFF74CD7BFF6FCC76FF6ACA72FF6ACA72FF50C159FF25B130FF09A7
    152         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    153         15FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF079910FF0694
    154         0FFF06940FFF06920EFF06940FFF76D07FFF005104FF707070FF005104FF76D0
    155         7FFF7ED184FF79CF7FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF5AC462FF32B5
    156         3CFF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    157         15FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F12FF0799
    158         10FF069710FF06940FFF06920EFF76D07FFF005104FF707070FF005104FF76D0
    159         7FFF84D38AFF7ED184FF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8
    160         6DFF41BB4AFF25B130FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    161         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A514FF089F
    162         12FF089F12FF069710FF06940FFF76D07FFF005104FF707070FF005104FF76D0
    163         7FFF84D38AFF84D38AFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA
    164         72FF6ACA72FF50C159FF32B53CFF09A715FF09A715FF09A715FF09A715FF09A7
    165         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5
    166         14FF089F12FF089F12FF069710FF76D07FFF005104FF707070FF005104FF76D0
    167         7FFF8CD692FF84D38AFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC
    168         76FF6FCC76FF6ACA72FF66C86DFF4ABE52FF25B130FF09A715FF09A715FF09A7
    169         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A514FF09A5
    170         14FF09A514FF089F12FF089F12FF76D07FFF005104FF707070FF005104FF76D0
    171         7FFF90D795FF8CD692FF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD
    172         7BFF74CD7BFF6FCC76FF6ACA72FF66C86DFF66C86DFF41BB4AFF25B130FF09A7
    173         15FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A715FF09A7
    174         15FF09A514FF09A514FF089F12FF76D07FFF005104FF707070FF005104FF76D0
    175         7FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    176         7FFF76D07FFF76D07FFF6FCC76FF6ACA72FF6ACA72FF66C86DFF66C86DFF41BB
    177         4AFF25B130FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    178         7FFF76D07FFF76D07FFF76D07FFF76D07FFF005104FF949494FF005104FF0051
    179         04FF005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    180         04FF005104FF76D07FFF74CD7BFF6FCC76FF6FCC76FF6ACA72FF66C86DFF66C8
    181         6DFF5AC462FF76D07FFF005104FF005104FF005104FF005104FF005104FF0051
    182         04FF005104FF005104FF005104FF005104FF005104FFDBDBDBFFFFFFFF00FFFF
    183         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    184         FF00005104FF76D07FFF79CF7FFF74CD7BFF74CD7BFF6FCC76FF6ACA72FF66C8
    185         6DFF66C86DFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    186         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    187         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    188         FF00005104FF76D07FFF7ED184FF79CF7FFF79CF7FFF74CD7BFF6FCC76FF6ACA
    189         72FF6ACA72FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    190         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    191         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    192         FF00005104FF76D07FFF84D38AFF7ED184FF7ED184FF79CF7FFF74CD7BFF6FCC
    193         76FF6FCC76FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    194         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    195         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    196         FF00005104FF76D07FFF84D38AFF84D38AFF84D38AFF7ED184FF79CF7FFF74CD
    197         7BFF74CD7BFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    198         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    199         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    200         FF00005104FF76D07FFF8CD692FF8CD692FF84D38AFF84D38AFF7ED184FF79CF
    201         7FFF79CF7FFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    202         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    203         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    204         FF00005104FF76D07FFF90D795FF8CD692FF8CD692FF84D38AFF84D38AFF7ED1
    205         84FF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    206         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    207         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    208         FF00005104FF76D07FFF9BDBA0FF90D795FF90D795FF8CD692FF84D38AFF84D3
    209         8AFF7ED184FF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    210         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    211         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    212         FF00005104FF76D07FFF9BDBA0FF9BDBA0FF90D795FF90D795FF8CD692FF8CD6
    213         92FF84D38AFF76D07FFF005104FF707070FFCFCFCFFFFFFFFF00FFFFFF00FFFF
    214         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    215         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    216         FF00005104FF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D07FFF76D0
    217         7FFF76D07FFF76D07FFF005104FF949494FFDBDBDBFFFFFFFF00FFFFFF00FFFF
    218         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    219         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    220         FF00005104FF005104FF005104FF005104FF005104FF005104FF005104FF0051
    221         04FF005104FF005104FF005104FFDBDBDBFFF3F3F3FFFFFFFF00FFFFFF00FFFF
    222         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    223       }
    22492    end
    22593    object MenuItem2: TMenuItem
    22694      Action = AModify
    22795      Default = True
    228       Bitmap.Data = {
    229         36100000424D3610000000000000360000002800000020000000200000000100
    230         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    231         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    232         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    233         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    234         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    235         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    236         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    237         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    238         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    239         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    240         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    241         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    242         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    243         FF00BABABAFFCFCFCFFFF6F6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    244         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    245         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    246         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    247         FF00BABABAFF415D77FF4D697FFFC0C7CCFFFFFFFF00FFFFFF00FFFFFF00FFFF
    248         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    249         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    250         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    251         FF00D8D8D8FF415D77FF597EAEFF5492E5FF69AAEDFFA3CEF5FFFFFFFF00FFFF
    252         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    253         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    254         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    255         FF00F6F6F6FF8EAAC2FF9BC1F3FFA8CAF6FF649CE8FF5492E5FF5094E6FF69AA
    256         EDFFC8E0F8FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    257         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    258         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    259         FF00FFFFFF00ECF5FDFF81B0EEFFC8E0F8FFBDD8FAFF81B0EEFF5492E5FF5492
    260         E5FF5094E6FF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    261         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    262         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    263         FF00FFFFFF00FFFFFF00649CE8FFBDD8FAFFD6E8FEFFC8E0F8FF9BC1F3FF5094
    264         E6FF209BEDFF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    265         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    266         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    267         FF00FFFFFF00FFFFFF007CB3EEFF9BC1F3FFD6E8FEFFD6E8FEFFC8E0F8FF71C9
    268         FAFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF
    269         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    270         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    271         FF00FFFFFF00FFFFFF00A3CEF5FF77A9ECFFC8E0F8FFD6E8FEFFBFE4FEFF5BD5
    272         FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF
    273         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    274         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    275         FF00FFFFFF00FFFFFF00E0EFFCFF5492E5FFBDD8FAFFC8E0F8FFA9E6FFFF79E1
    276         FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF
    277         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    278         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    279         FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF6DBCF4FF98DBFCFF9CE4FFFF94E4
    280         FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF
    281         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    282         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    283         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4
    284         FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007D
    285         E7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    286         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    287         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7
    288         FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489
    289         EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    290         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    291         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9
    292         F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149C
    293         F1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    294         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    295         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B
    296         EDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1
    297         F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    298         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    299         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    300         FF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5
    301         FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFFFF00FFFF
    302         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    303         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    304         FF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5
    305         FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFFFF00FFFF
    306         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    307         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    308         FF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4FFFF79E1
    309         FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFFFF00FFFF
    310         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    311         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    312         FF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4FFFF94E4
    313         FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF0489EBFF007DE7FFFFFF
    314         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    315         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    316         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7FBFF9CE4
    317         FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF2CB1F7FF149CF1FF611CDDFF5400
    318         D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    319         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    320         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9F4FF87D7
    321         FBFF9CE4FFFF94E4FFFF79E1FFFF5BD5FFFF45C5FCFF8163F0FF7547E9FF611C
    322         DDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    323         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    324         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209BEDFF55B9
    325         F4FF87D7FBFF9CE4FFFF94E4FFFF79E1FFFF9185F9FF8A75F5FF8163F0FF7547
    326         E9FF611CDDFF5400D5FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    327         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    328         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00209B
    329         EDFF55B9F4FF87D7FBFF9CE4FFFF9998FFFF9691FDFF9185F9FF8A75F5FF8163
    330         F0FF7547E9FF611CDDFFD4BFF4FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    331         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    332         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    333         FF00209BEDFF55B9F4FF948CFBFF9998FFFF9998FFFF9691FDFF9185F9FF8A75
    334         F5FF8163F0FF7547E9FFD7C6F6FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    335         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    336         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    337         FF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691FDFF9185
    338         F9FF8A75F5FF8163F0FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    339         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    340         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    341         FF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998FFFF9691
    342         FDFF9185F9FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    343         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    344         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    345         FF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFF9998FFFF9998
    346         FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    347         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    348         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    349         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007950EBFF8A75F5FF948CFBFFFFFF
    350         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    351         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    352         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    353         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    354         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    355         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    356         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    357         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    358         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    359       }
    36096    end
    36197    object MenuItem3: TMenuItem
    36298      Action = ARemove
    363       Bitmap.Data = {
    364         36100000424D3610000000000000360000002800000020000000200000000100
    365         2000000000000010000064000000640000000000000000000000FFFFFF00FFFF
    366         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    367         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    368         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    369         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    370         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    371         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    372         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    373         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    374         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    375         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    376         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    377         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    378         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    379         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    380         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    381         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    382         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    383         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    384         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    385         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    386         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    387         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    388         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    389         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    390         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    391         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    392         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    393         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    394         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    395         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    396         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    397         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    398         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    399         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    400         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    401         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    402         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    403         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    404         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    405         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    406         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    407         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    408         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    409         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00463C
    410         8BFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    411         6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    412         6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C6AFF342C
    413         6AFF342C6AFF342C6AFF342C6AFF342C6AFF463C8BFFFFFFFF00FFFFFF003C34
    414         77FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    415         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    416         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4F
    417         B7FF5B4FB7FF5B4FB7FF5B4FB7FF5B4FB7FF3C3477FFFFFFFF00FFFFFF00433B
    418         84FF5D51C1FF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    419         ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    420         ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716ABFF2716
    421         ABFF2716ABFF2716ABFF2716ABFF5D51C1FF433B84FFFFFFFF00FFFFFF004B42
    422         92FF6052CCFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    423         BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    424         BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18BAFF2A18
    425         BAFF2A18BAFF2A18BAFF2A18BAFF6052CCFF4B4292FFFFFFFF00FFFFFF00544A
    426         A0FF6455D6FF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    427         CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    428         CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623CBFF3623
    429         CBFF3623CBFF3623CBFF3623CBFF6455D6FF544AA0FFFFFFFF00FFFFFF005D51
    430         AFFF6C5DE3FF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    431         DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    432         DEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503EDEFF503E
    433         DEFF503EDEFF503EDEFF4937DCFF6C5DE3FF5D51AFFFFFFFFF00FFFFFF006357
    434         B8FF7364EAFF6251E7FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    435         E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    436         E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757E8FF6757
    437         E8FF6757E8FF6757E8FF5C4AE6FF7364EAFF6357B8FFFFFFFF00FFFFFF006357
    438         B8FF7869EAFF7364EAFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    439         EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    440         EBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6FEBFF7D6F
    441         EBFF7D6FEBFF7869EAFF6757E8FF7869EAFF6357B8FFFFFFFF00FFFFFF006357
    442         B8FF7D6FEBFF8174ECFF8D81EEFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    443         EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    444         EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387EFFF9387
    445         EFFF9387EFFF8D81EEFF7869EAFF7869EAFF6357B8FFFFFFFF00FFFFFF006E62
    446         C3FF7A6CE3FF897EE6FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    447         E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    448         E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186E7FF9186
    449         E7FF9186E7FF897EE6FF867AE6FF7A6CE3FF6E62C3FFFFFFFF00FFFFFF007468
    450         CEFF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    451         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    452         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF6E62
    453         C3FF6E62C3FF6E62C3FF6E62C3FF6E62C3FF7468CEFFFFFFFF00FFFFFF00FFFF
    454         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    455         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    456         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    457         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    458         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    459         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    460         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    461         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    462         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    463         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    464         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    465         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    466         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    467         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    468         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    469         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    470         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    471         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    472         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    473         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    474         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    475         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    476         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    477         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    478         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    479         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    480         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    481         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    482         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    483         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    484         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    485         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    486         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    487         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    488         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    489         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    490         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    491         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    492         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    493         FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    494       }
    49599    end
    496100  end
  • trunk/Forms/UFormRecords.pas

    r13 r15  
    145145var
    146146  I: Integer;
    147   NewColumn: TListColumn;
    148147begin
    149148  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;
    151155  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;
    155158  end;
     159  ListView1.Columns.EndUpdate;
    156160
    157161  ListView1.Items.Count := Table.Records.Count;
  • trunk/Forms/UFormTables.pas

    r13 r15  
    6060
    6161uses
    62   UCore, UFormTable, UFormRecords, UFormFields;
     62  UFormTable, UFormRecords, UFormFields;
    6363
    6464{$R *.lfm}
  • trunk/Languages/MyData.cs.po

    r14 r15  
    7878msgstr "Pole"
    7979
    80 #: tformfield.dateeditmax.cancelcaption
    81 msgctxt "tformfield.dateeditmax.cancelcaption"
    82 msgid "Cancel"
    83 msgstr "Zrušit"
    84 
    85 #: tformfield.dateeditmax.okcaption
    86 msgctxt "tformfield.dateeditmax.okcaption"
    87 msgid "OK"
    88 msgstr "OK"
    89 
    90 #: tformfield.dateeditmin.cancelcaption
    91 msgctxt "tformfield.dateeditmin.cancelcaption"
    92 msgid "Cancel"
    93 msgstr "Zrušit"
    94 
    95 #: tformfield.dateeditmin.okcaption
    96 msgctxt "tformfield.dateeditmin.okcaption"
    97 msgid "OK"
    98 msgstr "OK"
    99 
    10080#: tformfield.label1.caption
    10181msgid "Name:"
     
    148128msgstr "Maximum:"
    149129
    150 #: tformfield.tabsheetboolean.caption
    151 msgid "TabSheetBoolean"
    152 msgstr ""
    153 
    154 #: tformfield.tabsheetdatetime.caption
    155 msgid "TabSheetDateTime"
    156 msgstr ""
    157 
    158 #: tformfield.tabsheetfloat.caption
    159 msgid "TabSheetFloat"
    160 msgstr ""
    161 
    162 #: tformfield.tabsheetinteger.caption
    163 msgid "TabSheetInteger"
    164 msgstr ""
    165 
    166 #: tformfield.tabsheetstring.caption
    167 msgid "TabSheetString"
    168 msgstr ""
    169 
    170130#: tformfields.aadd.caption
    171131msgctxt "tformfields.aadd.caption"
     
    227187msgstr "Databáze"
    228188
    229 #: tformmain.menuitem5.caption
    230 msgid "-"
    231 msgstr "-"
    232 
    233189#: tformmain.menuitempreferences.caption
    234190msgid "Tools"
  • trunk/Languages/MyData.po

    r14 r15  
    6969msgstr ""
    7070
    71 #: tformfield.dateeditmax.cancelcaption
    72 msgctxt "TFORMFIELD.DATEEDITMAX.CANCELCAPTION"
    73 msgid "Cancel"
    74 msgstr ""
    75 
    76 #: tformfield.dateeditmax.okcaption
    77 msgctxt "TFORMFIELD.DATEEDITMAX.OKCAPTION"
    78 msgid "OK"
    79 msgstr ""
    80 
    81 #: tformfield.dateeditmin.cancelcaption
    82 msgctxt "TFORMFIELD.DATEEDITMIN.CANCELCAPTION"
    83 msgid "Cancel"
    84 msgstr ""
    85 
    86 #: tformfield.dateeditmin.okcaption
    87 msgctxt "tformfield.dateeditmin.okcaption"
    88 msgid "OK"
    89 msgstr ""
    90 
    9171#: tformfield.label1.caption
    9272msgid "Name:"
     
    139119msgstr ""
    140120
    141 #: tformfield.tabsheetboolean.caption
    142 msgid "TabSheetBoolean"
    143 msgstr ""
    144 
    145 #: tformfield.tabsheetdatetime.caption
    146 msgid "TabSheetDateTime"
    147 msgstr ""
    148 
    149 #: tformfield.tabsheetfloat.caption
    150 msgid "TabSheetFloat"
    151 msgstr ""
    152 
    153 #: tformfield.tabsheetinteger.caption
    154 msgid "TabSheetInteger"
    155 msgstr ""
    156 
    157 #: tformfield.tabsheetstring.caption
    158 msgid "TabSheetString"
    159 msgstr ""
    160 
    161121#: tformfields.aadd.caption
    162122msgctxt "TFORMFIELDS.AADD.CAPTION"
     
    218178msgstr ""
    219179
    220 #: tformmain.menuitem5.caption
    221 msgid "-"
    222 msgstr ""
    223 
    224180#: tformmain.menuitempreferences.caption
    225181msgid "Tools"
  • trunk/MyData.lpi

    r14 r15  
    22<CONFIG>
    33  <ProjectOptions>
    4     <Version Value="9"/>
     4    <Version Value="10"/>
    55    <General>
    66      <SessionStorage Value="InProjectDir"/>
     
    99      <ResourceType Value="res"/>
    1010      <UseXPManifest Value="True"/>
     11      <XPManifest>
     12        <DpiAware Value="True"/>
     13      </XPManifest>
    1114      <Icon Value="0"/>
    1215    </General>
     
    1518      <OutDir Value="Languages"/>
    1619    </i18n>
    17     <VersionInfo>
    18       <StringTable ProductVersion=""/>
    19     </VersionInfo>
    2020    <BuildModes Count="2">
    2121      <Item1 Name="Debug" Default="True"/>
     
    2929            <IncludeFiles Value="$(ProjOutDir)"/>
    3030            <OtherUnitFiles Value="Forms"/>
    31             <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
     31            <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/>
    3232          </SearchPaths>
    3333          <Parsing>
     
    4444              <OptimizationLevel Value="3"/>
    4545            </Optimizations>
    46             <SmallerCode Value="True"/>
    4746          </CodeGeneration>
    4847          <Linking>
     
    5756            </Options>
    5857          </Linking>
     58          <Other>
     59            <CompilerMessages>
     60              <IgnoredMessages idx5024="True"/>
     61            </CompilerMessages>
     62          </Other>
    5963        </CompilerOptions>
    6064      </Item2>
     
    212216      <IncludeFiles Value="$(ProjOutDir)"/>
    213217      <OtherUnitFiles Value="Forms;DbEngines;/usr/lib/mysql/;/usr/lib64/mysql/"/>
    214       <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
     218      <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(BuildMode)"/>
    215219    </SearchPaths>
    216220    <Parsing>
     
    243247    </Linking>
    244248    <Other>
     249      <CompilerMessages>
     250        <IgnoredMessages idx5024="True"/>
     251      </CompilerMessages>
    245252      <CustomOptions Value="-dDEBUG"/>
    246253    </Other>
  • trunk/MyData.lpr

    r13 r15  
    88  {$ENDIF}{$ENDIF}
    99  Interfaces, // this includes the LCL widgetset
    10   Forms, UFormTables, UDatabase, UCore, Common, CoolTranslator, UEngineXML,
    11   UFormTable, UFormRecords, UFormRecord, UFormFields, UFormField, UDataTypes,
    12   TemplateGenerics, CoolWeb, synapse, UEngineMySQL, UEngineSQLite, UFormMain,
     10  Forms, UFormTables, UCore, Common, CoolTranslator,
     11  UFormTable, UFormRecords, UFormRecord, UFormFields, UFormField,
     12  TemplateGenerics, CoolWeb, synapse, UFormMain, SysUtils,
    1313  UFormConnect, UFormDatabases, UFormPreferences;
    1414
    1515{$R *.res}
    1616
     17{$IFDEF DEBUG}
     18const
     19  HeapTraceLog = 'heaptrclog.trc';
     20{$ENDIF}
     21
    1722begin
     23  {$IFDEF DEBUG}
     24  // Heap trace
     25  DeleteFile(ExtractFilePath(ParamStr(0)) + HeapTraceLog);
     26  SetHeapTraceOutput(ExtractFilePath(ParamStr(0)) + HeapTraceLog);
     27  {$ENDIF}
     28
    1829  RequireDerivedFormResource := True;
    1930  Application.Initialize;
  • trunk/Packages/Common/Common.lpk

    r10 r15  
    44    <PathDelim Value="\"/>
    55    <Name Value="Common"/>
     6    <Type Value="RunAndDesignTime"/>
    67    <AddToProjectUsesSection Value="True"/>
    78    <Author Value="Chronos (robie@centrum.cz)"/>
     
    1011      <PathDelim Value="\"/>
    1112      <SearchPaths>
    12         <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
     13        <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/>
    1314      </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>
    1438    </CompilerOptions>
    1539    <Description Value="Various libraries"/>
    1640    <License Value="GNU/GPL"/>
    1741    <Version Minor="7"/>
    18     <Files Count="20">
     42    <Files Count="21">
    1943      <Item1>
    2044        <Filename Value="StopWatch.pas"/>
     
    105129        <UnitName Value="UScaleDPI"/>
    106130      </Item20>
     131      <Item21>
     132        <Filename Value="UTheme.pas"/>
     133        <HasRegisterProc Value="True"/>
     134        <UnitName Value="UTheme"/>
     135      </Item21>
    107136    </Files>
    108137    <i18n>
    109138      <EnableI18N Value="True"/>
    110139      <OutDir Value="Languages"/>
     140      <EnableI18NForLFM Value="True"/>
    111141    </i18n>
    112     <Type Value="RunAndDesignTime"/>
    113     <RequiredPkgs Count="2">
     142    <RequiredPkgs Count="3">
    114143      <Item1>
    115         <PackageName Value="TemplateGenerics"/>
     144        <PackageName Value="LCL"/>
    116145      </Item1>
    117146      <Item2>
     147        <PackageName Value="TemplateGenerics"/>
     148      </Item2>
     149      <Item3>
    118150        <PackageName Value="FCL"/>
    119151        <MinVersion Major="1" Valid="True"/>
    120       </Item2>
     152      </Item3>
    121153    </RequiredPkgs>
    122154    <UsageOptions>
  • trunk/Packages/Common/Common.pas

    r10 r15  
    88
    99uses
    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;
    1414
    1515implementation
     
    2525  RegisterUnit('UFindFile', @UFindFile.Register);
    2626  RegisterUnit('UScaleDPI', @UScaleDPI.Register);
     27  RegisterUnit('UTheme', @UTheme.Register);
    2728end;
    2829
  • trunk/Packages/Common/Languages/UJobProgressView.po

    r14 r15  
    1414msgstr ""
    1515
     16#: ujobprogressview.soperations
     17msgid "Operations"
     18msgstr ""
     19
    1620#: ujobprogressview.spleasewait
    1721msgid "Please wait..."
  • trunk/Packages/Common/UApplicationInfo.pas

    r10 r15  
    1414  TApplicationInfo = class(TComponent)
    1515  private
     16    FDescription: string;
    1617    FIdentification: Byte;
    1718    FLicense: string;
     
    3334    constructor Create(AOwner: TComponent); override;
    3435    property Version: string read GetVersion;
     36    function GetRegistryContext: TRegistryContext;
    3537  published
    3638    property Identification: Byte read FIdentification write FIdentification;
     
    4547    property EmailContact: string read FEmailContact write FEmailContact;
    4648    property AppName: string read FAppName write FAppName;
     49    property Description: string read FDescription write FDescription;
    4750    property ReleaseDate: TDateTime read FReleaseDate write FReleaseDate;
    4851    property RegistryKey: string read FRegistryKey write FRegistryKey;
     
    7982end;
    8083
     84function TApplicationInfo.GetRegistryContext: TRegistryContext;
     85begin
     86  Result := TRegistryContext.Create(RegistryRoot, RegistryKey);
     87end;
     88
    8189end.
  • trunk/Packages/Common/UCommon.pas

    r10 r15  
    66
    77uses
    8   {$IFDEF Windows}Windows,{$ENDIF}
     8  {$ifdef Windows}Windows,{$endif}
     9  {$ifdef Linux}baseunix,{$endif}
    910  Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf,
    1011  FileUtil; //, ShFolder, ShellAPI;
     
    6263procedure OpenWebPage(URL: string);
    6364procedure OpenFileInShell(FileName: string);
    64 procedure ExecuteProgram(CommandLine: string);
     65procedure ExecuteProgram(Executable: string; Parameters: array of string);
    6566procedure FreeThenNil(var Obj);
     67function RemoveQuotes(Text: string): string;
     68function ComputerName: string;
     69function OccurenceOfChar(What: Char; Where: string): Integer;
     70function GetDirCount(Dir: string): Integer;
     71function MergeArray(A, B: array of string): TArrayOfString;
     72function LoadFileToStr(const FileName: TFileName): AnsiString;
    6673
    6774
     
    105112  Path := IncludeTrailingPathDelimiter(APath);
    106113
    107   Find := FindFirst(UTF8Decode(Path + AFileSpec), faAnyFile xor faDirectory, SearchRec);
     114  Find := FindFirst(Path + AFileSpec, faAnyFile xor faDirectory, SearchRec);
    108115  while Find = 0 do begin
    109     DeleteFileUTF8(Path + UTF8Encode(SearchRec.Name));
     116    DeleteFile(Path + SearchRec.Name);
    110117
    111118    Find := SysUtils.FindNext(SearchRec);
     
    286293  L: LongWord;
    287294begin
    288 
    289295  L := MAX_USERNAME_LENGTH + 2;
    290296  SetLength(Result, L);
     
    301307  end;
    302308end;
    303 
     309{$endif}
     310
     311function ComputerName: string;
     312{$ifdef mswindows}
     313const
     314 INFO_BUFFER_SIZE = 32767;
     315var
     316  Buffer : array[0..INFO_BUFFER_SIZE] of WideChar;
     317  Ret : DWORD;
     318begin
     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;
     326end;
     327{$endif}
     328{$ifdef unix}
     329var
     330  Name: UtsName;
     331begin
     332  fpuname(Name);
     333  Result := Name.Nodename;
     334end;
     335{$endif}
     336
     337{$ifdef windows}
    304338function LoggedOnUserNameEx(Format: TUserNameFormat): string;
    305339const
     
    395429end;
    396430
    397 procedure ExecuteProgram(CommandLine: string);
     431procedure ExecuteProgram(Executable: string; Parameters: array of string);
    398432var
    399433  Process: TProcess;
     434  I: Integer;
    400435begin
    401436  try
    402437    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]);
    404441    Process.Options := [poNoConsole];
    405442    Process.Execute;
     
    416453
    417454procedure OpenWebPage(URL: string);
    418 var
    419   Process: TProcess;
    420   Browser, Params: string;
    421455begin
    422456  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;
     457end;
     458
     459procedure OpenFileInShell(FileName: string);
     460begin
     461  ExecuteProgram('cmd.exe', ['/c', 'start', FileName]);
     462end;
     463
     464function RemoveQuotes(Text: string): string;
     465begin
     466  Result := Text;
     467  if (Pos('"', Text) = 1) and (Text[Length(Text)] = '"') then
     468    Result := Copy(Text, 2, Length(Text) - 2);
     469end;
     470
     471function OccurenceOfChar(What: Char; Where: string): Integer;
     472var
     473  I: Integer;
     474begin
     475  Result := 0;
     476  for I := 1 to Length(Where) do
     477    if Where[I] = What then Inc(Result);
     478end;
     479
     480function GetDirCount(Dir: string): Integer;
     481begin
     482  Result := OccurenceOfChar(DirectorySeparator, Dir);
     483  if Copy(Dir, Length(Dir), 1) = DirectorySeparator then
     484    Dec(Result);
     485end;
     486
     487function MergeArray(A, B: array of string): TArrayOfString;
     488var
     489  I: Integer;
     490begin
     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];
     496end;
     497
     498function LoadFileToStr(const FileName: TFileName): AnsiString;
     499var
     500  FileStream: TFileStream;
     501  Read: Integer;
     502begin
     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;
    432511  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;
     514end;
     515
     516
    441517
    442518initialization
  • trunk/Packages/Common/UDebugLog.pas

    r10 r15  
    103103  try
    104104    if ExtractFileDir(FileName) <> '' then
    105       ForceDirectoriesUTF8(ExtractFileDir(FileName));
    106     if FileExistsUTF8(FileName) then LogFile := TFileStream.Create(UTF8Decode(FileName), fmOpenWrite)
     105      ForceDirectories(ExtractFileDir(FileName));
     106    if FileExists(FileName) then LogFile := TFileStream.Create(UTF8Decode(FileName), fmOpenWrite)
    107107      else LogFile := TFileStream.Create(UTF8Decode(FileName), fmCreate);
    108108    LogFile.Seek(0, soFromEnd);
  • trunk/Packages/Common/UFindFile.pas

    r10 r15  
    5555  end;
    5656
     57const
     58{$IFDEF WINDOWS}
     59  FilterAll = '*.*';
     60{$ENDIF}
     61{$IFDEF LINUX}
     62  FilterAll = '*';
     63{$ENDIF}
     64
    5765procedure Register;
    5866
     
    7179  inherited Create(AOwner);
    7280  Path := IncludeTrailingBackslash(UTF8Encode(GetCurrentDir));
    73   FileMask := '*.*';
     81  FileMask := FilterAll;
    7482  FileAttr := [ffaAnyFile];
    7583  s := TStringList.Create;
     
    127135  If not InSubFolders then Exit;
    128136
    129   if SysUtils.FindFirst(UTF8Decode(inPath + '*.*'), faDirectory, Rec) = 0 then
     137  if SysUtils.FindFirst(UTF8Decode(inPath + FilterAll), faDirectory, Rec) = 0 then
    130138  try
    131139    repeat
  • trunk/Packages/Common/UJobProgressView.lfm

    r10 r15  
    1414  OnDestroy = FormDestroy
    1515  Position = poScreenCenter
    16   LCLVersion = '1.1'
     16  LCLVersion = '1.6.0.4'
    1717  object PanelOperationsTitle: TPanel
    1818    Left = 0
  • trunk/Packages/Common/UJobProgressView.lrt

    r10 r15  
    1 TJOBPROGRESSVIEW.LABELOPERATION.CAPTION=Operations:
    2 TJOBPROGRESSVIEW.LABELESTIMATEDTIMEPART.CAPTION=Estimated time:
    3 TJOBPROGRESSVIEW.LABELESTIMATEDTIMETOTAL.CAPTION=Total estimated time:
     1TFORMJOBPROGRESSVIEW.LABELOPERATION.CAPTION=Operations:
     2TFORMJOBPROGRESSVIEW.LABELESTIMATEDTIMEPART.CAPTION=Estimated time:
     3TFORMJOBPROGRESSVIEW.LABELESTIMATEDTIMETOTAL.CAPTION=Total estimated time:
  • trunk/Packages/Common/UJobProgressView.pas

    r10 r15  
    166166  STotalEstimatedTime = 'Total estimated time: %s';
    167167  SFinished = 'Finished';
     168  SOperations = 'Operations';
    168169
    169170procedure Register;
  • trunk/Packages/Common/UListViewSort.pas

    r10 r15  
    99uses
    1010  {$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;
    1213
    1314type
     
    1819  TCompareEvent = function (Item1, Item2: TObject): Integer of object;
    1920  TListFilterEvent = procedure (ListViewSort: TListViewSort) of object;
     21
     22  { TListViewSort }
    2023
    2124  TListViewSort = class(TComponent)
     
    2831    FColumn: Integer;
    2932    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);
    3038    procedure SetListView(const Value: TListView);
    3139    procedure ColumnClick(Sender: TObject; Column: TListColumn);
     
    4048    procedure SetColumn(const Value: Integer);
    4149    procedure SetOrder(const Value: TSortOrder);
     50    {$IFDEF WINDOWS}
     51    procedure NewListViewWindowProc(var AMsg: TMessage);
     52    {$ENDIF}
    4253  public
    4354    List: TListObject;
     
    5869    property OnCustomDraw: TLVCustomDrawItemEvent read FOnCustomDraw
    5970      write FOnCustomDraw;
     71    property OnColumnWidthChanged: TNotifyEvent read FOnColumnWidthChanged
     72      write FOnColumnWidthChanged;
    6073    property Column: Integer read FColumn write SetColumn;
    6174    property Order: TSortOrder read FOrder write SetOrder;
     
    6881    FOnChange: TNotifyEvent;
    6982    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);
    7185  public
    7286    constructor Create(AOwner: TComponent); override;
    7387    procedure UpdateFromListView(ListView: TListView);
    7488    function TextEntered: Boolean;
     89    function TextEnteredCount: Integer;
     90    function TextEnteredColumn(Index: Integer): Boolean;
    7591    function GetColValue(Index: Integer): string;
    7692    property StringGrid: TStringGrid read FStringGrid1 write FStringGrid1;
     
    7995    property Align;
    8096    property Anchors;
     97    property BorderSpacing;
    8198  end;
    8299
     
    93110{ TListViewFilter }
    94111
    95 procedure TListViewFilter.DoOnKeyUp(Sender: TObject; var Key: Word;
     112procedure TListViewFilter.GridDoOnKeyUp(Sender: TObject; var Key: Word;
    96113  Shift: TShiftState);
    97114begin
    98115  if Assigned(FOnChange) then
    99116    FOnChange(Self);
     117end;
     118
     119procedure TListViewFilter.GridDoOnResize(Sender: TObject);
     120begin
     121  FStringGrid1.DefaultRowHeight := FStringGrid1.Height;
    100122end;
    101123
     
    113135  FStringGrid1.Options := [goFixedHorzLine, goFixedVertLine, goVertLine,
    114136    goHorzLine, goRangeSelect, goEditing, goAlwaysShowEditor, goSmoothScroll];
    115   FStringGrid1.OnKeyUp := DoOnKeyUp;
     137  FStringGrid1.OnKeyUp := GridDoOnKeyUp;
     138  FStringGrid1.OnResize := GridDoOnResize;
    116139end;
    117140
     
    119142var
    120143  I: Integer;
    121   NewColumn: TGridColumn;
    122144begin
    123145  with FStringGrid1 do begin
    124     Columns.Clear;
     146    Options := Options - [goEditing, goAlwaysShowEditor];
     147    //Columns.Clear;
    125148    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;
    127150    for I := 0 to ListView.Columns.Count - 1 do begin
    128151      Columns[I].Width := ListView.Columns[I].Width;
    129152    end;
     153    Options := Options + [goEditing, goAlwaysShowEditor];
    130154  end;
    131155end;
    132156
    133157function TListViewFilter.TextEntered: Boolean;
     158begin
     159  Result := TextEnteredCount > 0;
     160end;
     161
     162function TListViewFilter.TextEnteredCount: Integer;
    134163var
    135164  I: Integer;
    136165begin
    137   Result := False;
     166  Result := 0;
    138167  for I := 0 to FStringGrid1.ColCount - 1 do begin
    139168    if FStringGrid1.Cells[I, 0] <> '' then begin
    140       Result := True;
    141       Break;
     169      Inc(Result);
    142170    end;
    143171  end;
     172end;
     173
     174function TListViewFilter.TextEnteredColumn(Index: Integer): Boolean;
     175begin
     176  Result := FStringGrid1.Cells[Index, 0] <> '';
    144177end;
    145178
     
    153186{ TListViewSort }
    154187
     188{$IFDEF WINDOWS}
     189procedure TListViewSort.NewListViewWindowProc(var AMsg: TMessage);
     190var
     191  vColWidth: Integer;
     192  vMsgNotify: TLMNotify absolute AMsg;
     193  Code: Integer;
     194begin
     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;
     221end;
     222{$ENDIF}
     223
     224procedure TListViewSort.DoColumnBeginResize(const AColIndex: Integer);
     225begin
     226end;
     227
     228procedure TListViewSort.DoColumnResizing(const AColIndex, AWidth: Integer);
     229begin
     230end;
     231
     232procedure TListViewSort.DoColumnResized(const AColIndex: Integer);
     233begin
     234  if Assigned(FOnColumnWidthChanged) then
     235    FOnColumnWidthChanged(Self);
     236end;
    155237
    156238procedure TListViewSort.ColumnClick(Sender: TObject; Column: TListColumn);
     
    179261procedure TListViewSort.SetListView(const Value: TListView);
    180262begin
     263  if FListView = Value then Exit;
     264  if Assigned(FListView) then
     265    ListView.WindowProc := FOldListViewWindowProc;
    181266  FListView := Value;
    182267  FListView.OnColumnClick := ColumnClick;
    183268  FListView.OnCustomDrawItem := ListViewCustomDrawItem;
    184269  FListView.OnClick := ListViewClick;
     270  FOldListViewWindowProc := FListView.WindowProc;
     271  {$IFDEF WINDOWS}
     272  FListView.WindowProc := NewListViewWindowProc;
     273  {$ENDIF}
    185274end;
    186275
     
    199288  if ListView.Items.Count <> List.Count then
    200289    ListView.Items.Count := List.Count;
    201   if Assigned(FOnCompareItem) then Sort(FOnCompareItem);
     290  if Assigned(FOnCompareItem) and (Order <> soNone) then Sort(FOnCompareItem);
    202291  //ListView.Items[-1]; // Workaround for not show first row if selected
    203292  ListView.Refresh;
     
    266355  TP1: TPoint;
    267356  XBias, YBias: Integer;
    268   OldColor: TColor;
     357  PenColor: TColor;
     358  BrushColor: TColor;
    269359  BiasTop, BiasLeft: Integer;
    270360  Rect1: TRect;
     
    278368  Item.Left := 0;
    279369  GetCheckBias(XBias, YBias, BiasTop, BiasLeft, ListView);
    280   OldColor := ListView.Canvas.Pen.Color;
     370  PenColor := ListView.Canvas.Pen.Color;
     371  BrushColor := ListView.Canvas.Brush.Color;
    281372  //TP1 := Item.GetPosition;
    282373  lRect := Item.DisplayRect(drBounds); // Windows 7 workaround
     
    321412  end;
    322413  //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;
    325416end;
    326417
  • trunk/Packages/Common/UMemory.pas

    r10 r15  
    2424    constructor Create;
    2525    destructor Destroy; override;
     26    procedure WriteMemory(Position: Integer; Memory: TMemory);
     27    procedure ReadMemory(Position: Integer; Memory: TMemory);
    2628    property Data: PByte read FData;
    2729    property Size: Integer read FSize write SetSize;
     
    108110end;
    109111
     112procedure TMemory.WriteMemory(Position: Integer; Memory: TMemory);
     113begin
     114  Move(Memory.FData, PByte(@FData + Position)^, Memory.Size);
     115end;
     116
     117procedure TMemory.ReadMemory(Position: Integer; Memory: TMemory);
     118begin
     119  Move(PByte(@FData + Position)^, Memory.FData, Memory.Size);
     120end;
     121
    110122end.
    111123
  • trunk/Packages/Common/UPersistentForm.pas

    r10 r15  
    33{$mode delphi}
    44
    5 // Date: 2010-06-01
     5// Date: 2015-04-18
    66
    77interface
    88
    99uses
    10   Classes, SysUtils, Forms, URegistry, LCLIntf, Registry;
     10  Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls;
    1111
    1212type
     
    1919    FMinVisiblePart: Integer;
    2020    FRegistryContext: TRegistryContext;
     21    procedure LoadControl(Control: TControl);
     22    procedure SaveControl(Control: TControl);
    2123  public
     24    FormNormalSize: TRect;
     25    FormRestoredSize: TRect;
     26    FormWindowState: TWindowState;
     27    Form: TForm;
     28    procedure LoadFromRegistry(RegistryContext: TRegistryContext);
     29    procedure SaveToRegistry(RegistryContext: TRegistryContext);
    2230    function CheckEntireVisible(Rect: TRect): TRect;
    2331    function CheckPartVisible(Rect: TRect; Part: Integer): TRect;
     
    4452{ TPersistentForm }
    4553
     54procedure TPersistentForm.LoadControl(Control: TControl);
     55var
     56  I: Integer;
     57  WinControl: TWinControl;
     58  Count: Integer;
     59begin
     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;
     84end;
     85
     86procedure TPersistentForm.SaveControl(Control: TControl);
     87var
     88  I: Integer;
     89  WinControl: TWinControl;
     90begin
     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;
     114end;
     115
     116procedure TPersistentForm.LoadFromRegistry(RegistryContext: TRegistryContext);
     117begin
     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;
     141end;
     142
     143procedure TPersistentForm.SaveToRegistry(RegistryContext: TRegistryContext);
     144begin
     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;
     164end;
     165
    46166function TPersistentForm.CheckEntireVisible(Rect: TRect): TRect;
    47167var
     
    98218procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False);
    99219var
    100   Normal: TRect;
    101   Restored: TRect;
    102220  LoadDefaults: Boolean;
    103221begin
    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);
    144248end;
    145249
    146250procedure TPersistentForm.Save(Form: TForm);
    147251begin
    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);
    165259end;
    166260
     
    168262begin
    169263  inherited;
     264  if AOwner is TForm then Form := TForm(AOwner)
     265    else Form := nil;
    170266  FMinVisiblePart := 50;
    171267  FRegistryContext.RootKey := HKEY_CURRENT_USER;
  • trunk/Packages/Common/URegistry.pas

    r10 r15  
    99
    1010type
    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);
    1813
    1914  { TRegistryContext }
     
    2318    Key: string;
    2419    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;
    2522  end;
    2623
     
    4340  end;
    4441
    45 function RegContext(RootKey: HKEY; Key: string): TRegistryContext;
    46 
     42const
     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);
    4746
    4847implementation
    4948
    50 function RegContext(RootKey: HKEY; Key: string): TRegistryContext;
    51 begin
    52   Result.RootKey := RootKey;
    53   Result.Key := Key;
    54 end;
    5549
    5650{ TRegistryContext }
     
    5953begin
    6054  Result := (A.Key = B.Key) and (A.RootKey = B.RootKey);
     55end;
     56
     57function TRegistryContext.Create(RootKey: TRegistryRoot; Key: string): TRegistryContext;
     58begin
     59  Result.RootKey := RegistryRootHKEY[RootKey];
     60  Result.Key := Key;
     61end;
     62
     63function TRegistryContext.Create(RootKey: HKEY; Key: string): TRegistryContext;
     64begin
     65  Result.RootKey := RootKey;
     66  Result.Key := Key;
    6167end;
    6268
  • trunk/Packages/Common/UScaleDPI.pas

    r10 r15  
    1717  TControlDimension = class
    1818    BoundsRect: TRect;
    19     AuxSize: TPoint;
    2019    FontHeight: Integer;
    2120    Controls: TObjectList; // TList<TControlDimension>
     21    // Class specifics
     22    ButtonSize: TPoint; // TToolBar
     23    CoolBandWidth: Integer;
     24    ConstraintsMin: TPoint; // TForm
     25    ConstraintsMax: TPoint; // TForm
    2226    constructor Create;
    2327    destructor Destroy; override;
     
    7478destructor TControlDimension.Destroy;
    7579begin
    76   Controls.Free;
     80  FreeAndNil(Controls);
    7781  inherited Destroy;
    7882end;
     
    113117  Dimensions.Controls.Clear;
    114118  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;
    117126  if Control is TWinControl then
    118127  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
    120131      NewControl := TControlDimension.Create;
    121132      Dimensions.Controls.Add(NewControl);
     
    133144  Control.Font.Height := Dimensions.FontHeight;
    134145  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;
    137154  end;
    138155  if Control is TWinControl then
    139156  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
    141160      RestoreDimensions(TWinControl(Control).Controls[I], TControlDimension(Dimensions.Controls[I]));
    142161    end;
     
    152171  Control.Font.Height := ScaleY(Dimensions.FontHeight, DesignDPI.Y);
    153172  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);
    156190  end;
    157191  if Control is TWinControl then
    158192  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
    160196      ScaleDimensions(TWinControl(Control).Controls[I], TControlDimension(Dimensions.Controls[I]));
    161197    end;
     
    183219
    184220  SetLength(Temp, ImgList.Count);
    185   TempBmp := TBitmap.Create;
    186221  for I := 0 to ImgList.Count - 1 do
    187222  begin
     223    TempBmp := TBitmap.Create;
     224    TempBmp.PixelFormat := pf32bit;
    188225    ImgList.GetBitmap(I, TempBmp);
    189     //TempBmp.PixelFormat := pfDevice;
    190226    Temp[I] := TBitmap.Create;
    191227    Temp[I].SetSize(NewWidth, NewHeight);
     228    Temp[I].PixelFormat := pf32bit;
    192229    Temp[I].TransparentColor := TempBmp.TransparentColor;
    193230    //Temp[I].TransparentMode := TempBmp.TransparentMode;
     
    199236    if (Temp[I].Width = 0) or (Temp[I].Height = 0) then Continue;
    200237    Temp[I].Canvas.StretchDraw(Rect(0, 0, Temp[I].Width, Temp[I].Height), TempBmp);
    201   end;
    202   TempBmp.Free;
     238    TempBmp.Free;
     239  end;
    203240
    204241  ImgList.Clear;
     
    272309  end;
    273310
    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;
    275323
    276324  if Control is TToolBar then begin
  • trunk/Packages/Common/UXMLUtils.pas

    r10 r15  
    1212function DateTimeToXMLTime(Value: TDateTime; ApplyLocalBias: Boolean = True): WideString;
    1313procedure WriteInteger(Node: TDOMNode; Name: string; Value: Integer);
     14procedure WriteInt64(Node: TDOMNode; Name: string; Value: Int64);
    1415procedure WriteBoolean(Node: TDOMNode; Name: string; Value: Boolean);
    1516procedure WriteString(Node: TDOMNode; Name: string; Value: string);
     17procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime);
    1618function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer;
     19function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64;
    1720function ReadBoolean(Node: TDOMNode; Name: string; DefaultValue: Boolean): Boolean;
    1821function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string;
     22function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime;
    1923
    2024
     
    7276  Minute: Integer;
    7377  Second: Integer;
     78  SecondFraction: Double;
    7479  Millisecond: Integer;
    7580begin
     
    9499      if Pos('Z', XMLDateTime) > 0 then
    95100        LeftCutString(XMLDateTime, Part, 'Z');
    96       Millisecond := StrToInt(Part);
     101      SecondFraction := StrToFloat('0' + DecimalSeparator + Part);
     102      Millisecond := Trunc(SecondFraction * 1000);
    97103    end else begin
    98104      if Pos('+', XMLDateTime) > 0 then
     
    138144end;
    139145
     146procedure WriteInt64(Node: TDOMNode; Name: string; Value: Int64);
     147var
     148  NewNode: TDOMNode;
     149begin
     150  NewNode := Node.OwnerDocument.CreateElement(Name);
     151  NewNode.TextContent := IntToStr(Value);
     152  Node.AppendChild(NewNode);
     153end;
     154
    140155procedure WriteBoolean(Node: TDOMNode; Name: string; Value: Boolean);
    141156var
     
    156171end;
    157172
     173procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime);
     174var
     175  NewNode: TDOMNode;
     176begin
     177  NewNode := Node.OwnerDocument.CreateElement(Name);
     178  NewNode.TextContent := DateTimeToXMLTime(Value);
     179  Node.AppendChild(NewNode);
     180end;
     181
    158182function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer;
    159183var
     
    166190end;
    167191
     192function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64;
     193var
     194  NewNode: TDOMNode;
     195begin
     196  Result := DefaultValue;
     197  NewNode := Node.FindNode(Name);
     198  if Assigned(NewNode) then
     199    Result := StrToInt64(NewNode.TextContent);
     200end;
     201
    168202function ReadBoolean(Node: TDOMNode; Name: string; DefaultValue: Boolean): Boolean;
    169203var
     
    186220end;
    187221
     222function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime
     223  ): TDateTime;
     224var
     225  NewNode: TDOMNode;
     226begin
     227  Result := DefaultValue;
     228  NewNode := Node.FindNode(Name);
     229  if Assigned(NewNode) then
     230    Result := XMLTimeToDateTime(NewNode.TextContent);
     231end;
     232
    188233end.
    189234
  • trunk/Packages/CoolTranslator/UCoolTranslator.pas

    r10 r15  
    66
    77uses
    8   Classes, SysUtils, Forms, ExtCtrls, Controls, Contnrs,
     8  Classes, SysUtils, Forms, ExtCtrls, Controls, Contnrs, LazFileUtils, LazUTF8,
    99  Translations, TypInfo, Dialogs, FileUtil, LCLProc, ULanguages, LCLType;
    1010
     
    4646    procedure TranslateProperty(Component: TPersistent; PropInfo: PPropInfo);
    4747    function IsExcluded(Component: TPersistent; PropertyName: string): Boolean;
     48    function GetLangFileDir: string;
    4849  public
    4950    ComponentExcludes: TComponentExcludesList;
     
    150151  I: Integer;
    151152  LocaleShort: string;
     153  SearchMask: string;
    152154begin
    153155  FPOFiles.Clear;
     
    157159    //ShowMessage(ExtractFileDir(Application.ExeName) +
    158160    //  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);
    161165    for I := 0 to FileList.Count - 1 do begin
    162166      FileName := FileList[I];
    163167      //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));
    165171    end;
    166172  finally
     
    174180  FPoFilesFolder := AValue;
    175181  ReloadFiles;
     182  CheckLanguageFiles;
    176183end;
    177184
     
    284291end;
    285292
     293function TCoolTranslator.GetLangFileDir: string;
     294begin
     295  Result := FPOFilesFolder;
     296  if Copy(Result, 1, 1) <> DirectorySeparator then
     297    Result := ExtractFileDir(UTF8Encode(Application.ExeName)) +
     298      DirectorySeparator + Result;
     299end;
     300
    286301procedure TCoolTranslator.LanguageListToStrings(Strings: TStrings);
    287302var
     
    316331  I: Integer;
    317332begin
     333  Result := '';
    318334  if Text <> '' then begin
    319335    for I := 0 to FPoFiles.Count - 1 do begin
     
    342358var
    343359  I: Integer;
    344 begin
     360  LangDir: string;
     361begin
     362  LangDir := GetLangFileDir;
    345363  TLanguage(Languages[0]).Available := True; // Automatic
    346364
    347365  for I := 1 to Languages.Count - 1 do
    348366  with TLanguage(Languages[I]) do begin
    349     Available := FileExistsUTF8(POFilesFolder + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) +
     367    Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) +
    350368      '.' + Code + ExtensionSeparator + 'po') or (Code = 'en');
    351369  end;
     
    382400begin
    383401  // Win32 user may decide to override locale with LANG variable.
    384   Lang := GetEnvironmentVariableUTF8('LANG');
     402  Lang := GetEnvironmentVariable('LANG');
    385403
    386404  // Use user selected language
     
    390408  if Lang = '' then begin
    391409    for i := 1 to Paramcount - 1 do
    392       if (ParamStrUTF8(i) = '--LANG') or (ParamStrUTF8(i) = '-l') or
    393         (ParamStrUTF8(i) = '--lang') then
    394         Lang := ParamStrUTF8(i + 1);
     410      if (ParamStr(i) = '--LANG') or (ParamStr(i) = '-l') or
     411        (ParamStr(i) = '--lang') then
     412        Lang := ParamStr(i + 1);
    395413  end;
    396414  if Lang = '' then
    397     LCLGetLanguageIDs(Lang, T);
     415    LazGetLanguageIDs(Lang, T);
    398416
    399417  if Assigned(Language) and (Language.Code = '') and Assigned(FOnAutomaticLanguage) then begin
    400418    Lang := FOnAutomaticLanguage(Lang);
    401419  end;
    402 
    403   if Lang = 'en' then Lang := ''; // English files are without en code
    404420
    405421  Result := Lang;
     
    423439    Exit;
    424440
    425   Result := ChangeFileExt(ParamStrUTF8(0), LCExt);
     441  Result := ChangeFileExt(ParamStr(0), LCExt);
    426442  if FileExistsUTF8(Result) then
    427443    Exit;
  • trunk/Packages/CoolWeb/WebServer/UHTTPSessionFile.pas

    r12 r15  
    5151begin
    5252  Result := BinToHexString(SHA1(FloatToStr(Now)));
    53   while FileExistsUTF8(Directory + DirectorySeparator + Result) do
     53  while FileExists(Directory + DirectorySeparator + Result) do
    5454    Result := BinToHexString(SHA1(FloatToStr(Now)));
    5555end;
     
    7575    Lock.Acquire;
    7676    SessionFile := Directory + DirectorySeparator + HandlerData.SessionId;
    77     if FileExistsUTF8(SessionFile) then
     77    if FileExists(SessionFile) then
    7878      HandlerData.Session.LoadFromFile(SessionFile)
    7979      else HandlerData.SessionId := GetNewSessionId;
     
    9292    SessionFile := Directory + DirectorySeparator + HandlerData.SessionId;
    9393    ForceDirectories(Directory);
    94     if DirectoryExistsUTF8(Directory) then begin
     94    if DirectoryExists(Directory) then begin
    9595      DeleteFile(SessionFile);
    9696      HandlerData.Session.SaveToFile(SessionFile)
  • trunk/UDataTypes.pas

    r14 r15  
    66
    77uses
    8   Classes, SysUtils, UDatabase, Contnrs, USqlDatabase;
     8  Classes, SysUtils, UDatabase, USqlDatabase;
    99
    1010type
  • trunk/UDatabase.pas

    r14 r15  
    6868    property DataType: TDataType read FDataType write SetDataType;
    6969    constructor Create;
     70    destructor Destroy; override;
    7071  end;
    7172
     
    484485begin
    485486  TypeRelated := TFieldString.Create;
     487end;
     488
     489destructor TField.Destroy;
     490begin
     491  DataType := nil;
     492  inherited Destroy;
    486493end;
    487494
     
    521528var
    522529  DbRows: TDbRows;
    523   I: Integer;
    524   F: Integer;
    525   NewRecord: TRecord;
    526   NewValue: TValue;
    527530begin
    528531  Records.Clear;
     
    581584destructor TDatabase.Destroy;
    582585begin
     586  Engine := nil;
    583587  Tables.Free;
    584588  inherited Destroy;
Note: See TracChangeset for help on using the changeset viewer.