delphi皮肤使用

delphi皮肤使用
delphi皮肤使用

如果是VCLSkin的话:

创建新的工程,在控件面板的最下方增加了VCLSkin 栏,下面有TSkinData 和TSkinStore 两个控件

把TSkinData 拖放到你创建工程的窗体下。

设置TSkinData 中的Skinstore属性,指定皮肤文件。皮肤文件在下载的Skins 文件夹当中。

把TSkinData中的Active属性设置为true激活效果,默认是false 。

编译可看到效果。

我用的是delphi 7

我下载的AlphaControls+6.21+FS ,并复制到lib下,选择“文件” “打开” 找到acntD7.dbk “编译”

后出现

“ acHintPage in 'acHintPage.pas' {TFrameHintPage}; ”红色的

我忽略点了“安装” 。

在控件栏看到了“alphastandard” 下有按钮就拖上去一个。运行

出现

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, sScrollBar, ExtCtrls, sPanel, sButton;

提示没有找到Sscrollbar.dcu 然后选择“文件” “打开” 找到acntD7.dbk “编译”

后出现提示没有找到Sdef.inc 。

进入菜单[Tools]-[Environment Options] ,打开Library 页,在Library Path 栏加入你安装的组件的路径就可以了,不知道路径就搜索Sscrollbar.dcu就可以找到安装路径。

https://www.360docs.net/doc/0019076720.html,/weide001/archive/2009/04/22/4100975.aspx

1. VCLSkin综述

VCLSkin 是一个能让Delphi程序变得非常漂亮的控件包. 它允许允许软件开发人员不用修改程序代码便把软件界面变得非常漂亮。它的美化支持窗体和控件和菜单。VCLSkin同时也提供了大量高质量的skin(皮肤)让你应用于你的程序。

2. VCLSkin特点

VCLSkin 是一个用于让用户的程序界面更加漂亮的扩展控件。它允许软件开发人员不用修改源代码就能让他们的程序界面更加漂亮。一个标准的程序界面能在窗体放入VCLSkin控件后变得非常漂亮,而这公公需要几分钟的时间。VCLSkin 能做些什么?

不像其它控件那样,你需要修改源代码才能构建一个漂亮的界面,VCLskin 能让Delphi的标准控件在一下子就变得非常漂亮,而这一切都不用修改源代码。VCLSkin 支持以下的窗体:

Delphi Form

MDIform . (normal,Maximized, MInimized)

Common Windows dialogs (Open/Save,Font,Print,Color).

MsgBox.

Exception MsgBox.

VCLSkin 支持的标准控件:

The title bar of TForm

The title bar buttons

The borders of Tform

Tbutton,TBitbtn.

Tradiobutton and Tcheckbox

Tmainmenu and Tpopupmenu

Toolbar buttons

TTabcontrol and TPageControl

T Progressbar

TStatusbar

TCustomCombox,Tcombobox, TDbCombobox

TPanel and TGroupbox

TMemo, TListBox,TListView,TTreeview

TRadioGroup , TDBRadioGroup.

TCustomGrid,TStringgrid,TDrawgrid,Tdbgrid.

Third party component, Enlib, AdvGrid ..

同时也支持大量的第三方控件。

3.安装

你可以像安装其它控件一样安装这夽控件,其实就这几步:

解压缩Vclskin2.zip 到任意目录

在Delphi IDE 环境中选择菜单"File. Open...", 然后找到连接库

vclskindX.dpk, 按着点击Compile按钮。

在Environment 添加VCLSkin控件所在的路径。

DX - Delphi X, X - version CBX - CBuilder X, X - version

--------------------------------------------------------------------------------

1. TSkinData

TSkinData 主要用于美化你的程序, 只要把TSkinData控件放下去,它就能自动美化所有窗体。

属性

Active: 使用或取消对程序的美化。

DisableTag: 取消对某个特定的组件的美化; 把组件的Tag属性设为99就行了。(control.tag mod 100=disabletag)

SkinControls: 指定哪类组件能被美化.

SkinFile: skin(皮肤)文件的包含路径的文件名,在运行时加载。

SkinStore: 在设计模式时储备的skin文件.

SkinFormType: 能使用多种美化方式.

方法

LoadFromStream(Stream: TStream);

LoadFromFile(value:string);

LoadFromCollection(astore:TSkinStore;aindex:integer);

在运行时装载skin文件.

UpdateSkinControl(fParent:Tform);

UpdateMenu(fParent:Tform);

在运行时组件创建时进行美化。

事件

OnFormSkin(Sender:TObject;aName:string;Var DoSkin:boolean); OnFormSkin 事件的发生先于美化窗体, 如果Doskin 为true, Vclskin 就会美化这个窗体,如果为false,Vclskin 就会跳过这个窗体. aName 是窗体的类名. OnSkinChangned(Sender:TObject);

OnSkinChanged 发生在skin文件改变之后。

2. TSkinStore

TSkinStore 能让你在设计模式时储存多个skin文件。

TSkinData 能在运行时从TSkinStore 装载skin文件:

TSkinData.LoadFromCollection(astore:TSkinStore;aindex:integer),

3. 怎么美化程序界面

你可以在几分钟内构建一个漂亮的程序.

1 把TSkindata 控件放在主窗体上。

2 设置Skindata.skinstore 属性, 把skin文件储存在你的程序中。

3 设置Skindata.active = true

4 编译运行你的程序。

4. VCLSkin FAQ

1 如果我的工程中有14个窗体,用不用每个窗体都放一个skin控件?

不用,你只需要放置一个Tskindata在你的主窗体,Vclskin就能自动美化每个窗体。

2 怎样美化一个内嵌的窗体?

Vclskin 不能自动美化内嵌窗体,你要手动控制它。压缩包中有一个"NestedForm"的例子,讲的是在运行状态美化内嵌窗体、框架的。

3 怎样美化动态控件?

你需要手动控制它。代码如下:

control:=Tmycontrol.create(form1);

skindata1.UpdateSkincontrol(form1); // add this line to skin dynamic control.

4 怎样美化依靠窗体?

Vclskin 支持停靠窗体. 例程代码如下:

procedure TDockableForm.FormShow(Sender: TObject);

begin

if MainForm.skindata1.active then MainForm.skindata1.skinform(handle); end;

5 怎么美化动态的右键菜单?

例程代码如下:

popup:=Tpopupmenu.create(form1);

..... add menuite

skindata1.UpdateMenu(form1); //add this line

popup.popup(x,y);

6 怎样美化动态窗体?

Vclskin 可以美化动态窗体, 但不能自动美化内嵌窗体. 点击这儿查看如何美化内嵌窗体.

7 找不到文件'c:\program files\borland\delphi7\SM\winskindata.pas'

Delphi7 试用版与Delphi7正式版的Dcu文件格式是不一样的。

如果你使用的是正式版,你可以安装一个演示包。vclskin2.zip.

如果你使用的是试用版,你可以安装一个演示包。D7trial.zip.

8 使用FastReport 时,出现了“无效操作,控件没有父窗体的的错误提示? 设置TSkindata.skincontrols.xcFastReport = true 就可以解决这个问题。

9 使用ReportBuilder 出现了“无效操作,控件没有父窗体的错误提示?

你可以在TSkindata.OnformSkin 事件中取消美化这个控件。代码如下: procedure Tform1.SkinData1FormSkin(Sender: TObject;

aName: String; var DoSkin: Boolean);

begin

//'TppPrintPreview' 就是要取消美化的窗体名称。

if aName='TppPrintPreview' then doskin:=false;

end;

10 如何存取skin文件的颜色?

你可以借助Tskindata.colors[] 属性来存取颜色。

比如说, 窗体的背景色是: skindata.Colors[csButtonFace].

TShemeColor=(csText,csTitleTextActive,csTitleTextNoActive, csButtonFace,csButtonText,

csButtonHilight,csButtonlight,csButtonShadow,csButtonDkshadow, csSelectText,csSelectBg,csHilightText,csHilight,

csMenuBar,csMenuBarText,csMenuText,csMenubg,

csScrollbar,csTextDisable);

TShemeColors=array[csText..csTextDisable] of Tcolor;

Skindata.Colors: TShemeColors;

11 用户能自定义那些可视化控件的外观吗?

你可以使用skin builder自定义细节.

12 怎样取消美化某个窗体或控件?

设置form.tag=99 取消美化这个窗体。

13 如何在美化一个工程的窗体标题栏和菜单的风格?

设置TSkindata.skincontrols.xcMainmenu = false .

--------------------------------------------------------------------------------

相关VCLskin 下载链接: https://www.360docs.net/doc/0019076720.html,/sort/tag/VCLSkin

本文来自CSDN博客,转载请标明出处:

https://www.360docs.net/doc/0019076720.html,/weide001/archive/2009/04/22/4100975.aspx

如果是VCLSkin的话:

创建新的工程,在控件面板的最下方增加了VCLSkin 栏,下面有TSkinData 和TSkinStore 两个控件

把TSkinData 拖放到你创建工程的窗体下。

设置TSkinData 中的Skinstore属性,指定皮肤文件。皮肤文件在下载的Skins 文件夹当中。

把TSkinData中的Active属性设置为true激活效果,默认是false 。

编译可看到效果。

https://www.360docs.net/doc/0019076720.html,/view/9f7a3636f111f18583d05ac1.html

提示信息:

先在每个控件的hint属性里面添上您要显示的内容,

再设showhint属性为true就可以了呀!

procedure TForm1.FormMouseDown(Sender:TObject;Button:TMouseButton;S hift:TShiftState;X,Y:Integer);

begin

ax:=x;

ay:=y;

end;

procedure TForm1.FormMouseUp(Sender:TObject;Button:TMouseButton;Shif t:TShiftState;X,Y:Integer);

begin

with Form1 do

begin

if start then

Canvas.Pen.Width:=1;

Canvas.Pen.Color:=clBlack;

Canvas.Pen.Style:=psSolid;

{以下代码画折线}

Canvas.MoveTo(ax,ay);

Canvas.LineTo(ax+40,ay);

Canvas.LineTo(ax+40,y);

Canvas.LineTo(x,y);

{以下代码画箭头}

Canvas.MoveTo(x-5,y-5);

Canvas.LineTo(x,y);

Canvas.LineTo(x-5,y+5);

start:=false;

end;

end;

{$R *.dfm}

end.

----------------------------------------------------------------------

在 "if start then" 之后应加begin,否则只执行其后的一条语句.

改为如下:

if start then

begin

Canvas.Pen.Width:=1;

Canvas.Pen.Color:=clBlack; Canvas.Pen.Style:=psSolid; {以下代码画折线}

Canvas.MoveTo(ax,ay);

Canvas.LineTo(ax+40,ay); Canvas.LineTo(ax+40,y); Canvas.LineTo(x,y);

{以下代码画箭头}

Canvas.MoveTo(x-5,y-5); Canvas.LineTo(x,y);

Canvas.LineTo(x-5,y+5);

start:=false;

end;

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

《数据库技术》(delphi)试卷及答案

湖北汽车工业学院《数据库技术》(delphi )试卷(A )答案 一、单选题(每题1.5分,共30分) 1、Delphi 程序设计的基本特点是:( D )。 A 可视化程序设计 B 代码程序设计 C 事件驱动编程 D A 和C 2、进度显示组件ProgressBar 的当前进度可以通过( C )属性设置。 A Step B Scroll C Position D Max 3、下列变量命名正确的是:( B )。 A 7ABC B My7 C page@2 D cmd..1 4、“x 是小于200的非负数”的Object Pascal 表达式是( C )。 A 0 ≤ x < 200 B x >= 0, x<200 C (x >=0) AND (x < 200) D (x >= 0 ) OR (x<200) 5、在窗体上建立多页面的用户界面,需要首先建立的对象是( B ) A TabControl BPageControl C HeaderControl DPageScroller 6、能够删除edit1中内容的语句是( A )。 A edit1.Clear ; Bedit1. Focused ; C edit1.Text= null ; D .edit1.text :='\0' ; 7、现建立一个简单报表,仅包含数据列标题栏、数据栏和汇总栏,则在Bands 属性的子属性中,不需要选择的是( A ) A HasColumnHeader B Detail C Summary D Title 8、下面哪个功能键可以调出Delphi 的联机帮助信息(A ) A F1键 B F2键 C F3键 D F4键 9、Onclick 事件的操作是( B )

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控件)实现点对点传输大文件,要求不能掉

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';

Delphi法具体的实施步骤

Delphi法具体的实施步骤: 1、设置项目评估、预测组织小组 小组的主要任务是:拟订项目评估、预测主题,编制以通信方式咨询专家的评估、预测问题表,选择专家,依据专家几个轮回完成的咨询表,对专家提出的意见及结果进行一系列的整理统计分析等工作。 2、编制专家咨询表 在设计表时首先要在前言中说明本次研究的目的,对Delphi法作一简要介绍,以及专家在本研究中的作用。然后再根据研究主题设计出具体要征询的问题,以及必要的填表说明。专家咨询表要简化,问题的数量不宜过多、过繁,一般认为,如果问题数量超过50个,则项目评估组织小组就要认真研究问题是否过于分散。应注意的是,在Delphi法的实施过程中,任何情况下及下一轮,项目评估组织小组或领导者个人都不能把自己的意见列入到专家咨询表中,否则就有可能把评估、预测结果引入迎合领导人偏误的轨道上。 3、选择专家组 挑选专家是Delphi法预测成败的一个重要问题。一般认为要从与研究主题相关的各个分支学科中选择有一定经验的、对研究感兴趣的专家。专家成员选择不当,一方面会增加评价中的偏倚;另一方面又会导致轮回之间应答率的下降。而要检验未应答者与应答者之间是否有差异,则常常难以做到。 Delphi法专家选择的基本原则是必须突出广泛性、代表性和权威性,兼顾相关专业领域和地域分布。所谓专家,应当是在自己所擅长的领域很少犯错误的专门人才,应当拥有一定的信息储备量,如一般方法学和基础、理论规律性与基本趋势的知识、参考资料量、专业及其相近领域的交叉学科知识、以往评估的经验、对该部分其他评估专家不同观点的独立见解等。评估专家的选择,取决于具体课题的目的与任务,宜从本部门内外,甚至从国内外同时挑选。从外部选择专家比较困难,首先要搜集本部门职工较熟悉的专家名单,再从有关期刊和出版物中物色一批知名专家,然后发给这两部分专家以某种形式的调查表,并了解该专家能否自始至终参加评估,同时要求他们再推荐1~2名有关专家。评估小组从推荐名单中选择一批有2人以上同时推荐的专家。在选择专家的过程中,不仅要注意选择有一定名望的本学科专家,还需要选择有关的边缘学科,选择承担各种技术领导职务的专家固然重要,但应考虑他们是否有足够的时间填写调查表。经验表明,一个身居要职的专家匆忙填写的调查表,其参考价值不如一个一般专家认真填写的调查表。

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');

delphi技术 FastMM的安装方法

delphi技术FastMM的安装方法 2010-01-14 15:45 FastMM 快速MM:-),在D2006和2007中已代替了原来的内存管理器。D7也可以使用,而且很方便哦。请看步骤: 1. FastMM是开源项目,去她老家先拖个来. https://www.360docs.net/doc/0019076720.html,/projects/fastmm 2.文件替换 Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance\BorlndMM.dll, 替换掉Delphi\Bin下的相应文件就可以完成对IDE的提速 3. 添加FassMM路径 Enviroment->Library->Directories添加FassMM路径 4.使能FastMM4 在你的项目文件中,Project->V iew Source打开后,uses后第一个添加FastMM4 5.All done! 运行程序,如果有Memory leak,在关闭程序时会有一个提示对话框. 对话框也是可以关闭的 打开FastMM4Options.inc文件。在文件的末尾添加如下代码: {$define Release} {$ifdef Release} {Specify the options you use for release versions below} {$undef FullDebugMode} {$undef CheckHeapForCorruption} {$define ASMV ersion} {$undef EnableMemoryLeakReporting} {$undef UseOutputDebugString} {$undef LogErrorsToFile} {$undef LogMemoryLeakDetailToFile} {$else} {Specify the options you use for debugging below} {$define FullDebugMode} {$define EnableMemoryLeakReporting} {$define UseOutputDebugString}{$endif} 重新打开把上面第一行条件编译定义选项{$define Release} 注释掉就可以了 如//{$define Release}

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:动态创建一具有姓名和年龄两个字段的数据集。

Delphi2010手册_1

马可坎图 Delphi2010Handbook A Guide to the New Features of Delphi 2010; upgrading from Delphi 2009 阿2010年指南德尔福的新特点,2009年升级从德尔福 Piacenza (Italy), February 2010 皮亚琴察(意大利),2010年2月 作者:马可坎图 Publisher: Wintech Italia Srl, Italy 出版商:文晔科技意大利Srl公司,意大利 编辑:彼得西澳木 技术审稿:奥尔赫弗里克,丹尼尔特提,马可波罗布雷韦列里,Chirs本森, Stefan Van As 凡由于斯特凡 封面设计:法布里奇奥斯基亚维 版权所有2009-2010马可波罗坎图,皮亚琴察,意大利。世界版权所有。 The author created example code in this publication expressly for the free use by its readers. 本出版物中的代码示例创建作者明确为读者免费使用。 The source 消息来源 code for this book is copyrighted freeware, distributed via the web site 该书受版权保护的代码,这是免费软件,通过网络站点分布 https://www.360docs.net/doc/0019076720.html, . https://www.360docs.net/doc/0019076720.html,。The copyright prevents you from republishing the code in print 版权防止打印你从代码重新发布 media without permission. 媒体未经允许。Readers are granted limited permission to use this code in their applications, 读者只获得有限的允许使用他们的应用程序代码中, as long at the code itself is not distributed, sold, or commercially exploited as a stand-alone product. 只要在代码本身没有分发,出售,或商业产品开发为一个独立的。 Aside from this specific exception concerning source code, no part of this publication may be stored in a 除了这一特定的异常有关源代码,没有出版的一部分,这可能是存储在 retrieval system, transmitted, or reproduced in any way, in the original or in a translated language, 检索系统,传送,或以任何方式复制,在最初的或在翻译的语言,

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.360docs.net/doc/0019076720.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 与恢复命令一起使用.表示最大限度的恢复设置值.

Delphi高级停靠(Dock)技术的实现

高级停靠(Dock)技术的实现 介绍 所谓停靠就是可以用鼠标拖动窗体或者控件,并将其从一个父窗体移出或者移动到另一个父窗体上,可以按水平,垂直方 向整齐排列,并且可以停靠在分页控制组件上。下面的示意图是一个Delphi IDE 的窗口停靠示意图: 考察一些常用的软件如Office等大型软件,会发现大多提供窗体停靠的功能。微软的MFC很早就引入了工具条的拖放功能, 可以将工具条上窗口上边拖放到窗口下边。而Borland则最早在Delphi 4中开始引入停靠功能支持,它实际上就是基于前 面我们讲到的VCL拖放技术基础之上的,后面我们会看到两者有多么的类似。Borland提供了停靠功能的一个演示程序, 可以在..\Demos\Docking目录下找到它,不过这个例子的问题就是太过复杂,使用了很多的高级技巧,不易理解。所以我 将抛开复杂的示例,一步一步的揭开停靠的秘密。 一个简单的停靠实现 工具条的停靠功能是最常见的功能需求,新建一个程序,在窗体上放置一个工具条,然后任意添加几个按钮,为了让工具条 能够从窗体上移出,最简单的办法是设定工具条的DragMode属性为dmAutomatic,将DragKind属性设定为dkDock。就像在拖 放类一章我们说的,DragMode设定为dmAutomatic表示当鼠标在工具条上点击并移动后,会自动发起拖放动作。而DragKind 为dkDock表示接下来的操作是一个停靠操作而不是普通的拖放操作。

运行这个简单的程序,然后拖放工具条,我们发现确实可以将工具条拖离主窗体使其变成一个浮动的工具条。注意在工具条 从窗体拖离时,VCL会在屏幕上画一个矩形表示工具条,我们称其为停靠图像。见下图: 可以看到,VCL强大的停靠支持使我们不用写一行代码就可以实现简单的停靠功能了,但是上面的程序存在几个问题: 1、由于使用了dmAutomatic属性,哪怕是单击一下工具条不做任何拖动,都 会使它变成浮动的工具条。 2、拖离窗体后变成浮动的工具条无法停靠回原来的位置。 3、浮动的工具条窗口可以被关闭,而关闭后再也没办法调出工具条了。 对于第一个问题,为了实现工具条在鼠标点击后,必须拖放几个像素后才能被拖离界面,可以像前面拖放类章节中所讲 的那样,设定工具条的DragMode为dmManual的手工模式,然后在工具条的OnMouseDown事件中使用拖放函数BeginDrag来发起 拖离的动作: procedure TForm1.ToolBar1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Toolbar1.BeginDrag(False); end; 而为了让浮动工具条能够被停靠回主界面,我们需要设定窗体的DockSite属性为True,表示窗体是一个停靠的锚点,允许 别的控件停靠在它上面。

在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

DELPHI COM技术

DELPHI COM + 技术 本文通过实例讲解在Delphi中如何维护COM+的状态信息 问题是这样开始的:我需要写一个COM+,用来连接不同的数据库。有的朋友可能会说,应该为每个数据库建立一个COM+,但是在我的系统里不能这样。我们在做一个教育辅助系统,用户是学校(当然包括学校里的老师、学生、家长),我们为每个学校建一个数据库,这些数据库的结构是相同。当然我们还有管理数据库,用于协调各数据库的关系。每增加一个学校用户,我们就激活一个新的数据库给客户使用,也就是说,我们的数据库的个数是不断增加的,而我们的客户端只有一个,我们不会为每个学校开发不同的客户端,我们的COM+也只有一组,而不是为每个数据库开发一组。所以我必须在COM+中根据用户的身份让它去连接不同的数据库。 很显然,这个COM+应当提供一个方法,让其调用者(可以是客户端应用程序,也可以是其它的中间件)去选择连接的数据库,在实际中我们是根据用户的ID在管理库中查到它的数据库名,然后连接用户数据库,在这里,为了简化问题,我们认为调用者已经知道了数据库的名字,而直接要求调用这个数据库。 在COM+的类中增加一个私有成员DBName:string,用于保存要连接的数据库名称。还应该提供这样一个方法来设置它的值,我开始是这样写的 procedure TmtsDBConn.ConnectTo(sDBName:string); begin try DBName:=sDBName; SetComplete; Except SetAbort; end; end; 然后在其中放入ADOConnection,ADODataSet,和DataSetProvider控件,分别取名为adoc,adods,dsp。设置好它们之间的连接关系,把adoc的连接字符串设为连接数据库“DB1”,这是默认值,然后在adoc的BeforeConnect事件中:

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:= '';

基于Delphi的视频系统的实现

收稿日期:2009-06-22;修改日期:2009-08-31 作者简介:向 隅(1966-),男,副教授。研究方向:数 学建模及网络数据库。 基于Del ph i 的视频系统的实现 向 隅 (武汉铁路职业技术学院电子电气工程系,武汉 430205) 摘要:随着通信技术与多媒体技术的飞速发展,以多媒体视频为主的应用得到了广阔的发展。文章构建了一个W i ndow s 平台下独立于硬件的视频采集及传输系统。使用A cti veX 视频控件,基于D elph i 2009开发环境,实现了对视频的采集和传输,并给出了软件流程框图。实验结果表明:在应用程序中使用A ctive X 视频控件,很容易实现视频的采集和传输。关 键 词:V ideoCap X A c ti veX 控件;图像捕获;视频传输中图分类号:T P391 41 文献标识码:B 文章编号: 1672-4550(2010)01-0063-03 Realization of V i deo Syste m s Based on Del phi X I A NG Yu (E l ectron i c&E lectri ca lEng i neeri ng D epart m en t ,W uH an Ra il w ay Vocati onal Coll ege ofT echnology ,W u H an 430205,Ch i n a) Abstrac t :W it h t he rapid deve l op m ent of co mmunicati on and mu lti m ed i a techn i que ,the appli cation o f the mu lti m ed ia v ideo got a broad deve l op m ent Th is pape r bu il ds a hard w are i ndependent v i deo ga t her i ng and trans m i ssi on syste m based onW i ndow s U sing v i deo A c ti veX contro l has rea li zed v i deo ga t her i ng and trans m i ssi on based on De l phi 2009develop m ent env ironment and presented a so ft w are fl ow chart T he results sho w s tha t it i s very easy to rea lize v ideo ga t her i ng and trans m i ssi on usi ng V i deo A ctive X contro ls i n progra m m i ng K ey word s :V ed i oC apX A cti veX contro ;l i m ag e capture ; v i deo trans m ission 1 引 言 随着计算机和多媒体技术的发展,可视电话、视频监控、视频聊天等应用迅速兴起。视频捕获与实时处理成为目前图像处理系统中最关键的技术之一[1] 。尽管微软公司为用户提供了一个关于数字视频处理的软件包VF W SDK (V ideo for W indo w s SDK ),它能使应用程序通过数字化设备实现视频的捕获。但是,微软的VF W SDK 是基于VC 和VB 的,而不是基于De l p h i 的,尽管I nter net 网络上有Delphi 的,若要在De l p h i 中使用VF W SDK,则较复杂,需要进行相关的定义。目前市面上有许多音视频的A ctive X 控件,用户直接在开发软件中添加后就可以使用,非常方便。其中,V ideoC apX 音视频A ctive X 控件是目前使用较为广泛的控件。V i d eoCapX 允许程序员方便地访问视频采集卡、扫描仪和数码相机,如果用于保存JPG 文件和将照片上传到服务器,是一款支持D irect X 的A ctive X 控件。 2 系统结构 完整的视频采集及传输系统结构如图1所示。其工作流程如下:图像信号由视频采集卡采集,视频捕获系统将采集后的信号转换为数据并存放在内存中供使用。用户打开属性对话框调整图像,视频传输系统将视频流传输到请求方的机器上显示。 图1 系统结构 作为系统的核心部分,视频捕获系统是基于V ideo C apX 控件开发的(控件名为V ideoC apX ocx ),具体完成创建捕获窗口、连接驱动信息、捕获帧图像、传输帧图像等步骤。 3 视频捕获系统 视频捕获系统的核心是数字视频处理控件V id eo C apX,它是由Fath Soft w are 开发的,提供了一个访问硬件的透明接口,可以在不了解硬件具体特征 63 第8卷 第1期实验科学与技术

相关文档
最新文档