Subversion Repositories userdetect2

Rev

Rev 73 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  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
  40.   UD2_Utils, UD2_Main, ShellAPI;
  41.  
  42. procedure TUD2TaskPropertiesForm.LoadExecutableFilesList;
  43. resourcestring
  44.   LNG_RIOD = '%s [Run in own directory]';
  45. var
  46.   sl: TStringList;
  47.   i: integer;
  48.   s: string;
  49. begin
  50.   //fud2.GetCommandList(AShortTaskName, ListBox1.Items);
  51.  
  52.   ListBox1.Clear;
  53.   sl := TStringList.Create;
  54.   try
  55.     fud2.GetCommandList(FShortTaskName, sl);
  56.     for i := 0 to sl.Count-1 do
  57.     begin
  58.       s := sl.Strings[i];
  59.       if Copy(s, 1, Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX)) = UD2_RUN_IN_OWN_DIRECTORY_PREFIX then
  60.       begin
  61.         s := Copy(s, 1+Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX), Length(s)-Length(UD2_RUN_IN_OWN_DIRECTORY_PREFIX));
  62.         s := Format(LNG_RIOD, [s]);
  63.       end;
  64.       ListBox1.Items.Add(s);
  65.     end;
  66.   finally
  67.     sl.Free;
  68.   end;
  69. end;
  70.  
  71. procedure TUD2TaskPropertiesForm.LoadIcon;
  72. var
  73.   ico: TIcon;
  74.   icoSplit: TIconFileIdx;
  75.   iconString: string;
  76. begin
  77.   iconString := fud2.ReadMetatagString(FShortTaskName, UD2_Main.TagIcon, '');
  78.   if iconString <> '' then
  79.   begin
  80.     icoSplit := SplitIconString(iconString);
  81.     ico := TIcon.Create;
  82.     try
  83.       ico.Handle := ExtractIcon(Application.Handle, PChar(icoSplit.FileName), icoSplit.IconIndex);
  84.       Image1.Picture.Icon.Assign(ico);
  85.     finally
  86.       ico.Free;
  87.     end;
  88.   end
  89.   else
  90.   begin
  91.     UD2MainForm.TasksImageList.GetIcon(0, Image1.Picture.Icon);
  92.   end;
  93. end;
  94.  
  95. constructor TUD2TaskPropertiesForm.Create(AOwner: TComponent; AUD2: TUD2; AShortTaskName: string);
  96. resourcestring
  97.   LNG_TASK_PROPS = 'Task properties of "%s"';
  98. var
  99.   Description: string;
  100. begin
  101.   inherited Create(AOwner);
  102.   FUD2 := AUD2;
  103.   FShortTaskName := AShortTaskName;
  104.  
  105.   FUD2.IniFile.ReadSectionValues(AShortTaskName, ValueListEditor1.Strings);
  106.  
  107.   Description := FUD2.GetTaskName(AShortTaskName);
  108.   Caption := Format(LNG_TASK_PROPS, [Description]);
  109.   LabeledEdit1.Text := AShortTaskName;
  110.   LoadExecutableFilesList;
  111.   LoadIcon;
  112. end;
  113.  
  114. procedure TUD2TaskPropertiesForm.Button2Click(Sender: TObject);
  115. begin
  116.   Close;
  117. end;
  118.  
  119. procedure TUD2TaskPropertiesForm.Button1Click(Sender: TObject);
  120. begin
  121.   UD2_RunCMD(fud2.IniFileName, SW_NORMAL);
  122. end;
  123.  
  124. end.
  125.