-
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 钩子函数创建鼠标操作的演示
Delphi 钩子函数创建鼠标操作的演示,作者:冉林仓,测试内容包括三个:DemoRecord.dpr DemoPlayBack.dpr Hktest.dpr。
安装与调试说明:
如果制作的演示程序工作不正常,请注意修改HKPROC.PAS,JOURNALPLAYBACKHOOKHANDLER函数,主要是修改返回的RESULT值.
记录的消息序列与屏幕窗口位置、分辨率有很大的关系,哪怕是窗口位置和大小仅仅偏一点,你的回放就不一定正常,请你在使用时要反复调试,以获得比较理想的效果。
- 2023-09-02 14:55:03下载
- 积分:1
-
Delphi 简单获取Windows时间的例子
简单获取Windows时间-Delphi源代码,改时间的小程序,在Windows自带的时间管理中也可完成系统时间的修改,这个只是一个帮助了解Windows与Delphi编程的例子,如何通过Delphi的程序来修改Windows时间,大致就是这样实现的。可参见以下源码:
procedure TForm1.Button1Click(Sender: TObject);
var
Dtimer : TSystemTime;
hh,Ghh : Integer;
begin
hh := StrToInt(Trim(Edit4.Text));
if hh < 8 then
Ghh := 16 + hh
else
Ghh := hh - 8;
with Dtimer do
begin
wYear:=StrToInt(Edit1.Text);
wMonth:=StrToInt(Edit2.Text);
wDay:=StrToInt(Edit3.Text);
wHour:=Ghh;
wMinute:=StrToInt(Edit5.Text);
wSecond:=StrToInt(Edit6.Text);
end;
SetSystemTime(Dtimer);
end;
- 2022-07-09 18:55:23下载
- 积分:1
-
Delphi创建透明图像效果的窗体
Delphi创建透明图像效果的窗体,这个示例实际是演示调用透明图片并显示的效果,用此制作成一个无边框且透明的窗口,制作时需要把此窗口设为Desktop型的。图片最好是BMP或PNG透明格式的,这样当图片显示时,会显示为一个无边框的透明窗口,没有图像的部分会显示窗口下层的内容,演示了一种制作透明窗口的方法。
- 2022-02-25 21:57:42下载
- 积分:1
-
Delphi 垂直交错显示效果
图片的垂直交错效果,Delphi 编写的图片垂直交错显示效果,之前就分享过这种效果,类似百叶窗的交替显示效果,可用于图片转场,不过本效果还有很多地方需要优化,当时是写给一本书,作为随书实例的,有兴趣的可参考,关于本功能的关键代码部分,请看以下代码:
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
i:=0;
while i0 do
begin
newbmp.Canvas.CopyRect(Rect(0,j-1,bmpwidth,j),image1.Canvas,Rect(0,bmpheight-i+j-1,bmpwidth,bmpheight-i+j));
newbmp.Canvas.CopyRect(Rect(0,bmpheight-j-1,bmpwidth,bmpheight-j),image1.Canvas,Rect(0,i-j,bmpwidth,i-j+1));
j:=j-2;
Application.ProcessMessages;
end;
form1.Canvas.Draw(0,0,newbmp);
i:=i+2;
end;
newbmp.free;
- 2023-04-12 21:35:03下载
- 积分:1
-
Delphi Shadow窗口阴影立体效果
Delphi 制作立体窗口阴影效果,这个阴影看上去很明显,不过不是线性的,线性的实现起来要比这种阴影复杂一些。
ShadowWidth:integer; //用于确定阴影的宽度或高度
RightShadow:TForm; //主窗口的右边产生一个阴影窗口
BottomShadow:TForm; //主窗口的下部产生一个阴影窗口
procedure WMWindowPosChanged(var Msg:TWMWindowPosChanged);message wm_windowposchanged;
- 2022-05-14 21:59:11下载
- 积分:1
-
Delphi 获取拖动到窗体中的文件的路径
Delphi 获取拖动到窗体中的文件的路径,这实际上是一个拖放打开文件的例子,这只不是其中的一个步骤,拖放打开是把文件拖放到本窗口中,直接打开该文件,而拖放得到路径是把文件的路径显示在窗口中,和打开文件其实难易程序是一样的。拖放后获取文件路径,代码如下:
procedure TForm1.FileIsDropped(var Msg: TMessage);
var
NumFiles : longint;
i : longint;
FName : array[0..255] of char;
begin
SetForegroundWindow(Handle);
NumFiles := DragQueryFile(Msg.WParam,$FFFFFFFF,nil,0);
for i := 0 to (NumFiles - 1) do
begin
DragQueryFile(Msg.WParam,i,FName,sizeof(FName));
Memo1.Lines.Add(FName);
end;
end;
- 2022-09-25 15:45:03下载
- 积分:1
-
Delphi 使用ESC键停止循环
Delphi 使用ESC键停止循环,示例演示程序,单击按钮开始循环,按下键盘ESC键,将停止循环。程序核心代码:
begin
for i:= 0 to 9999999 do
begin
Edit1.Text := IntToStr(i);
//允许应用程序在循环中可以处理消息
Application.ProcessMessages;
//用是 ESC 键放弁循环
if GetKeyState(VK_ESCAPE) and 128 = 128 then
Break;
end;
end;
- 2022-03-24 17:07:24下载
- 积分:1
-
Delphi SQLSERVER 操作员权限设置程序
Delphi SQLSERVER 操作员权限设置程序,以销售、进货两个功能,来演示不同帐号所享有的不同操作权限,从用户管理模块中,你可以修改权限设置,测试前,请首先连接好SQLSERVER数据库。
你可以使用以下的测试帐户来感受权限控制功能:
普通用户
用户名:Power
密码: 111
高级用户
用户名:mr
密码: 111
- 2022-05-21 02:43:58下载
- 积分: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