文档库 最新最全的文档下载
当前位置:文档库 › Delphi中使用Devexpress TcxPagecontrol控件

Delphi中使用Devexpress TcxPagecontrol控件

Delphi中使用Devexpress TcxPagecontrol控件
Delphi中使用Devexpress TcxPagecontrol控件

Delphi中使用TcxPagecontrol控件建立一个VCL应用程序,界面如下图

1.动态创建cxTabsheet的代码如下:

procedure TForm1.cxButton1Click(Sender: TObject);

var

newTabsheet:TcxTabSheet;

i:Integer;

begin

for i := 1 to 5 do

begin

newTabsheet:=TcxTabSheet.Create(self);

newTabsheet.Caption:=i.ToString()+ ' Tabs';

newTabsheet.Tag:=i;

newTabsheet.PageControl:=cxPageControl1;

newTabsheet.Visible:=True;

end;

end;

上述代码将动态创建5个cxTabsheet,执行结果如下

2.动态关闭当前激活的cxTabsheet,代码如下:

procedure TForm1.cxButton2Click(Sender: TObject);

begin

cxPageControl1.ActivePage.Free;

end;

3.动态指定关闭cxTabsheet,代码如下:

procedure TForm1.cxButton3Click(Sender: TObject);

begin

//关闭第2个TABSHEET

cxPageControl1.Pages[1].Free;

end;

4.动态指定激活cxTabsheet,代码如下:

procedure TForm1.cxButton4Click(Sender: TObject);

var

i:Integer;

begin

for i := 0 to cxPageControl1.PageCount-1 do

begin

if cxPageControl1.Pages[i].Tag =1 then

begin

cxPageControl1.ActivePage:= cxPageControl1.Pages[i];

Exit;

end;

end;

end;

5.下面演示如何在cxTabsheet动态加载窗体或控件:

新增加一个button控件,另外再新建一个VCL窗体—FORM2,编写如下代码

procedure TForm1.btn1Click(Sender: TObject); var

newTabsheet:TcxTabSheet; formControl:TForm2;

begin

formControl:=TForm2.Create(Self); newTabsheet:=TcxTabSheet.Create(self); newTabsheet.Caption:='动态加载窗体'; newTabsheet.PageControl:=cxPageControl1; newTabsheet.Visible:=True; formControl.Parent:=newTabsheet; formControl.Align:=alclient; formControl.Show;

cxPageControl1.ActivePage:=newTabsheet; end;

执行结果如下

Form2窗体如果去掉边框,显示效果如下

WebEx Recorder使用说明

WebEx Recorder:性能最好的录屏软件 你在寻找好用的录屏软件吗?商用级品质的WebEx Recorder就是一款优秀的录屏软件。WebEx Recorder可以录制全屏或指定窗口,可以设定是否包含声音,生成的文件体积极小且极清晰,录制过程占用资源很少。WebEx的最大优点是性能出众。WebEx 软件并不是个人开发或面向个人的小软件,而是完整的商业解决方案中包括的一款小工具。因此,它在效率和稳定性方面非常出色,称得上是善用佳软见过的录屏软件(包括几款共享软件)中性能最好的一款。例如,用WebEx Recorder全屏带声音录制1小时,生成的文件约25MB,且计算机仍工作流畅,无任何延缓。再如,包括微软、SAP在内的很多大公司,网络讲座经常采用WebEx平台。再如,有些录屏软件,时间太长的话会占用资源太大而失去响应,但WebEx不存在此情况。 1. WebEx Recorder 版权说明 WebEx Recorder不是免费软件,也不是共享软件,而是商业套件中的一个小工具。尽管从技术来讲,可以到主页下载,可以无限期应用,无任何注册提示或限制。但软件许可协议中规定:3.1 You may not: …… iii) utilize the Software for any purpose other than participation in a WebEx meeting or use of the WebEx services。 2. 下载安装WebEx Recorder 在官方下载 WebEx recorder v2.4,体积约 4271KB,安装后约 7MB。WebEx 安装后有三个快捷方式,包括 player、recorder、editor。但这并不意味着有3个独立程序:所谓的播放、录制、编辑其实对应同一个主程序,只是运行参数不同: ”D:\program files\WebEx\atauthor.exe” -PLAYER ”D:\program files\WebEx\atauthor.exe” ”D:\program files\WebEx\atauthor.exe”–EDITOR

如何用C#实时获取CPU利用率

如何用C#实时获取CPU利用率 using System.Diagnostics; using System.Threading; public class CpuLoadInfo { // auxiliary print methods private static void Say ( string txt ) { Console.WriteLine(txt); } // auxiliary print methods private static void Say() { Say(""); } // The main method. Command line arguments are ignored. [STAThread] public static void Main() { Say("$Id: CpuLoadInfo.cs,v 1.2 2002/08/17 17:45:48 rz65 Exp $"); Say(); Say("Attempt to create a PerformanceCounter instance:"); Say("Category name = " + CategoryName); Say("Counter name = " + CounterName); Say("Instance name = " + InstanceName); PerformanceCounter pc = new PerformanceCounter(CategoryName,CounterName,InstanceName); Say("Performance counter was created."); Say("Property CounterType: " + pc.CounterType); Say(); Say("Property CounterHelp: " + pc.CounterHelp); Say(); Say("Entering measurement loop.");

DELPHI中如何调用API,可举例说明

DELPHI中如何调用API,可举例说明 第一部分Delphi知识1. 如果一个元件希望放到IDE的元件面板上,它必须从________类派生,如果一个元件能作为其它元件的容器,它必须从_____________类派生,如果一个元件在运行时可见,它必须从___________________类派生(A)TGraphicControl (B)TWinContr 1、rtl70.bpl是什么?有什么用? 2、delphi的Package相对dll有什么优点? 3、以下的记录(结构)变量在内存占多少字节?type a = packed record v1: Byte; v2: Word; v3: string[16]; v4: Double; v5: string; v6: TForm; end; 4、以下的写法是否正确?type a 1.您为什么选择软件开发这个行业?(30字左右简写); 2.如果有您解决不了的软件问题您会采取什么样的解决措施; 3.a.请您写出Object Pascal所支持的数据类型;b.请您写出Shl、Shr、Xor、Not 的数学表示法; 4.请您写出VCL结构层次(以TObject开始,最少五层);5 二.是非题(共20道)1.从主菜单上选择Project|Syntax Check 菜单选项,Delphi将编译从上次编译后有改动的任何单元,并报出遇到的错误。()2.Delphi的VCL对象有些是指针,从堆栈中分配空间,有些则不是。()3.粘贴时,如果作为容器的组件已被选择,

剪贴 一.选择题(共40道)1.用户开发程序时需要经常在窗体和编辑器窗口之间来回切换,可使用快捷键()。A、F12和F11 B、F12和F13 C、F12和Ctrl+F12 D、F12和Alt+F12 E、F12和Shift+F12 2.某函数如下:Function check(n,k:Integer):Integer; Var m:Integer; Beg 编程语言:delphi7.0或Vc++6.0 时间:4小时内环境:可参考帮助文档,但不能上网查资料1、编程查找指定目录下所有EXE 文件,并将其全路径存入Result.txt中,要求用递归。2、采用SOCKET(可用SOCKET API或delphi Socket控件)实现点对点传输大文件,要求不能掉

linux c程序获取cpu使用率及内存使用情况

想获取一下目标机运行时linux系统的硬件占用情况,写了这几个小程序,以后直接用了。方法就是读取proc下的文件来获取了。cpu使用率:/proc/stat ,内存使用情 况:/proc/meminfo 看程序: /*************************************************************** * @file: statusinfo.c * * @brief: 从linux系统获取cpu及内存使用情况 * * @version 1.0 * * @author 抹黑 * * @date 2009年3月17日 * ***************************************************************/ typedef struct PACKED //定义一个cpu occupy的结构体 { char name[20]; //定义一个char类型的数组名name有20个元素 unsigned int user; //定义一个无符号的int类型的user unsigned int nice; //定义一个无符号的int类型的nice unsigned int system;//定义一个无符号的int类型的system unsigned int idle; //定义一个无符号的int类型的idle }CPU_OCCUPY; typedef struct PACKED //定义一个mem occupy的结构体 { char name[20]; //定义一个char类型的数组名name有20个元素 unsigned long total; char name2[20]; unsigned long free; }MEM_OCCUPY; get_memoccupy (MEM_OCCUPY *mem) //对无类型get函数含有一个形参结构体类弄的指针O

DELPHI Variant变量的使用技巧

DELPHI Variant变量的使用技巧。。。。。。 delphi 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。 Variant变量没有类型 一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。variant 变量的类型检查和计算在运行期间才进行,编译器不会提示代码中的潜在错误,这些错误在进一步测试中才能发现。总之,你可以认为包含variant变量的代码是解释性代码,正如解释性代码一样,许多操作直到执行时才能知道,这对代码运行速度会有很大的影响。 上面对Variant 类型的使用提出了警告,现在来看看Variant 类型究竟能干什么。基本上说,如果声明了一个variant 变量: var V: Variant; 你就可以把各种不同类型的值赋给它: V := 10; V := 'Hello, World'; V := 45.55; 一旦得到一个variant 值,你可以把它拷贝给任何兼容或不兼容的数据类型。如果你把值赋给不兼容的数据类型,Delphi 会力尽所能进行转换,无法转换则颁布一个运行时间错误。实际上,variant变量中不仅包含了数据还包含有类型信息,并允许一系列运行时间操作,这些操作很方便,但运行速度慢且安全性差。 见例VariTest,它是上面代码的扩展。窗体上有三个编辑框,一对按钮,第一个按钮的OnClick 事件代码如下: procedure TForm1.Button1Click(Sender: TObject); var V: Variant; begin V := 10; Edit1.Text := V; V := 'Hello, World';

获取CPU的温度的方法

获取CPU的温度的方法 在内存配置较低的计算机中(比如内存32MB,Windows 98第二版),CPU的占有率是较高的,一般能够达到50%,这可能是由于系统需要CPU进行许多的运算模拟来弥补资源的不足。下面是收集获取CPU温度的方法,欢迎阅读。 作为一个系统级程序员或者编程爱好者,掌握一些系统的高级编程技巧是非常有意义的。本文将介绍如何利用一些高级的编程技巧来实现动态监控。 虽然Windows 98“系统工具”中的“资源状况”程序能够监视CPU的资源占用状况,但是那些相关的数据却无法传递到我们自己的程序中。为此,笔者用VB 6编写了一个具有上述功能的CPU监视软件,它可以实现对CPU资源状况的监视并取得有关数据,并且能够显示到一个精致的图示窗口中。 编程原理 CPU的资源占用情况真正反映在CMOS中,但是如果我们直接从这里开始编程,那将是一件非常复杂的工作。幸好,Windows 98已经帮我们做好了这一步,它的底层技术能够从CMOS中获取CPU的资源占用状况参数并且记录到注册表中 “HKEY_DYN_DATA\PerfStats\StatData”的分支“KERNEL\CPUUsage”中,通过周期性地读取该键的键值,并且将参数传递到我们自己制作的监视器界面或者有关变量中,就可以即时获得并反映出CPU的使用状况了。

本程序的关键是以通用的方法获取相关键值并反映输出到自制的动态进度监视器上,为了更有利于观察、分析,我们将添加一个简单的趋势分析平均线。通过本文,初学者还将能了解如何从注册表的指定项获取数据和利用Picture控件实现进度指示器的编程技巧。 1.设计程序界面 首先运行VB 6中文版,建立一个标准的exe工程,将窗体命名为frmmain,borderstyle属性设为:3-fixed,caption,属性设置为空;接着添加一个frame控件——“frame1”,caption属性设置为空,再添加picturebox控件pctPrg,前景色为绿色,背景色为浅红色;最后添加一个定时器控件——“timer”,interval设置为100(当然,也可以根据自己的需要设置读取间隔),enabled设置为true,其他的属性采用系统的默认值,调整窗体和控件到适当位置和适当大小即可(参见附图)。 2.编写程序代码,双击窗体frmmain并输入以下代码 Option Explicit '变量检查 Private Declare Function RegQueryValueEx Lib "advapi32.dll " Alias "RegQueryValueExA " (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long '获取一个指定的注册表项的设置值

delphi海康

type //HCNetSDK头文件类型声明Delphi改写 //基本数据类型声明 DWORD=LongWord; //WORD:Word; USHORT=Word; LONG=Longint; //BYTE=char ; //#define BOOL int UINT=Longword; LPVOID=Pointer; HANDLE=Pointer; LPDWORD=^LongWord; //typedef unsigned long long UINT64; //NET_DVR_Login_V30()参数结构 type LPNET_DVR_DEVICEINFO_V30=^NET_DVR_DEVICEINFO_V30; NET_DVR_DEVICEINFO_V30=Record sSerialNumber:array [0..SERIALNO_LEN-1] of BYTE ; //序列号 byAlarmInPortNum:BYTE ; //报警输入个数 byAlarmOutPortNum:BYTE ; //报警输出个数 byDiskNum:BYTE ; //硬盘个数 byDVRType:BYTE ; //设备类型, 1:DVR 2:ATM DVR 3:DVS ...... byChanNum:BYTE ; //模拟通道个数 byStartChan:BYTE ; //起始通道号,例如DVS-1,DVR - 1 byAudioChanNum:BYTE ; //语音通道数 byIPChanNum:BYTE ; //最大数字通道个数 byZeroChanNum:BYTE ; //零通道编码个数 //2010-01-16 byMainProto:BYTE ; //主码流传输协议类型 0-private, 1-rtsp bySubProto:BYTE ; //子码流传输协议类型0-private, 1-rtsp bySupport:BYTE ; //能力,位与结果为0表示不支持,1表示支持, //bySupport & 0x1, 表示是否支持智能搜索 //bySupport & 0x2, 表示是否支持备份 //bySupport & 0x4, 表示是否支持压缩参数能力获取 //bySupport & 0x8, 表示是否支持多网卡 //bySupport & 0x10, 表示支持远程SADP //bySupport & 0x20, 表示支持Raid卡功能 //bySupport & 0x40, 表示支持IPSAN 目录查找 //bySupport & 0x80, 表示支持rtp over rtsp bySupport1:BYTE ; // 能力集扩充,位与结果为0表示不支持,1表示支持 //bySupport1 & 0x1, 表示是否支持snmp v30 //bySupport1 & 0x2, 支持区分回放和下载 byRes1:BYTE ;

Delphi文件操作

Delphi文件操作 变量的数据保存于内存中,随程序运行的结束而结束,若要使程序下次运行时能重复使用或给其他程序员使用,必须保存在文件中,Delphi存取文件的方式有4种,即传统的PASCAL方式、windows API文件句柄方式、VCL文件流方式、使用类方法方式。使用类方法方式比较简单,其他三种方式一般的步骤为: (1) 声明文件类型变量; (2) 给文件类型变量指定文件名; (3) 通过文件类型变量打开并且读写文件,必要时进行文件定位; (4) 关闭文件。 1、PASCAL方式访问文件 文件是由相同数据类型的数据元素组成的序列,文件可以分为三种类型:文本文件,类型文件,无类型文件。文本文件中每个数据元素就是一个字符,占有一个字节,并以回车换行符(#13#10)表示每行的结束;类型文件中每个数据元素的数据类型可以是整数、实型记录型等;无类型文件中每个数据元素是一个字节的二进制数。 文件和数组在形式上有些类似,但实质上有诸多不同,主要表现为以下三个方面:(1)数组的元素个数一般是固定的,而文件的长度一般是不定的、随即的; (2)数组元素总是放于内存中,而文件往往存于外存中; (3)数组以“数组名[下标]”的形式访问数组中的任意一个元素,而文件则需要通过文件变量来访问。 1)类型文件 例一、Button1按钮将记录数组XS[0..1]写入文件…Stu.dat?,Button2将…Stu.dat?读到记录变量X1,X2,然后用消息框输出。 TYPE Stu = Record Xh:integer; Xm:string[20]; END; Procedure TForm1.Buttonclick(Sender:TObject);//记录数组写入文件 Const xs:array[0..1] of Stu=((Xh:=405;xm:='张三'),(xh:=406,xm:='李四')); Var F:File of Stu; begin AssignFile(F,'Stu.dat');//关联文件 ReWrite(F);//打开方式(写) Write(F,xs[0],xs[1]);//将数组写到文件 CloseFile(F); end; procedure TForm1.Button2Click(Sender: TObject); Var F:File of Stu; x1,x2:Stu; begin AssignFile(F,'Stu.dat');

通过SNMP查看设备CPU利用率配置举例

通过SNMP查看设备CPU利用率配置举例 关键词:SNMP、NMS、Agent、MIB、CPU利用率 摘要:NET-SNMP是SNMP协议的一套开源实现工具,可作为NMS或Agent。本文主要介绍NET-SNMP作为NMS通过SNMP协议查看H3C设备(作为Agent)CPU利用率的配置应用。 缩略语:SNMP、NMS、MIB 缩略语英文全名中文解释 SNMP Simple Network Management Protocol 简单网络管理协议 NMS Network Management System 网络管理系统 Information Base 管理信息库 MIB Management

目录 1 简介 (3) 2 Net-SNMP使用简介 (3) 3 相关MIB节点 (4) 4 使用SNMP v1、v2c查看设备CPU利用率配置举例 (5) 4.1 组网需求 (5) 4.2 配置思路 (6) 4.3 配置步骤 (6) 4.3.1 配置Agent (6) 4.3.2 配置NMS (7) 5 使用SNMP v3查看设备CPU利用率配置举例 (8) 5.1 组网需求 (8) 5.2 配置思路 (9) 5.3 配置步骤 (9) 5.3.1 配置Agent (9) 5.3.2 配置NMS (10)

1 简介 SNMP是网络中管理设备(NMS)和被管理设备(Agent)之间的通信规则。NMS通过Get和Set等操作获取、设置Agent上变量的值,从而实现对Agent的远程管理、监控。Agent的CPU 利用率就是NMS经常监控的重要变量。 CPU利用率反映了一段时间内设备CPU资源的使用情况。如果CPU利用率一直居高不下,说明设备负载较重,需要对设备当前状况进行分析,找到引起设备负载过重的原因,从而预防、诊断网络故障。 目前市场上有多种NMS产品,其中Net-SNMP作为一种开源实现的NMS在业界被广泛使用。它提供了一套完整的应用程序,实现了SNMPv1/v2c/v3功能。本文将描述如何使用Net-SNMP工具通过访问MIB对象获取设备CPU利用率。 2 Net-SNMP使用简介 本文主要用到Net-SNMP的snmpget功能和snmpwalk功能。 z snmpget功能:即执行一次SNMP Get操作,用来获取Agent上指定MIB对象的值。命令行格式为snmpget [OPTIONS] AGENT OID [OID]。 z snmpwalk功能:即执行一次SNMP Walk操作,用来获取Agent上多个MIB对象的值。命令行格式为snmpwalk [OPTIONS] AGENT [OID]。 以上两条命令行中各参数的含义如下: 参数说明 snmpget 命令关键字,表示执行Get操作 snmpwalk 命令关键字,表示执行Walk操作 OPTIONS 命令行选项(常用选项请参见表1) AGENT Agent的IP地址 OID Agent上MIB对象的OID(如果是执行Get操作,OID必须是叶子节点或者是表节点实体的OID;如果是执行Walk操作,可以是所有类型对象的OID) 表1Net-SNMP命令行工具常用选项 选项说明举例-h 显示命令帮助信息-h -v 设置使用的SNMP版本,取值为1、2c或3 -v 1 -c 设置团体名-c public -a 设置认证协议类型,取值为MD5或SHA -a MD5 -A 设置认证密码-A 12345678

用top命令查看CPU使用率

用top 命令查看CPU 使用率 在系统维护的过程中,随时可能有需要查看CPU 使用率,并根据相应信息分析系统状况的需要。在CentOS 中,可以通过top 命令来查看CPU 使用状况。运行top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式-- 用基于top 的命令,可以控制显示方式等等。退出top 的命令为q (在top 运行中敲q 键一次)。 运行top 在命令行中输入“top” 即可启动top ,运行后如下图所示: 如上图所示,top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。第一部分-- 最上部的系统信息栏: 第一行(top): “00:11:04”为系统当前时刻; “3:35”为系统启动后到现在的运作时间; “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数-- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目; “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、

15分钟前进程的平均数,一般的可以认为这个数值超过CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程; 第二行(Tasks): “59 total”为当前系统进程总数; “1 running”为当前运行中的进程数; “58 sleeping”为当前处于等待状态中的进程数; “0 stoped”为被停止的系统进程数; “0 zombie”为被复原的进程数; 第三行(Cpus): 分别表示了CPU 当前的使用率; 第四行(Mem): 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量; 第五行(Swap): 表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。 第二部分-- 中间部分的内部命令提示栏: top 运行中可以通过top 的内部命令对进程的显示方式进行控制。内部命令如下表: s - 改变画面更新频率 l - 关闭或开启第一部分第一行top 信息的表示 t - 关闭或开启第一部分第二行Tasks 和第三行Cpus 信息的表示 m - 关闭或开启第一部分第四行Mem 和第五行Swap 信息的表示 N - 以PID 的大小的顺序排列表示进程列表(第三部分后述) P - 以CPU 占用率大小的顺序排列进程列表(第三部分后述) M - 以内存占用率大小的顺序排列进程列表(第三部分后述) h - 显示帮助 n - 设置在进程列表所显示进程的数量 q - 退出top s - 改变画面更新周期 第三部分-- 最下部分的进程列表栏: 以PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过top 内部命令可以控制此处的显示方式。 应用top

ClientDataSet的用法(转) - CNQCJ 的Delphi 博客 - 博客园

ClientDataSet的用法(转)- CNQCJ 的Delphi 博客- 博 客园 ClientDataSet的用法(转)TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件。该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机"瘦"数据库应用程序的需要。 1.TClientDataSet的基本属性和方法介绍 1).FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器中该属性编辑按钮,或在该控件上单击右键选择弹出菜单中的"Fields Editor"菜单进行字段编辑。设置完此属性后,实际上就相当于定义了表的结构;如果想装入已有的数据表的结构和数据,可通过单击右键选择弹出菜单中的"Assign Local Data"菜单,从弹出对话框中选取当前窗体中已与数据库连接好的数据集控件名 称即可(当前窗体中必须已放置好要套用的数据集控件并打开激活)。 使用注意: 对于自定义的字段名表,该属性编辑完后,该控件仍然无法打开。必须右键单击该控件,选择弹出菜单中的"Create DataSet"菜单,让该控件以上述编辑的字段列表为依据,创

建数据集后,才能够被激活打开和使用。否则,会出现类似"ClientDataSet1: Missing data provider or data packet."的错误(包括在运行期,运行期可调用该控件的CreateDataSet 方法,从而动态定义字段和表)。 2).FileName属性 说明:数据存储文件的名称。 因该控件是基于文件型的数据操作控件,因此,必须指定所操作的数据文件名称(默认扩展名称.cds),从而打开和激活该控件,进而进行数据编辑。 例1:利用此属性打开指定的.cds文件 var Path: string; begin Path := ExtractFilePath(Application.ExeName); //取得可执行文件路径 CDataSet1.FileName := Path + 'test.cds'; CDataSet1.Open; end; 3).CreateDataSet方法 说明:该方法以FieldDefs中的字段名表为结构建立数据集,常用来进行动态定义表。 例2:动态创建一具有姓名和年龄两个字段的数据集。

arecord 使用

arecord 使用 一.alsa-utils介绍 ALSA是kernel中的一个声音驱动程序.它包括alsa核心和其他声卡的驱动. alsa-utils是alsa的一个工具包,里面包含有声卡测试和音频编辑的工具.二.alsa-utils的安装 1.RPM包方式 Turbolinux 10.5,11版本已经包含有alsa-utils的rpm包,你可以直接安装: # rpm -ivh alsa-utils-xxx.rpm2.源码包方式 下载地址: https://www.wendangku.net/doc/4a11532073.html,/main/index.php/Download

源码包安装方法: # tar zxvf alsa-utils-1.0.6.tar.gz # cd alsa-utils-1.0.6 # ./configure # make install三.alsa-utils工具的使用 alsa-utils包含的工具有: alsactl, aconnect, alsamixer, amidi, amixer, aplay, aplaymidi, arecord, arecordmidi, aseqnet, iecset, speaker-test1.alsactl的使用 alsactl用来对alsa声卡驱动进行一些高级的设置.系统中装有多个声卡,它也可以支持. 有时在音量控制面板无法调整的选项,可以使用alsactl来实现. alsactl可以将指定声卡的驱动程序设置信息保存到配置文件.或从配置文件中恢复指定

声卡的驱动程序的设置信息. alsactl格式: alsactl [options] [store|restore] 选项: -h, --help 打印帮助信息 -f, --file 指定使用的配置文件,默认为/etc/asound.state. Select the configuration file to use. The default is /etc/asound.state -F, --force 与恢复命令一起使用.表示最大限度的恢复设置值.

linux下如何获取cpu的利用率

linux下如何获取cpu的利用率 “proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc 得到系统的信息,并可以改变内核的某些参数。” 这里将介绍如何从/proc文件系统中获取与防火墙相关的一些性能参数,以及如何通过/proc 文件系统修改内核的相关配置。 1、从/proc文件系统获取相关的性能参数 cpu使用率:/proc/stat 内存使用情况:/proc/meminfo 网络负载信息:/proc/net/dev 相应的计算方法:(摘自:什么是proc文件系统,见参考资料) (1)处理器使用率 (2)内存使用率 (3)流入流出数据包 (4)整体网络负载 这些数据分别要从/proc/stat、/proc/net/dev、/proc/meminfo三个文件中提取。如里有问题或对要提取的数据不太清楚,可以使用man proc来查看proc文件系统的联机手册。 (1)处理器使用率 这里要从/proc/stat中提取四个数据:用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲的处理器时间(idle)。它们均位于/proc/stat文件的第一行。CPU 的利用率使用如下公式来计算。 CPU利用率= 100 *(user + nice + system)/(user + nice + system + idle) (2)内存使用率 这里需要从/proc/meminfo文件中提取两个数据,当前内存的使用量(cmem)以及内存总量(amem)。

在DELPHI中如何实现打印功能

在DELPHI中提供了一个PRINTERS程序单元,它说明了一个TPRINTER对象,封装了WINDOWS打印工作和输出打印机之间的接口,并提供常用的属性和方法,其中画布CANVAS是一个非常有用的属性,它代表了当前打印文件的表面,是以图形方式来工作的,整个的打印输出工作仅仅是将你打印的内容输出到TPRINTER的属性CANVAS上,当全部的输出工作完成以后,打印对象(TPRINTER)把CANVAS的属性值送到打印机上去。 下面举例来说明如何通过DELPHI实现文本内容的打印。在DELPHI 中提供了PRINTDIALOG、PRINTERSETUPDIALOG两个控件允许我们进行打印机以及其他影响打印输出的选择,此外最重要的一点是要想实现打印功能必须在编译程序以前将PRINTERS加入到INTERFACE或者IMPLEMENTATION的UESE语句当中,因为PRINTER单元包括ASSIGNPRN和其他控制打印机的过程。 首先在FORM当中加入MEMO、PRINTDIALOG、PRINTERSETUPDIALOG和两个BUTTON控件,两个BUTTON的CAPTION分别为“打印设置”和“打印”。然后编写BUTTON的事件驱动程序(代码在下面),这个简单的例子中只要单击“打印”按钮时便可以在打印机上输出文件0S2.TXT,打印事件的清单如下: implementation

usesprinters; {$R*.DFM} procedureTForm1.BitBtn1Click(Sender:TObject); begin printersetupdialog1.execute;//选择输出的打印机以及其他打印控制选项 end; procedureTForm1.BitBtn2Click(Sender:TObject); var lines:integer; prntext:system.text; //将PRNTEXT声名为一个在SYSTEM程序单元当中定义的文本文件begin ifprintdialog1.executethen assignprn(prntext);//将PRNTEST分配给打印机 rewrite(prntext);//调用REWRITE函数,为输出打开已分配的文件printer.canvas.font:=memo1.font; //把当前MEMO1的字体指定给打印对象的CANVAS的字体属性forlines:=0tomemo1.lines.count-1do

Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Java 获取Linux 和Window 系统CPU、内存和磁盘总使用率的情况 2017/05/08 0 这是一个工具类,获取的内容: CPU 使用率:得到的是当前CPU 的使用情况,这是算出的是两次500 毫秒时间 差的CPU 使用率 内存使用率:[1 - 剩余的物理内存/(总的物理内存+虚拟内存) ] * 100 磁盘总使用率:[1 - 磁盘空余大小/磁盘总大小] * 100 下面开始贴代码:使用暂时没有发现什么问题,如果有问题,咱们可以一起讨论package com.util; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.LineNumberReader;import https://www.wendangku.net/doc/4a11532073.html,ng.management.ManagementFactory;import java.math.BigDecimal;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer; import org.apache.log4j.Logger; import com.sun.management.OperatingSystemMXBean; public class ComputerMonitorUtil { private static String osName = System.getProperty(“https://www.wendangku.net/doc/4a11532073.html,”);private static final int CPUTIME = 500;private static final int PERCENT = 100;private static final int FAULTLENGTH = 10;private static final Logger logger = Logger.getLogger(ComputerMonitorUtil.class); /** * 功能:获取Linux 和Window 系统cpu 使用率* */public static double getCpuUsage() {// 如果是window 系统if (osName.toLowerCase().contains(“windows”)||osName.toLowerCase().contains(“win”)) {try {String procCmd = System.getenv(“windir”)+“//system32//wbem//wmic.exe process get Caption,CommandLine,KernelModeTime,ReadOperationCount,ThreadCount,UserModeTi

Delphi的EhLib控件的使用说明

EhLib控件的使用说明 一. DBGridEh组件: 1.属性。

2.使用统计栏功能 (1)设置统计栏行数,将DBGridEh.FooterRowCount := 1 (2)设置激活统计功能,将DBGridEh.SumList.Active := True; (3)选择所统计字段的统计方式,如将Columns[n].Footer.ValueType := vtSum; (4) 3.复杂标题. (1)标题行可设为2行以上高度,并可以为多列创建一个共同的父标题行。为实现这个效果,需在各个列标题属性中以“|”分隔父标题和子标题,如办公用品包括代码和名称两部分,具体属性设置如下: usemultititile=true; titlelines=2 DBGridEh.Columns[0].Title.Caption := '办公用品|代码'; DBGridEh.Columns[1].Title.Caption := '办公用品|名称'; (2)标题行显示图片 首先添加一个imagelist组件img1并在其中添加一组bmp,ico格式的图片。然后将DBGridEh的TitleImages设置为img1.最后在需要显示图片的列标题的imageindex中设置需要显示的img1中图片的序号。

4.实现DBGridEh 隔行分色显示 procedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState); Begin if DBGridEh1.SumList.RecNo mod 2 = 1 then Background := $00FFC4C4 Else Background := $00FFDDDD; end; 5.DBGridEh 在某些条件下某行显示特定颜色 procedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState); begin //在name 字段值为aaa 的行设置行背景色(ado 设置情况下)if ADOQuery1.FieldByName('name').AsString = 'aaa' then Background := $00FFC4C4 //在xm 字段值为Li ming 的行设置行背景色(bde 设置情况下)else if DBGridEh1.DataSource.DataSet.FieldByName('xm').AsString = 'Li ming' then Background := $00FFC4C4 Else Background := $00FFDDDD; end; 6.在dbgrideh中允许选择多行,如何知道哪些行被选中?是个BOOKMARK类型的属性。 SelectedRows: TBookmarkList procedure TForm1.Button1Click(Sender: TObject); var i, j: Integer; s: string; begin if DBGrid1.SelectedRows.Count>0 then with DBGrid1.DataSource.DataSet do for i:=0 to DBGrid1.SelectedRows.Count-1 do begin GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i])); for j := 0 to FieldCount-1 do begin if (j>0) then s:=s+', '; s:=s+Fields[j].AsString; end; Listbox1.Items.Add(s); s:= '';

cpu使用率计算方法

cpu使用率计算方法 cpu使用率计算方法一使用cpu的处理能力基准计算实时cpu占用率 具体描述: (1) 在rtos系统启动前, 使用tick中断测试cpu的处理能力基准 cpuperformancebase; (2) 在系统进入运行后, 使用空闲任务执行与测试cpu处理能力基准完全相同的算法, 得到rtcpuperformance. (3) 周期地计算cpu占用率, 并清除rtcpuperformance的值, 一般每秒钟计算一次: realtime cpu load = 1 - (rtcpuperformance/cpuperformancebase) * 100% 优点: (1) 实现简单 (2) 所得到的cpu占用率非常准确, 误差只取决于cpuperformancebase的测试结果和整除时的余数, 通常误差小于1% (3) 不占用硬件资源 缺点: (1) cpu必须一直全速运行, 不能修改cpu主频, 也不能使cpu进入掉电保护模式

(2) 不能得到系统中每个任务对cpu占用率的贡献 (3) 必须有一个空闲任务才能计算 评价: 这个算法只适用于工控, 电信等对不需要使cpu进入掉电保护模式的领域. 在tick中断中对rtos中的任务进行采样 具体描述: (1) 系统进入运行后, 每次tick中断发生时, 采样一下当前正在执行的任务, 如果cpu处于halt态, 累加halttimes (2) 周期性地计算cpu占用率, 一般每秒钟计算一次, 并清除halttimes:(tickintfrequance表示tick中断的发生频率) realtime cpu load = halttimes / tickintfrequance 某个任务对cpu占用率的贡献 = 一个周期内该任务被采样到的次数 / tickintfrequance * 100% 优点: (1) 实现简单 (2) 支持cpu掉电模式 (3) 可以大致得到每个任务对cpu占用率的贡献 缺点: (1) 误差取决于tick的频率和os中每个任务的运行时长, 因此误差非常大 评价: 这个算法适用于对cpu占用率精度要求不高的消息电子产品. 精确计算每个任务对cpu占用率的贡献

相关文档
相关文档 最新文档