分享
 
 
 

C++Builder的几则小应用

王朝c/c++·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有