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

📄 rsgcombobox.pas

📁 p2pdbanywhere 可以通过之udp方式远程连接数据库的组件,这个组件非常好,是Delphi7,9,2006能够使用,包含源码.
💻 PAS
字号:
unit RsgComboBox;

interface

uses
  SysUtils, Classes, Controls, StdCtrls,Db,dbctrls;

type
  TRsgComboBox = class(TComboBox)
  private
    FKeyField:string;
    FListField:string;
    //FShowKey:boolean;
    FDataSet:TDataSet;
    KeyFieldList:Tstrings;
    ListFieldList:Tstrings;
    //FKeyText:string;
    { Private declarations }
    procedure setkey(value:string);
    procedure setlist(value:string);
    procedure setdataset(Value:Tdataset);
    //procedure SetShowKey(value:boolean);
  protected
    { Protected declarations }
  public
    destructor Destroy; override;
    constructor Create(AOwner: TComponent); override;
    function GetKeyText:string;
    function GetListText:string;
    { Public declarations }
  published
    property KeyField:string read FKeyField write setkey;
    property ListField:string read FListField write setList;
    property DataSet:TDataSet read FDataSet write setDataSet;
    //property ShowKey:Boolean read FShowKey write setShowKey;
    //property KeyText:string read FKeyText;
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DbAnyWhere', [TRsgComboBox]);
end;
destructor TRsgComboBox.Destroy;
begin
  inherited Destroy;
  FreeAndNil(KeyFieldList);
  FreeAndNil(ListFieldList);
end;
constructor TRsgComboBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  KeyFieldList:=TstringList.Create;
  ListFieldList:=TstringList.Create;
  //FShowKey:=false;
end;
function TRsgComboBox.GetKeyText;
begin
  if self.ItemIndex=-1 then
  begin
    result:='';
    exit;
  end;
  result:=KeyFieldList.Strings[self.itemindex];
end;
function TRsgComboBox.GetListText;
begin
  if self.ItemIndex=-1 then
  begin
    result:='';
    exit;
  end;
  result:=ListFieldList.Strings[self.itemindex];
end;
procedure TRsgComboBox.setkey(value:string);
begin
  FKeyField:=Value;
end;
procedure TRsgComboBox.setlist(value:string);
begin
  FListField:=Value;
end;
procedure TRsgComboBox.setdataset(Value:Tdataset);
begin
  if value=nil then exit;
  if not value.Active then exit;
  if value.RecordCount=0 then exit;
  FDataSet:=value;
  //显示列表内容
  value.First;
  value.DisableControls;
  keyfieldlist.Clear;
  listfieldlist.Clear;
  while not value.Eof do
  begin
    if length(trim(FKeyField))<>0 then
       KeyFieldList.Add(value.fieldbyname(FKeyField).AsString);
    if length(trim(FListField))<>0 then
    ListFieldList.add(value.fieldbyname(FListField).AsString);
    value.Next;
  end;
  value.EnableControls;
  self.Items.Assign(ListFieldList);
end;
{procedure TRsgComboBox.SetShowKey(value:boolean);
var
   Cur_index:integer;
begin
  if length(trim(Keyfieldlist.Text))=0 then exit;
  if length(trim(Listfieldlist.Text))=0 then exit;
  cur_index:=self.ItemIndex;
  if value then
  begin
    self.Items.Assign(KeyFieldList);
    self.ItemIndex:=cur_index;
  end else
  begin
    self.Items.Assign(ListFieldList);
    self.ItemIndex:=cur_index;
  end;
end;  }

end.

⌨️ 快捷键说明

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