Subversion Repositories userdetect2

Rev

Rev 80 | Rev 82 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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