DBGrid中用光标键控制Cell
来源:互联网 发布:文案策划电脑软件 编辑:程序博客网 时间:2024/06/06 04:14
{////////////////////////
// //
// Grids549 //
// //
// 14:33 2005-2-17 //
// //
}////////////////////////
unit Grids549;
interface
uses
DBGrids, Classes, Windows;
type
TDBGrid549 = class(TDBGrid)
public
property InPlaceEditor;
end ;
procedure CursorCtrl(Sender: TObject; var Key: Word; Shift: TShiftState);
implementation
{ TDBGrid549 }
procedure CursorCtrl(Sender: TObject; var Key: Word;
Shift: TShiftState);
{
Warn: This procedure may change VK_RIGHT and VK_LEFT to 0
Call this in DBGridKeyDown procedrue
eg:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Grids549.CursorCtrl(Sender, Key, Shift);
end;
}
var
GridEditorMode: Boolean;
begin
if Shift <> [] then Exit;
if (Key <> VK_RIGHT) and (Key <> VK_LEFT) then
Exit;
GridEditorMode := TDBGrid(Sender).EditorMode;
if not GridEditorMode then
TDBGrid(Sender).EditorMode := True;
if Key = VK_RIGHT then begin
if GridEditorMode and (TDBGrid549(Sender).InplaceEditor.SelStart <>
Length(TDBGrid549(Sender).InplaceEditor.Text)) then begin
Exit;
end;
//Last field, move to next record
if TDBGrid(Sender).SelectedIndex =
TDBGrid(Sender).FieldCount - 1 then begin
TDBGrid(Sender).DataSource.DataSet.Next;
TDBGrid(Sender).SelectedIndex := 0;
end
else
//Focus on next field
if TDBGrid(Sender).EditorMode then begin
TDBGrid(Sender).SelectedIndex := TDBGrid(Sender).SelectedIndex + 1;
end;
end
else
if Key = VK_LEFT then begin
if GridEditorMode and(TDBGrid549(Sender).InplaceEditor.SelStart <> 0) then
Exit;
//First field, move to prior record
if TDBGrid(Sender).SelectedIndex = 0 then begin
TDBGrid(Sender).DataSource.DataSet.Prior;
TDBGrid(Sender).SelectedIndex := TDBGrid(Sender).FieldCount - 1;
end
else
//Focus on prior field
if TDBGrid(Sender).EditorMode then begin
TDBGrid(Sender).SelectedIndex := TDBGrid(Sender).SelectedIndex - 1;
end;
end;
Key := 0;
end;
end.
- DBGrid中用光标键控制Cell
- Tab键控制光标在指定范围内移动
- 怎么获取DBGrid Cell坐标
- tab键控制元素跳转
- 上下左右 键控制人移动
- 上下左右 键控制人移动
- DBGRID中移动鼠标显示鼠标下CELL中文本
- dbgrid
- 鼠标中键控制音量大小
- android之DPAD上下左右四个键控制
- android之DPAD上下左右四个键控制
- VC按TAB键控制控件顺序
- 通过Return键控制虚拟键盘消失
- wince 实现 上下键控制TAB
- 上下键控制音乐的开关
- 手机音量键控制SoundPool大小
- 菜单键控制navigation drawer的滑入滑出
- 切换摄像机:一个键控制一个摄像机
- 一个MIDP俄罗斯方块游戏的设计和实现 (转)
- Linux网络编程读书笔记(8)
- 2005 blog受审年?[zt]
- [原创]Swing技巧.3:将window设置在屏幕中间
- 端到端J2ME应用开发实例——介绍Smart Ticket
- DBGrid中用光标键控制Cell
- Linux网络编程读书笔记(9)
- ASP.NET中用healthMonitor属性用法
- ASP错误信息说明
- JDBC对数据库的事务操作(转)
- [原创]Swing技巧.4:设置系统窗口边框
- Linux网络编程读书笔记(10)
- [原创]Swing技巧.5:运行中重设LookAndFeel
- [原创]Swing技巧.6:Component中设置光标