-
Delphi 记录文件的读写
Delphi 记录文件的读写,这个程序非数据库程序,实际上也不是文件读写程序,只是使用主窗口、子窗口在这之间传值。在子窗口中输入数据,确定后,会将数据添加到主窗口的StringGrid中,然后通过修改命令,从StringGrid中再读取出数据,进行修改保存,演示了文件内容的读取和写入的操作过程 。
- 2022-02-12 09:49:41下载
- 积分: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
-
Delphi 使用Canvas美化ListBox列表项
Delphi 使用Canvas美化列表项,当用户鼠标单击ListBox列表项时,该列表项高亮显示,改变背景色,文字居中对齐,如图所示。
主要是使用了Delphi中的Canvas.FrameRect对其进行美化,具体代码有兴趣可参考:
Canvas.FrameRect(Clientrect);
if odSelected in State then
begin
Canvas.Brush.Color:=clRed;
Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,8,15);
setBkMode(Canvas.Handle,TRANSPARENT );
Canvas.TextOut((Rect.right-Rect.Left) div 2,Rect.Top,Items.Strings[Index]);
end
else
begin
Canvas.Brush.Color:=clSkyBlue;
Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,15,15);
Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items.Strings[Index]);
end;
- 2022-06-01 23:33:23下载
- 积分:1
-
Delphi 渐变的RGB空心色环绘制源码演示
Delphi渐变圆形的实现方法,RGB色环空心绘制演示源码:
oBmp := TBitmap.Create; //为了代码整齐就不写try了
oBmp.PixelFormat := ABitmap.PixelFormat;
oBmp.Width := ABitmap.Width;
oBmp.Height := ABitmap.Height;
BitBlt(oBmp.Canvas.Handle, 0, 0, oBmp.Width, oBmp.Height, ABitmap.Canvas.Handle, 80, 80, SRCCOPY); //要拷贝的位图
oRgn := CreateEllipticRgn(0, 0, 100, 100); //创建圆形区域
SelectClipRgn(ABitmap.Canvas.Handle, oRgn); //选择剪切区域
ABitmap.Canvas.Draw(0, 0, oBmp); //位图位于区域内的部分加载
- 2022-03-21 13:09:53下载
- 积分:1
-
Delphi 显示文件的播放进度
Delphi 显示文件的播放进度,使用了Timer实现对进度的计算和显示。
- 2022-05-28 13:11:17下载
- 积分:1
-
Delphi判断双字节字符的例子
Delphi判断双字节,用法简单,在窗口输入框中输入字符串,单击按钮即可,程序会判断出是否包含有双字节字符,判断方法请看下边的代码段:
s := Edit1.Text;
i := 0;
while i begin
if (ByteType(S,i) mbSingleByte) then
begin
s1 := s1+ copy(s,i,2)+;
i := i+2;
end
else
i:= i+1;
end;
label2.Caption := trim(s1);
- 2022-07-24 15:06:09下载
- 积分:1
-
Delphi 计算1到10之间的奇数和【源码】
Delphi 推荐到奇数,并计算1到10之间的奇数求和,这是个简单的数学问题,数学水平高,写出这种小程序并不难,趁机把代码帖出来吧:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
j:=0;
For i := 1 to 10 do
begin
if i mod 2 =0 then
Continue;
j := j+i;
Edit1.text := IntToStr(j);
end;
end;
- 2023-02-23 03:45:04下载
- 积分:1
-
Delphi 在窗体上显示超级连接效果
Delphi7.0实现超级连接效果,在窗体上显示超级链接,这个似乎比较简单了,在网页上这是基本的功能,不过如何把一个超链接显示在窗口中,和网页上有些区别,通过这个例子你将学会如何在窗体上实现链接的显示,以及多种链接状态的自定义功能。
- 2023-03-23 16:40:03下载
- 积分:1
-
一个相当不错的Delphi TreeView树控菜单
一个Delphi编写的相当不错的TreeView树控菜单,类似于Windows资源管理器中的树状菜单。
ParentFolder: IShellFolder; // 节点对应的文件夹的父文件夹的IShellFolder接口
Pidl, FullPidl: PItemIDList;// 节点对应的文件夹的相对和绝对项目标识符列表
HasExpanded: Boolean; // 节点是否展开
通过这个树形菜单制作实例,你可以学习到几个对项目标识符进行操作的函数,同时还有将二进制表示的项目标识符列表转换成有可识的项目名,获得每个文件夹在系统中的图标,获得系统的图标列表,生成文件夹管理树等。
- 2022-02-01 01:44:12下载
- 积分:1
-
Delphi 变速齿轮# 让时间变快减慢
Delphi 变速齿轮# 让时间变快减慢,其实这个似乎是做不到的,只是模拟一下,代码及描述如下:
procedure Speed(count:word); stdcall;
const ExceptionUsed = $03; { 中断号也可以用其它的中断号}
var
IDT : array [0..5] of byte; { 保存中断描述符表}
lpOldGate : dword; {存放旧向量}
begin
asm
push ebx
sidt IDT {读入中断描述符表}
mov ebx, dword ptr [IDT+2]{IDT表基地址}
add ebx, 8*ExceptionUsed {计算中断在中断描述符表中的位置}
cli {关中断}
mov dx, word ptr [ebx+6] {取6,7字节 另外4字节用于门属性和选择子 }
shl edx, 16d {左移16位}
mov dx, word ptr [ebx] {取1,2字节 }
mov [lpOldGate], edx {保存旧的中断门}
mov eax, offset @@Ring0Code {修改向量,指向Ring0级代码段}
mov word ptr [ebx], ax {低16位,保存到1,2字}
shr eax, 16d
mov word ptr [ebx+6], ax {高16位,保存到6,7位}
int ExceptionUsed {发生中断}
mov ebx, dword ptr [IDT+2] {重新定位到中断描述符表中}
add ebx, 8*ExceptionUsed
mov edx, [lpOldGate]
mov word ptr [ebx], dx
- 2023-02-13 04:55:03下载
- 积分:1