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