-
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编写制作一款形象的电子表(钟表)效果,模拟时钟,界面方面做成了圆形,看不见窗口的边框,像是透明的窗口,各个指针会走动,关于各个指针的移动及计算方法,有兴趣可参考:
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 实现组件立体阴影、投影效果
Delphi 为组件制作立体效果,实现组件的阴影、投影效果,这种阴影效果不是很细腻,不过大致也说得过去,必竟实现方法简单,原生Delphi方法实现,不依靠三方控件,最终效果请参见测试截图所示。
- 2022-07-03 03:09:14下载
- 积分:1
-
Delphi 使同类的组件进行同样的操作
Delphi 使同类的组件进行同样的操作的一个实例,类似于将WEB表单统一清空的功能,点击按钮后,所有文本框组件的内容被清空,作用在相同的组件实例上,代码:
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ClearText : Integer;
begin
For ClearText := 0 to Form1.ComponentCount -1 do
begin
//判断如果窗体中包含文本框组件,则将所有文本框组件的内容清空
if Form1.Components[ClearText] is TEdit then
begin
TEdit(Components[ClearText]).Clear;
end;
end;
end;
- 2022-05-23 05:25:03下载
- 积分:1
-
Delphi 7.0 在局域网内发消息
Delphi 7.0 在局域网内发消息,这个本站收集有很多例子了,学习Delphi网络编程可参考的例子,Delphi网络发消息,局域网发消息的例子,敬请关注。
局域网内发消息核心代码:
procedure TFrmSendMessage.Sendmessage(const msg,tomachine,from:string);
var
ms:PWideChar;
begin
ms:=PWIDEChar(WideString(msg));
NetMessageBufferSend(nil,pWidechar(WideString(tomachine)),pWidechar(WideString(from)),ms,length(msg)*2);
end;
procedure TFrmSendMessage.BtnSendClick(Sender: TObject);
begin
Sendmessage(mmMessage.Text,EDTo.Text,EDFrom.Text);
end;
- 2022-04-01 17:32:07下载
- 积分:1
-
Delphi数据库编程案例:教材管理系统源码
这是一款基于Delphi和Access数据库的编程案例:教材管理系统源码,经过修正完善后可作为学校的教材管理程序,功能模块主要有:系统功能设置、教材资料输入、教材出入库管理、教材信息管理等。
- 2022-04-14 14:29:20下载
- 积分:1
-
Delphi获取从开机到现在CPU运行的周期数
Delphi获取从开机到现在CPU运行的周期数,不是获取开机时间多长,是CPU的周期数,显示的值为数字字符串,运行效果如示例截图所示。代码段:
begin
Edit1.Text := inttostr(periodicity);
end;
- 2022-07-05 04:51:29下载
- 积分:1
-
Delphi 文件目录操作
一个基础的Delphi 文件目录操作示例,这里是拷贝指定的文件夹目录,一是了解复制文件的原理,二是熟悉Delphi中的目录操作技巧。
- 2022-03-15 15:35:17下载
- 积分:1
-
Delphi获取和设置汉字输入法
Delphi 获取系统中已安装的中文输入法,判断是否在中文状态,若是则关闭它,切换半角和全角模式,切换中文标点模式和英文标点模式,并对输入法做相关设置。以下是相关代码:
procedure TForm1.closecid;
var
mycid:hkl;
begin
mycid:=GetKeyBoardLayOut(0);
if ImmIsIME(mycid) then
//判断是否在中文状态,若是则关闭它
immsimulateHotkey(handle,IME_CHotKey_IME_NonIME_Toggle);
end;
procedure TForm1.FormShow(Sender: TObject);
var
j:integer;
begin
for j:=0 to screen.imes.count-1 do
begin
//获取系统中已安装的中文输入法
ComBoBox1.Items.Add(screen.Imes.strings[j]);
end;
end;
- 2022-10-19 03:05:03下载
- 积分:1
-
Delphi 控制Canvas上的直线点跟随鼠标移动
Delphi 怎样让Canvas上直线的一个端点跟着鼠标跑,控制Canvas上的直线点跟随鼠标移动,其实这就是画线的基本方法,直线的一端确定后,另一端需要鼠标移动来指定端点,本程序的功能就是让线段的另一头跟随鼠标移动,以确定线段的最终位置。
- 2022-02-25 18:56:03下载
- 积分:1