-
c语言入门之C++ Builder的几则小应用
作者: 望月
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;
}
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;
}
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式