客户端人性化设计

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

做了几个项目后发现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 |

||||||||||||||||||||||||||

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航