如果对应的中文与字段内容的对应关系已经确定比如可以构造出这么一个函数 function EToC(E:String):String; const CHS:array[0..3,0..1] of String=(('girl','女孩'), ('boy','男孩'), ('cat','猫'), ('dog','狗')); var i:Integer; begin Result:=''; for i:=0 to 3 do begin if CHS[i,0]=E then Break; end; if i<=3 then Result:=CHS[i,1]; end; 那么在对应字段的GetText事件中这样引用即可:Text:=EToC(Sender.AsString);
双击你的ADOQUERY。然后选择你要改变的字段,在他的ONGETTEXT事件中写代码 IF TEXT=‘MORNING’THEN BEGIN TEXT:=‘早上’; END; IF TEXT=‘AFTERNOON’THEN BEGIN TEXT:='下午'; END;
不好意思,错了! if Trim(Sender.Value) = 'MORNING' then begin Text := '早班'; end; if Trim(Sender.Value) = 'AFTERNOON' then begin Text := '中班'; end;
if Trim(Sender.Value) = 'MORNING' then begin Text := '早班'; end; if Trim(Sender.Value) = 'AFTERNOON' then begin Text := '中班'; end;
加问一句,如果adoquery是动态选择的字段,怎么办呢?
在查询时: select display= case when ='morning' then '早上' when ='afternoon' then '中午' end from table where ...
法2。如果就只有固定的几个中英文可以在gettext事件中写代码。
function EToC(E:String):String;
const
CHS:array[0..3,0..1] of String=(('girl','女孩'),
('boy','男孩'),
('cat','猫'),
('dog','狗'));
var
i:Integer;
begin
Result:='';
for i:=0 to 3 do
begin
if CHS[i,0]=E then Break;
end;
if i<=3 then Result:=CHS[i,1];
end;
那么在对应字段的GetText事件中这样引用即可:Text:=EToC(Sender.AsString);
IF TEXT=‘MORNING’THEN
BEGIN
TEXT:=‘早上’;
END;
IF TEXT=‘AFTERNOON’THEN
BEGIN
TEXT:='下午';
END;
if Trim(Sender.Value) = 'MORNING' then
begin
Text := '早班';
end;
if Trim(Sender.Value) = 'AFTERNOON' then
begin
Text := '中班';
end;
begin
Text := '早班';
end;
if Trim(Sender.Value) = 'AFTERNOON' then
begin
Text := '中班';
end;
select display= case when ='morning' then '早上'
when ='afternoon' then '中午' end
from table where ...