CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

一个我不知道怎样下手的问题,请各位帮帮忙看一下,谢谢啦~~~~~~~~~~~~~~~~~~~

楼主zy1028(颖)2003-09-04 12:27:54 在 C++ Builder / 基础类 提问

怎样取得数据库中的数据,并转变为图片,大小固定为320*204的BMP中显示?其实就是模拟液晶屏显示啦!例如:从数据库中取得年,月,日,星期几,然后按指定的位置显示出来!!这样的过程怎么做呢??欢迎大家给我意见和方法,有点代码提示更好,能解决再高分表示谢意~~~~~~~~~!!  
  __________________________________  
  |                                                                 |  
  |         XXXX年XX月XX日   星期X                 |  
  |                                                                 |  
  |           当前时间:XX:XX                           |  
  |                                                                 |  
  |           [未读信息提示]                           |  
  |                                                                 |  
  ---------------------------------- 问题点数:100、回复次数:10Top

1 楼kingcaiyao(aking)回复于 2003-09-04 12:37:00 得分 10

1.取得数据库中的数据很简单啊,用ADO或用BDE就可以啊。  
  2.将数据从数据表取出来后,用::DrawText显示就可以。或你在窗体上放一Image控件,在Image控件的画布上画出也可以。  
  Top

2 楼kingcaiyao(aking)回复于 2003-09-04 12:37:35 得分 5

你可以先用ImageTop

3 楼mikesome()回复于 2003-09-04 12:40:02 得分 10

只能给一些你可能早就知道的意见:  
  分为两步  
  一步是取数据,这步与显示无关,应该是好实现的  
  下一步负责显示,这可能对图形编程有些要求,不过可以找些资料看看也是比较简单的。Top

4 楼kingcaiyao(aking)回复于 2003-09-04 12:42:01 得分 5

不好意思,笔误。  
  你可以用Image控件将320*240的BMP图片显示出来,然后将从数据库中取得的数据写在Image的画布上  
  代码片段:  
  //从数据库中取数据  
  Query->Close();  
  Query->SQL->Clear();  
  Query->SQL->Add("select   *   from   yourtable");  
  Query->Open();  
  Query->First();  
  while(!Query->Eof)  
  {  
        String   m_strDateTime;  
        m_strDateTime=Query->FieldByName("DateTime")->AsString;  
        ...........................  
        ...........................  
        Image1->Canvas->TextOut(Your   Position,Your   Position,m_strDateTime);  
        Query->Next();  
  }  
  .............................  
  ....................................  
   
  Top

5 楼zy1028(颖)回复于 2003-09-04 16:01:41 得分 0

问题关键还是显示的位置问题啊!  
   
  对不同长度的数据,我举例的是定长了,可我实际要显示的不是固定长度的数据啊!!Top

6 楼zy1028(颖)回复于 2003-09-09 15:32:32 得分 0

还有就是,怎么保存出来的图片不是320*204BYTE呢??而是一个很大的BMP??Top

7 楼huoniao1976(火鸟1976)回复于 2003-09-09 15:50:00 得分 10

1.关于数据不定长的问题,其实好解决,编写个类,根据屏幕大小和要显示的字的大小,编写一个显示算法,比如一行显示几个字等等。把数据读出来后,进行长度计算,这样就可以根据你的要求显示了。  
   
  2.保存图片的时候,进行图片压缩处理。不过如果处理不好,可能失真的Top

8 楼zy1028(颖)回复于 2003-10-08 20:44:56 得分 0

我生成的图片是320*204*24bit;现在我只需要四级灰度(320*204*2bit),该怎样实现??  
   
  只要内容,不要文件头!!!请求高手支援啊!!!谢谢~~~~~~~~~~~~~~~~~~  
   
  Top

9 楼jishiping(JSP 季世平)回复于 2003-10-09 20:31:29 得分 50

前面的我就不说了(也没有完全看懂楼主的意思),我只说最后的问题。你说只要四级灰度  
  (2Bit),可是Bmp没有2Bit的格式。Bitmap只有1,4,8,16,24,32bit,并没有楼主要的  
  2bit。对于文字来说,你要显示的,可能只有2个颜色,一个是背景色,一个是文字的颜色,  
  此时只要1bit就可以了。也许你的液晶屏支持四级灰度,你要的就是将1bit的数据转换成2  
  bit而已。整个过程就是:首先生成一个1bit的Bitmap(设定Bitmap的属性Monochrome为true  
  就可以了),指定Bitmap的大小,然后在Bitmap的Canvas上用DrawText输出文字。然后根据  
  Bitmap->ScanLine[nRow]得到每行的像素数据,再将1bit的数据转换为你要的2bit的数据就  
  可以了。不知道我说的,是不是你的意思?如果还不会的话,我再贴代码给你(希望你自己  
  先动手)。  
  Top

10 楼easyxu(Bryan)回复于 2003-10-09 21:57:06 得分 10

你放一个TImage   ,名字:Image1;   width   =200,   height   =   200  
   
  然后你试试这个:  
   
          Image1->Canvas->MoveTo(1,1);  
          Image1->Canvas->LineTo(1,199);  
          Image1->Canvas->LineTo(199,199);  
          Image1->Canvas->LineTo(199,1);  
          Image1->Canvas->LineTo(1,1);  
   
   
          Image1->Canvas->TextOutA(50,50,Date());  
          Image1->Canvas->TextOutA(50,100,Time());  
   
  看看感觉如何?保甜!Top

相关问题

  • 程序出错,但不知道原因,各位看一下
  • 各位帮忙看一下!
  • 各位帮忙看一下!
  • 各位帮看一下?
  • 各位帮忙看一下
  • 各位大俠帮看一下 不知道错在什么地方
  • 奇怪,各位请看一下
  • 各位兄弟帮忙看一下
  • 各位,請幫忙看一下!?
  • 各位帮我看一下,小问题。

关键词

  • 数据
  • 数据库
  • 控件
  • 代码
  • 文字
  • 显示
  • canvas
  • lineto
  • bit
  • strdatetime

得分解答快速导航

  • 帖主:zy1028
  • kingcaiyao
  • kingcaiyao
  • mikesome
  • kingcaiyao
  • huoniao1976
  • jishiping
  • easyxu

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo