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

📄 main.~cpp

📁 客户管理系统C++6.0
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"        //主窗体头文件
#include "DataModule.h"  //数据模块头文件
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TF_Main *F_Main;
//---------------------------------------------------------------------------
__fastcall TF_Main::TF_Main(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TF_Main::CheckBox1Click(TObject *Sender)
{   /*****CheckBox1复选框单击事件 *****/
    DM->T_Forecast->Edit();  //天气预报数据集处于编辑态
    DBEdit4->Text = Now();   //提取系统当前时间,Now()为C++ Builder系统函数,返回TDateTime类型数据
    Timer1->Enabled = true;  //启动定时器,周期为1000毫秒
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::Timer1Timer(TObject *Sender)
{   /*****Timer1定时器响应事件 *****/
    CheckBox1->Checked = false;  //使复选框处于非选中状态
    Timer1->Enabled = false;     //关闭定时器
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn1Click(TObject *Sender)
{   /*****提交按钮单击事件 *****/
    DBNavigator->BtnClick(nbPost);  //相当于按下数据库导航条控件中nbPost按钮
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn2Click(TObject *Sender)
{   /*****取消按钮单击事件 *****/
    DBNavigator->BtnClick(nbCancel);  //相当于按下数据库导航条控件中nbCancel按钮
}
//---------------------------------------------------------------------------


void __fastcall TF_Main::PageControlChange(TObject *Sender)
{   /*****PageControl不同标签页切换事件*****/
    switch(PageControl->ActivePageIndex){  //判断PageControl现在切换到了那一页,对导航条控件数据源进行动态赋值,实现动态切换数据源的目的
    case 0 : DBNavigator->DataSource = DM->DS_Forecast;
             break;  //导航导数据源为天气预报信息表
    case 1 : DBNavigator->DataSource = DM->DS_Bulletin;
             break;  //导航导数据源为公告信息表
    case 2 : DBNavigator->DataSource = DM->DS_News;
             break;  //导航导数据源为文字新闻信息表
    case 3 : DBNavigator->DataSource = DM->DS_PicNews;
             break;  //导航导数据源为图片新闻信息表
    }
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::UpdateDate()
{   /*****用户自定义更新发布日期记录函数*****/
    CheckBox1Click(this);  //相当于单击调用天气预报、系统设置标签页获取系统当前日期时间复选框
    BitBtn2Click(this);    //提交修改后的数据
}

void __fastcall TF_Main::BitBtn4Click(TObject *Sender)
{   /*****公告标签页上修改按钮单击事件*****/
    UpdateDate();                   //修改系统设置表中发布日期时间函数
    DBNavigator->BtnClick(nbPost);  //相当于按下数据库导航组件中的nbPost按钮
}
//---------------------------------------------------------------------------

int  __fastcall TF_Main::GetMaxNum(TTable *Table)
{
    if(Table->RecordCount == 0)  //数据集记录为零判断
      return 0;
    int Rec = Table->RecNo;      //保存数据集活动记录的当前位置
    Table->First();              //设定数据集活动记录为第一条
    int Max = 0;
    while(!Table->Eof){           //以下代码遍历全部记录,求取最大的序号,当数据集指针指向最后一条记录时Table->Eof是真
      if(Table->FieldByName("Bulletin_ID")->AsInteger > Max) //当前记录序号字段值与Max变量大小比较
        Max = Table->FieldByName("Bulletin_ID")->AsInteger;
      Table->Next();              //下移一条记录
    }
    Table->First();               //设定数据集活动记录为第一条
    Table->MoveBy(Rec);           //恢复遍历开始前数据集活动记录的位置
    return Max;
}

void __fastcall TF_Main::BitBtn6Click(TObject *Sender)
{   /*****增加按钮单击事件 *****/
    int i = GetMaxNum(DM->T_Bulletin)+1;  //GetMaxNum是求T_Bulletin中最在的序号值
    DM->T_Bulletin->Append();             //进入数据集中追加记录状态
    DM->T_BulletinBulletin_ID->Value = i; //填充记录序号数据字段,注意这个赋值方法只有在字段编辑器中添加了赋值字段才可以使用
//    DM->T_Bulletin->Post();               //提交改变后的数据集,添加了一个新记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn5Click(TObject *Sender)
{   /*****删除按钮单击事件 *****/
    DBNavigator->BtnClick(nbDelete);      //删除一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn9Click(TObject *Sender)
{   /*****文字新闻标签页上增加按钮单击事件 *****/
    DM->DS_News->Enabled = false;  //数据源控件处于非使能态,数据感知控件不再关联
    DM->T_Count->First();          //当前活动记录指向第一条记录
    DM->T_Count->MoveBy(1);        //当前活动记录下移一条记录,指向第二条记录
    int i = DM->T_Count->FieldByName("Count_Value")->Value; //取得News序号计数器计数值
    DM->T_News->Insert();          //进入插入一条记录状态
    DM->T_News->FieldByName("News_ID")->AsInteger = i;
    DM->T_News->Post();            //执行插入记录操作,提交插入记录后的数据集
    DM->T_Count->Edit();           //处于编辑状态
    DM->T_Count->FieldByName("Count_Value")->AsInteger = i+1;
    DM->T_Count->Post();           //执行编辑记录操作,提交编辑记录后的数据集
    DM->DS_News->Enabled = true;   //数据源控件处于使能态,数据感知控件恢复关系关联关系
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn11Click(TObject *Sender)
{
    DM->T_News->First();  //移动当前活动记录为最前一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::BitBtn12Click(TObject *Sender)
{
    DM->T_News->Last();  //移动当前活动记录为最后一条记录
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::FormCreate(TObject *Sender)
{   /*****主窗体创建事件*****/
    LabeledEdit1->Text = GetCurrentDir();          //GetCurrentDir是取得当前路径函数,LabeledEdit是C++ Builer 6新增加的集Lable与Edit控件为一体的新控件
    FileListBox1->Directory = LabeledEdit1->Text;  
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::Button1Click(TObject *Sender)
{   /*****浏览...按钮单击事件*****/
    AnsiString Dir = "C:\\Program Files\\MyApp";  //在字符串中两个\\表示一个\符号
    //SelectDirectory是目录函数,自动弹出选择目录对话框
    if (SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,1000)){
      LabeledEdit1->Text = Dir;
      FileListBox1->Directory = Dir;
    }
}
//---------------------------------------------------------------------------


void __fastcall TF_Main::FileListBox1Click(TObject *Sender)
{    /*****文件列表框单击事件*****/
    //取出选中文件的扩展名
    AnsiString Ext = ExtractFileExt(FileListBox1->FileName).UpperCase();
    //如果是可以显示的图形文件格式
    if(Ext==".JPG"||Ext==".JPEG"||Ext==".BMP"||Ext==".ICO"||Ext==".EMF"||Ext==".WMF"){
    //在图像显示区中间显示图形文件
    Image1->Picture->LoadFromFile(FileListBox1->FileName);
    }
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::FileListBox1DblClick(TObject *Sender)
{   /*****文件列表框双击事件*****/
    //如果数据源不处于编辑态或插入态是地,使其外于编辑态
    if(DM->DS_PicNews->State!=dsEdit||DM->DS_PicNews->State!=dsInsert)
      DM->T_PicNews->Edit();   //使图片新闻信息表处于编辑状态
    DBEdit9->Text = ExtractFileName(FileListBox1->FileName);  //取出不包含路径的文件名显示在DBEdit9控件上
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::Button2Click(TObject *Sender)
{
    AnsiString Command;  //声明一个标准字符串变量
    char lpBuffer[128];
    GetWindowsDirectory(lpBuffer,128); //取得Windows目录路径名
    Command = StrPas(lpBuffer);        //char类型字符串转换成AnsiString类型字符串
    Command+="\\EXPLORER.EXE /n,/e, ftp://"+LabeledEdit2->Text;
    //查找同名进程是否在系统已经运行
    HWND handle = FindWindow("ExploreWClass",Command.c_str());  //c_str()将AnsiString字符串转换成char
    if(handle==NULL)  //如果进程没有运行
      WinExec(Command.c_str(),SW_SHOW);  //建立进程
    else
      ShowWindow(handle,SW_SHOWNORMAL);  //进程窗口若被最小化,正常方式显示
}
//---------------------------------------------------------------------------

void __fastcall TF_Main::Button3Click(TObject *Sender)
{
    AnsiString Command;  //声明一个标准字符串变量
    char lpBuffer[128];
    GetWindowsDirectory(lpBuffer,128); //取得Windows目录路径名
    Command = StrPas(lpBuffer);        //char类型字符串转换成AnsiString类型字符串
    Command+="\\EXPLORER.EXE /n,/e, http://"+LabeledEdit3->Text;
    //查找同名进程是否在系统已经运行
    HWND handle = FindWindow("ExploreWClass",Command.c_str());  //c_str()将AnsiString字符串转换成char
    if(handle==NULL)  //如果进程没有运行
      WinExec(Command.c_str(),SW_SHOW);  //建立进程
    else
      ShowWindow(handle,SW_SHOWNORMAL);  //进程窗口若被最小化,正常方式显示
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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