-
Delphi 限制窗口最大化显示
Delphi 限制窗口最大化显示,当用户单击最大化按钮后,窗口稍微变大了一点,但并没有最大化,有时候,我们需要限制,不让窗口最大化,在编写实现此功能时,定义了WMGetMinMaxInfo,以下代码在函数中定义,用户操作按钮,激活函数:
with Message.MinMaxInfo^ do
begin
ptMaxSize.X := 400; //最大化时宽度
ptMaxSize.Y := 300; //最大化时高度
ptMaxPosition.X := 120; //最大化时左上角横坐标
ptMaxPosition.Y := 120; //最大化时左上角纵坐标
end;
Message.Result := 0; //通知Windows改变了minmaxinfo
- 2022-01-24 18:38:10下载
- 积分: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 变速齿轮# 让时间变快减慢,其实这个似乎是做不到的,只是模拟一下,代码及描述如下:
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
-
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开发的模型飞机测控平台 附源代码,里面主要涉及多线程操作、GPS、传感器、端口操作等一系列系统控制的技巧,还包括了许多操作函数,比如绘制飞行轨迹的函数、绘制坐标刻度的函数、用户界面读取发送数据指令的函数、还有线程的同步、线程互斥等。
由于有调试目的,如果要求发送字符格式的数据,就直接发送用户输入的字符串,其他情况下,都是发送打包好的数据矩阵。
调用其它函数实现发送串口数据的功能。注意函数GetData还没有实现线程的互斥,目的是把发送的数据保存在各个线程中。
在此提示: 由于传输系统总会有一定的吴码率,那么为了避免轨迹图出现问题,例如坐标范围过大需要除去粗大误差,考虑到模型飞机的飞行速度不会超过10m/s,考虑到数子传输系统的下传速度,设定如果位置变化超过20m就去掉。
- 2022-08-16 19:54:45下载
- 积分: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实现多次渲染的RGB色环颜色渐变特效源码
Delphi实现RGB色环多次渐变,生成一个渐变的圆形,颜色渐变步长可自定义,在代码中,为了绘制出来的圆好看,分成四个部分进行绘制,此部分代码展示如下:
if (degree >= 0+qki) and (degree 45+qki) and (degree 135+qki) and (degree 215+qki) and (degree 315+qki) and (degree
- 2022-04-26 22:54:00下载
- 积分:1
-
轻型网络聊天Delphi程序-源码
轻型网络聊天Delphi程序-源码,类似聊天室, 很简单,这是个多年前的网络编程例子,聊天过程中显示对方的IP,和当前好友姓名,还支持删除聊天记录。用户注册时,可对注册信息进行初始验证,比如用户名是否存在、姓名和IP地址不能空等,有一些技巧对Delphi打基础有帮助。
- 2023-05-16 10:20:03下载
- 积分:1
-
Delphi 创建独立的子窗体 脱离父窗口但可通过父窗口关闭
Delphi 创建多个独立的子窗体 脱离父窗口而显示,但是却可通过父窗口关闭打开的所有子窗口,就是通过主窗口内的关闭按钮,关闭独立于父窗口之外的子窗口,这个功能我感觉很实用吧,源代码中也包括了多个子窗口的代码,父子窗口之间是如何关联起来的呢,请参见这个源代码实例 。
- 2022-01-25 17:06:08下载
- 积分:1
-
Delphi 打印图形(图片)
Delphi 打印图形,把图片打印出来,通过这个例子,你可以学习到:
strect:Trect;//定义打印输出矩形框的大小
temhi,temwd:integer;
begin
if DIGPrint.execute then
begin
temhi:=imgpic.picture.height;
temwd:=imgpic.picture.width;
while (temhi = printer.pageheight div 2)and
//将图形放大到打印页面的1/2大小
(temwd = printer.pagewidth div 2) do
begin
temhi:=temhi+temhi;
temwd:=temwd+temwd;
end;
with strect do //定义图形在页面上的中心位置输出
begin
left := (printer.pagewidth -temwd) div 2;
top := (printer.pageheight-temhi) div 2;
right := left+temwd;
bottom := top+temhi;
end;
with printer do
begin
begindoc;
canvas.stretchdraw(strect,imgpic.picture.graphic);
enddoc;
end;
end;
- 2022-10-24 23:35:04下载
- 积分:1