新手做了一个很烂的图片浏览器,厚着脸皮贴出来!希望大家多提宝贵意见!(在线等,谢谢,进者有分,最迟明天晚上结贴)

peachate 2003-10-21 08:49:11
此程序主要是多画面显示保存在SQL Server中的图片,图片字段名为:i_frame1, 利用6个TImage控件来显示一屏幕图片,感觉超烂!希望各位多提宝贵意见!

TBlobField * pField0=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem0=new TBlobStream(pField0,bmRead);
pmem0->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap0=new Graphics::TBitmap();
pBitmap0->LoadFromStream(pmem0);
Image1->Picture->Assign(pBitmap0);
delete pBitmap0;
delete pmem0;
Table1->Next();


TBlobField * pField1=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem1=new TBlobStream(pField1,bmRead);
pmem1->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap1=new Graphics::TBitmap();
pBitmap1->LoadFromStream(pmem1);
Image2->Picture->Assign(pBitmap1);
delete pBitmap1;
delete pmem1;

Table1->Next();
TBlobField * pField2=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem2=new TBlobStream(pField2,bmRead);
pmem2->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap2=new Graphics::TBitmap();
pBitmap2->LoadFromStream(pmem2);
Image3->Picture->Assign(pBitmap2);
delete pBitmap2;
delete pmem2;



Table1->Next();
TBlobField * pField3=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem3=new TBlobStream(pField3,bmRead);
pmem3->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap3=new Graphics::TBitmap();
pBitmap3->LoadFromStream(pmem3);
Image4->Picture->Assign(pBitmap3);
delete pBitmap3;
delete pmem3;



Table1->Next();
TBlobField * pField4=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem4=new TBlobStream(pField4,bmRead);
pmem4->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap4=new Graphics::TBitmap();
pBitmap4->LoadFromStream(pmem4);
Image5->Picture->Assign(pBitmap4);
delete pBitmap4;
delete pmem4;


Table1->Next();
TBlobField * pField5=(TBlobField *)Table1->FieldByName("i_frame1");
TBlobStream * pmem5=new TBlobStream(pField5,bmRead);
pmem5->Seek(0,soFromBeginning);
Graphics::TBitmap * pBitmap5=new Graphics::TBitmap();
pBitmap5->LoadFromStream(pmem5);
Image6->Picture->Assign(pBitmap5);
delete pBitmap5;
delete pmem5;

Table1->Next();

...全文
32 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Atomictry 2003-11-03
  • 打赏
  • 举报
回复
支持楼主,不断完善,哪怕是Version1.0X版。
peachate 2003-11-03
  • 打赏
  • 举报
回复
谢谢!
geniusdhc 2003-11-02
  • 打赏
  • 举报
回复
up
shusnail 2003-11-02
  • 打赏
  • 举报
回复
努力吧
sunshinning 2003-11-02
  • 打赏
  • 举报
回复
补充定义: TImage *Image[20]
我一屏幕显示20张图片,这里图片的格式为Jpg.
sunshinning 2003-11-02
  • 打赏
  • 举报
回复
我做了一些改进,希望大家多多指教。
void __fastcall TForm2::Button3Click(TObject *Sender)
{
TStream *Stream[20];
TJPEGImage *Pjp[20];
int i;
for(i=0;i<20;i++)
{
Pjp[i]=new TJPEGImage();
ADOQuery1->Open();
Stream[i]=ADOQuery1->CreateBlobStream(ADOQuery1->FieldByName("i_frame1"), bmRead);
Pjp[i]->LoadFromStream(Stream[i]);
ImgCreate(i);
Image[i]->Picture->Bitmap->Assign(Pjp[i]);
if(!(ADOQuery1->Eof))
{
ADOQuery1->Next();
}
}
delete []Pjp;
delete [] Stream;
delete []Image;
}

void TForm2::ImgCreate(int k)
{
//TODO: Add your source code here
int m,n;
m=int(k/5);
n=k%5;
int left,top;
left=Image1->Left+(n*(Image1->Width)/5);
top=Image1->Top+(m*(Image1->Height)/4);
Image[k]=new TImage(this->Image1);
Image[k]->Parent=this;
Image[k]->Left=left;
Image[k]->Top=top;
Image[k]->Height=(Image1->Height)/4;
Image[k]->Width=(Image1->Width)/5;
Image[k]->Stretch=true;

}
pheavecn 2003-10-24
  • 打赏
  • 举报
回复
再接再厉!
bigcat00 2003-10-24
  • 打赏
  • 举报
回复
兄弟!慢慢来吧,我第一次在BCB下学着做数据库时(没有人指导、也没书看),那感觉。。。真叫痛不欲生。。。不过痛过就好了。哈哈。。。
peachate 2003-10-24
  • 打赏
  • 举报
回复
希望大家多多指教!
huangjuliang 2003-10-22
  • 打赏
  • 举报
回复
代码里好多地方都可以改进!
nobill 2003-10-22
  • 打赏
  • 举报
回复
你这个图片浏览器不能浏览tiff,gif等格式的图片
windwhut 2003-10-22
  • 打赏
  • 举报
回复
效率很低,冗余代码很多!可以改进一下嘛
Kabin 2003-10-21
  • 打赏
  • 举报
回复
咋又一个贴
peachate 2003-10-21
  • 打赏
  • 举报
回复
试图做一点点改进,做了如下修改:可是总是报内存错误!痛苦不堪中!


TBlobField *pField[6];
TBlobStream *pmem[6];
Graphics::TBitmap *pBitmap[6];

int i,j;
for(i=0;i<6;i++)
{
pField[i]=(TBlobField *)Table1->FieldByName("i_frame1");
pmem[i]=new TBlobStream(pField[i],bmRead);
pmem[i]->Seek(0,soFromBeginning);
pBitmap[i]=new Graphics::TBitmap();
pBitmap[i]->LoadFromStream(pmem[i]);
Image1->Picture->Assign(pBitmap[i]);
switch(i+1)
{
case 1: Image1->Picture->Assign(pBitmap[0]); break;
case 2: Image2->Picture->Assign(pBitmap[1]); break;
case 3: Image3->Picture->Assign(pBitmap[2]); break;
case 4: Image4->Picture->Assign(pBitmap[3]); break;
case 5: Image5->Picture->Assign(pBitmap[4]); break;
case 6: Image6->Picture->Assign(pBitmap[5]); break;

}

Table1->Next();

}
for(j=0;j<=5;j++)
{
delete pField[j];
delete pmem[j]
}

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧