home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / Runimage / Delphi50 / Demos / ToolsAPI / ActionServices / frmmain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-11  |  3.1 KB  |  129 lines

  1. unit FrmMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ToolsAPI,
  7.   StdCtrls, ComCtrls, ToolWin, ImgList;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     ListBox1: TListBox;
  12.     ToolBar1: TToolBar;
  13.     ToolButton1: TToolButton;
  14.     ToolButton2: TToolButton;
  15.     ToolButton3: TToolButton;
  16.     ToolButton4: TToolButton;
  17.     ImageList1: TImageList;
  18.     ToolButton5: TToolButton;
  19.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  20.     procedure ToolButton1Click(Sender: TObject);
  21.     procedure ToolButton2Click(Sender: TObject);
  22.     procedure ToolButton3Click(Sender: TObject);
  23.     procedure FormShow(Sender: TObject);
  24.     procedure ToolButton4Click(Sender: TObject);
  25.     procedure ToolButton5Click(Sender: TObject);
  26.     procedure ListBox1DblClick(Sender: TObject);
  27.   private
  28.     { Private declarations }
  29.     procedure UpdateFileNames;
  30.   public
  31.     { Public declarations }
  32.   end;
  33.  
  34. var
  35.   Form2: TForm2 = nil;
  36.  
  37. implementation
  38.  
  39. {$R *.DFM}
  40.  
  41. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  42. begin
  43.   Action := caFree;
  44.   Form2 := nil;
  45. end;
  46.  
  47. procedure TForm2.ToolButton1Click(Sender: TObject);
  48. begin
  49.   with TOpenDialog.Create(nil) do
  50.   begin
  51.     Filter := 'Delphi files|*.bpg;*.dpr;*.dpk;*.pas|All files (*.*)|*.*';
  52.     if Execute then
  53.     begin
  54.       (BorlandIDEServices as IOTAActionServices).OpenFile(FileName);
  55.       UpdateFileNames;
  56.     end;
  57.     Free;
  58.   end;
  59. end;
  60.  
  61. procedure TForm2.ToolButton2Click(Sender: TObject);
  62. begin
  63.   (BorlandIDEServices as IOTAActionServices).CloseFile(ListBox1.Items[ListBox1.ItemIndex]);
  64.   UpdateFileNames;
  65. end;
  66.  
  67. procedure TForm2.ToolButton3Click(Sender: TObject);
  68. begin
  69.   (BorlandIDEServices as IOTAActionServices).SaveFile(ListBox1.Items[ListBox1.ItemIndex]);
  70.   UpdateFileNames;
  71. end;
  72.  
  73. procedure TForm2.FormShow(Sender: TObject);
  74. begin
  75.   UpdateFileNames;
  76. end;
  77.  
  78. procedure TForm2.UpdateFileNames;
  79. var
  80.   Count: Integer;
  81.   i: Integer;
  82.  
  83. begin
  84.   ListBox1.Items.Clear;
  85.   Count := (BorlandIDEServices as IOTAModuleServices).ModuleCount;
  86.   for i := 0 to Count-1 do
  87.     ListBox1.Items.Add((BorlandIDEServices as IOTAModuleServices).Modules[i].FileName);
  88.  
  89.   ListBox1.ItemIndex := 0;
  90. end;
  91.  
  92. procedure TForm2.ToolButton4Click(Sender: TObject);
  93. begin
  94.   (BorlandIDEServices as IOTAActionServices).ReloadFile(ListBox1.Items[ListBox1.ItemIndex]);
  95.   UpdateFileNames;
  96. end;
  97.  
  98. procedure TForm2.ToolButton5Click(Sender: TObject);
  99. resourcestring
  100.   sNewGroup = 'Create a new group?';
  101.  
  102. var
  103.   NewGroup: Boolean;
  104.   
  105. begin
  106.   NewGroup := False;
  107.   
  108.   with TOpenDialog.Create(nil) do
  109.   begin
  110.     Filter := 'Delphi project files|*.bpg;*.dpr;*.dpk|All files (*.*)|*.*';
  111.  
  112.     if Execute then
  113.     begin
  114.       if MessageDlg(sNewGroup, mtInformation, [mbYes, mbNo], 0) = mrYes then
  115.         NewGroup := True;
  116.       (BorlandIDEServices as IOTAActionServices).OpenProject(FileName, NewGroup);
  117.       UpdateFileNames;
  118.     end;
  119.   end;
  120. end;
  121.  
  122. procedure TForm2.ListBox1DblClick(Sender: TObject);
  123. begin
  124.   (BorlandIDEServices as IOTAActionServices).OpenFile(ListBox1.Items[ListBox1.ItemIndex]);
  125.   UpdateFileNames;
  126. end;
  127.  
  128. end.
  129.