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

📄 ducustomcolproperties.pas

📁 企业进销存管理系统
💻 PAS
字号:
unit duCustomColProperties;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TypInfo, tsGrid, Registry
  {$IFDEF TSVER_V6}, Variants {$ENDIF};

type
  TdgCustomColProperties = class(TForm)
    Panel1: TPanel;
    btOk: TButton;
    btCancel: TButton;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    Panel3: TPanel;
    Label1: TLabel;
    gbColProperties: TGroupBox;
    lbColProperties: TListBox;
    lbCustomColProperties: TListBox;
    Label2: TLabel;
    Panel4: TPanel;
    btPick: TButton;
    btUnpick: TButton;
    procedure btPickClick(Sender: TObject);
    procedure btUnpickClick(Sender: TObject);
    procedure lbColPropertiesDblClick(Sender: TObject);
    procedure lbCustomColPropertiesDblClick(Sender: TObject);
  private
    { Private declarations }
    FCol : TtsCol;

    procedure SaveCustomProperties;
    procedure LoadColProperties;
    procedure LoadCustomProperties;
    procedure AddProperty;
    procedure RemoveProperty;
  public
    { Public declarations }
    procedure Edit(aCol : TtsCol);
  end;

var
  dgCustomColProperties: TdgCustomColProperties;

implementation

{$R *.dfm}

procedure TdgCustomColProperties.Edit(aCol : TtsCol);
begin
  FCol := aCol;
  LoadCustomProperties;
  LoadColProperties;
  if ShowModal = mrOk then
     SaveCustomProperties;
end;

procedure TdgCustomColProperties.LoadColProperties;
var
  PropertyIndex,
  PropertyCount : Integer;
  PropList      : TPropList;
  sName : String;
begin
  lbColProperties.Items.Clear;
  PropertyCount := GetPropList(FCol.ClassInfo, tkProperties, @PropList) ;
  for PropertyIndex := 0 to PropertyCount -1 do
  begin
    sName := PropList[PropertyIndex].Name;
    if lbCustomColProperties.Items.IndexOf(sName) = -1 then
       lbColProperties.Items.Add(sName);
  end;
end;

procedure TdgCustomColProperties.LoadCustomProperties;
var Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\ObjectSight\TopGrid\CustomColProperties', True);
    lbCustomColProperties.Items.CommaText := Reg.ReadString('CustomColProperties');
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;

procedure TdgCustomColProperties.SaveCustomProperties;
var Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('\Software\ObjectSight\TopGrid\CustomColProperties', True);
    Reg.WriteString('CustomColProperties', lbCustomColProperties.Items.CommaText);
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;

procedure TdgCustomColProperties.AddProperty;
var i : integer;
begin
  if lbColProperties.ItemIndex >= 0 then
  begin
    lbCustomColProperties.ItemIndex := lbCustomColProperties.Items.Add(lbColProperties.Items[lbColProperties.ItemIndex]);
    i := lbColProperties.ItemIndex;
    lbColProperties.Items.Delete(i);
    if i < lbColProperties.Items.Count then
       lbColProperties.ItemIndex := i
    else
       lbColProperties.ItemIndex := i - 1;
  end;
end;

procedure TdgCustomColProperties.RemoveProperty;
var i : integer;
begin
  if lbCustomColProperties.ItemIndex >= 0 then
  begin
    lbColProperties.ItemIndex := lbColProperties.Items.Add(lbCustomColProperties.Items[lbCustomColProperties.ItemIndex]);
    i := lbCustomColProperties.ItemIndex;
    lbCustomColProperties.Items.Delete(i);
    if i < lbCustomColProperties.Items.Count then
       lbCustomColProperties.ItemIndex := i
    else
       lbCustomColProperties.ItemIndex := i - 1;
  end;
end;

procedure TdgCustomColProperties.btPickClick(Sender: TObject);
begin
  AddProperty;
end;

procedure TdgCustomColProperties.btUnpickClick(Sender: TObject);
begin
  RemoveProperty;
end;

procedure TdgCustomColProperties.lbColPropertiesDblClick(
  Sender: TObject);
begin
  AddProperty;
end;

procedure TdgCustomColProperties.lbCustomColPropertiesDblClick(
  Sender: TObject);
begin
  RemoveProperty;
end;

end.

⌨️ 快捷键说明

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