📄 unit1.pas
字号:
editn1.Enabled:=true;
editn2.Enabled:=true;
editn3.Enabled:=true;
editn4.Enabled:=true;
editn5.Enabled:=true;
editn6.Enabled:=true;
editn7.Enabled:=true;
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
edit2.Enabled:=true;
button10.Enabled:=true;
CheckBoxnu1.Enabled:=true;
if CheckBoxnu1.Checked =false then
PANEL4.Enabled :=false
else
begin
PANEL4.Enabled :=true;
CheckBox1.Enabled:=false;
editn1.Enabled:=false;
editn2.Enabled:=false;
editn3.Enabled:=false;
editn4.Enabled:=false;
editn5.Enabled:=false;
editn6.Enabled:=false;
editn7.Enabled:=false;
end;
end;
procedure TForm1.Button11Click(Sender: TObject);
var
tt1,tt2,tt3,tt4,tt5,tt6,tt7:array[0..9] of string;
i,k,t1,t2,t3,t4,t5,t6,t7:integer;
s,ss:string;
begin
RichEdit1.Lines.Clear;
k:=strtoint(edit4.Text );
i:=0;
for t1:=0 to length(trim(editn1.text))-1 do
begin
if i>=k then break;
tt1[t1]:=copy(editn1.text,t1+1,1);
for t2:=0 to length(trim(editn2.text))-1 do
begin
if i>=k then break;
tt2[t2]:=copy(editn2.text,t2+1,1);
for t3:=0 to length(trim(editn3.text))-1 do
begin
if i>=k then break;
tt3[t3]:=copy(editn3.text,t3+1,1);
for t4:=0 to length(trim(editn4.text))-1 do
begin
if i>=k then break;
tt4[t4]:=copy(editn4.text,t4+1,1);
for t5:=0 to length(trim(editn5.text))-1 do
begin
if i>=k then break;
tt5[t5]:=copy(editn5.text,t5+1,1);
for t6:=0 to length(trim(editn6.text))-1 do
begin
if i>=k then break;
tt6[t6]:=copy(editn6.text,t6+1,1);
for t7:=0 to length(trim(editn7.text))-1 do
begin
if i>=k then break;
tt7[t7]:=copy(editn7.text,t7+1,1);
s:= checknum(tt1[t1],tt2[t2],tt3[t3],tt4[t4],tt5[t5],tt6[t6],tt7[t7]);
if s<>'FFFFFFF' THEN
begin
ss:=ss+s+',';
i:=i+1;
end ;
end;
end;
end;
end;
end;
end;
end;
richedit1.Lines.Add(ss);
end;
procedure TForm1.Button12Click(Sender: TObject);
var cfgini:Tinifile;
begin
cfgini:=Tinifile.Create('./7star.ini');
cfgini.WriteString ('MSSQL','Data Source',editsys1.Text );
cfgini.WriteString ('MSSQL','Initial Catalog',editsys2.Text );
cfgini.WriteString ('MSSQL','User ID',editsys3.Text );
cfgini.WriteString ('MSSQL','Password',pscheck(0,117,editsys4.Text) );
if adoconnection1.Connected=false then
begin
StatusBar1.Panels[2].Text :='正在连接数据库!';
try
ADOConnection1.ConnectionString:=('Provider='+cfgini.ReadString('MSSQL','Provider','')+';'+
'Persist Security Info='+cfgini.ReadString('MSSQL','Persist Security Info','')+';'+
'User ID='+cfgini.ReadString('MSSQL','User ID','')+';'+
'Initial Catalog='+cfgini.ReadString('MSSQL','Initial Catalog','')+';'+
'Password='+pscheck(1,117,cfgini.ReadString('MSSQL','Password',''))+';'+
'Data Source='+cfgini.ReadString('MSSQL','Data Source',''));
ADOConnection1.Close;
ADOConnection1.Open;
adotable1.Active :=true;
StatusBar1.Panels[2].Text :='连接数据库成功!';
except
MessageBox(Form1.Handle, '连接数据库失败,请检查数据库配置!' , '系统信息(7-STAR)' ,MB_OK);
StatusBar1.Panels[2].Text :='连接数据库失败,请检查数据库配置!';
form1.TabSheet6.Show;
end ;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var cfgini:Tinifile;
begin
//使用ini文件配置数据库连接
cfgini:=Tinifile.Create('./7star.ini');
pagecontrol1.ActivePage := tabsheet10;
pagecontrol2.ActivePage := tabsheet7;
try
StatusBar1.Panels[2].Text :='正在连接数据库!';
ADOConnection1.ConnectionString:=('Provider='+cfgini.ReadString('MSSQL','Provider','')+';'+
'Persist Security Info='+cfgini.ReadString('MSSQL','Persist Security Info','')+';'+
'User ID='+cfgini.ReadString('MSSQL','User ID','')+';'+
'Initial Catalog='+cfgini.ReadString('MSSQL','Initial Catalog','')+';'+
'Password='+pscheck(1,117,cfgini.ReadString('MSSQL','Password',''))+';'+
'Data Source='+cfgini.ReadString('MSSQL','Data Source',''));
ADOConnection1.Close;
ADOConnection1.Open;
adotable1.Active :=true;
StatusBar1.Panels[2].Text :='连接数据库成功!';
except
MessageBox(Form1.Handle, '连接数据库失败,请检查数据库配置!' , '系统信息(7-STAR)' ,MB_OK);
StatusBar1.Panels[2].Text :='连接数据库失败,请检查数据库配置!';
form1.TabSheet6.Show;
end ;
editup1.Text:=cfgini.ReadString('system','updataurl','');
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
{if CheckBox1.Checked=false then
begin
editn1.Text:='0123456789';
editn2.Text:='9876543210';
editn3.Text:='0123456789';
editn4.Text:='9876543210';
editn5.Text:='0123456789';
editn6.Text:='9876543210';
editn7.Text:='0123456789';
end
else
begin
editn1.Text:='';
editn2.Text:='';
editn3.Text:='';
editn4.Text:='';
editn5.Text:='';
editn6.Text:='';
editn7.Text:='';
end; }
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
adotable1.Cancel;
adotable1.First;
button13.Visible :=false;
button4.Enabled :=true;
button5.Enabled :=false;
button6.Enabled :=true;
button7.Enabled :=true;
dbgrid2.Enabled :=true;
end;
procedure TForm1.TabSheet1Show(Sender: TObject);
var
i:integer;
begin
try
form1.StatusBar1.Panels[2].Text :='智能选号';
ADOTable1.First;
for i:=1 to 7 do //读取上期号码
lastnum[i]:=ADOTable1.FieldValues['num'+inttostr(i)];
except
StatusBar1.Panels[2].Text :='无法连接数据库!';
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[1].Text :=datetimetostr(now());
end;
procedure TForm1.FormResize(Sender: TObject);
begin
form1.Height:=502;
form1.Width:=642
end;
procedure TForm1.TabSheet6Show(Sender: TObject);
var cfgini:Tinifile;
begin
form1.StatusBar1.Panels[2].Text :='系统设置';
cfgini:=Tinifile.Create('./7star.ini');
editsys1.Text:=cfgini.readString ('MSSQL','Data Source','' );
editsys2.Text:=cfgini.readString ('MSSQL','Initial Catalog','' );
editsys3.Text:=cfgini.readString ('MSSQL','User ID','' );
end;
procedure TForm1.TabSheet3Show(Sender: TObject);
begin
form1.StatusBar1.Panels[2].Text :='开奖数据';
end;
procedure TForm1.TabSheet4Show(Sender: TObject);
begin
form1.StatusBar1.Panels[2].Text :='智能分析';
end;
procedure TForm1.TabSheet5Show(Sender: TObject);
var
s:string;
begin
form1.StatusBar1.Panels[2].Text :='数据升级';
s:=ExtractFilePath(Application.ExeName);
editup2.Text:=s+'7supdata.dat';
editup3.Text:=s+'7sbackup.dat';
end;
procedure TForm1.TabSheet10Show(Sender: TObject);
begin
form1.StatusBar1.Panels[2].Text :='系统说明';
end;
procedure TForm1.TabSheet8Show(Sender: TObject);
var
i,j: integer;
m:array[1..7] of integer;
begin
form1.ADOQuery1.First;
Label37.Caption:= Label8.Caption;
StatusBar1.Panels[2].Text :='智能分析--位数字统计图';
for i:=1 to 7 do
begin
form1.ADOQuery1.First;
(self.findcomponent('numSeries'+inttostr(i)) as tchartSeries).Clear;
for j:=0 to 9 do
begin
(self.findcomponent('numSeries'+inttostr(i)) as tchartSeries).Add(strtoint(form1.adoquery1.Fields[i].Value),'个'+inttostr(j),clTeeColor);
form1.ADOQuery1.Next;
end;
end;
for i:=1 to 7 do
begin
form1.ADOquery1.RecNo:=11;
m[i]:=strtoint(form1.adoquery1.Fields[i].Value);
end;
qoSeries1.Clear;
for i:=1 to 7 do
begin
form1.ADOquery1.recno:=12;
j:=strtoint(form1.adoquery1.Fields[i].Value);
qoSeries1.Add((m[i]/j),inttostr(i),clTeeColor) ;
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
IF OPendialog1.Execute=true then editup2.Text:=opendialog1.Filename;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
IF savedialog1.Execute=true then editup3.Text:=savedialog1.Filename;
end;
procedure TForm1.Button14Click(Sender: TObject);
var
_s3,_f,_t:string;
i,m:integer;
_s:textfile;
cfgini:Tinifile;
begin
m:=0;
if CheckBoxUP1.Checked=true then
begin
StatusBar1.Panels[2].Text :='开始备份数据!';
Randomize;
_s3:=editup3.Text;
//_s3:=ExtractFileDir(application.ExeName)+'\backup\'+FormatDateTime('yyyymmddhhmmss',now())+'.s5';
//备份文件名,取当前日期时间为文件名
assignfile(_s,_s3);
rewrite(_s);//新建并打开,文件存在则覆盖目标文件
_t:='sstar_num';
adoquery2.Active:=false;
with adoquery2 do
begin
close;
sql.clear;
sql.add('select syscolumns.name as 名称,systypes.name as 类型,syscolumns.prec as 长度,isnullable as 允许空 from syscolumns,systypes where (object_id('''+_t+''')=syscolumns.id) and (syscolumns.xusertype=systypes.xusertype)');
//表的数据都存在库的syscolumns表里,所以只要读它就能取出表结构,systypes表里的是类型
open;
end;
adoquery2.Active:=true;
if adoquery2.RecordCount>0 then
begin
adoquery2.First;
writeln(_s,'--表'''+_t+'''的结构');
writeln(_s,' if exists (select * from sysobjects where id = OBJECT_ID('''+_t+''') and OBJECTPROPERTY(id, ''IsUserTable'') = 1) DROP TABLE '+_t);
write(_s,' CREATE TABLE '+_t+'(');
repeat
if adoquery2.FieldByName('类型').AsString='nvarchar' then
begin
for i:=1 to adoquery2.FieldCount-1 do
if adoquery2.Fields.FieldByNumber(i).DataType=ftSmallint then write(_s,'('+adoquery2.Fields.FieldByNumber(i).AsString+') ')
else write(_s,adoquery2.Fields.FieldByNumber(i).asString+' ');
end else
for i:=1 to adoquery2.FieldCount-1 do
if adoquery2.Fields.FieldByNumber(i).DataType<>ftSmallint then write(_s,adoquery2.Fields.FieldByNumber(i).asString+' ');
if adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).AsString='1' then write(_s,'null,')
else write(_s,'not null,');
adoquery2.Next;
until adoquery2.Eof;
write(_s,')');
writeln(_s);
end;
adoquery2.Active:=false;
with adoquery2 do
begin
close;
sql.clear;
sql.add('SELECT * FROM '+_t);
open;
end;
adoquery2.Active:=true;
if adoquery2.RecordCount>0 then
begin
_f:='';
for i:=1 to adoquery2.FieldCount-1 do
_f:=_f+adoquery2.Fields.FieldByNumber(i).FieldName+',';
_f:=_f+adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).FieldName;
adoquery2.First;
writeln(_s,'--表'''+_t+'''的数据');
repeat
write(_s,' insert into '+_t+'('+_f+ ') Values(');
for i:=1 to adoquery2.FieldCount-1 do
if adoquery2.Fields.FieldByNumber(i).AsString='' then write(_s,'null,')
else if (adoquery2.Fields.FieldByNumber(i).DataType=ftWideString) or (adoquery2.Fields.FieldByNumber(i).DataType=ftDateTime) then write(_s,''''+adoquery2.Fields.FieldByNumber(i).AsString+''',')
else write(_s,adoquery2.Fields.FieldByNumber(i).AsString+',');
if adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).AsString='' then write(_s,'null)')
else if (adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).DataType=ftWideString) or (adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).DataType=ftDateTime) then write(_s,''''+adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).AsString+''')')
else write(_s,adoquery2.Fields.FieldByNumber(adoquery2.FieldCount).AsString+')');
Writeln(_s);
adoquery2.Next;
until adoquery2.Eof;
end;
Closefile(_s);
StatusBar1.Panels[2].Text :='数据已成功备份!';
end;
if strtoint(copy(ComboBoxUP1.Text,1,1))=1 then
begin
StatusBar1.Panels[2].Text :='正在下载升级文件.....';
if S_OK = UrlDownloadToFile(nil,pansichar(editup1.Text ),pansichar(editup2.Text ),0, nil)
then
begin
m:=1;
StatusBar1.Panels[2].Text :='升级文件已成功下载!';
cfgini:=Tinifile.Create('./7star.ini');
cfgini.WriteString ('system','updataurl',editup1.Text);
end
else
begin
StatusBar1.Panels[2].Text :='升级文件下载失败!';
m:=0;
end;
end;
if strtoint(copy(ComboBoxUP1.Text,1,1))=2 then m:=1;
if m=1 then
begin
try
StatusBar1.Panels[2].Text :='正在升级数据!';
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add ('delete from sstar_num');
adoquery2.ExecSQL;
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.LoadFromFile(editup2.Text );
adoquery2.ExecSQL;
adotable1.Close;
adoconnection1.Close;
adoconnection1.open;
adotable1.Open;
StatusBar1.Panels[2].Text :='数据已成功升级!';
except
showmessage('数据升级失败!');
StatusBar1.Panels[2].Text :='数据升级失败!';
end ;
if CheckBoxUP1.Checked=true then
begin
drb(9999);
drb(100);
drb(50);
drb(10);
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -