Rev 82 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 82 | Rev 85 | ||
---|---|---|---|
1 | unit UD2_TaskProperties; |
1 | unit UD2_TaskProperties; |
2 | 2 | ||
3 | interface |
3 | interface |
4 | 4 | ||
5 | uses |
5 | uses |
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
7 | Dialogs, UD2_Obj, StdCtrls, ExtCtrls, Grids, ValEdit; |
7 | Dialogs, UD2_Obj, StdCtrls, ExtCtrls, Grids, ValEdit; |
8 | 8 | ||
9 | type |
9 | type |
10 | TUD2TaskPropertiesForm = class(TForm) |
10 | TUD2TaskPropertiesForm = class(TForm) |
11 | ValueListEditor1: TValueListEditor; |
11 | ValueListEditor1: TValueListEditor; |
12 | LabeledEdit1: TLabeledEdit; |
12 | LabeledEdit1: TLabeledEdit; |
13 | Image1: TImage; |
13 | Image1: TImage; |
14 | ListBox1: TListBox; |
14 | ListBox1: TListBox; |
15 | Label1: TLabel; |
15 | Label1: TLabel; |
16 | Button1: TButton; |
16 | Button1: TButton; |
17 | Label2: TLabel; |
17 | Label2: TLabel; |
18 | Button2: TButton; |
18 | Button2: TButton; |
19 | procedure Button2Click(Sender: TObject); |
19 | procedure Button2Click(Sender: TObject); |
20 | procedure Button1Click(Sender: TObject); |
20 | procedure Button1Click(Sender: TObject); |
21 | private |
21 | private |
22 | FUD2: TUD2; |
22 | FUD2: TUD2; |
23 | FShortTaskName: string; |
23 | FShortTaskName: string; |
24 | procedure LoadExecutableFilesList; |
24 | procedure LoadExecutableFilesList; |
25 | procedure LoadIcon; |
25 | procedure LoadIcon; |
26 | public |
26 | public |
27 | constructor Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); reintroduce; |
27 | constructor Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); reintroduce; |
28 | end; |
28 | end; |
29 | 29 | ||
30 | (* |
30 | (* |
31 | var |
31 | var |
32 | UD2TaskPropertiesForm: TTaskPropertiesForm; |
32 | UD2TaskPropertiesForm: TTaskPropertiesForm; |
33 | *) |
33 | *) |
34 | 34 | ||
35 | implementation |
35 | implementation |
36 | 36 | ||
37 | {$R *.dfm} |
37 | {$R *.dfm} |
38 | 38 | ||
39 | uses |
39 | uses |
40 | UD2_Utils, UD2_Main, ShellAPI; |
40 | UD2_Utils, UD2_Main, UD2_Parsing, ShellAPI; |
41 | 41 | ||
42 | procedure TUD2TaskPropertiesForm.LoadExecutableFilesList; |
42 | procedure TUD2TaskPropertiesForm.LoadExecutableFilesList; |
43 | resourcestring |
43 | resourcestring |
44 | LNG_RIOD = 'Run in own directory'; |
44 | LNG_RIOD = 'Run in own directory'; |
45 | LNG_ADMIN = 'Run as admin'; |
45 | LNG_ADMIN = 'Run as admin'; |
46 | var |
46 | var |
47 | sl: TStringList; |
- | |
48 | i: integer; |
47 | i: integer; |
49 | cmdLine, flags: string; |
48 | flags: string; |
- | 49 | cmds: TUD2CommandArray; |
|
- | 50 | cmd: TUD2Command; |
|
50 | begin |
51 | begin |
51 | //fud2.GetCommandList(AShortTaskName, ListBox1.Items); |
52 | //fud2.GetCommandList(AShortTaskName, ListBox1.Items); |
52 | 53 | ||
53 | ListBox1.Clear; |
54 | ListBox1.Clear; |
54 | sl := TStringList.Create; |
- | |
55 | try |
- | |
56 | fud2.GetCommandList(FShortTaskName, sl); |
55 | cmds := fud2.GetCommandList(FShortTaskName); |
- | 56 | ||
57 | for i := 0 to sl.Count-1 do |
57 | for i := Low(cmds) to High(cmds) do |
58 | begin |
58 | begin |
59 | cmdLine := sl.Strings[i]; |
59 | cmd := cmds[i]; |
- | 60 | ||
60 | flags := ''; |
61 | flags := ''; |
61 | 62 | ||
62 | if Pos(UD2_RUN_AS_ADMIN, cmdLine) >= 1 then |
63 | if cmd.runAsAdmin then |
63 | begin |
64 | begin |
64 | cmdLine := StringReplace(cmdLine, UD2_RUN_AS_ADMIN, '', [rfReplaceAll]); |
- | |
65 | if flags <> '' then flags := flags + ', '; |
65 | if flags <> '' then flags := flags + ', '; |
66 | flags := flags + LNG_ADMIN; |
66 | flags := flags + LNG_ADMIN; |
67 | end; |
67 | end; |
68 | 68 | ||
69 | if Pos(UD2_RUN_IN_OWN_DIRECTORY_PREFIX, cmdLine) >= 1 then |
69 | if cmd.runInOwnDirectory then |
70 | begin |
70 | begin |
71 | cmdLine := StringReplace(cmdLine, UD2_RUN_IN_OWN_DIRECTORY_PREFIX, '', [rfReplaceAll]); |
- | |
72 | if flags <> '' then flags := flags + ', '; |
71 | if flags <> '' then flags := flags + ', '; |
73 | flags := flags + LNG_RIOD; |
72 | flags := flags + LNG_RIOD; |
74 | end; |
73 | end; |
75 | 74 | ||
76 | if flags <> '' then |
75 | if flags <> '' then |
77 | begin |
76 | begin |
78 | flags := ' [' + flags + ']'; |
77 | flags := ' [' + flags + ']'; |
79 | end; |
78 | end; |
80 | 79 | ||
81 | ListBox1.Items.Add(cmdLine + flags); |
80 | ListBox1.Items.Add(cmd.executable + flags); |
82 | end; |
- | |
83 | finally |
- | |
84 | sl.Free; |
- | |
85 | end; |
81 | end; |
86 | end; |
82 | end; |
87 | 83 | ||
88 | procedure TUD2TaskPropertiesForm.LoadIcon; |
84 | procedure TUD2TaskPropertiesForm.LoadIcon; |
89 | var |
85 | var |
90 | ico: TIcon; |
86 | ico: TIcon; |
91 | icoSplit: TIconFileIdx; |
87 | icoSplit: TIconFileIdx; |
92 | iconString: string; |
88 | iconString: string; |
93 | begin |
89 | begin |
94 | iconString := fud2.ReadMetatagString(FShortTaskName, UD2_Main.TagIcon, ''); |
90 | iconString := fud2.ReadMetatagString(FShortTaskName, UD2_Main.TagIcon, ''); |
95 | if iconString <> '' then |
91 | if iconString <> '' then |
96 | begin |
92 | begin |
97 | icoSplit := SplitIconString(iconString); |
93 | icoSplit := SplitIconString(iconString); |
98 | ico := TIcon.Create; |
94 | ico := TIcon.Create; |
99 | try |
95 | try |
100 | ico.Handle := ExtractIcon(Application.Handle, PChar(icoSplit.FileName), icoSplit.IconIndex); |
96 | ico.Handle := ExtractIcon(Application.Handle, PChar(icoSplit.FileName), icoSplit.IconIndex); |
101 | Image1.Picture.Icon.Assign(ico); |
97 | Image1.Picture.Icon.Assign(ico); |
102 | finally |
98 | finally |
103 | ico.Free; |
99 | ico.Free; |
104 | end; |
100 | end; |
105 | end |
101 | end |
106 | else |
102 | else |
107 | begin |
103 | begin |
108 | UD2MainForm.TasksImageList.GetIcon(0, Image1.Picture.Icon); |
104 | UD2MainForm.TasksImageList.GetIcon(0, Image1.Picture.Icon); |
109 | end; |
105 | end; |
110 | end; |
106 | end; |
111 | 107 | ||
112 | constructor TUD2TaskPropertiesForm.Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); |
108 | constructor TUD2TaskPropertiesForm.Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string); |
113 | resourcestring |
109 | resourcestring |
114 | LNG_TASK_PROPS = 'Task properties of "%s"'; |
110 | LNG_TASK_PROPS = 'Task properties of "%s"'; |
115 | var |
111 | var |
116 | Description: string; |
112 | Description: string; |
117 | begin |
113 | begin |
118 | inherited Create(AOwner); |
114 | inherited Create(AOwner); |
119 | FUD2 := AUD2; |
115 | FUD2 := AUD2; |
120 | FShortTaskName := AShortTaskName; |
116 | FShortTaskName := AShortTaskName; |
121 | 117 | ||
122 | FUD2.IniFile.ReadSectionValues(AShortTaskName, ValueListEditor1.Strings); |
118 | FUD2.IniFile.ReadSectionValues(AShortTaskName, ValueListEditor1.Strings); |
123 | 119 | ||
124 | Description := FUD2.GetTaskName(AShortTaskName); |
120 | Description := FUD2.GetTaskName(AShortTaskName); |
125 | Caption := Format(LNG_TASK_PROPS, [Description]); |
121 | Caption := Format(LNG_TASK_PROPS, [Description]); |
126 | LabeledEdit1.Text := AShortTaskName; |
122 | LabeledEdit1.Text := AShortTaskName; |
127 | LoadExecutableFilesList; |
123 | LoadExecutableFilesList; |
128 | LoadIcon; |
124 | LoadIcon; |
129 | end; |
125 | end; |
130 | 126 | ||
131 | procedure TUD2TaskPropertiesForm.Button2Click(Sender: TObject); |
127 | procedure TUD2TaskPropertiesForm.Button2Click(Sender: TObject); |
132 | begin |
128 | begin |
133 | Close; |
129 | Close; |
134 | end; |
130 | end; |
135 | 131 | ||
136 | procedure TUD2TaskPropertiesForm.Button1Click(Sender: TObject); |
132 | procedure TUD2TaskPropertiesForm.Button1Click(Sender: TObject); |
- | 133 | var |
|
- | 134 | cmd: TUD2Command; |
|
137 | begin |
135 | begin |
- | 136 | cmd.executable := fud2.IniFileName; |
|
- | 137 | cmd.runAsAdmin := false; |
|
- | 138 | cmd.runInOwnDirectory := false; |
|
138 | UD2_RunCMD(fud2.IniFileName, SW_NORMAL); |
139 | cmd.windowMode := SW_NORMAL; |
- | 140 | UD2_RunCMD(cmd); |
|
139 | end; |
141 | end; |
140 | 142 | ||
141 | end. |
143 | end. |
142 | 144 |