c++builder中枚举型数据的应用问题

我是必胜客 2012-03-17 08:35:23
我在头文件中声明了一个PictureType的枚举型数据:

#include <ToolWin.hpp>
#include <jpeg.hpp>
#include <pngimage.hpp>
#include <gifimage.hpp>

//---------------------------------------------------------------------------
enum PictureType { Bitmap, PNG, JPEG, ICO, GIF };
//---------------------------------------------------------------------------
class TForm1 : public TForm
{



并且在TForm1窗口类的公有权限下定义了一个枚举型的变量:pctType。如下:

public: // User declarations
Graphics::TBitmap * bmpPicture;
TJPEGImage * jpgPicture;
TPNGObject * pngPicture;
TGIFImage * gifPicture;
Graphics::TIcon * icoPicture;

PictureType pctType;
__fastcall TForm1(TComponent* Owner);
};


但是在.hpp文件用使用时,使用情况如下:
1.

if( ExtensionName == ".bmp" )
{
frmChild -> pctType = PictureType::Bitmap;
//Get the picture from the file
frmChild -> bmpPicture -> LoadFromFile(OpenPictureDialog1 -> FileName);
//Resize the child form to the size of picture
frmChild -> ClientWidth = frmChild -> bmpPicture -> Width;
frmChild -> ClientHeight = frmChild -> bmpPicture -> Height;
}


2.

switch( pctType )
{
case PictureType::Bitmap:
Canvas -> Draw( 0, 0, bmpPicture );
break;
case PictureType::JPEG:
Canvas -> Draw( 0, 0, jpgPicture );
break;
case PictureType::PNG:
Canvas -> Draw( 0, 0, pngPicture );
break;
case PictureType::GIF:
Canvas -> Draw( 0, 0, gifPicture );
break;
case PictureType::ICO:
Canvas -> Draw( 0, 0, icoPicture );
break;
}


会出现如下的报错提示:
[C++ Error] Unit1.cpp(54): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(54): E2379 Statement missing ;
[C++ Error] Unit1.cpp(63): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(63): E2379 Statement missing ;
[C++ Error] Unit1.cpp(70): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(70): E2379 Statement missing ;
[C++ Error] Unit1.cpp(77): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(77): E2379 Statement missing ;
[C++ Error] Unit1.cpp(84): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(84): E2379 Statement missing ;
[C++ Error] Unit1.cpp(251): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(251): E2127 Case statement missing :
[C++ Error] Unit1.cpp(252): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(252): E2127 Case statement missing :
[C++ Error] Unit1.cpp(253): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(253): E2127 Case statement missing :
[C++ Error] Unit1.cpp(254): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(254): E2127 Case statement missing :
[C++ Error] Unit1.cpp(255): E2090 Qualifier 'PictureType' is not a class or namespace name
[C++ Error] Unit1.cpp(255): E2127 Case statement missing :
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是必胜客 2012-03-17
  • 打赏
  • 举报
回复
嗯,谢谢了。
ccrun.com 2012-03-17
  • 打赏
  • 举报
回复
PictureType::Bitmap;

换成

Bitmap;

即可。其他的同理。

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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