procedure Tmain.ADOQuery1textmemoGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin if sender.AsString='1' then text:='代表客' else if sender.AsString='2' then text:='代表货' else if sender.AsString='3' then text:='代表客货'; end;procedure Tmain.ADOQuery1textmemoSetText(Sender: TField; const Text: String); begin if text='代表客' then sender.AsString:='1' else if text='代表货' then sender.AsString:='2' else if text='代表客货' then sender.AsString:='3'; end; 其中“textmemo”为adoquery1的一个字段名,gettext和settext是delphi自带的事件!
picklist的显示方法:把下列过程放入DBGrid1ColEnter事件中就可以自动显示了! procedure tmain.PickListDropDown; begin with DbGrid1 do if Columns[selectedindex].picklist.count > 0 then begin keybd_event(VK_MENU,0,0,0); keybd_event(VK_DOWN,0,0,0); keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0); end; end;
顺便给你一个函数吧: ////////////////////////////////////////////////////////////////根据编号读字段名 Function ReadTabByfield(Tabname,FieldNaReS,Val,FieldNaAim: string):string; begin try DataMod.PubADOQu.Close; DataMod.PubADOQu.SQL.Text := 'select '+FieldNaAim+' from '+Tabname+' where '+FieldNaRes+'='''+Val+''''; DataMod.PubADOQu.Open; Result := DataMod.PubADOQu.Fields.Fields[0].AsString; DataMod.PubADOQu.Close; except showMessage('读相关字典时出错了,空值返回并保存!'); Result := ''; end; end;
TCustomDBComboBoxEh.Items 显示值
1、在DBGGrid里面插入Combobox
2、DBGrid1.PickList可参考:
http://community.csdn.net/Expert/topic/3189/3189567.xml?temp=.7700006
http://borland.mblogger.cn/aiirii/category/463.aspx
鼠标双击DBGrid出现列编辑器选中一列设为PickList就可以了。
DisplayText: Boolean);
begin
if sender.AsString='1' then text:='代表客'
else if sender.AsString='2' then text:='代表货'
else if sender.AsString='3' then text:='代表客货';
end;procedure Tmain.ADOQuery1textmemoSetText(Sender: TField; const Text: String);
begin
if text='代表客' then sender.AsString:='1'
else if text='代表货' then sender.AsString:='2'
else if text='代表客货' then sender.AsString:='3';
end;
其中“textmemo”为adoquery1的一个字段名,gettext和settext是delphi自带的事件!
procedure tmain.PickListDropDown;
begin
with DbGrid1 do
if Columns[selectedindex].picklist.count > 0 then
begin
keybd_event(VK_MENU,0,0,0);
keybd_event(VK_DOWN,0,0,0);
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
end;
end;
////////////////////////////////////////////////////////////////根据编号读字段名
Function ReadTabByfield(Tabname,FieldNaReS,Val,FieldNaAim: string):string;
begin
try
DataMod.PubADOQu.Close;
DataMod.PubADOQu.SQL.Text := 'select '+FieldNaAim+' from '+Tabname+' where '+FieldNaRes+'='''+Val+'''';
DataMod.PubADOQu.Open;
Result := DataMod.PubADOQu.Fields.Fields[0].AsString;
DataMod.PubADOQu.Close;
except
showMessage('读相关字典时出错了,空值返回并保存!');
Result := '';
end;
end;