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

📄 unit1.cpp

📁 C++Builder高级应用开发指南随书源码
💻 CPP
字号:
//---------------------------------------------------------------------------
#include "Unit1.h"
#include "Jpeg.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TWebModule1 *WebModule1;
//---------------------------------------------------------------------------
__fastcall TWebModule1::TWebModule1(TComponent* Owner)
	: TWebModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TWebModule1::SaveJPGFile(AnsiString FileName)
{
   //将数据库中的图象信息另存为图象文件,以便于网页传输

  TJPEGImage *Jpg = new TJPEGImage();
  TMemoryStream *Stream = new TMemoryStream();
  TPicture *Pic = new TPicture();

  try
  {
    Pic->Assign(BioLifeGraphic);        
    Jpg->Assign(Pic->Graphic);
    try
    {
      Jpg->SaveToStream(Stream);
      Stream->Position = 0;
      Response->ContentType = AnsiString("image/jpeg");
      Response->ContentStream = Stream;
      Response->SendResponse();
    }
    __finally
    {
      delete Pic;
      delete Stream;
    }
  }
  __finally
  {
    delete Jpg;
  }
}
void __fastcall TWebModule1::WebModule1acRootAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
  Response->Content = PageRoot->Content();
}
//---------------------------------------------------------------------------



void __fastcall TWebModule1::WebModule1acDSPageAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
  AnsiString strButton;//存储按钮上的文字
  AnsiString strIndex;//存储隐藏标志上的字符数据
  TLocateOptions temp;
  strButton=Request->ContentFields->Values["Submit"];
  strIndex=Request->ContentFields->Values["Index"];
  if(strButton=="第一项")
  {
     TableBioLife->First();
  }
  else if(strButton=="上一项")
  {
     TableBioLife->Locate("Species No",strIndex,temp);
     TableBioLife->Prior();
  }
  else if(strButton=="下一项")
  {
     TableBioLife->Locate("Species No",strIndex,temp);
     TableBioLife->Next();
  }
  else if(strButton=="最后一项")
  {
     TableBioLife->Last();
  }
  Response->Content = DSPageBioLife->Content();
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::DSPageBioLifeHTMLTag(TObject *Sender,
      TTag Tag, const AnsiString TagString, TStrings *TagParams,
      AnsiString &ReplaceText)
{
  if(ReplaceText=="(GRAPHIC)")// 如果是处理图像
  {
    ReplaceText=AnsiString("<img src=/scripts/MyPage3.dll/GetImage>");
  }
  if(ReplaceText=="(MEMO)"||ReplaceText=="(MEMO)")//如果是Memo字段
  {
    ReplaceText=TableBioLife->FieldByName(TagString)->AsString;
  }
  if(TagString=="Species")
  {
     ReplaceText=TableBioLife->FieldByName("Species Name")->AsString;
  }
  if(TagString=="Length")
  {
     ReplaceText=TableBioLife->FieldByName("Length (cm)")->AsString;
  }
  if(TagString=="Index")
  {
     ReplaceText="<input type=hidden name=Index value="
     +TableBioLife->FieldByName("Species No")->AsString
     +">";
  }
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1acGetImageAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
  TJPEGImage *Jpg = new TJPEGImage();
  TMemoryStream *S = new TMemoryStream();
  TPicture *P = new TPicture();
  try
  {
    P->Assign(BioLifeGraphic);
    Jpg->Assign(P->Graphic);
    try
    {
      Jpg->SaveToStream(S);
      S->Position = 0;
      Response->ContentType = AnsiString("image/jpeg");
      Response->ContentStream = S;
      Response->SendResponse();
    }
    __finally
    {
      &P->Free;
      &S->Free;
    }
  }
  __finally
  {
    &Jpg->Free;
  }
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1acDSTableAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
   try
   {
     TableEmployee->Active=true;
     Response->Content=DSTableEmployee->Content();
   }
   __finally
   {
      TableEmployee->Active=false;
   }
   Handled=true;
}
//---------------------------------------------------------------------------

void __fastcall TWebModule1::WebModule1acQueryTableAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
   try      
   {
//      QueryEmployee->ParamByName("Salary")->Value
//      =Request->QueryFields->Values["Salary"];
      QueryEmployee->Active=true;
      Response->Content=QueryTableEmployee->Content();
   }
   __finally
   {
      QueryEmployee->Active=false;
   }
   Handled=true;
}
//---------------------------------------------------------------------------
          

⌨️ 快捷键说明

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