做了几个项目后发现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:[email protected] | |日期:2004.6.22 | ||||||||||||||||||||||||||

|