⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.pas

📁 delphi com深入编程,非常有收藏价值
💻 PAS
字号:
unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ExtCtrls,
{$IFDEF VER100}
  PropSets,  // For Delphi 3
{$ENDIF}
  PropertySet, ActiveX;

type
  TfrmMain = class(TForm)
    pnlBottom: TPanel;
    pnlClient: TPanel;
    Label1: TLabel;
    listProperties: TListView;
    btnClose: TButton;
    Label2: TLabel;
    Label3: TLabel;
    ecPropertyName: TEdit;
    ecValue: TEdit;
    btnDelete: TButton;
    btnSet: TButton;
    btnOpen: TButton;
    OpenDialog1: TOpenDialog;
    PropertySet1: TPropertySet;
    procedure btnOpenClick(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure btnSetClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure PropertySet1EnumProperties(Sender: TObject;
      PropertyName: String; PropertyID: Integer;
      PropertyVariant: tagPROPVARIANT);
    procedure listPropertiesClick(Sender: TObject);
  private
    procedure LoadPropertyList;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

procedure TfrmMain.LoadPropertyList;
begin
  listProperties.Items.Clear;

  PropertySet1.Enumerate;
end;

procedure TfrmMain.btnOpenClick(Sender: TObject);
begin
  if OpenDialog1.Execute then begin
    PropertySet1.Close;

    PropertySet1.FileName := OpenDialog1.FileName;
    PropertySet1.StreamGUID := FMTID_UserDefinedProperties;
    PropertySet1.Open;

    listProperties.Enabled := True;
    ecPropertyName.Enabled := True;
    ecValue.Enabled := True;
    btnSet.Enabled := True;
    btnDelete.Enabled := True;

    LoadPropertyList;
  end;
end;

procedure TfrmMain.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.listPropertiesClick(Sender: TObject);
var
  LI: TListItem;
begin
  LI := listProperties.Selected;

  if LI <> nil then begin
    ecPropertyName.Text := LI.Caption;
    ecValue.Text := LI.SubItems[0];
  end;
end;

procedure TfrmMain.btnSetClick(Sender: TObject);
begin
  PropertySet1.SetProperty(ecPropertyName.Text, ecValue.Text);

  LoadPropertyList;
end;

procedure TfrmMain.btnDeleteClick(Sender: TObject);
begin
  PropertySet1.DeleteProperty(ecPropertyName.Text);

  LoadPropertyList;
end;

procedure TfrmMain.PropertySet1EnumProperties(Sender: TObject;
  PropertyName: String; PropertyID: Integer;
  PropertyVariant: tagPROPVARIANT);
var
  LI: TListItem;
begin
  if PropertyVariant.vt = VT_LPSTR then begin
    LI := listProperties.Items.Add;
    LI.Caption := PropertyName;
    LI.SubItems.Add(PropertyVariant.pszVal);
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -