;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
鐢―bGrid鍒朵綔edit褰曞叆鏃剁殑涓嬫媺鎻愮ず妗 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> Delphi >> 鎺т欢搴旂敤 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

鐢―bGrid鍒朵綔edit褰曞叆鏃剁殑涓嬫媺鎻愮ず妗

鍙戝竷: 2008-6-26 17:59 |  浣滆: admin |   鏌ョ湅: 14娆

鍦―elphi璇█涓彁鎷变簡涓嶅皯鏁版嵁杈撳叆鐨勬柟娉,濡傚彲浠庢暟鎹簱涓夋嫨鎴栦汉宸ヨ緭鍏ョ殑鎺т欢鏈:DBListBox銆丏BComboBox銆丏BLookupListBox銆丏BLookupComboBox绛夈備絾瀵逛簬杩欐牱涓涓緥瀛:鏁版嵁搴撳悕涓篸m.db,鍏朵腑鏈変袱涓瓧娈:

浠g爜:Code

鍚嶇О:Name

瑕佹眰鏍规嵁鐢ㄦ埛杈撳叆鐨勪唬鐮,鍘昏幏鍙栬浠g爜瀵瑰簲鐨勫悕绉般

涓鑸殑鐢ㄦ埛骞朵笉鐭ラ亾浠g爜鍜屽悕绉扮殑瀵瑰簲鍏崇郴,濡傝鐢ㄦ埛杈撳叆浠g爜,閫夊嚭瀵瑰簲鐨勫悕绉,鐢变簬涓婅堪鐨勬帶浠朵笉鑳戒娇鎿嶄綔浜哄憳鐪嬪埌浠g爜鍜屽悕绉扮殑瀵瑰簲鍏崇郴,濡傝鐢ㄦ埛鏍规嵁浠g爜鐢ㄤ笅鎷夋鍘绘煡鎵惧埌瀵瑰簲鐨勮鏉$邯褰曠殑鍚嶇О,灏嗗緢闅炬搷浣溿

鏍规嵁杩欑鎯呭喌,鎴戠紪鍒朵簡涓嬮潰绋嬪簭,鎶奃BGrid鍋氫负Edit鐨勪笅鎷夊垪琛ㄦ杈呭姪鎿嶄綔,鍦―BGrid涓洿瑙傚湴鏄剧ず鍑轰唬鐮佸拰鍚嶇О鐨勫搴斿叧绯,骞朵笖鑳藉鏍规嵁鐢ㄦ埛褰曞叆浠g爜鐨勫彉鍖栨儏鍐,闅忔椂鏇存柊DBGrid涓殑璁板綍鎸囬拡,浣跨敤鎴峰彲浠ョ洿瑙傛柟渚垮湴鐐瑰彇鎵闇瑕佺殑鍚嶅瓧,鑰屼笖DBGrid鏄緷鎹敤鎴峰湪Edit涓緭鍏ヤ唬鐮佹椂鎵嶆樉鐜,璺冲嚭Edit妗嗗嵆娑堝け銆傝繖绉嶆柟娉曟棦涓虹敤鎴峰綍鍏ユ彁渚涗簡鏂逛究,鍙堜笉褰卞搷鐣岄潰鐨勬暣浣撶編瑙,鏁堟灉涓嶉敊銆傜幇鎶婅绋嬪簭鎻愪緵缁欏ぇ瀹,浣犱滑鍙牴鎹嚜宸辩殑闇瑕,瀵圭▼搴忚繘琛屽姞宸ュ鐞,搴旂敤浜庣▼搴忓紑鍙戜腑,甯屾湜璧峰埌鎶涚爾寮曠帀鐨勪綔鐢ㄣ

銆愰棶棰樸戯細鍋氳繖鏍蜂竴涓皬绋嬪簭:璁╃敤鎴疯緭鍏ヤ唬鐮,鐒跺悗灏嗗悕绉版樉绀哄湪绐椾綋涓娿

1銆侀鍏堟垜浠彲浠ュ缓绔嬩竴涓狥orm,鍦ㄦForm涓鍔犳帶浠:

Table : Table1,璁剧疆鍏跺睘鎬у搴斾唬鐮佸簱dm.db,骞跺皢Active缃负True

DataSource : DataSource1, 璁剧疆鍏跺睘鎬ataSet涓篢able1

Edit : CodeEdit,NameEdit鍒嗗埆瀵瑰簲浠g爜杈撳叆妗嗗拰鍚嶇О鏄剧ず妗

DBGrid : DBGrid1, 璁剧疆鍏跺睘鎬ataSource涓篋ataSource1

骞舵妸CodeEdit鐨勫睘鎬ext鐨勫肩疆绌,NameEdit鐨勫睘鎬ext鐨勫肩疆绌恒

2銆佸鐓т互涓嬭鍙,淇敼CodeEdit鐨凮nEnter銆丱nExit銆丱nKeyDown銆丱nKeyUp浜嬩欢:

鍦–odeEdit鐨凮nEnter浜嬩欢濡備笅:

procedure TForm1.CodeEditEnter(Sender: TObject);

begin

if CodeEdit.text<>'' then

begin

CodeEdit.SelStart:=length(CodeEdit.text);

Table1.locate('code', CodeEdit.text,[lopartialkey]);

End;

end;

CodeEdit鐨凮nExit浜嬩欢濡備笅:

procedure TForm1.CodeEditExit(Sender: TObject);

begin

if activecontrol<>dbgrid1 then

begin

dbgrid1.Visible:=false;

Table1.Locate('code',codeedit.text,[lopartialkey]);

if Table1.Eof then

begin

dbgrid1.Visible:=true;

exit;

end;

if not Table1.Eof then

begin

codeedit.Text:=Table1.fieldbyname('code').asstring;

NameEdit.Text := Table1.fieldbyname('name').asstring;

end;

end;

end;

CodeEdit鐨凮nKeyDown浜嬩欢濡備笅:

Procedure Tform1.CodeEditKeyDown(Sender: TObject;var Key: Word;Shift: TShiftState);

var

i:integer;

begin

if (Table1.RecordCount>0) then

begin

case key of 48..57:

begin

dbgrid1.Visible:=true;

Table1.Locate('code',CodeEdit.text,[lopartialkey]);

end;

vk_next:

if dbgrid1.Visible then

begin

i:=0;

while (not Table1.Eof) and (i<11) do

begin

Table1.Next;

i:=i+1;

end;

CodeEdit.Text:=Table1.fieldbyname('code').asstring;

End;

vk_prior:

if dbgrid1.Visible then

begin

i:=0;

while (not Table1.Bof) and (i<11) do

begin

Table1.prior;

i:=i+1;

end;

CodeEdit.Text:=Table1.fieldbyname('code').asstring;

end;

vk_down:

if dbgrid1.Visible then

begin

if not Table1.Eof then

begin

Table1.Next;

CodeEdit.Text:=Table1.fieldbyname('code').asstring;

end;

end;

vk_up:

if dbgrid1.Visible then

begin

if not Table1.Bof then

begin

Table1.Prior;

CodeEdit.Text:=Table1.fieldbyname('code').asstring;

end;

end;

end;

end

else

dbgrid1.Visible:=false;

CodeEdit.SelStart:=length(CodeEdit.text);

end;

CodeEdit鐨凮nKeyUp浜嬩欢濡備笅:

procedure Tform1.CodeEditKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

if (Table1.RecordCount>0) then

begin

if ((key>=48) and (key<=57)) then

Table1.Locate('code',codeedit.text,[lopartialkey]);

if (key=VK_back) and (codeedit.text<>'') then

Table1.Locate('code',codeedit.text,[lopartialkey]);

if (key=VK_BACK) and (codeedit.text='') then

Table1.First;

if (key=vk_down) or (key=vk_up) or (key=vk_prior) or (key=vk_next) then

if dbgrid1.Visible then

codeedit.Text:=Table1.fieldbyname('code').asstring;

end

else

dbgrid1.Visible:=false;

codeedit.SelStart:=length(codeedit.text);

end;

鏈▼搴忓湪Windows98+Delphi4.0銆5.0涓嬪潎璋冭瘯閫氳繃銆

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆