程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 客戶端人性化設計

客戶端人性化設計

編輯:Delphi

做了幾個項目後發現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;

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved