home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue40 / COMCorn / ExtForm.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-11-12  |  1.2 KB  |  57 lines

  1. unit ExtForm;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  7.   ComCtrls, ImgList, Menus;
  8.  
  9. type
  10.   TMainForm = class(TForm)
  11.     ListView: TListView;
  12.     ImageList: TImageList;
  13.     procedure FormDestroy(Sender: TObject);
  14.     procedure ListViewMouseUp(Sender: TObject; Button: TMouseButton;
  15.       Shift: TShiftState; X, Y: Integer);
  16.   private
  17.     FShellView: TObject;
  18.   public
  19.     property ShellView: TObject read FShellView write FShellView;
  20.   end;
  21.  
  22. implementation
  23.  
  24. uses ViewObj, ActiveX, ShlObj;
  25.  
  26. {$R *.DFM}
  27.  
  28. { TMainForm }
  29.  
  30. procedure TMainForm.FormDestroy(Sender: TObject);
  31. var
  32.   Item: TListItem;
  33.   I: Integer;
  34.   M: IMalloc;
  35. begin
  36.   if SHGetMalloc(M) = S_OK then
  37.     with ListView do
  38.       for I := 0 to Items.Count - 1 do
  39.       begin
  40.         Item := Items[I];
  41.         if Item.Data <> nil then
  42.         begin
  43.           M.Free(Item.Data);
  44.           Item.Data := nil;
  45.         end;
  46.       end;
  47. end;
  48.  
  49. procedure TMainForm.ListViewMouseUp(Sender: TObject; Button: TMouseButton;
  50.   Shift: TShiftState; X, Y: Integer);
  51. begin
  52.   if Button = mbRight then
  53.     (ShellView as TViewObject).ContextMenu;
  54. end;
  55.  
  56. end.
  57.