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

📄 mainsrc.pas

📁 通用题库管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
     ScrollBox2.HorzScrollBar.Range:=Bmp.Width+2;
     ScrollBox2.VertScrollBar.Range:=Bmp.Height+2;
     bmp.Free;
end;
end;

procedure TMain.copyimg2Click(Sender: TObject);
begin
if DBImage2.Picture.Width<>0 then DBImage2.CopyToClipboard;
end;

procedure TMain.cutimg2Click(Sender: TObject);
begin
if DBImage2.Picture.Width<>0 then DBImage2.CutToClipboard;
end;

procedure TMain.pasteimg2Click(Sender: TObject);
var  bmp:TBitMap;
begin
     bmp:=TBitMap.Create;
     if ClipBoard.HasFormat(CF_BITMAP) then
     begin
               bmp.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
               DBImage2.Picture.Bitmap:=bmp;
               DBImage2.Width:=bmp.Width;
               DBImage2.Height:=bmp.Height;
               ScrollBox2.HorzScrollBar.Range:=bmp.Width;
               ScrollBox2.VertScrollBar.Range:=bmp.Height;
               bmp.Free;
     end;
end;











procedure TMain.ToolButton2Click(Sender: TObject);
begin
  if @ActiveFunc<>nil then ActiveFunc(False);
end;

procedure TMain.RegNewTableClick(Sender: TObject);
var RegTab:TIniFile;
    RegTabList:TStringList;
    TableCount,index:integer;
begin
    RegTabList:=TStringList.Create;
    GroupBox3.Enabled:=False;
    for index:=0 to 19 do
    if Current_User.Created_DB[index]=trim(DataBaseNow.Text) then break;
    if FileExists('./database/'+trim(DataBaseNow.Text)) then
    begin
          try    {Connect to Created database and get all tables`name }
               ADOConnPub.Close;
               ADOConnPub.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\database\'
                                            +Current_User.Created_DB[index]+
                                            ';Persist Security Info=False;Jet OLEDB:Database Password='
                                            +DeCode(Current_User.Authen_DB_Pass[index]);;
               ADOConnPub.Open;
          except
               messagedlg(#13'数据库 '+Trim(NewDBName.Text)+'.mdb 已找到,但无法连接!',mterror,[mbok],0);
               GroupBox3.Enabled:=True;
               Abort;
          end;
          try
               ADOConnPub.GetTableNames(RegTabList,False);
          except
               messagedlg(#13'无法获取数据库 '+Trim(DataBaseNow.Text)+' 中的数据表信息!',mterror,[mbok],0);
               GroupBox3.Enabled:=True;
               ADOConnPub.Close;
               Abort;
          end;
          ADOConnPub.Close;
          RegTab:=TIniFile.Create('./database.ini');
          if RegTabList.Count>0 then
          begin
               for TableCount:=0 to RegTabList.Count-1 do
               begin
                    if Trim(TableName.Text)=RegTabList.Strings[TableCount] then
                    begin
                         RegTab.WriteString(Trim(DataBaseNow.Text),Trim(TableName.Text),Trim(TypeDefine.Text)+'_'+Trim(TableLevel.Text));
                         messagedlg('难度:'+Trim(TableLevel.Text)+#13+'题目类型:'+Trim(TypeDefine.Text)+#13+'表格名称:'+Trim(TableName.Text)+#13+
                                             '数据库名称:'+Trim(DataBaseNow.Text)+#13#13+'------ 以上信息注册成功 ------',mtinformation,[mbok],0);
                         RegTab.Free;
                         GroupBox3.Enabled:=True;
                         abort;
                    end;
               end;
          end;
          messagedlg(#13'在数据库 '+Trim(DataBaseNow.Text)+' 中,无法找到数据表 '+Trim(TableName.Text)+
                                             ' ,注册失败!',mterror,[mbok],0);
          RegTab.Free;
          GroupBox3.Enabled:=True;
    end
    else
    begin
          messagedlg(#13'数据库 '+Trim(DataBaseNow.Text)+'不存在!',mterror,[mbok],0);
          GroupBox3.Enabled:=True;
    end;
end;

procedure TMain.PopTreePopup(Sender: TObject);
begin
pump_test.Enabled:=False;
del_db.Enabled:=False;
change_db_name.Enabled:=False;
Amend_table.Enabled:=False;
del_tab.Enabled:=False;
new_db.Enabled:=False;
new_tab.Enabled:=False;
try
     begin
     if TreeView1.Selected.Text='所有数据库' then
          new_db.Enabled:=True
     else if TreeView1.Selected.Parent.Text='所有数据库' then
     begin
          Pump_test.Enabled:=true;
          del_db.Enabled:=true;
          change_db_name.Enabled:=true;
          new_tab.Enabled:=True
     end
     else if TreeView1.Selected.Parent.Parent.Text='所有数据库' then
     begin
          Amend_table.Enabled:=True;
          del_tab.Enabled:=True;
     end
     else
          abort;
     end;
except
     abort;
end;
end;

procedure TMain.pump_testClick(Sender: TObject);
begin
set_new_paperClick(Sender);
PageCon.ActivePage:=TabGenPap;
PapInf_DbName.Text:=TreeView1.Selected.Text;
end;

procedure TMain.amend_tableClick(Sender: TObject);
var   bmp:TBitMap;
     ms:TMemoryStream;
     index:integer;
begin
     set_tab_amendClick(Sender);
     PageCon.ActivePage:=TabAmend;
     try
          ADOConAmend.Close;
          for index:=0 to 19 do
            if Current_User.Created_DB[index]= TreeView1.Selected.Parent.Text then
            begin
              ADOConAmend.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\database\'+
                  Current_User.Created_DB[index]+';Mode=Share Deny None;Persist Security Info=False;'+
                    'Jet OLEDB:Database Password='+DeCode(Current_User.Authen_DB_Pass[index]);
              break;
            end
            else if index=19 then
            begin
              messagedlg(#13'找不到数据库 '+TreeView1.Selected.Parent.Text+' 的注册信息,无法维护数据表!',mterror,[mbok],0);
              abort;
            end;
          ADOTableAmend.Connection:=ADOConAmend;
          ADOTableAmend.TableName:=TreeView1.Selected.Text;
          ADOConAmend.Open;
          ADOTableAmend.Open;
     except
          messagedlg(#13'打开数据表'+TreeView1.Selected.Text+'发生错误,打开失败!',mterror,[mbok],0);
          ADOConAmend.Close;
          ADOTableAmend.Close;
          ADOTableAmend.ConnectionString:='';
          abort;
     end;
     PageCon.TabIndex:=3;
     if ADOTableAmend.RecordCount>0 then
     begin
          bmp:=TBitMap.Create;
          ms:=TMemoryStream.Create;
          TBlobField(DBGrid1.Fields[2]).SaveToStream(ms);
          ms.Position:=0;
          bmp.LoadFromStream(ms);
          DBImage1.Width:=bmp.Width;
          DBImage1.Height:=bmp.Height;
          ScrollBox1.HorzScrollBar.Range:=bmp.Width;
          ScrollBox1.VertScrollBar.Range:=bmp.Height;
          bmp.FreeImage;ms.Clear;
          TBlobField(DBGrid1.Fields[5]).SaveToStream(ms);
          ms.Position:=0;
          bmp.LoadFromStream(ms);
          DBImage2.Width:=bmp.Width;
          DBImage2.Height:=bmp.Height;
          ScrollBox2.HorzScrollBar.Range:=bmp.Width;
          ScrollBox2.VertScrollBar.Range:=bmp.Height;
          bmp.Free;ms.Free;
     end;
end;



procedure TMain.skinsetClick(Sender: TObject);
begin
if skinset.Checked then
     begin
        ActiveFunc(False);
        skinset.Checked:=False;
        n5.Checked:=n5.Checked;
     end
else
     begin
          ActiveFunc(True);
          skinset.Checked:=True;
     end;
end;

procedure TMain.del_tabClick(Sender: TObject);
var temp,tabname,database:string;
    index:integer;
begin
tabname:=TreeView1.Selected.Text;
database:=TreeView1.Selected.Parent.Text;
if messagedlg(#13'你确定要删除数据表'+TreeView1.Selected.Text+'吗?',mtconfirmation,[mbyes,mbno],0)=6 then
begin
      ADOConnPub.Close;
      for index:=0 to 19 do
      begin
        if Current_User.Created_DB[index]=database then
        begin
            ADOConnPub.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\database\'+
                                        Current_User.Created_DB[index]+
                                        ';Persist Security Info=False;'+
                                        'Jet OLEDB:Database Password='+DeCode(Current_User.Authen_DB_Pass[index]);
            break;
        end
        else if index=19 then
        begin
            messagedlg(#13'找不到数据库 '+TreeView1.Selected.Parent.Text+' 的注册信息,无法删除数据表!',mterror,[mbok],0);
            abort;
        end;
      end;
     try
        ADOConnPub.Open;
        ADOConnPub.Execute('DROP TABLE  '+tabname,cmdText,[]);
     except
        messagedlg(#13'在删除数据表时发生错误,删除数据表失败!',mterror,[mbok],0);
        abort;
     end;
     temp:=#13'数据表'+TreeView1.Selected.Text+'删除成功!';
     ADOConnPub.Close;
     TreeView1.Selected.Delete;
     TreeView1.Items.Item[0].Expand(True);
     messagedlg(temp,mtinformation,[mbok],0);
end;

end;

procedure TMain.del_dbClick(Sender: TObject);
var   temp:String;
      Delete_DB_Info:TPersonInfo;
      Delete_DB_Info_File:file of TPersonInfo;
      index:integer;
begin
      temp:=TreeView1.Selected.Text;
     index:=-1;
     try
        AssignFile(Delete_DB_Info_File,'.\gmse.conf');
        Reset(Delete_DB_Info_File);
     except
        messagedlg(#13'在删除数据库注册信息时发生错误,数据库删除失败!',mterror,[mbok],0);
        abort;
     end;
     if messagedlg(#13'你确定要删除数据库'+TreeView1.Selected.Text+'吗?',mtconfirmation,[mbYes, mbNo],0)=6 then
     begin
     repeat
        Read(Delete_DB_Info_File,Delete_DB_Info);
        Inc(index);
        if Delete_DB_Info.UserName=Current_User.UserName then
        begin
          Seek(Delete_DB_Info_File,index);
          for index:=0 to 19 do
          begin
            if Delete_DB_Info.Created_DB[index]=temp then
            begin
              try
                  DeleteFile('./database/'+temp);
              except
                  messagedlg(#13'数据库 '+temp+' 可能正在使用,删除失败!',mterror,[mbok],0);
                  CloseFile(Delete_DB_Info_File);
                  abort;
              end;
              Delete_DB_Info.Created_DB[index]:='';
              Delete_DB_Info.Authen_DB_Pass[index]:='';
              Current_User.Created_DB[index]:='';
              Current_User.Authen_DB_Pass[index]:='';
              Write(Delete_DB_Info_File,Delete_DB_Info);
              break;
            end;
          end
        end;
     until Eof(Delete_DB_Info_File);
     CloseFile(Delete_DB_Info_File);
     TreeView1.Selected.Delete;
     TabSysConfShow(Sender);
     temp:=#13'数据库 '+temp+' 删除成功!';
     TreeView1.Items.Item[0].Expand(True);
     messagedlg(temp,mtinformation,[mbok],0);
     end;
end;

procedure TMain.new_tabClick(Sender: TObject);
begin
DataBaseNow.Text:=TreeView1.Selected.Text;
PageCon.TabIndex:=2;
set_new_regClick(Sender);
end;

procedure TMain.new_dbClick(Sender: TObject);
begin
PageCon.TabIndex:=2;
set_new_regClick(Sender);
end;

procedure TMain.change_tab_nameClick(Sender: TObject);
var NewTabname:String;
begin
   NewTabName:=Inputbox('GTKMS','请输入新的数据表名称:',TreeView1.Selected.Text);
   Try
     ADOComPub.Cancel;
     ADOComPub.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database\'+TreeView1.Selected.Parent.Text+';Mode=Share Deny None;Persist Security Info=False';
     ADOComPub.CommandText:='';
     ADOComPub.Execute;
   except
   end;
end;

procedure TMain.change_db_nameClick(Sender: TObject);
var NewDBname,OldDBName:String;
    index,itemindex:integer;
    alter_db_name:TPersonInfo;
    alter_db_name_file:file of TPersonInfo;
begin
  OldDBName:=TreeView1.Selected.Text;
   try
      AssignFile(alter_db_name_file,'.\gmse.conf');
      Reset(alter_db_name_file);
   except
      messagedlg(#13'读取数据库配置文件gmse.conf时发生错误,重命名数据库失败!',mterror,[mbok],0);
      abort;
   end;
   NewDBName:=Inputbox('GTKMS','请输入新的数据库名称:',TreeView1.Selected.Text);
   if (NewDBName=OldDBName) or (length(NewDBName)=0) then abort;
   if not (LowerCase(MidStr(NewDBName,length(NewDBName)-3,4))='.mdb') then NewDBName:=NewDBName+'.mdb';
   if length(NewDBName)>15 then
   begin
      messagedlg(#13'数据库名长度超出最大允许值,数据库更改名称失败!',mterror,[mbok],0);
      CloseFile(alter_db_name_file);
      abort;
   end;
   if RenameFile('.\database\'+OldDBName,'.\database\'+NewDBName) then
     TreeView1.Selected.Text:=NewDBName
   else
   begin
     messagedlg(#13'数据库可能正在使用,更改名称失败!',mterror,[mbok],0);

⌨️ 快捷键说明

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