Delphi 在组合框列表项中插入配置

Delphi 在组合框列表项中插入配置,delphi,delphi-7,delphi-2010,Delphi,Delphi 7,Delphi 2010,创建一个新项目。 我在项目中插入一个组合框 在项目中添加一个编辑框。 然后我在组合框中找到一个字符串项 项目列表 server 1 au server 2 uk server 3 my 在组合框中生成字符串后,在组合框中形成列表。 我只想在字符串中添加一个配置。 就像我在编辑框组合框中选择服务器1 au一样,服务器地址显示为ns.au.server.com ns.au.server.com服务器地址->字符串到服务器1 au 组合框1->选择字符串项->服务器1 au editbox1然后显示

创建一个新项目。 我在项目中插入一个组合框 在项目中添加一个编辑框。 然后我在组合框中找到一个字符串项 项目列表

server 1 au
server 2 uk
server 3 my
在组合框中生成字符串后,在组合框中形成列表。 我只想在字符串中添加一个配置。 就像我在编辑框组合框中选择服务器1 au一样,服务器地址显示为ns.au.server.com

ns.au.server.com服务器地址->字符串到服务器1 au

组合框1->选择字符串项->服务器1 au


editbox1然后显示地址ns.au.server.com

一种方法是定义一个类,该类包含服务器的名称和配置字符串,如下所示:-

Type
  TServer = Class
  Private
    FName : String;
    FConfig : String;
  Public
    Property Name : String Read FName Write FName;
    Property Config : String Read FConfig Write FConfig;
  End;
Var
  lItem : TServer;
Begin
  lItem := TServer.Create;
  lItem.Name := 'Server 1 AU';
  lItem.Config := 'ns.au.server.com';
  ComboBox1.Items.AddObject(lItem.Name, lItem);
// Add more as required.
End;
然后,您可以创建对象的实例,并使用
项的
添加对象
方法将它们添加到组合框中,如下所示:-

Type
  TServer = Class
  Private
    FName : String;
    FConfig : String;
  Public
    Property Name : String Read FName Write FName;
    Property Config : String Read FConfig Write FConfig;
  End;
Var
  lItem : TServer;
Begin
  lItem := TServer.Create;
  lItem.Name := 'Server 1 AU';
  lItem.Config := 'ns.au.server.com';
  ComboBox1.Items.AddObject(lItem.Name, lItem);
// Add more as required.
End;
然后在组合框的
OnChange
事件中,您可以编写:-

Var
  lIndex : Integer;
Begin
  lIndex := ComboBox1.ItemIndex;
  If (lIndex <> -1) Then
    Edit1.Text := TServer(ComboBox1.Items.Objects[lIndex]).Config;
End;
Var
lIndex:整数;
开始
lIndex:=ComboBox1.ItemIndex;
如果(林德克斯-1)那么
Edit1.Text:=TServer(ComboBox1.Items.Objects[lIndex]).Config;
结束;

您所要求的功能可通过TStrings名称-值对获得

type
  TFormMain = class(TForm)
    ComboBox1: TComboBox;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private

  public
    FServerConfig : TStrings;
  end;

var
  FormMain: TFormMain;

implementation
{$R *.dfm}

procedure TFormMain.FormCreate(Sender: TObject);
var i : integer;
begin
  FServerConfig := TStringList.Create;

  //Add Name = Value pairs
  FServerConfig.Append('Server 1 AU=ns.au.server.com');
  FServerConfig.Append('Server 2 UK=ns.uk.server.com');
  FServerConfig.Append('Server 3 MY=ns.my.server.com');

  for i := 0 to FServerConfig.Count - 1 do
    ComboBox1.Items.Append(FServerConfig. Names[i]);
end;

procedure TFormMain.ComboBox1Change(Sender: TObject);
begin
  Edit1.Text := FServerConfig.Values[ComboBox1.Text];
end;