📄 kcunit.~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 + -