关于DBgrid录入数据的问题 |
尚未結案
|
railgunman
初階會員 發表:59 回覆:121 積分:36 註冊:2003-03-31 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex 1].Field.FocusControl else begin Table1.Next; DBGrid1.Columns[0].field.FocusControl; end; end; end;--- 歡迎光臨 KTop 研究院--<-<-<@ |
xiaoning79627
初階會員 發表:46 回覆:60 積分:26 註冊:2002-11-10 發送簡訊給我 |
1)先将FORM1的KEYPREVIEW的属性设为TRUE。
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
if ActiveControl is TDBGrid then
begin
with TDBGrid(ActiveControl) do
if SelectedIndex<(fieldCount-1) then
SelectedIndex:=DBGrid1.SelectedIndex 1
else
SelectedIndex:=0;
end
else
key:=#0;
end;
end;
2)不太明白,能说清楚点吗?是在哪录数据? 努力,相信会做的更好!
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if DBGrid1.SelectedIndex < (ADOTable1.FieldCount-1) then //也可寫成if DBGrid1.SelectedIndex < (DBGrid1.FieldCount-1) then begin DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex 1; end else begin ADOTable1.Next; DBGrid1.SelectedIndex := 0; end end;end; 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
railgunman
初階會員 發表:59 回覆:121 積分:36 註冊:2003-03-31 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
railgunman
初階會員 發表:59 回覆:121 積分:36 註冊:2003-03-31 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
var
Form1: TForm1;
str:string;
implementation {$R *.dfm} procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
//按键自动转换
if key=#13 then
postmessage((sender as tdbgrid).Handle,WM_KEYDOWN,$09,$09);
//输入法类型自动保存及设置
if (sender as tdbgrid).ImeName<>str then
str:=(sender as tdbgrid).ImeName;
(sender as tdbgrid).ImeName:=str;
end; 您的2各要求上面都可以实现哦!
|
railgunman
初階會員 發表:59 回覆:121 積分:36 註冊:2003-03-31 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
railgunman
初階會員 發表:59 回覆:121 積分:36 註冊:2003-03-31 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
用一个timer,启用, timer1.Interval大约200吧!
这样她就不需要您做其它的设置,自动帮您保存dbgrid的输入法哦! var
Form1: TForm1; str:string;
implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
myime : HKL;
begin
myime:=GetKeyBoardLayOut(0);
for i := 0 to Screen.Imes.Count-1 do
if HKL(Screen.Imes.Objects[i]) = myime then
str:=Screen.Imes.Strings[i]; if dbgrid1.Focused then
if trim(str)<>'' then dbgrid1.Columns[dbgrid1.Columns.Grid.SelectedIndex].ImeName:=str; end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |