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

📄 kcunit.~pas

📁 初学DELPHI编写的“奖学金评定系统”
💻 ~PAS
字号:
unit kcUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, AppEvnts, ExtCtrls, Menus,
  ComCtrls, DBCtrls;

type
  TkcForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    MainMenu1: TMainMenu;
    N2: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    DBGrid1: TDBGrid;
    N7: TMenuItem;
    N8: TMenuItem;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    RadioGroup1: TRadioGroup;
    Button1: TButton;
    CancelBtn: TButton;
    N1: TMenuItem;
    Label4: TLabel;
    Label5: TLabel;
    DBNavigator1: TDBNavigator;
    N3: TMenuItem;
    ApplicationEvents1: TApplicationEvents;

    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N3Click(Sender: TObject);

    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    procedure DBGrid1TitleClick(Column: TColumn);

  private

  public

  end;

var
  kcForm1: TkcForm1;

implementation

{$R *.dfm}

procedure TkcForm1.FormCreate(Sender: TObject);
begin
visible:= true;
end;

procedure TkcForm1.N1Click(Sender: TObject);
begin
  if radiogroup1.ItemIndex<> -1 then
    button1.Enabled:= true;
   dbnavigator1.Visible:= false;
   dbgrid1.Visible:= false;
   label5.Caption:= '';
   panel1.Visible:= true;
end;

procedure TkcForm1.RadioGroup1Click(Sender: TObject);
var
  s1,s2: tstrings;
  i: byte;
begin
  combobox1.Clear;
  combobox2.Clear;
  button1.Enabled:= true;
  s1:= tstringlist.Create;
  s2:= tstringlist.Create;
  with adoquery1 do begin
    close;
    sql.Clear;
    sql.Add('select * from '+ radiogroup1.items[radiogroup1.itemindex]);
    open;
    sort:= '专业 DESC';
    if(length(fieldbyname('专业').AsString)<> 0) then
      s1.Add(fieldbyname('专业').AsString);
    sort:= '专业1 DESC';
    if(length(fieldbyname('专业1').AsString)<> 0) then
      s1.Add(fieldbyname('专业1').AsString);
    sort:= '专业2 DESC';
    if(length(fieldbyname('专业2').AsString)<> 0) then
      s1.Add(fieldbyname('专业2').AsString);
    sort:= '专业3 DESC';
    if(length(fieldbyname('专业3').AsString)<> 0) then
      s1.Add(fieldbyname('专业3').AsString);

    sort:= '所在学期 ASC';
    s2.Add(fieldbyname('所在学期').AsString);
    i:= 0;
    while not eof do begin
      if fieldbyname('所在学期').AsString<> s2[i] then begin
        s2.Add(fieldbyname('所在学期').AsString);
        i:= i+ 1;
      end;
      next;
    end;
    close;
  end;
    combobox1.Items.Clear;
    combobox1.Items.AddStrings(s1);
    combobox2.Items.Clear;
    combobox2.Items.AddStrings(s2);
end;

procedure TkcForm1.Button1Click(Sender: TObject);
var
  sltstring: string;
begin
  label5.Caption:= radiogroup1.items[radiogroup1.itemindex]+ ' + '+ combobox1.Text+ ' + '+ combobox2.Text;
  sltstring:= 'select * from '+ radiogroup1.items[radiogroup1.itemindex]+
    ' where (专业 = "'+ combobox1.Text+ '" or 专业1 = "'+ combobox1.Text+
    '" or 专业2 = "'+ combobox1.Text+ '" or 专业3 = "'+ combobox1.Text+
    ' ") and 所在学期 = "'+ combobox2.Text+ '"';
  with ADOQuery1 do begin
    close;
    sql.Clear;
    sql.Add(sltstring);
    open;
  end;
  button1.Enabled:= false;
  panel1.Visible:= false;
  dbgrid1.Visible:= true;
  dbnavigator1.Visible:= false;
  dbgrid1.ReadOnly:= true;
  n3.Enabled:= true;
end;

procedure TkcForm1.CancelBtnClick(Sender: TObject);
begin
  panel1.Visible:= false;
end;

procedure TkcForm1.N7Click(Sender: TObject);
begin
  label5.Caption:= '必修课';
    with adoquery1 do begin
      close;
      sql.Clear;
      sql.Add('select * from 必修课');
      open;
    end;
  dbgrid1.visible:= true;
  dbnavigator1.Visible:= false;
  dbgrid1.ReadOnly:= true;
  n3.Enabled:= true;
end;

procedure TkcForm1.N8Click(Sender: TObject);
begin
  label5.Caption:= '专业选修课';
    with adoquery1 do begin
      close;
      sql.Clear;
      sql.Add('select * from 专业选修课');
      open;
    end;
  dbgrid1.visible:= true;
  dbnavigator1.Visible:= false;
  dbgrid1.ReadOnly:= true;
  n3.Enabled:= true;
end;

procedure TkcForm1.N3Click(Sender: TObject);
begin
  dbgrid1.ReadOnly:= false;
  dbnavigator1.Visible:= true;
  dbnavigator1.Enabled:= true;
  n3.Enabled:= false;
end;

procedure TkcForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
var hWnd: THandle; aName: array [0..255] of char;

begin
    //给DBGrid加上鼠标滚轮
    if Msg.message <> WM_MOUSEWHEEL then exit;
    hWnd := WindowFromPoint(msg.pt);
    if boolean(GetClassName(hWnd, aName, 256))and(aName='TDBGrid') then//如果第三方控件需要修改,比如用aName='TbsSkinDBGrid'
    begin
        if Short(HIWORD(Msg.wParam)) < 0 then

        begin
            PostMessage(hWnd, WM_KEYDOWN, VK_DOWN, 0);
            PostMessage(hWnd, WM_KEYUP, VK_DOWN, 0)
        end
        else

        begin
            PostMessage(hWnd, WM_KEYDOWN, VK_UP, 0);
            PostMessage(hWnd, WM_KEYUP, VK_UP, 0);

        end;

        Handled := true;
    end;
end;

procedure TkcForm1.DBGrid1TitleClick(Column: TColumn);
begin
    if adoquery1.Sort= Column.FieldName+ ' ASC' then
      adoquery1.Sort:= Column.FieldName+ ' DESC'
    else
      adoquery1.Sort:= Column.FieldName+ ' ASC';
end;

end.

⌨️ 快捷键说明

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