我想通过dbgrid往数据库输入信息,但是我不想打开窗口的时候在dbgrid中显示现在数据库的数据,我只想显示一个空白的dbgrid,然后输入数据,保存到数据库中。不知道这个应该怎么实现
还有我在dbgrid中不想用tab来切换光标点,想用回车来实现。请问怎么写?
谢谢帮忙。
还有我在dbgrid中不想用tab来切换光标点,想用回车来实现。请问怎么写?
谢谢帮忙。
解决方案 »
- TDataSet.Locate 查找用的是什么算法?
- 数据表相关的问题!请高手帮帮忙!谢谢!
- 迷茫,我到底该做什么?希望大家多多给意见?
- 一个字符串的问题,在线等
- 有那些函数可以删除文件夹?
- 大家帮忙出出主意,参与有分...反正都是为了钱....哈哈哈
- 将delphi和sql server结合
- 一个给软件加注册功能的软件
- 有些原来的控件在D6使用中需要Dsgnintf.dcu怎么办啊,我改成D6的哪个什么D.....dcu没有用啊
- 高手请进,不要灌水。
- 超级简单,大侠指点,极端敬仰!!!1
- 三层结构中,在中间件的type library中声明函数,并在程序中写代码,后在客户端调用,出现‘服务器出现意外’,why?
如果我的用户要我改成回车,我和它说TAB和回车是一样的,都是一个手指按一下,习惯就好了。
if ord(Key) = VK_RETURN then
(Sender as TDBGridEh).Perform(WM_KEYDOWN, VK_TAB, 0);3. 下次问问题别这么吝啬分。20分太少了,很多人都懒得看。
if ord(Key) = VK_RETURN then
(Sender as TDBGridEh).Perform(WM_KEYDOWN, VK_TAB, 0);
第二问的答案是引用贴子很不错可以试试,而且可以到行末换行
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
I: Integer;
begin
case Key of
#13: begin
key:=#0;
I := TDBGrid(Sender).SelectedIndex;
if I + 1 < TDBGrid(Sender).Columns.Count then
Inc(I)
else I := 0;
while (I <> TDBGrid(Sender).SelectedIndex) and //判断列是不是只读或者隐藏了
((not TDBGrid(Sender).Columns[I].Visible) or
TDBGrid(Sender).Columns[I].ReadOnly) do
begin
if I + 1 < TDBGrid(Sender).Columns.Count then //判断当前列向后数第二列到没到行末
Inc(I)
else I := 0;
end;
if (I <= TDBGrid(Sender).SelectedIndex) and //判断到没到行么i=0 到了,i>0 没到
Assigned(TDBGrid(Sender).DataSource) and
Assigned(TDBGrid(Sender).DataSource.DataSet) then
begin
if TDBGrid(Sender).DataSource.DataSet.eof then //如果到了末尾增加一条记录
TDBGrid(Sender).DataSource.DataSet.append
else
TDBGrid(Sender).DataSource.DataSet.Next;
end;
TDBGrid(Sender).SelectedIndex := I; //指定移到的位置
end;
end;
end;