-
Delphi 单击StringGrid列进行排序
Delphi 单击StringGrid列进行排序,StringGrid行的任意列单击,就会重新排序一次,排序规则可以自己定义,这种排序功能可有效提升StringGrid显示数据的易用性,增强其功能,提升用户体验,本例子源代码相当简单,对学习者也有很好的帮助作用。参见以下代码:
begin
if Button = mbRight then Exit;
TStringGrid(Sender).MouseToCell(X, Y, vCol, vRow);
if (vRow < 0) or (vRow >= TStringGrid(Sender).FixedRows) then Exit;
StringGridRowSort(TStringGrid(Sender), vCol, vOldCol = vCol);
if vOldCol = vCol then
vOldCol := - vOldCol
else
vOldCol := vCol;
end;
- 2022-05-29 23:30:47下载
- 积分:1
-
Delphi 获取网页源代码
Delphi 获取网页源代码,这个程序首先是一个网页浏览器,可解析用户输入的网址,直接输出网页界面,然后通过操作主窗口区的Tab选项,查看该网页的源代码,也就是完成了两种功能:1、网页浏览器,2、查看源代码。运行界面如下图示。
- 2023-05-24 10:50:03下载
- 积分:1
-
Delphi Canvas.Brush为窗体绘制渐变背景
Delphi 为窗体绘制渐变背景,这里使用了Delphi中的Canvas.Brush.Color来实现窗口背景的渐变色,不错吧?如示例图的左右渐变效果,实现的代码:
for i:=0 to self.Width-1 do
begin
c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Width-1));
c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Width-1));
c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Width-1));
Canvas.Brush.Color:=RGB(c1,c2,c3);
//每次画矩形的画刷颜色
Dct:=Rect(i,0,i+1,self.Height);
//每次刷绘的矩形区域
Canvas.FillRect(Dct);
//填充颜色
end;
- 2022-05-24 21:26:59下载
- 积分:1
-
Delphi 实现图像热点功能
Delphi 实现图像热点功能,实现一张图片上不同形状区域的热点,定义椭圆形、四边形、三角形的区域变量的热点,相关代码如下:
var
thepoint:array [1..8] of tpoint;//存储多边形顶点坐标
count:integer;
pointnum:array [1..2] of integer;
begin
//四边形顶点坐标,首末点封闭
thepoint[1]:=point(135,99);
thepoint[2]:=point(105,183);
thepoint[3]:=point(129,201);
thepoint[4]:=point(188,92);
thepoint[5]:=point(135,99);
count:=5;//四边形顶点数目,首末点为一点
fourE_rgn:=CreatePolygonRgn(thepoint,count,WINDING);//生成四边形区域
elli_rgn:=CreateEllipticRgn(64,221,231,263);// 生成椭圆形区域
//第一个三角形顶点坐标
thepoint[1]:=point(118,67);
thepoint[2]:=point(32,28);
thepoint[3]:=point(17,90);
thepoint[4]:=point(118,67);
//第二个三角形顶点坐标
thepoint[5]:=point(155,44);
thepoint[6]:=point(202,91);
thepoint[7]:=point(277,44);
thepoint[8]:=point(155,44);
pointnum[1]:=4;//第一个三角形顶点数目
pointnum[2]:=4;//第二个三角形顶点数目
count:=2;//三角形数目
//生成由两个三角形构成的三角形区域
tri_rgn:=CreatePolyPolygonRgn(thepoint,pointnum,count,WINDING);
end;
- 2022-01-26 08:02:50下载
- 积分:1
-
Delphi开发的模型飞机测控平台 附源代码
Delphi开发的模型飞机测控平台 附源代码,里面主要涉及多线程操作、GPS、传感器、端口操作等一系列系统控制的技巧,还包括了许多操作函数,比如绘制飞行轨迹的函数、绘制坐标刻度的函数、用户界面读取发送数据指令的函数、还有线程的同步、线程互斥等。
由于有调试目的,如果要求发送字符格式的数据,就直接发送用户输入的字符串,其他情况下,都是发送打包好的数据矩阵。
调用其它函数实现发送串口数据的功能。注意函数GetData还没有实现线程的互斥,目的是把发送的数据保存在各个线程中。
在此提示: 由于传输系统总会有一定的吴码率,那么为了避免轨迹图出现问题,例如坐标范围过大需要除去粗大误差,考虑到模型飞机的飞行速度不会超过10m/s,考虑到数子传输系统的下传速度,设定如果位置变化超过20m就去掉。
- 2022-08-16 19:54:45下载
- 积分:1
-
Delphi getTime 获取当前日期时间实例源码
Delphi getTime 获取当前日期时间,用的是DateTimeToStr,运行本窗口后,自动获取当前电脑上的时间,显示在窗体指定的Lable标签中,这是核心的源代码:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := DateTimeToStr(now());
end;
- 2022-11-15 02:10:03下载
- 积分:1
-
Delphi 读写物理扇区——实模式
Delphi 读写物理扇区——实模式, asm //以下汇编代码中,只有第一参数、第二参数、pFunc的值是需要改变的,其余都是固定的写法
pushad
push ebp //#2,保存ebp
sub esp,$2c //#1,预留2c字节的栈空间
push Int13Reg16 //第一参数,如果没有参数,则不用push
//第二参数,如果没有参数,则不用push
mov edx, pFunc //函数地址
mov ebp,esp //
add ebp,$2c //ebp校正,是作者分析QT_Thunk时发现的
call QT_Thunk
add esp,$2c //#1,释放上面预留的2c字节的栈空间
pop ebp //#2,恢复ebp
mov byte ptr @result,al
popad
end;
- 2022-01-24 18:37:58下载
- 积分:1
-
Delphi 创建Excel表格文件
Delphi 读取SQLSERVER数据库内容,并创建Excel表格文件,将内容导出到excel文件中,核心同样是基于createoleobject对象的excel.application方法实现,创建EXECEL对象 ,添加comobj单元,用循环加入记录,将数据表导入到Excel表中,正式开始EXECEL输出。
- 2022-02-15 04:17:26下载
- 积分:1
-
Delphi窗口淡入淡出渐变fadein fadeout动画效果
Delphi实现窗口的淡入淡出渐变fadein fadeout动画效果,除了渐变,还有其它的动画形式,比如从中心扩散、水平从左到右、水平从右到左、垂直从上到下、垂直从下到上等。本实例默认状态下是使用了淡入淡出渐变,其它动画效果被注释掉了,如果你想用,可以去掉注释标记。
//淡入效果
//AnimateWindow(self.Handle,1000,AW_CENTER or AW_ACTIVATE);
//从中心扩散
//AnimateWindow(self.Handle,1000,AW_HOR_POSITIVE or AW_ACTIVATE);
//AnimateWindow(self.Handle,1000,AW_SLIDE or AW_HOR_POSITIVE or AW_ACTIVATE);
//水平从左到右
//AnimateWindow(self.Handle,1000,AW_HOR_NEGATIVE or AW_ACTIVATE);
//AnimateWindow(self.Handle,1000,AW_SLIDE or AW_HOR_NEGATIVE or AW_ACTIVATE);
//水平从右到左
//AnimateWindow(self.Handle,1000,AW_VER_POSITIVE or AW_ACTIVATE);
//AnimateWindow(self.Handle,1000,AW_SLIDE or AW_VER_POSITIVE or AW_ACTIVATE);
//垂直从上到下
//AnimateWindow(self.Handle,1000,AW_VER_NEGATIVE or AW_ACTIVATE);
//AnimateWindow(self.Handle,1000,AW_SLIDE or AW_VER_NEGATIVE or AW_ACTIVATE);
//垂直从下到上
- 2022-06-11 17:51:21下载
- 积分: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