客户端人性化设计
2006-02-04 13:46:31 来源:WEB开发网做了几个项目后发现customer其实关心的并不是你采用了什么什么new technology 他们关心的只是能否
实现他们的要求.在C/S结构中,前台的customer关心的是录入是否人性化,是否复合他们的habit!这是
使用者最最关心的,在Database system 中人性化的设计应该符合WINDOWS的录入习惯,毕竟大家平时都在用
这样设计系统可以少很多系统的后期培训费用和时间,也可以让customer在最习惯的情况下录入和删除数据
而这些人性化的设计我总结了以下几点:
1:键盘事件(快捷键的设计,Tab,Enter......)
2:鼠标事件(双击,右键)
而这两点中尤其对Tab,Enter的代码编写最为重要,其余的DELPHI中进行相应的设置即可.
下面就以DBGrid(StringGrid)举例explain:
相应的ADOConnection,ADOTable(ADOQuer),DataSource,DBGrid(StringGrid)的代码就不用再说了:)
/////////////DBGrid(Tab和Enter的应用)
PRocedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
if DBGrid1.Columns.Grid.SelectedIndex < DBGrid1.Columns.Count - 1 then
DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl
else
begin
ADOTable1.next;
DBGrid1.Columns[0].field.FocusControl;
end;
end;
/////////////StingGrid(数据添加)
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
i:=1;
stringgrid1.Colcount:=adotable1.FieldCount+1;
StringGrid1.RowCount:=adotable1.RecordCount+1;
stringgrid1.cells[1,0]:='english'; //caption
stringgrid1.Cells[2,0]:='chinese'; //caption
adotable1.open;
while not adotable1.eof do
begin
stringgrid1.cells[1,i]:=adotable1.fields[0].asstring;
stringgrid1.cells[2,i]:=adotable1.fields[1].asstring;
i:=i+1;
adotable1.next;
end;
// adotable1.close;
end;
////////双击改变显示大小
procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
p : TPoint;
r : TRect;
ACol, ARow : Integer;
begin
if GetCursor = Screen.Cursors[crHSplit] then
begin
GetCursorPos(p);
p := StringGrid1.ScreenToClient(p);
StringGrid1.MouseToCell(p.X, p.Y, ACol, ARow);
r := StringGrid1.CellRect(ACol, ARow);
if p.X - r.Left < 10 then
ACol := ACol - 1;
if ACol = -1 then
ACol := StringGrid1.ColCount - 1;
StringGrid1.ColWidths[ACol] := 100;
end;
end;
/////////////另付双击ADD
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
DataModule3.DataSource2.DataSet.Insert;
DataModule3.ADOTable2.Fields[0] := DataModule3.ADOTable1.Fields[0];
DataModule3.ADOTable2.Fields[1] := DataModule3.ADOTable1.Fields[1] ;
form1.Close;
end;
||||||||||||||||||||||||||
|作者:VIIVD |
|E-MAIL:bao-er@163.com |
|日期:2004.6.22 |
||||||||||||||||||||||||||