如何使用TComboBoxEx.Data属性
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ComCtrls, DBCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
ComboBoxEx1: TComboBoxEx;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TComboExItemEx=class(TComboExItem)
public
value:string;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
cc:TComboExItem;
p:pointer;
begin
comboboxex1.Clear;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT jczbm, jczmc FROM a_dw');
adoquery1.Open;
adoquery1.First;
while not adoquery1.Eof do
begin
getmem(p,length(adoquery1.FieldByName('jczbm').AsString));
p:=pwidechar(adoquery1.FieldByName('jczbm').AsString);
cc:=comboboxex1.ItemsEx.Add();
cc.Caption:=adoquery1.FieldByName('jczmc').AsString ;
cc.Data:=p;
adoquery1.Next;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
cc:TComboExItem;
s:string;
p:pchar;
begin
cc:=comboboxex1.ItemsEx.ComboItems[comboboxex1.ItemIndex];
p:=cc.Data;
s:=p;
showmessage(s);
showmessage(inttostr(comboboxex1.ItemIndex));
end;
end.
为什么驴唇不对马嘴?jczbm和jczmc不对应?