-
Delphi7 向XML中添加RTTI信息
Delphi7.0 向XML中添加RTTI信息,这个例子挺简单,希望大家喜欢,面向Delphi新手的,高手请绕道哦,下面是本例Delphi向XML中添加RTTI信息的关键性代码:
procedure TForm1.ComponentToDOM(iNode: IXmlNode; Comp: TPersistent);
var
nProps, i: Integer;
PropList: PPropList;
Value: Variant;
newNode: IXmlNode;
begin
nProps := GetTypeData (Comp.ClassInfo)^.PropCount;
GetMem (PropList, nProps * SizeOf(Pointer));
try
GetPropInfos (Comp.ClassInfo, PropList);
for i := 0 to nProps - 1 do
begin
Value := GetPropValue (Comp, PropList [i].Name);
NewNode := iNode.AddChild(PropList [i].Name);
NewNode.Text := Value;
if (PropList [i].PropType^.Kind = tkClass) and (Value 0) then
if TObject (Integer(Value)) is TComponent then
NewNode.Text := TComponent (Integer(Value)).Name
else
ComponentToDOM (newNode, TObject (Integer(Value)) as TPersistent);
end;
finally
FreeMem (PropList);
end;
end;
- 2022-01-26 03:00:57下载
- 积分:1
-
在Delphi中进行 YCrCb RGB 颜色值转换
在Delphi中进行 YCrCb RGB 颜色值转换,载入一张测试图片,右侧显示的转换后的颜色图像,文本框中显示的是各个转换过的颜色值。希望通过这个Delphi例子,帮你了解一下YCrCb向RGB颜色值的转换过程,转换方法和思路,本源码中则是具体的实战代码,请下载后研究。
- 2022-05-23 08:16:07下载
- 积分:1
-
Delphi7删除字符串指定字符(汉字)的例子
Delphi7删除字符串指定字符的例子,如图所示的运行效果,示例如下文字:“经过这几天在网上的淘金,多少也有些了解了,但是现在我发现就算将分区正确的话,分区所指向的目录区也许会有些问题。”,删除指定的文字为“在”,本例中将上述一段文字中所有的“在”全部删除,在代码部分,各个变量的定义有意思:
Strs, //文本字符串
Stre, //汉字字符串
St, //文本ASCII码
Se, //汉字ASCII码
L_St, //临时文本ASCII码
L_Se, //临时汉字ASCII码
Str_copy //保存文本
: String;
Ints, //文本总长度
Inte, //删除汉字长度
i, //文本循环
p, //汉字循环
ps, //文本指针变量
pe, //汉字指针变量
Int_zh, //找到时保存汉字位置
Int_ch //循环查找时的变量
- 2022-03-23 19:03:00下载
- 积分:1
-
取消窗体标题栏的关闭按钮-Delphi代码
Delphi 取消窗体标题栏的关闭按钮,也就是单击窗口右上角的关闭按钮,窗体并不会关闭,让关闭按钮失去了作用,用户可通过单击窗口中的自定义按钮来关闭窗口,这样就相当于取消了窗体标题栏中的关闭按钮。
- 2022-07-04 03:53:29下载
- 积分:1
-
方格变换的Delphi图像显示,类似于马赛克
方格变换的Delphi图像显示,类似于那种动态的马赛克效果,电视上经常见到这种图像切换的效果,当然网页上的一些焦点图切换也会常见到这种图像转场的过渡效果,相比直来直去的切换,增加了一些视觉效果,不至于那么单调。
本效果适用的图像格式了BMP位图,其它图片格式未做测试。
- 2022-07-18 02:39:41下载
- 积分:1
-
Delphi 主窗体和子窗体显示示例
Delphi 主窗体和子窗体显示示例,这类功能在平时的delphi编程中也是十分常见的,我们需要在主窗口中添加一个按钮,点击后弹出一个子窗口,对窗口布局来说是一种扩展。本示例简单,适合初学者学习参考。
- 2023-01-23 15:15:08下载
- 积分:1
-
Delphi 打印图形(图片)
Delphi 打印图形,把图片打印出来,通过这个例子,你可以学习到:
strect:Trect;//定义打印输出矩形框的大小
temhi,temwd:integer;
begin
if DIGPrint.execute then
begin
temhi:=imgpic.picture.height;
temwd:=imgpic.picture.width;
while (temhi = printer.pageheight div 2)and
//将图形放大到打印页面的1/2大小
(temwd = printer.pagewidth div 2) do
begin
temhi:=temhi+temhi;
temwd:=temwd+temwd;
end;
with strect do //定义图形在页面上的中心位置输出
begin
left := (printer.pagewidth -temwd) div 2;
top := (printer.pageheight-temhi) div 2;
right := left+temwd;
bottom := top+temhi;
end;
with printer do
begin
begindoc;
canvas.stretchdraw(strect,imgpic.picture.graphic);
enddoc;
end;
end;
- 2022-10-24 23:35:04下载
- 积分:1
-
Delphi 使用tfilestream方式复制文件
Delphi 使用tfilestream方式复制文件,你可参考本源码,学习一下OpenDialog、Tfilestream.Create、showmessage、CopyFile的用法,本实例复制文件,是通过读取文件流,保存文件流的方式复制,并不是使用命令复制文件。
- 2022-01-21 03:12:02下载
- 积分:1
-
Delphi 将TDBGrid导入到Excel表中附数据库
Delphi7.0将TDBGrid导入到Excel表中,测试程序先连接好SQLSERVER数据库,并将数据读取到TDBGrid中,然后再将数据从TDBGrid导入到Excel表中,为了测试方便,SQLSERVER数据库文件已经附在源码包中。以下代码片断会有参考意义,完整源码请下载:
//将TDBGrid表中的标题插入到Excel表中的首行
for I:=0 to DbName.Columns.Count-1 do
begin
if DbName.Columns[i].Visible=False then
Continue;
Page.Cells[j,i+1] := DbName.Columns[i].Title.Caption;
Page.Cells[j,i+1].Font.Bold := True; //设置字体为粗体
end;
Inc(j); //Excel表中的下一行
First; //将指针返回到TDBGrid表中数据的首行
while not Eof do
begin
for i:=0 to DbName.Columns.Count-1 do
begin
if DbName.Columns[i].Visible=False then
Continue;
//将指定行中每列的数据,添加到Excel表中
Page.Cells[j,i+1] := trim(DbName.DataSource.DataSet.Fieldbyname(DbName.Columns[i].FieldName).asstring);
end;
Inc(j); //Excel表中的下一行
Next; //TDBGrid表中的下一条记录
end;
- 2022-06-29 23:05:07下载
- 积分:1
-
形象的电子表-Delphi程序
Delphi编写制作一款形象的电子表(钟表)效果,模拟时钟,界面方面做成了圆形,看不见窗口的边框,像是透明的窗口,各个指针会走动,关于各个指针的移动及计算方法,有兴趣可参考:
vh := Hour/12.0*2*Pi;
vm := Min/60.0*2*Pi;
vs := Sec/60.0*2*Pi;
with Canvas do
begin
Pen.Width:=4;
Pen.Color := clBlack;
MoveTo(60,60);
LineTo(60+Round(25*Sin(vh)),60-Round(25*Cos(vh)));
Pen.Width:=2;
Pen.Color := clBlack;
MoveTo(60,60);
LineTo(60+Round(45*Sin(vm)),60-Round(45*Cos(vm)));
Pen.Width:=1;
Pen.Color := clRed;
MoveTo(60,60);
LineTo(60+Round(55*Sin(vs)),60-Round(55*Cos(vs)));
end;
窗体方面:这个圆盘窗口要是能移动就好了,不支持右键菜单,也不能关闭,关闭窗口需要按键盘上的ALT+F4。
- 2022-01-27 12:29:32下载
- 积分:1