Rev 80 | Rev 82 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 80 | Rev 81 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | {$LEGACYIFEND ON} |
6 | {$LEGACYIFEND ON} |
7 | {$IFEND} |
7 | {$IFEND} |
8 | 8 | ||
9 | {$INCLUDE 'UserDetect2.inc'} |
9 | {$INCLUDE 'UserDetect2.inc'} |
10 | 10 | ||
- | 11 | {$WARN UNSAFE_CODE OFF} |
|
- | 12 | {$WARN UNSAFE_TYPE OFF} |
|
- | 13 | {$WARN UNSAFE_CAST OFF} |
|
- | 14 | ||
11 | uses |
15 | uses |
12 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
16 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
13 | Dialogs, StdCtrls, Grids, ValEdit, UD2_Obj, ComCtrls, ImgList, ExtCtrls, |
17 | Dialogs, StdCtrls, Grids, ValEdit, UD2_Obj, ComCtrls, ImgList, ExtCtrls, |
14 | CommCtrl, Menus, VTSListView, VTSCompat; |
18 | CommCtrl, Menus, VTSListView, VTSCompat; |
15 | 19 | ||
Line 58... | Line 62... | ||
58 | CopyTaskDefinitionExample1: TMenuItem; |
62 | CopyTaskDefinitionExample1: TMenuItem; |
59 | Button3: TButton; |
63 | Button3: TButton; |
60 | VersionLabel: TLabel; |
64 | VersionLabel: TLabel; |
61 | LoadedPluginsPopupMenu: TPopupMenu; |
65 | LoadedPluginsPopupMenu: TPopupMenu; |
62 | MenuItem1: TMenuItem; |
66 | MenuItem1: TMenuItem; |
- | 67 | Panel2: TPanel; |
|
- | 68 | Image2: TImage; |
|
63 | procedure FormDestroy(Sender: TObject); |
69 | procedure FormDestroy(Sender: TObject); |
64 | procedure FormShow(Sender: TObject); |
70 | procedure FormShow(Sender: TObject); |
65 | procedure TasksListViewDblClick(Sender: TObject); |
71 | procedure TasksListViewDblClick(Sender: TObject); |
66 | procedure TasksListViewKeyPress(Sender: TObject; var Key: Char); |
72 | procedure TasksListViewKeyPress(Sender: TObject; var Key: Char); |
67 | procedure Button1Click(Sender: TObject); |
73 | procedure Button1Click(Sender: TObject); |
Line 83... | Line 89... | ||
83 | procedure LoadINITemplate; |
89 | procedure LoadINITemplate; |
84 | procedure LoadLoadedPluginList; |
90 | procedure LoadLoadedPluginList; |
85 | function GetIniFileName: string; |
91 | function GetIniFileName: string; |
86 | procedure DoRun(ShortTaskName: string); |
92 | procedure DoRun(ShortTaskName: string); |
87 | procedure CheckForErrors; |
93 | procedure CheckForErrors; |
- | 94 | public |
|
- | 95 | procedure Run; |
|
88 | end; |
96 | end; |
89 | 97 | ||
90 | var |
98 | var |
91 | UD2MainForm: TUD2MainForm; |
99 | UD2MainForm: TUD2MainForm; |
92 | 100 | ||
Line 123... | Line 131... | ||
123 | 131 | ||
124 | function TUD2MainForm.GetIniFileName: string; |
132 | function TUD2MainForm.GetIniFileName: string; |
125 | resourcestring |
133 | resourcestring |
126 | LNG_FILE_NOT_FOUND = 'File "%s" not found.'; |
134 | LNG_FILE_NOT_FOUND = 'File "%s" not found.'; |
127 | begin |
135 | begin |
128 | if ParamCount >= 1 then |
136 | if (ParamCount >= 1) and not CheckBoolParam(1, 'C') then |
129 | begin |
137 | begin |
130 | if FileExists(ParamStr(1)) then |
138 | if FileExists(ParamStr(1)) then |
131 | begin |
139 | begin |
132 | result := ParamStr(1); |
140 | result := ParamStr(1); |
133 | end |
141 | end |
Line 220... | Line 228... | ||
220 | 228 | ||
221 | slCmds := TStringList.Create; |
229 | slCmds := TStringList.Create; |
222 | try |
230 | try |
223 | ud2.GetCommandList(ShortTaskName, slCmds); |
231 | ud2.GetCommandList(ShortTaskName, slCmds); |
224 | 232 | ||
225 | if (slCmds.Count = 0) and |
- | |
226 | ud2.ReadMetatagBool(ShortTaskName, |
- | |
227 | TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then |
233 | if (slCmds.Count = 0) and ud2.ReadMetatagBool(ShortTaskName, TagWarnIfNothingMatches, DefaultWarnIfNothingMatches) then |
228 | begin |
234 | begin |
229 | MessageDlg(LNG_NOTHING_MATCHES, mtWarning, [mbOK], 0); |
235 | MessageDlg(LNG_NOTHING_MATCHES, mtWarning, [mbOK], 0); |
230 | ExitCode := EXITCODE_TASK_NOTHING_MATCHES; |
236 | ExitCode := EXITCODE_TASK_NOTHING_MATCHES; |
231 | end; |
237 | end; |
232 | 238 | ||
233 | for i := 0 to slCmds.Count-1 do |
239 | for i := 0 to slCmds.Count-1 do |
234 | begin |
240 | begin |
235 | cmd := slCmds.Strings[i]; |
241 | cmd := slCmds.Strings[i]; |
236 | if cmd = '' then continue; |
242 | if cmd = '' then continue; |
237 | UD2_RunCMD(cmd, SW_NORMAL); // Idea: let SW_NORMAL be configurable by the user? |
243 | UD2_RunCMD(cmd, SW_NORMAL); // Idea: Let SW_NORMAL be configurable by the user? |
238 | end; |
244 | end; |
239 | finally |
245 | finally |
240 | slCmds.Free; |
246 | slCmds.Free; |
241 | end; |
247 | end; |
242 | end; |
248 | end; |
Line 350... | Line 356... | ||
350 | LoadedPluginsListView.Columns.Items[i].Width := LVSCW_AUTOSIZE_USEHEADER; |
356 | LoadedPluginsListView.Columns.Items[i].Width := LVSCW_AUTOSIZE_USEHEADER; |
351 | end; |
357 | end; |
352 | end; |
358 | end; |
353 | 359 | ||
354 | procedure TUD2MainForm.FormShow(Sender: TObject); |
360 | procedure TUD2MainForm.FormShow(Sender: TObject); |
355 | resourcestring |
- | |
356 | LNG_SYNTAX = 'Syntax: %s [TaskDefinitionFile [TaskName]]'; |
- | |
357 | var |
- | |
358 | LoadedIniFile: string; |
- | |
359 | begin |
361 | begin |
360 | ExitCode := EXITCODE_OK; |
- | |
361 | - | ||
362 | // To avoid accidental changes from the GUI designer |
362 | // To avoid accidental change of the default tab from the IDE VCL Designer |
363 | PageControl1.ActivePage := TasksTabSheet; |
363 | PageControl1.ActivePage := TasksTabSheet; |
364 | - | ||
365 | if ((ParamCount = 1) and (ParamStr(1) = '/?')) or (ParamCount >= 3) then |
- | |
366 | begin |
- | |
367 | ExitCode := EXTICODE_SYNTAX_ERROR; |
- | |
368 | MessageDlg(Format(LNG_SYNTAX, [GetOwnCmdName]), mtInformation, [mbOK], 0); |
- | |
369 | Close; |
- | |
370 | Exit; |
- | |
371 | end; |
- | |
372 | - | ||
373 | LoadedIniFile := GetIniFileName; |
- | |
374 | if LoadedIniFile = '' then |
- | |
375 | begin |
- | |
376 | Close; |
- | |
377 | Exit; |
- | |
378 | end; |
- | |
379 | ud2 := TUD2.Create(LoadedIniFile); |
- | |
380 | - | ||
381 | ud2.HandlePluginDir('', '*.smp'); |
- | |
382 | ud2.HandlePluginDir('Plugins', '*.smp'); |
- | |
383 | ud2.HandlePluginDir('Plugins', '*.dll'); |
- | |
384 | - | ||
385 | if ParamCount >= 2 then |
- | |
386 | begin |
- | |
387 | DoRun(ParamStr(2)); |
- | |
388 | Close; |
- | |
389 | Exit; |
- | |
390 | end |
- | |
391 | else |
- | |
392 | begin |
- | |
393 | LoadTaskList; |
- | |
394 | LoadDetectedIDs; |
- | |
395 | LoadINITemplate; |
- | |
396 | LoadLoadedPluginList; |
- | |
397 | CheckForErrors; |
- | |
398 | end; |
- | |
399 | end; |
364 | end; |
400 | 365 | ||
401 | procedure TUD2MainForm.TasksListViewDblClick(Sender: TObject); |
366 | procedure TUD2MainForm.TasksListViewDblClick(Sender: TObject); |
402 | var |
367 | var |
403 | obj: TUD2ListViewEntry; |
368 | obj: TUD2ListViewEntry; |
Line 516... | Line 481... | ||
516 | begin |
481 | begin |
517 | s := '; ' + LoadedPluginsListView.Selected.SubItems.Strings[6]; |
482 | s := '; ' + LoadedPluginsListView.Selected.SubItems.Strings[6]; |
518 | Clipboard.AsText := s; |
483 | Clipboard.AsText := s; |
519 | end; |
484 | end; |
520 | 485 | ||
- | 486 | procedure TUD2MainForm.Run; |
|
- | 487 | resourcestring |
|
- | 488 | LNG_SYNTAX = 'Syntax: %s [TaskDefinitionFile [/T TaskName] | /C IdentificationTerm [Command] | /?]'; |
|
- | 489 | var |
|
- | 490 | LoadedIniFile: string; |
|
- | 491 | begin |
|
- | 492 | ExitCode := EXITCODE_OK; |
|
- | 493 | ||
- | 494 | if ((ParamCount = 1) and CheckBoolParam(1, '?')) or |
|
- | 495 | (CheckBoolParam(2, 'T') and (ParamCount > 3)) or |
|
- | 496 | (CheckBoolParam(1, 'C') and (ParamCount > 3)) or |
|
- | 497 | (not CheckBoolParam(2, 'T') and not CheckBoolParam(1, 'C') and (ParamCount > 1)) then |
|
- | 498 | begin |
|
- | 499 | ExitCode := EXITCODE_SYNTAX_ERROR; |
|
- | 500 | MessageDlg(Format(LNG_SYNTAX, [GetOwnCmdName]), mtInformation, [mbOK], 0); |
|
- | 501 | ||
- | 502 | Visible := false; |
|
- | 503 | Close; |
|
- | 504 | Exit; |
|
- | 505 | end; |
|
- | 506 | ||
- | 507 | LoadedIniFile := GetIniFileName; |
|
- | 508 | if LoadedIniFile = '' then |
|
- | 509 | begin |
|
- | 510 | Visible := false; |
|
- | 511 | Close; |
|
- | 512 | Exit; |
|
- | 513 | end; |
|
- | 514 | ud2 := TUD2.Create(LoadedIniFile); |
|
- | 515 | ||
- | 516 | ud2.HandlePluginDir('', '*.smp'); |
|
- | 517 | ud2.HandlePluginDir('Plugins', '*.smp'); |
|
- | 518 | ud2.HandlePluginDir('Plugins', '*.dll'); |
|
- | 519 | ||
- | 520 | if CheckBoolParam(1, 'C') then |
|
- | 521 | begin |
|
- | 522 | if ud2.FulfilsEverySubterm(ParamStr(2)) then |
|
- | 523 | begin |
|
- | 524 | ExitCode := EXITCODE_OK; |
|
- | 525 | ||
- | 526 | if ParamStr(3) <> '' then UD2_RunCMD(ParamStr(3), SW_NORMAL); // Idea: SW_NORMAL changeable via parameter |
|
- | 527 | end |
|
- | 528 | else |
|
- | 529 | begin |
|
- | 530 | ExitCode := EXITCODE_TASK_NOTHING_MATCHES; |
|
- | 531 | end; |
|
- | 532 | ||
- | 533 | Visible := false; |
|
- | 534 | Close; |
|
- | 535 | Exit; |
|
- | 536 | end |
|
- | 537 | else if CheckBoolParam(2, 'T') then |
|
- | 538 | begin |
|
- | 539 | DoRun(ParamStr(3)); |
|
- | 540 | ||
- | 541 | Visible := false; |
|
- | 542 | Close; |
|
- | 543 | Exit; |
|
- | 544 | end |
|
- | 545 | else |
|
- | 546 | begin |
|
- | 547 | LoadTaskList; |
|
- | 548 | LoadDetectedIDs; |
|
- | 549 | LoadINITemplate; |
|
- | 550 | LoadLoadedPluginList; |
|
- | 551 | CheckForErrors; |
|
- | 552 | ||
- | 553 | Visible := true; |
|
- | 554 | Exit; |
|
- | 555 | end; |
|
- | 556 | end; |
|
- | 557 | ||
521 | end. |
558 | end. |