RefForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:6k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit RefForm;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
  5.   ComCtrls, Menus, ImgList;
  6. type
  7.   TForm1 = class(TForm)
  8.     ListView1: TListView;
  9.     MainMenu1: TMainMenu;
  10.     File1: TMenuItem;
  11.     Exit1: TMenuItem;
  12.     View1: TMenuItem;
  13.     LargeIcons1: TMenuItem;
  14.     SmallIcons1: TMenuItem;
  15.     List1: TMenuItem;
  16.     Details1: TMenuItem;
  17.     Help1: TMenuItem;
  18.     About1: TMenuItem;
  19.     N1: TMenuItem;
  20.     CheckBoxes1: TMenuItem;
  21.     AddItems1: TMenuItem;
  22.     N2: TMenuItem;
  23.     procedure FormCreate(Sender: TObject);
  24.     procedure LargeIcons1Click(Sender: TObject);
  25.     procedure SmallIcons1Click(Sender: TObject);
  26.     procedure List1Click(Sender: TObject);
  27.     procedure Details1Click(Sender: TObject);
  28.     procedure Exit1Click(Sender: TObject);
  29.     procedure About1Click(Sender: TObject);
  30.     procedure CheckBoxes1Click(Sender: TObject);
  31.     procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
  32.     procedure ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
  33.       Data: Integer; var Compare: Integer);
  34.     procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
  35.       Shift: TShiftState; X, Y: Integer);
  36.     procedure FormDestroy(Sender: TObject);
  37.     procedure AddItems1Click(Sender: TObject);
  38.     procedure ListView1DblClick(Sender: TObject);
  39.   public
  40.     { Public declarations }
  41.   private
  42.     nSortCol: Integer;
  43.   end;
  44. var
  45.   Form1: TForm1;
  46. implementation
  47. {$R *.DFM}
  48. {$R BITMAPS.RES}
  49. uses
  50.   StdCtrls, NewDial;
  51. procedure TForm1.FormCreate(Sender: TObject);
  52. var
  53.   ImageList1, ImageList2: TImageList;
  54.   List: TStringList;
  55.   NewItem: TListItem;
  56.   I: Integer;
  57. begin
  58.   // avoid warning
  59.   NewItem := nil;
  60.   // load the large images
  61.   ImageList1 := TImageList.Create (Self);
  62.   ImageList1.Height := 32;
  63.   ImageList1.Width := 32;
  64.   ImageList1.ResourceLoad (rtBitmap,
  65.     'LargeImages', clWhite);
  66.   ListView1.LargeImages := ImageList1;
  67.   // load the small images
  68.   ImageList2 := TImageList.Create (Self);
  69.   ImageList2.ResourceLoad (rtBitmap,
  70.     'SmallImages', clWhite);
  71.   ListView1.SmallImages := ImageList2;
  72.   // load the items
  73.   ListView1.Items.Clear;
  74.   List := TStringList.Create;
  75.   try
  76.     List.LoadFromFile (
  77.       ExtractFilePath (Application.ExeName) + 'Items.txt');
  78.     for I := 0 to List.Count - 1 do
  79.       if List [I][1] = #9 then
  80.         NewItem.SubItems.Add (Trim (List [I]))
  81.       else if List [I][1] = '@' then
  82.         NewItem.ImageIndex := StrToIntDef (List [I][2], 0)
  83.       else
  84.       begin
  85.         // a new item
  86.         NewItem := ListView1.Items.Add;
  87.         NewItem.Caption := List [I];
  88.       end;
  89.   finally
  90.     List.Free;
  91.   end;
  92. end;
  93. procedure TForm1.LargeIcons1Click(Sender: TObject);
  94. begin
  95.   ListView1.ViewStyle := vsIcon;
  96.   LargeIcons1.Checked := True;
  97. end;
  98. procedure TForm1.SmallIcons1Click(Sender: TObject);
  99. begin
  100.   ListView1.ViewStyle := vsSmallIcon;
  101.   SmallIcons1.Checked := True;
  102. end;
  103. procedure TForm1.List1Click(Sender: TObject);
  104. begin
  105.   ListView1.ViewStyle := vsList;
  106.   List1.Checked := True;
  107. end;
  108. procedure TForm1.Details1Click(Sender: TObject);
  109. begin
  110.   ListView1.ViewStyle := vsReport;
  111.   Details1.Checked := True;
  112. end;
  113. procedure TForm1.Exit1Click(Sender: TObject);
  114. begin
  115.   Close;
  116. end;
  117. procedure TForm1.About1Click(Sender: TObject);
  118. begin
  119.   MessageDlg ('Reference List (ListView example)' +
  120.     #13'from "Mastering Delphi"'#13'author: Marco Cant