Changeset 427

User picture

Author: nrymanov@gmail.com

(2010/01/29 14:38) About 2 years ago

see #29 - Редизайн и унификация пользовательского интерфейса

Affected files

Updated trunk/Forms/frm_create_mask.dfm Download diff

426427
1
object frmCreateMask: TfrmCreateMask
1
object frmCreateMask: TfrmCreateMask
2
  Left = 0
2
  Left = 0
3
  Top = 0
3
  Top = 0
4
  BorderIcons = [biSystemMenu]
4
  BorderStyle = bsDialog
5
  BorderStyle = bsSizeToolWin
5
  Caption = #1057#1086#1089#1090#1072#1074#1083#1077#1085#1080#1077' '#1096#1072#1073#1083#1086#1085#1072
6
  Caption = #1057#1086#1089#1090#1072#1074#1083#1077#1085#1080#1077' '#1084#1072#1089#1082#1080
6
  ClientHeight = 243
7
  ClientHeight = 260
7
  ClientWidth = 434
8
  ClientWidth = 246
9
  Color = clBtnFace
8
  Color = clBtnFace
10
  Font.Charset = DEFAULT_CHARSET
9
  Font.Charset = DEFAULT_CHARSET
11
  Font.Color = clWindowText
10
  Font.Color = clWindowText
...
...
18
  TextHeight = 13
17
  TextHeight = 13
19
  object Label1: TLabel
18
  object Label1: TLabel
20
    Left = 8
19
    Left = 8
21
    Top = 50
20
    Top = 40
22
    Width = 41
21
    Width = 41
23
    Height = 13
22
    Height = 13
24
    Caption = #1055#1088#1080#1084#1077#1088':'
23
    Caption = #1055#1088#1080#1084#1077#1088':'
25
  end
24
  end
26
  object Label2: TLabel
25
  object Label2: TLabel
27
    Left = 66
26
    Left = 58
28
    Top = 45
27
    Top = 40
29
    Width = 146
28
    Width = 85
30
    Height = 19
29
    Height = 13
31
    Caption = '[%s [(%n) ]- ]%t'
30
    Caption = '[%s [(%n) ]- ]%t'
32
    Font.Charset = DEFAULT_CHARSET
33
    Font.Color = clWindowText
34
    Font.Height = -16
35
    Font.Name = 'Tahoma'
36
    Font.Style = [fsBold]
37
    ParentFont = False
38
  end
31
  end
39
  object Label3: TLabel
32
  object stDescription: TMHLStaticTip
40
    Left = 8
33
    Left = 8
41
    Top = 80
34
    Top = 59
42
    Width = 231
35
    Width = 417
43
    Height = 130
36
    Height = 137
44
    Caption = 
37
    Caption = 
45
      #1055#1088#1072#1074#1080#1083#1072' '#1087#1086#1089#1090#1088#1086#1077#1085#1080#1103' '#1096#1072#1073#1083#1086#1085#1072':'#13'%f - '#1060#1072#1084#1080#1083#1080#1103' '#1080' '#1080#1085#1080#1094#1080#1072#1083#1099' '#1072#1074#1090#1086#1088#1086#1074#13'%s -' +
38
      'TODO - '#1080#1079#1084#1077#1085#1080#1090#1100' '#1086#1087#1080#1089#1072#1085#1080#1077' '#1085#1072' '#1073#1086#1083#1077#1077' '#1082#1086#1088#1088#1077#1082#1090#1085#1086#1077#13#1055#1088#1072#1074#1080#1083#1072' '#1087#1086#1089#1090#1088#1086#1077#1085#1080#1103' ' +
46
      ' '#1085#1072#1079#1074#1072#1085#1080#1077' '#1089#1077#1088#1080#1080' '#1082#1085#1080#1075#13'%n - '#1085#1086#1084#1077#1088' '#1082#1085#1080#1075#1080' '#1074' '#1089#1077#1088#1080#1080#13'%t - '#1085#1072#1079#1074#1072#1085#1080#1077' '#1082#1085#1080#1075 +
39
      #1096#1072#1073#1083#1086#1085#1072':'#13'%f - '#1060#1072#1084#1080#1083#1080#1103' '#1080' '#1080#1085#1080#1094#1080#1072#1083#1099' '#1072#1074#1090#1086#1088#1086#1074#13'%s - '#1085#1072#1079#1074#1072#1085#1080#1077' '#1089#1077#1088#1080#1080' '#1082#1085#1080 +
47
      #1080#13'[ ] - '#1073#1083#1086#1082' '#1101#1083#1077#1084#1077#1085#1090#1072' '#1096#1072#1073#1083#1086#1085#1072'. '#1042' '#1073#1083#1086#1082#1077' '#1084#1086#1078#1077#1090' '#1073#1099#1090#1100' '#1090#1086#1083#1100#1082#1086' '#1086#1076#1080#1085' '#1101#1083 +
40
      #1075#13'%n - '#1085#1086#1084#1077#1088' '#1082#1085#1080#1075#1080' '#1074' '#1089#1077#1088#1080#1080#13'%t - '#1085#1072#1079#1074#1072#1085#1080#1077' '#1082#1085#1080#1075#1080#13'[ ] - '#1073#1083#1086#1082' '#1101#1083#1077#1084#1077#1085 +
48
      #1077#1084#1077#1085#1090' '#1096#1073#1083#1086#1085#1072'. '#1058#1072#1082#1078#1077' '#1088#1072#1079#1088#1077#1096#1072#1102#1090#1089#1103' '#1074#1083#1086#1078#1077#1085#1085#1099#1077' '#1073#1083#1086#1082#1080'. '#1045#1089#1083#1080' '#1101#1083#1077#1084#1077#1085#1090' '#1096#1072 +
41
      #1090#1072' '#1096#1072#1073#1083#1086#1085#1072'. '#1042' '#1073#1083#1086#1082#1077' '#1084#1086#1078#1077#1090' '#1073#1099#1090#1100' '#1090#1086#1083#1100#1082#1086' '#1086#1076#1080#1085' '#1101#1083#1077#1084#1077#1085#1090' '#1096#1072#1073#1083#1086#1085#1072'. '#1058#1072#1082#1078 +
49
      #1073#1083#1086#1085#1072' '#1085#1077' '#1080#1084#1077#1077#1090' '#1079#1085#1072#1095#1077#1085#1080#1103', '#1090#1086' '#1074#1077#1089#1100' '#1073#1083#1086#1082' '#1085#1077' '#1074#1099#1074#1086#1076#1080#1090#1089#1103'.'
42
      #1077' '#1088#1072#1079#1088#1077#1096#1072#1102#1090#1089#1103' '#1074#1083#1086#1078#1077#1085#1085#1099#1077' '#1073#1083#1086#1082#1080'. '#1045#1089#1083#1080' '#1101#1083#1077#1084#1077#1085#1090' '#1096#1072#1073#1083#1086#1085#1072' '#1085#1077' '#1080#1084#1077#1077#1090' '#1079#1085#1072 +
50
    WordWrap = True
43
      #1095#1077#1085#1080#1103', '#1090#1086' '#1074#1077#1089#1100' '#1073#1083#1086#1082' '#1085#1077' '#1074#1099#1074#1086#1076#1080#1090#1089#1103'.'
51
  end
44
  end
45
  object Label3: TLabel
46
    Left = 8
47
    Top = 16
48
    Width = 44
49
    Height = 13
50
    Caption = '&'#1064#1072#1073#1083#1086#1085':'
51
    FocusControl = edTemplate
52
  end
52
  object edTemplate: TEdit
53
  object edTemplate: TEdit
53
    AlignWithMargins = True
54
    Left = 58
54
    Left = 3
55
    Top = 13
55
    Top = 10
56
    Width = 367
56
    Width = 240
57
    Height = 21
57
    Height = 27
58
    Margins.Top = 10
58
    Margins.Top = 10
59
    Align = alTop
60
    Alignment = taCenter
61
    Font.Charset = DEFAULT_CHARSET
62
    Font.Color = clWindowText
63
    Font.Height = -16
64
    Font.Name = 'Tahoma'
65
    Font.Style = [fsBold]
66
    ParentFont = False
67
    TabOrder = 0
59
    TabOrder = 0
68
  end
60
  end
69
  object RzBitBtn1: TRzBitBtn
61
  object pnButtons: TPanel
70
    Left = 21
62
    Left = 0
71
    Top = 226
63
    Top = 202
72
    Width = 91
64
    Width = 434
73
    Default = True
65
    Height = 41
74
    Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100
66
    Align = alBottom
67
    BevelOuter = bvNone
68
    Caption = 'pnButtons'
69
    ShowCaption = False
75
    TabOrder = 1
70
    TabOrder = 1
76
    OnClick = RzBitBtn1Click
71
    ExplicitTop = 339
77
    Glyph.Data = {
72
    ExplicitWidth = 313
78
      36060000424D3606000000000000360400002800000020000000100000000100
73
    DesignSize = (
79
      0800000000000002000000000000000000000001000000000000000000003300
74
      434
80
      00006600000099000000CC000000FF0000000033000033330000663300009933
75
      41)
81
      0000CC330000FF33000000660000336600006666000099660000CC660000FF66
76
    object btnOk: TButton
82
      000000990000339900006699000099990000CC990000FF99000000CC000033CC
77
      Left = 270
83
      000066CC000099CC0000CCCC0000FFCC000000FF000033FF000066FF000099FF
78
      Top = 10
84
      0000CCFF0000FFFF000000003300330033006600330099003300CC003300FF00
79
      Width = 75
85
      330000333300333333006633330099333300CC333300FF333300006633003366
80
      Height = 25
86
      33006666330099663300CC663300FF6633000099330033993300669933009999
81
      Anchors = [akTop, akRight]
87
      3300CC993300FF99330000CC330033CC330066CC330099CC3300CCCC3300FFCC
82
      Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
88
      330000FF330033FF330066FF330099FF3300CCFF3300FFFF3300000066003300
83
      Default = True
89
      66006600660099006600CC006600FF0066000033660033336600663366009933
84
      ModalResult = 1
90
      6600CC336600FF33660000666600336666006666660099666600CC666600FF66
85
      TabOrder = 0
91
      660000996600339966006699660099996600CC996600FF99660000CC660033CC
86
      OnClick = RzBitBtn1Click
92
      660066CC660099CC6600CCCC6600FFCC660000FF660033FF660066FF660099FF
87
      ExplicitLeft = 149
93
      6600CCFF6600FFFF660000009900330099006600990099009900CC009900FF00
88
    end
94
      990000339900333399006633990099339900CC339900FF339900006699003366
89
    object btnCancel: TButton
95
      99006666990099669900CC669900FF6699000099990033999900669999009999
90
      Left = 351
96
      9900CC999900FF99990000CC990033CC990066CC990099CC9900CCCC9900FFCC
91
      Top = 10
97
      990000FF990033FF990066FF990099FF9900CCFF9900FFFF99000000CC003300
92
      Width = 75
98
      CC006600CC009900CC00CC00CC00FF00CC000033CC003333CC006633CC009933
93
      Height = 25
99
      CC00CC33CC00FF33CC000066CC003366CC006666CC009966CC00CC66CC00FF66
94
      Anchors = [akTop, akRight]
100
      CC000099CC003399CC006699CC009999CC00CC99CC00FF99CC0000CCCC0033CC
95
      Cancel = True
101
      CC0066CCCC0099CCCC00CCCCCC00FFCCCC0000FFCC0033FFCC0066FFCC0099FF
96
      Caption = '&'#1054#1090#1084#1077#1085#1072
102
      CC00CCFFCC00FFFFCC000000FF003300FF006600FF009900FF00CC00FF00FF00
97
      ModalResult = 2
103
      FF000033FF003333FF006633FF009933FF00CC33FF00FF33FF000066FF003366
98
      TabOrder = 1
104
      FF006666FF009966FF00CC66FF00FF66FF000099FF003399FF006699FF009999
99
      ExplicitLeft = 230
105
      FF00CC99FF00FF99FF0000CCFF0033CCFF0066CCFF0099CCFF00CCCCFF00FFCC
100
    end
106
      FF0000FFFF0033FFFF0066FFFF0099FFFF00CCFFFF00FFFFFF00000080000080
107
      000000808000800000008000800080800000C0C0C00080808000191919004C4C
108
      4C00B2B2B200E5E5E5005A1E1E00783C3C0096646400C8969600FFC8C800465F
109
      82005591B9006EB9D7008CD2E600B4E6F000D8E9EC0099A8AC00646F7100E2EF
110
      F100C56A31000000000000000000000000000000000000000000000000000000
111
      0000000000000000000000000000000000000000000000000000EEEEEEEEEEEE
112
      EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
113
      EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE180C
114
      EEEEEEEEEEEEEEEEEEEEEEEEEEEEE2DFEEEEEEEEEEEEEEEEEEEEEEEEEE181212
115
      0CEEEEEEEEEEEEEEEEEEEEEEEEE28181DFEEEEEEEEEEEEEEEEEEEEEE18121212
116
      120CEEEEEEEEEEEEEEEEEEEEE281818181DFEEEEEEEEEEEEEEEEEE1812121212
117
      12120CEEEEEEEEEEEEEEEEE2818181818181DFEEEEEEEEEEEEEEEE1812120C18
118
      1212120CEEEEEEEEEEEEEEE28181DFE2818181DFEEEEEEEEEEEEEE18120CEEEE
119
      181212120CEEEEEEEEEEEEE281DFEEEEE2818181DFEEEEEEEEEEEE180CEEEEEE
120
      EE181212120CEEEEEEEEEEE2DFEEEEEEEEE2818181DFEEEEEEEEEEEEEEEEEEEE
121
      EEEE181212120CEEEEEEEEEEEEEEEEEEEEEEE2818181DFEEEEEEEEEEEEEEEEEE
122
      EEEEEE181212120CEEEEEEEEEEEEEEEEEEEEEEE2818181DFEEEEEEEEEEEEEEEE
123
      EEEEEEEE181212120CEEEEEEEEEEEEEEEEEEEEEEE2818181DFEEEEEEEEEEEEEE
124
      EEEEEEEEEE1812120CEEEEEEEEEEEEEEEEEEEEEEEEE28181DFEEEEEEEEEEEEEE
125
      EEEEEEEEEEEE18120CEEEEEEEEEEEEEEEEEEEEEEEEEEE281DFEEEEEEEEEEEEEE
126
      EEEEEEEEEEEEEE180CEEEEEEEEEEEEEEEEEEEEEEEEEEEEE2DFEEEEEEEEEEEEEE
127
      EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE}
128
    NumGlyphs = 2
129
  end
101
  end
130
  object RzBitBtn2: TRzBitBtn
131
    Left = 118
132
    Top = 226
133
    Width = 109
134
    Caption = #1053#1077' '#1089#1086#1093#1088#1072#1085#1103#1090#1100
135
    TabOrder = 2
136
    Kind = bkCancel
137
  end
138
end
102
end

Updated trunk/Forms/frm_create_mask.pas Download diff

426427
1
(* *****************************************************************************
2
  *
3
  * MyHomeLib
4
  *
5
  * Version 0.9
6
  * 20.08.2008
7
  * Copyright (c) Aleksey Penkov  alex.penkov@gmail.com
8
  *               Nick Rymanov    nrymanov@gmail.com
9
  ****************************************************************************** *)
10
1
unit frm_create_mask;
11
unit frm_create_mask;
2
12
3
interface
13
interface
...
...
4
14
5
uses
15
uses
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
16
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7
  Dialogs, Buttons, StdCtrls, RzButton, ExtCtrls;
17
  Dialogs, Buttons, StdCtrls, ExtCtrls, unit_StaticTip;
8
18
9
type
19
type
10
  TfrmCreateMask = class(TForm)
20
  TfrmCreateMask = class(TForm)
11
    edTemplate: TEdit;
21
    edTemplate: TEdit;
12
    Label1: TLabel;
22
    Label1: TLabel;
13
    Label2: TLabel;
23
    Label2: TLabel;
24
    pnButtons: TPanel;
25
    btnOk: TButton;
26
    btnCancel: TButton;
27
    stDescription: TMHLStaticTip;
14
    Label3: TLabel;
28
    Label3: TLabel;
15
    RzBitBtn1: TRzBitBtn;
16
    RzBitBtn2: TRzBitBtn;
17
    procedure RzBitBtn1Click(Sender: TObject);
29
    procedure RzBitBtn1Click(Sender: TObject);
18
  private
30
  private
19
    { Private declarations }
31
    { Private declarations }
...
...
27
implementation
39
implementation
28
40
29
uses frm_settings;
41
uses frm_settings;
30
31
{$R *.dfm}
42
{$R *.dfm}
32
43
33
procedure TfrmCreateMask.RzBitBtn1Click(Sender: TObject);
44
procedure TfrmCreateMask.RzBitBtn1Click(Sender: TObject);
34
const mask_elements: array[1..4] of string = ('f', 's', 'n', 't');
45
const
35
type TElement = record
46
  mask_elements: array [1 .. 4] of string = ('f', 's', 'n', 't');
36
                  name: string;
47
type
37
                  BegBlock, EndBlock: integer;
48
  TElement = record
38
                end;
49
    name: string;
39
var stack: array[1..10] of TElement;
50
    BegBlock, EndBlock: integer;
40
    Elements: array[1..10] of TElement;
51
  end;
41
    Template: string;
52
var
42
    i, j, StackPos, ElementPos: integer;
53
  stack: array [1 .. 10] of TElement;
43
    bol: boolean;
54
  Elements: array [1 .. 10] of TElement;
55
  Template: string;
56
  i, j, StackPos, ElementPos: integer;
57
  bol: boolean;
44
begin
58
begin
45
  Template:= edTemplate.Text;
59
  Template := edTemplate.Text;
46
  StackPos:= 0;
60
  StackPos := 0;
47
  ElementPos:= 0;
61
  ElementPos := 0;
48
  i:= 1;
62
  i := 1;
49
  while i <= Length(Template) do
63
  while i <= Length(Template) do
50
  begin
64
  begin
51
    if Template[i]='[' then
65
    if Template[i] = '[' then
52
    begin
66
    begin
53
      inc(StackPos);
67
      inc(StackPos);
54
      Stack[StackPos].BegBlock:= i;
68
      stack[StackPos].BegBlock := i;
55
      Stack[StackPos].name:= '';
69
      stack[StackPos].name := '';
56
    end;
70
    end;
57
71
58
    if Template[i]='%' then
72
    if Template[i] = '%' then
59
    begin
73
    begin
60
      if (Stack[StackPos].name <> '') and (StackPos > 0) then
74
      if (stack[StackPos].name <> '') and (StackPos > 0) then
61
      begin
75
      begin
76
        // TODO -oNickR -cRefactoring :        
62
        ShowMessage('  ');
77
        ShowMessage('  ');
63
        exit;
78
        exit;
64
      end;
79
      end;
65
80
66
      inc(i);
81
      inc(i);
67
      Stack[StackPos].name:= '';
82
      stack[StackPos].name := '';
68
      while CharInSet(Template[i], ['a'..'z', 'A'..'Z']) do
83
      while CharInSet(Template[i], ['a' .. 'z', 'A' .. 'Z']) do
69
      begin
84
      begin
70
        Stack[StackPos].name:= Stack[StackPos].name + Template[i];
85
        stack[StackPos].name := stack[StackPos].name + Template[i];
71
        inc(i);
86
        inc(i);
72
      end;
87
      end;
73
88
74
      if StackPos <= 0 then
89
      if StackPos <= 0 then
75
      begin
90
      begin
76
        inc(ElementPos);
91
        inc(ElementPos);
77
        Elements[ElementPos].name:= Stack[StackPos].name;
92
        Elements[ElementPos].name := stack[StackPos].name;
78
        Elements[ElementPos].BegBlock:= 0;
93
        Elements[ElementPos].BegBlock := 0;
79
        Elements[ElementPos].EndBlock:= 0;
94
        Elements[ElementPos].EndBlock := 0;
80
      end;
95
      end;
81
    end;
96
    end;
82
97
83
    if Template[i]=']' then
98
    if Template[i] = ']' then
84
    begin
99
    begin
85
      if (Stack[StackPos].name = '') or (StackPos <= 0) then
100
      if (stack[StackPos].name = '') or (StackPos <= 0) then
86
      begin
101
      begin
102
        // TODO -oNickR -cRefactoring :        
87
        ShowMessage('  ');
103
        ShowMessage('  ');
88
        exit;
104
        exit;
89
      end;
105
      end;
90
106
91
      Stack[StackPos].EndBlock:= i;
107
      stack[StackPos].EndBlock := i;
92
108
93
      inc(ElementPos);
109
      inc(ElementPos);
94
      Elements[ElementPos].name:= Stack[StackPos].name;
110
      Elements[ElementPos].name := stack[StackPos].name;
95
      Elements[ElementPos].BegBlock:= Stack[StackPos].BegBlock;
111
      Elements[ElementPos].BegBlock := stack[StackPos].BegBlock;
96
      Elements[ElementPos].EndBlock:= Stack[StackPos].EndBlock;
112
      Elements[ElementPos].EndBlock := stack[StackPos].EndBlock;
97
113
98
      dec(StackPos);
114
      dec(StackPos);
99
    end;
115
    end;
...
...
103
119
104
  for i := 1 to ElementPos do
120
  for i := 1 to ElementPos do
105
  begin
121
  begin
106
    bol:= false;
122
    bol := false;
107
    for j := 1 to High(mask_elements) do
123
    for j := 1 to High(mask_elements) do
108
      if Elements[i].name = mask_elements[j] then
124
      if Elements[i].name = mask_elements[j] then
109
        bol:= true;
125
        bol := true;
110
126
111
    if not(bol) then
127
    if not(bol) then
112
      break;
128
      break;
...
...
114
130
115
  if not(bol) then
131
  if not(bol) then
116
  begin
132
  begin
133
    // TODO -oNickR -cRefactoring :        
117
    ShowMessage('  ');
134
    ShowMessage('  ');
118
    exit;
135
    exit;
119
  end;
136
  end;
120
137
121
ModalResult:= mrOk;
138
  ModalResult := mrOk;
122
end;
139
end;
123
140
124
end.
141
end.