-
Delphi 使DBGrid支持鼠标滚轮
Delphi 使DBGrid支持鼠标滚轮,测试前请确保程序已连接好数据库,否则会有很长一段时间反应,读取的数据会显示在DBGrid控件中,请在DBGrid组件中滚动鼠标滚轮,可将整个列表上下滚动,便于浏览数据,这个功能在一些软件中经常会遇到,具体编写思路请下载源码研究。
- 2022-04-12 01:26:52下载
- 积分:1
-
Delphi为程序添加esc退出程序的功能
本源码演示Delphi如何用ESC键退出程序,为程序添加esc退出程序的功能,一般情况下,关闭程序都是通过ALT+f4或者直接点击窗口右上角的叉子关闭,不过我们也可以为程序添加通过键盘按下ESC键来关闭程序,本源码就是演示了此种功能,当用户按下ESC时,窗口即关闭,程序退出。
- 2022-07-21 22:03:47下载
- 积分:1
-
Delphi 制作红绿眼镜三维立体画
这是一个Delphi色彩控制方面的示例,我看上去更像是Delphi分离出红绿颜色通道,从页形成的一种立体效果,复制和修改颜色模式来实现,相关代码可参考如下:
//设置添充颜色的大小
DBitmap.Width := LBitmap.Width;
DBitmap.Height := LBitmap.Height;
vRect := Rect(0, 0, DBitmap.Width, DBitmap.Height); //获取添充区域
DBitmap.Canvas.Brush.Color := vGreen; //设置画笔颜色
DBitmap.Canvas.FillRect(vRect); //添充颜色
LBitmap.Canvas.CopyMode := cmSrcPaint; //将复制模式改为OR
LBitmap.Canvas.CopyRect(vRect, DBitmap.Canvas, vRect); //对图片进行复制
DBitmap.Canvas.Brush.Color := vRed;
DBitmap.Canvas.FillRect(vRect);
RBitmap.Canvas.CopyMode := cmSrcPaint; //将复制模式改为OR
RBitmap.Canvas.CopyRect(vRect, DBitmap.Canvas, vRect); //对图片进行复制
DBitmap.Canvas.CopyRect(vRect, LBitmap.Canvas, vRect);
DBitmap.Canvas.CopyMode := cmSrcAnd; //将复制模式改为AND
DBitmap.Canvas.CopyRect(vRect, RBitmap.Canvas, vRect);
except
Exit;
end;
Result := True;
end;
- 2023-02-01 08:05:04下载
- 积分:1
-
Delphi 全屏播放视频窗口
Delphi 全屏播放视频窗口,这是一个自动全屏的窗口,当你播放视频时,窗口会自动最大化,并且隐藏窗口的标题栏和状态栏,就像播放视频时的全屏效果一样。
- 2022-01-26 06:52:10下载
- 积分:1
-
使用Delphi 制作无闪烁的动画效果
使用Delphi 制作无闪烁的动画效果,如何实现不闪烁的动画呢?这个例子或许能找到一些答案:部分代码如下:
var
x,i: Integer;
dir,run: Boolean;
begin
b := TBitMap.Create;
b.Width := AnimWindow.Width;
b.Height := 32;
b.Canvas.Pen.Color := clBtnFace;
b.Canvas.Brush.Color := clBtnFace;
b.Canvas.Rectangle(0,0,AnimWindow.Width,32);
run := True;
dir := False;
x := 0;
while run do
for i := 0 to AnimWindow.ImageList1.Count-1 do
begin
b.Canvas.Rectangle(0,0,AnimWindow.Width,32);
AnimWindow.ImageList1.Draw(b.Canvas,x,0,i);
Synchronize(DrawAnimPic);
Sleep(AnimWindow.SpinEdit1.Value);
if (x = 0) or (x = 300) then dir := not dir;
if dir then Inc(x) else Dec(x);
end;
b.Free;
end;
- 2023-03-22 21:40:04下载
- 积分:1
-
Delphi IntToHex函数用法举例
关于IntToHex,在Delphi中使用频率也是挺高的,不过像我这种菜鸟,对IntToHex的具体用法仍是不太熟悉,后来看了这个小程序,了解了一些,分享给大家,特别是以下代码会加深你对IntToHex函数的用法理解。
procedure TForm1.Button1Click(Sender: TObject);
var
S:integer;
begin
S:=2147483647;
showmessage(inttoHex(s,8));
showmessage(inttoHex(s,10));
showmessage(inttoHex(s,16));
showmessage(inttoHex(s,32));
end;
- 2022-09-07 01:20: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 TForm1.Button1Click(Sender: TObject);
var
i,j : integer;
begin
for i := 1000 to 2000 do
begin
j := i;
windows.Beep(1000,3000);
end;
end;
- 2022-02-05 03:44:28下载
- 积分: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 将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