📄 mainwin.pas
字号:
unit MainWin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, ExtCtrls, StdCtrls, Buttons,importer, DB,
ADODB, Grids, DBGrids, ImgList, DBCtrls, jpeg, MPlayer, OleCtrls,
ShockwaveFlashObjects_TLB ;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
OpenDialog1: TOpenDialog;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
ADOConnection1: TADOConnection;
Panel2: TPanel;
BitBtn3: TBitBtn;
ImageList1: TImageList;
Panel3: TPanel;
DBGrid2: TDBGrid;
Panel1: TPanel;
Memo1: TMemo;
ADODataSet2: TADODataSet;
DataSource2: TDataSource;
Splitter1: TSplitter;
BitBtn2: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Splitter2: TSplitter;
Memo3: TMemo;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
SaveDialog1: TSaveDialog;
Timer1: TTimer;
dingzhi: TTabSheet;
Panel7: TPanel;
Panel8: TPanel;
BitBtn8: TBitBtn;
DBGrid3: TDBGrid;
DataSource3: TDataSource;
ADODataSet3: TADODataSet;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
BitBtn11: TBitBtn;
Splitter3: TSplitter;
DBGrid4: TDBGrid;
DataSource4: TDataSource;
ADODataSet4: TADODataSet;
Check2: TBitBtn;
yongcun: TLabel;
TabSheet7: TTabSheet;
PageControl2: TPageControl;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
TabSheet10: TTabSheet;
Label4: TLabel;
Edit2: TEdit;
Edit1: TEdit;
Label3: TLabel;
Label5: TLabel;
Memo4: TMemo;
BitBtn13: TBitBtn;
PageControl3: TPageControl;
TabSheet11: TTabSheet;
TabSheet12: TTabSheet;
BitBtn15: TBitBtn;
BitBtn14: TBitBtn;
Label2: TLabel;
ADODataSet5: TADODataSet;
DataSource5: TDataSource;
DBGrid5: TDBGrid;
DBGrid6: TDBGrid;
DBGrid7: TDBGrid;
DataSource6: TDataSource;
DataSource7: TDataSource;
ADODataSet6: TADODataSet;
ADODataSet7: TADODataSet;
Memo5: TMemo;
Memo6: TMemo;
Memo7: TMemo;
BitBtn1: TBitBtn;
Label1: TLabel;
Label6: TLabel;
BitBtn16: TBitBtn;
RichEdit1: TRichEdit;
Memo8: TMemo;
BitBtn17: TBitBtn;
Panel4: TPanel;
Memo2: TMemo;
DBGrid8: TDBGrid;
DataSource8: TDataSource;
ADODataSet8: TADODataSet;
BitBtn18: TBitBtn;
mainface: TPanel;
ShockwaveFlash1: TShockwaveFlash;
Panel5: TPanel;
DBGrid1: TDBGrid;
DBGrid9: TDBGrid;
DBGrid10: TDBGrid;
Splitter4: TSplitter;
Splitter5: TSplitter;
ADODataSet9: TADODataSet;
DataSource9: TDataSource;
ADODataSet10: TADODataSet;
DataSource10: TDataSource;
ADODataSet11: TADODataSet;
DataSource11: TDataSource;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure DBGrid3KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid3MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure BitBtn10Click(Sender: TObject);
procedure DBGrid2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn11Click(Sender: TObject);
procedure Check2Click(Sender: TObject);
procedure BitBtn13Click(Sender: TObject);
procedure TabSheet5Show(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure BitBtn16Click(Sender: TObject);
procedure BitBtn15Click(Sender: TObject);
procedure BitBtn14Click(Sender: TObject);
procedure BitBtn17Click(Sender: TObject);
procedure BitBtn18Click(Sender: TObject);
procedure ShockwaveFlash1FSCommand(ASender: TObject; const command,
args: WideString);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid9CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
exePath:widestring;
imp:timporter;
dbfile:string;
implementation
{$R *.dfm}
function exec(sql:string):_recordset;
begin;
result:=form1.ADOConnection1.Execute(sql,cmdText,[]);
end;
procedure dingzhiRefresh;
var zf:real;
begin
if form1.dbgrid3.tag=1 then begin
form1.DBGrid3.Tag:=0;
form1.dbgrid3.update;
exec('update dingzhi set 总分=题量*每题分数 where 题型<>"合计"');
zf:=exec('select sum(总分) from dingzhi where 题型<>"合计"').Fields.Item[0].Value;
exec('update dingzhi set 总分='+floattostr(zf)+' where 题型="合计"');
form1.adodataset3.Refresh;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
mainface.Align:=alclient;
exePath:=extractFilePath(application.ExeName);
OpenDialog1.DefaultExt:='txt';
OpenDialog1.InitialDir:=exePath;
ShockwaveFlash1.Movie:=exepath+'face.swf';
dbfile:=exepath+'db1.mdb';
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+dbfile+';Password="";Persist Security Info=True;Jet OLEDB:Database Password=690911';
adoconnection1.Open;
adodataset3.open;
adodataset2.Open;
adodataset1.Open;
adodataset5.open;
adodataset6.open;
adodataset7.open;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if opendialog1.Execute then begin
memo7.Lines.LoadFromFile(opendialog1.filename);
bitbtn14.Hint:=opendialog1.FileName;
bitbtn14.Enabled:=true;
end else begin
bitbtn14.Enabled:=false;
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var tx,zhang,nd,mtfs:string; sl,n,m:integer; rs:tadodataset;
begin
bitbtn11.Click;
randomize;
adodataset11.Open;
adodataset11.First;
exec('delete from paper1');
while not adodataset11.Eof do begin
sl:=adodataset11.FieldValues['出题数量'];
tx:=adodataset11.fieldvalues['tixing'];
zhang:=adodataset11.FieldValues['zhishidian'];
nd:=adodataset11.FieldValues['nandu'];
exec('delete from paper0');
exec('insert into paper0 select 题型,知识点,难度,序号,分数 from shiti where 题型='+tx+' and 知识点='+zhang+' and 难度='+nd);
rs:=tadodataset.Create(nil);
rs.Connection:=adoconnection1;
rs.CommandType:=cmdText;
rs.CommandText:='select * from paper0';
rs.Open;
while (sl>0)and(not rs.Eof) do begin
n:=rs.RecordCount;
rs.First;
m:=random(n);
rs.MoveBy(m);
exec('insert into paper1 select * from paper0 where 知识点='+inttostr(rs['知识点'])+' and 序号='+inttostr(rs['序号']));
rs.Delete;
sl:=sl-1;
end;
rs.Close;
rs.Free;
adodataset11.Next;
end;
exec('drop table shiti1');
Exec('select tixing.*,zhishidian.*,nandu.*,paper1.序号,paper1.分数 into shiti1 from paper1,tixing,zhishidian,nandu where paper1.题型=tixing.tixing and paper1.知识点=zhishidian.zhishidian and paper1.难度=nandu.nandu');
//更新每题分数
adodataset3.First;
while not adodataset3.Eof do begin
mtfs:=adodataset3.FieldByName('每题分数').AsString;
tx:= adodataset3.fieldbyname('tixing').AsString;
adodataset3.Next;
Exec('update shiti1 set 分数=分数 * '+mtfs+' where tixing='+tx);
end;
adodataset1.Requery([]);
tabsheet2.Show;
end;
procedure TForm1.DBGrid2CellClick(Column: TColumn);
var zh,xh:string;
begin
zh:=inttostr(adodataset1.fieldvalues['zhishidian']);
xh:=inttostr(adodataset1.fieldvalues['序号']);
memo2.Text:=exec('select top 1 题干 from shiti where 知识点='+zh+' and 序号='+xh).Fields[0].Value;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
Exec('delete from plan0');
Exec('insert into plan0 select distinct 题型 as tixing,知识点 as zhishidian,难度 as nandu from shiti order by 题型,知识点,难度');
Exec('delete from plan');
Exec('insert into plan select tixing.*,zhishidian.*,nandu.* from plan0,tixing,zhishidian,nandu where plan0.tixing=tixing.tixing and plan0.zhishidian=zhishidian.zhishidian and plan0.nandu=nandu.nandu');
adodataset2.Requery([]);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var tx,zhang,nd,xh:string; n,m:integer; rs:tadodataset;
begin
randomize;
tx:=adodataset1.fieldvalues['tixing'];
zhang:=adodataset1.FieldValues['zhishidian'];
nd:=adodataset1.FieldValues['nandu'];
xh:=adodataset1.FieldValues['序号'];
exec('delete from paper2');
exec('insert into paper2 select tixing as 题型,zhishidian as 知识点,nandu as 难度,序号,分数 from shiti1 where tixing='+tx+' and zhishidian='+zhang+' and nandu='+nd);
exec('delete from paper0');
exec('insert into paper0 select 题型,知识点,难度,序号,分数 from shiti where 题型='+tx+' and 知识点='+zhang+' and 难度='+nd);
rs:=tadodataset.Create(nil);
rs.Connection:=adoconnection1;
rs.CommandType:=cmdText;
rs.CommandText:='select * from paper0';
rs.Open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -