C++Builder的几则小应用

原创 2001年10月17日 22:34:00

这是第一篇帖文,从网上找的。以下是原文。

C++Builder的几则小应用
(望月 2001年09月19日 19:00)

Borland C++BUILDER(BCB)是一种面向对象的、可视化的快速应用程序开发环境。该工具在建立用户入接口时,不必编写程序来描述输入或输出接口的外观和配置,只要使用工具箱的工具,在程序设计阶段便可实现,是属于一种“What you see is what you get”直观式的设计概念。使用该编程工具,可以用最少的手工编写代码,创建出高效的32位窗口应用程序,它提供了所有的程序开发时需要的测试,调试和应用配置工具,包括大规模应用程序组件库,设计工具,应用程序和窗体模板以及编程向导。为了能说明C++Builder强大的开发功能,笔者下面就列举几则有关C++Builder在开发程序方面的小应用。

1、在程序中调用图象
假设我们需要在程序中调用一幅事先准备好的图象,它的名字叫tx.bmp,我们可以按照如下方法来进行调用:首先打开Borland C++ Builder程序,在窗体上放置一个Image控件Image1,其Picture暂为空;然后在窗体上放置一个Popup菜单,编辑菜单项增加“Close”项(添加程序代码使得激活弹出菜单时即可关闭应用程序),程序中的原代码为:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile(".//tx.bmp");//使用LoadFromFile函数来调用图象
Width=Image1->Width;
Height=Image1->Height;
Repaint();
}

2、启动屏保程序
如果我们给计算机的屏幕设置了屏幕保护程序,那么计算机在我们指定的时间内将自动屏幕保护程序,您知道这个调用过程是如何实现的吗?在这里,我们可以使用C++ Builder程序来实现这样的功能。我们只要在C++ Builder程序中,使用SendMessage函数向系统发送一个广播消息就可以了,具体原代码为:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
}

3、动态调用程序
如果我们需要实现动态调用程序功能,就必须要借助Windows API函数中的LoadLibrary()和GetProcAddress()方法来调入DLL库,并指出库中函数位置,例如下面就是调用程序的一般代码:

HINSTANCE dd;
int _stdcall (*ddd)(void);
dd=LoadLibrary(“xxx.dll”);
ddd=GetProcAddress(dd,“test”);
Caption=IntToStr(ddd());
FreeLibrary(dd);

4、查询本机内存信息
大家知道,合理地分配使用内存,可以使计算机达到一个很高的运行效率;如何才能合理地使用分配内存呢?只要做到随时了解当前内存的容量,才能为准确合理分配内存提供可能。为此,笔者就在这里使用C++ Builder来帮助大家,准确获取计算机中的内存信息,下面是程序的部分原代码:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
MEMORYSTATUS MemInfo;
MemInfo.dwLength =sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&MemInfo); //GlobalMemoryStatus是获取内存的主要函数
IntToStr(MemInfo.dwMemoryLoad); //显示当前使用的内存
IntToStr(MemInfo.dwTotalPhys); //显示所有的物理内存
IntToStr(MemInfo.dwAvailPhys); //显示未使用的物理内存
IntToStr(MemInfo.dwTotalVirtual); //显示虚拟内存空间大小
IntToStr(MemInfo.dwAvailVirtual); //显示未使用的虚拟内存空间大小
}

5、获取计算机中的IP地址
如果您是一位系统管理员的话,可能要经常查看各个计算机的IP地址信息,按照一般的方法来查看比较繁琐,于是我们可以使用下面的代码来实现自动获取IP地址的功能:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
hostent *p;
char s[128];
char *p2;
gethostname(s, 128);//获取指定计算机的名字
p = gethostbyname(s);
Memo1->Lines->Add(p->h_name);
p2 = inet_ntoa(*((in_addr *)p->h_addr)); //获取指定计算机的IP地址
Memo1->Lines->Add(p2);
}

6、取得Memo的行和列
如果我们要使用C++ Builder来获取Memo的行和列信息,可以按照如下步骤来进行:首先在C++ Builder中重新建立一个应用,并在窗体Form1上添加两个Tlabel组件名为Label1,Label2;然后再添加两个Tbutton组件名为Button1,Button2,并添加一个Tmemo组件名为Memo1,最后在代码编辑器中输入下面的原代码:

void __fastcall TForm1::Button1Click(Tobject *Sender)
{
Label1→Caption=SendMessage(Memo1→Handle,EM_LINEFROMCHAR,-1,0)+1;
}
void __fastcall TForm1::Button2Click(Tobject *Sender)
{
Label2→Caption=Memo1→SelStart-SendMessage(Memo1→Handle,EM_LINEINDEX,-1,0)+1;

(责任编辑 胜喜 chensx@staff.ccidnet.com

C++ Builder的几则小应用[转]

 C++ Builder的几则小应用Borland C++BUILDER(BCB)是一种面向对象的、可视化的快速应用程序开发环境。该工具在建立用户入接口时,不必编写程序来描述输入或输出接口的外观和配置...
  • JacksonLiang
  • JacksonLiang
  • 2008年12月22日 16:25
  • 510

C++Builder中取得命令行参数

用过C语言编程的人都知道,在DOS下的编程可以通过main函数的参数取得命令行参数的个数以及每个参数的字符串,例如int main(int argv ,char *argv[]){…}  则命令行参数...
  • johnny_83
  • johnny_83
  • 2007年07月22日 10:59
  • 709

几则启迪小故事

    扫阳光     有兄弟二人,年龄不过四、五岁,由于卧室的窗户整天都是密闭着,他们认为屋内太阴暗,看见外面灿烂的阳光,觉得十分羡慕。兄弟俩就商量说:“我们可以一起把外面的阳光扫一点进来。”于是,...
  • bigcarp
  • bigcarp
  • 2005年02月04日 10:50
  • 1160

C++Builder中有关TDBGrid的几个技巧

摘  要:本文给TDBGrid增加了dgThumbTracking、及dgMouseWheel两个选项,用来支持滚动条的跟踪和鼠标滚轮。以及有关DBGrid行列颜色的一个技巧。关键词:C++Build...
  • yaneng
  • yaneng
  • 2009年09月24日 10:05
  • 3991

几则小笑话

呼唤铃响.空姐:您好,请问有什么可以帮您的吗? 旅客:能要一杯水吗? 空姐:当然可以,矿泉水吗? 旅客:有果汁吗? 空姐:有,橙汁和桃汁请问需要哪一种? 旅客:有可乐吗? 空姐:有,需要加冰吗? 旅客...
  • damofeixue
  • damofeixue
  • 2006年10月23日 13:33
  • 483

小笑话几则

2、天是蓝的,海是深的,男人的话没一句是真的;爱是永恒的,血是鲜红的,男人不打是不行的;男人如果是有钱的,和谁都是有缘的;男人靠得住,猪都会爬树!!3、听着!我要追你!我就认定你了!我一直以来要找的就...
  • woshinigeno1
  • woshinigeno1
  • 2010年06月04日 11:00
  • 203

C++Builder 动态生成定时器,创建定时器管理类

定时器是做客户端时常用的一类控件,只需要设置定时时间,开启定时器,然后创建定时事件响应函数,就能定时执行特定的功能,用起来很方便。当时当工程比较大,定时器比较多时,界面看起来就会比较混乱,当定时器名字...
  • yeflx
  • yeflx
  • 2016年12月16日 14:44
  • 430

几则哲理小故事

1、火柴棒的威力  一根火柴棒价值不到一毛钱  一栋房子价值数百万元  但是一根火柴棒却可以摧毁一栋房子。  可见微不足道的潜在破坏力,  一旦发作起来,  其攻坚灭顶的力量,无物能御。  要叠一百万...
  • im_yh
  • im_yh
  • 2005年09月10日 15:24
  • 777

正则应用几则

// 从 URL 中取得主机名preg_match("/^(http:////)?([^//]+)/i",    "http://www.php.net/index.html", $matches);...
  • zjwtnt
  • zjwtnt
  • 2006年09月21日 15:45
  • 710

数组应用几则

类数组:class A...{public:    A():a(0)...{        couta;    }    A(int t):a(t)...{        couta;    }   ...
  • RayChase
  • RayChase
  • 2008年03月27日 20:36
  • 716
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++Builder的几则小应用
举报原因:
原因补充:

(最多只允许输入30个字)