⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_studentmangeaction.pas

📁 一个简单的学籍管理软件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          Edit;
        //  学号
        FieldByName('s_xhao').AsString := Ed_XHao01.Text + Ed_XHao02.Text;
        FieldByName('s_xming').AsString := Ed_XMing.Text;
        FieldByName('si_xbie').AsInteger := Integer(CmbBox_XBie.Items.Objects[CmbBox_XBie.ItemIndex]);
        FieldByName('si_mzu').AsInteger := Integer(CmbBox_MZu.Items.Objects[CmbBox_MZu.ItemIndex]);
        FieldByName('d_csrqi').AsDateTime := DtEdit_CSRQi.Date;
        FieldByName('s_zpwjian').AsString := 'S' + Ed_XHao01.Text + Ed_XHao02.Text + '.BMP';
        FieldByName('s_jguan').AsString := Ed_JGuan.Text;
        FieldByName('s_xxzzhi').AsString := Ed_JTZZhi.Text;
        FieldByName('s_lxfshi').AsString := Ed_Lxfshi.Text;
        if DtEdit_RDSJian.Date < 10959 then
          FieldByName('D_RDSJIAN').AsString := ''
        else
          FieldByName('D_RDSJIAN').AsDateTime := DtEdit_RDSJian.Date;
        if DtEdit_RTSJian.Date < 10959 then
          FieldByName('D_RTSJIAN').AsString := ''
        else
          FieldByName('D_RTSJIAN').AsDateTime := DtEdit_RTSJian.Date;
        if DtEdit_RXSJian.Date < 10959 then
          FieldByName('D_RXSJIAN').AsString := ''
        else
          FieldByName('D_RXSJIAN').AsDateTime := DtEdit_RXSJian.Date;
        FieldByName('S_BYXXIAO').AsString := Ed_BYXXiao.Text;
        FieldByName('S_BJHAO').AsString :=
          IntFormatStr(Integer(CmbBox_BJi.Items.Objects[CmbBox_BJi.ItemIndex]), 9);
        Post;
        //ApplyUpdates;
      end;
      Qry_Family.ApplyUpdates;
      Qry_Grades.ApplyUpdates;
      Qry_Health.ApplyUpdates;
      Result := True;
    end;
  finally
    Free;
  end;
end;

{procedure TFm_StudentMangeAction.CMChangeControl(var Mess: TMessage);
begin
  if Mess.WParam = 0 then
    SelectNext(ActiveControl, True, True)
  else
    SelectNext(ActiveControl, False, True);
end;}

{function TFm_StudentMangeAction.GetDSelStart(Sender: TObject): integer;
var
  Bmp: TBitmap;
  DC: HDC;
  V01, V02, V03: integer;
begin
  Bmp := TBitmap.Create;
  Bmp.PixelFormat := pf24bit;
  Bmp.Width := (Sender as TDateTimePicker).Width;
  Bmp.Height := (Sender as TDateTimePicker).Height;
  DC := GetDC((Sender as TDateTimePicker).Handle);
  BitBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height,
    DC, 0, 0, SRCCOPY);
  ReleaseDC((Sender as TDateTimePicker).Handle, DC);
  Bmp.Canvas.Font := (Sender as TDateTimePicker).Font;
  V01 := Bmp.Canvas.Pixels[Bmp.Canvas.TextWidth('9') * 7 div 2, 3];
  V02 := Bmp.Canvas.Pixels[Bmp.Canvas.TextWidth('9') * 15 div 2, 3];
  V03 := Bmp.Canvas.Pixels[Bmp.Canvas.TextWidth('9') * 23 div 2, 3];

  if V02 = V03 then      //  年
    Result := 1
  else if V01 = V03 then //  月
    Result := 2
  else if V01 = V02 then //  日
    Result := 3
  else
    Result := 0;
end;}

procedure TFm_StudentMangeAction.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_ESCAPE) and (Shift = []) and
    (Btn_Prev.Focused or Btn_Next.Focused or
    Btn_Save.Focused or Btn_Cancel.Focused) then
    ModalResult := mrCancel;
  if SclBox_ZPian.Focused then
  begin
    if Key = VK_SPACE then
      EnImg_ZPianDblClick(EnImg_ZPian)
    else if Key = VK_RETURN then
      SelectNext(ActiveControl, True, True);
  end;
end;

procedure TFm_StudentMangeAction.PgCtrl_InfoChange(Sender: TObject);
begin
  if PgCtrl_Info.ActivePageIndex = 0 then
  begin
    Btn_Prev.Enabled := False;
    Btn_Next.Enabled := True;
  end
  else if PgCtrl_Info.ActivePageIndex = PgCtrl_Info.PageCount - 1 then
  begin
    Btn_Next.Enabled := False;
    Btn_Prev.Enabled := True;
  end
  else
  begin
    Btn_Next.Enabled := True;
    Btn_Prev.Enabled := True;
  end;
end;

procedure TFm_StudentMangeAction.Ed_XHao02KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (Key in ['0'..'9', #8, #13]) then
    Key := #7;
  if Key = #13 then
    Key := #0;
end;

procedure TFm_StudentMangeAction.Ed_XHao02KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
var
  tmEdit: TEdit;
begin
  tmEdit := Sender as TEdit;
  if (Key = VK_RETURN) or (Key = VK_DOWN) then
    SelectNext(ActiveControl, True, True)
  else if Key = VK_UP then
    SelectNext(ActiveControl, False, True);
  if (Key = VK_Left) and (Shift = []) and
     (tmEdit.SelLength = 0) and (tmEdit.SelStart = 0) then
      SelectNext(ActiveControl, False, True);
  if (Key = VK_RIGHT) and (Shift = []) and
     (tmEdit.SelLength = 0) and (tmEdit.SelStart = Length(tmEdit.Text)) then
      SelectNext(ActiveControl, True, True);
end;

procedure TFm_StudentMangeAction.EnImg_ZPianDblClick(Sender: TObject);
var
  tmS: string;
begin //  输入照片
  tmS := S_DataPath + '\BMP\S' + Ed_XHao01.Text + Ed_XHao02.Text + '.BMP';
  if Show_Capture(tmS) then
    EnImg_ZPian.FileName := tmS
  else
    U_GlobalProc.Show_ErrorMess('采集照片失败。');
end;

procedure TFm_StudentMangeAction.Ed_XHao02Exit(Sender: TObject);
var
  aQuery: TQuery;
  tmS: string;
begin
  ErrFlag := False;
  if (Btn_Cancel.Focused or Btn_Help.Focused) then
    Exit;
  if Trim(Ed_XHao02.Text) = '' then
  begin
    ErrFlag := True;
    MessageBeep(0);
    U_GlobalProc.Show_ErrorMess('学号不能为空。');
    PgCtrl_Info.ActivePageIndex := 0;
    Ed_XHao02.SetFocus;
    Exit;
  end;
  tmS := IntFormatStr(StrToInt(Ed_XHao02.Text), 4);
  aQuery := TQuery.Create(Application);
  with aQuery do
  try
    DatabaseName := DataDBase;
    SQL.Text := 'SELECT s_xming FROM xsjbxx WHERE s_xhao = ''' +
      Ed_XHao01.Text + tmS + '''';
    Open;

    if EdState = 1 then
    begin
      if not IsEmpty then
      begin
        ErrFlag := True;
        MessageBeep(0);
        U_GlobalProc.Show_ErrorMess('学号重复:该学号已经被学生 ' +
          FieldByName('s_xming').AsString + ' 使用。');
        PgCtrl_Info.ActivePageIndex := 0;
        Ed_XHao02.SetFocus;
        Exit;
      end;
    end;
  finally
    Close;
    Free;
  end;
  Ed_XHao02.Text := tmS;
end;

procedure TFm_StudentMangeAction.CmbBox_XBieKeyPress(Sender: TObject;
  var Key: Char);
var
  tCmbBox: TComboBox;
  i: integer;
begin
  tCmbBox := (Sender as TComboBox);
  if Key = #27 then
  begin
    if tCmbBox.DroppedDown then
      tCmbBox.DroppedDown := False
    else
      tCmbBox.ItemIndex := -1;
  end;
  if Key = #32 then
  begin
    if tCmbBox.ItemIndex < (tCmbBox.Items.Count - 1) then
      tCmbBox.ItemIndex := tCmbBox.ItemIndex + 1
    else
      tCmbBox.ItemIndex := 0;
    Key := #0;
    Exit;
  end;
  if Key in ['1'..'9'] then
  begin
    i := StrToInt(Key) - 1;
    if i < tCmbBox.Items.Count then
      tCmbBox.ItemIndex := i
    else
      MessageBeep(0);
    Key := #0;
    Exit;
  end;
  if not ((Key = #13) and (tCmbBox.DroppedDown)) then
    Key := #0;
end;

procedure TFm_StudentMangeAction.CmbBox_XBieKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_RETURN) and (not (Sender as TComboBox).DroppedDown) then
  begin
    Key := 0;
    SelectNext(ActiveControl, True, True);
  end;
  if (Key = VK_UP) and (not (Sender as TComboBox).DroppedDown) then
  begin
    Key := 0;
    SelectNext(ActiveControl, False, True);
  end;

  if (Key = VK_DOWN) and (not (Sender as TComboBox).DroppedDown) then
  begin
    Key := 0;
    (Sender as TComboBox).DroppedDown := TRUE;
  end;
  if (key = VK_LEFT) or (Key = VK_RIGHT) then
  begin
    if Key = VK_LEFT then
      SelectNext(ActiveControl, False, True)
    else
      SelectNext(ActiveControl, True, True);
    Key := 0;
  end;
end;

procedure TFm_StudentMangeAction.DtPicker_CSRQiKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
{var
  SStart: integer;}
begin
  if (Key = VK_RETURN) then
  begin
    if (Shift = [ssShift]) then
      SelectNext(ActiveControl, False, True)
      //Key := VK_LEFT
    else if (Shift = []) then
      SelectNext(ActiveControl, True, True);
    Key := 0;
  end;
      //Key := VK_RIGHT;
  {if Key in [VK_LEFT, VK_Right] then
  begin
    SStart := GetDSelStart(Sender);
    if (SStart = 1) and (Key = VK_LEFT) then
    begin
      SelectNext(ActiveControl, False, True);
      //PostMessage(Self.Handle, cm_ChangeControl, 1, 0);
      Key := 0;
    end else if (SStart = 3) and (Key = VK_RIGHT) then
      SelectNext(ActiveControl, True, True);
      //PostMessage(Self.Handle, cm_ChangeControl, 0, 0);
  end;}
end;

procedure TFm_StudentMangeAction.CmbBox_BJiExit(Sender: TObject);
begin
  if Btn_Save.Focused and ((Sender as TComboBox).ItemIndex = -1) then
  begin
    ErrFlag := True;
    PgCtrl_Info.ActivePageIndex := 0;
    U_GlobalProc.Show_ErrorMess('班级号不能为空。');
    (Sender as TComboBox).SetFocus;
  end;
end;

procedure TFm_StudentMangeAction.Ts_BaseInfoExit(Sender: TObject);
begin //

end;

procedure TFm_StudentMangeAction.CmbBox_MZuExit(Sender: TObject);
begin
  if Ed_XHao02.Focused or Ed_XMing.Focused or CmbBox_XBie.Focused or
    Btn_Cancel.Focused or Btn_Help.Focused then
    Exit;
  if (Sender as TComboBox).ItemIndex = -1 then
  begin
    ErrFlag := True;
    U_GlobalProc.Show_ErrorMess('民族不能为空。');
    PgCtrl_Info.ActivePageIndex := 0;
    (Sender as TComboBox).SetFocus;
  end;
end;

procedure TFm_StudentMangeAction.CmbBox_XBieExit(Sender: TObject);
begin
  if Ed_XHao02.Focused or Ed_XMing.Focused or
    Btn_Cancel.Focused or Btn_Help.Focused then
    Exit;
  if (Sender as TComboBox).ItemIndex = -1 then
  begin
    PgCtrl_Info.ActivePageIndex := 0;
    U_GlobalProc.Show_ErrorMess('性别不能为空。');
    (Sender as TComboBox).SetFocus;
  end;
end;

procedure TFm_StudentMangeAction.SclBox_ZPianEnter(Sender: TObject);
begin //
  Label_ZPian.BringToFront;
end;

procedure TFm_StudentMangeAction.SclBox_ZPianExit(Sender: TObject);
begin
  Label_ZPian.SendToBack;
end;

procedure TFm_StudentMangeAction.Btn_NextClick(Sender: TObject);
begin //
  PgCtrl_Info.SelectNextPage(True);
end;

procedure TFm_StudentMangeAction.Btn_PrevClick(Sender: TObject);
begin
  PgCtrl_Info.SelectNextPage(False);
end;

procedure TFm_StudentMangeAction.FGridDblClick(Sender: TObject);
begin
  GridDblClick(Sender);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -