-
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
-
Delphi7 向XML中添加RTTI信息
Delphi7.0 向XML中添加RTTI信息,这个例子挺简单,希望大家喜欢,面向Delphi新手的,高手请绕道哦,下面是本例Delphi向XML中添加RTTI信息的关键性代码:
procedure TForm1.ComponentToDOM(iNode: IXmlNode; Comp: TPersistent);
var
nProps, i: Integer;
PropList: PPropList;
Value: Variant;
newNode: IXmlNode;
begin
nProps := GetTypeData (Comp.ClassInfo)^.PropCount;
GetMem (PropList, nProps * SizeOf(Pointer));
try
GetPropInfos (Comp.ClassInfo, PropList);
for i := 0 to nProps - 1 do
begin
Value := GetPropValue (Comp, PropList [i].Name);
NewNode := iNode.AddChild(PropList [i].Name);
NewNode.Text := Value;
if (PropList [i].PropType^.Kind = tkClass) and (Value 0) then
if TObject (Integer(Value)) is TComponent then
NewNode.Text := TComponent (Integer(Value)).Name
else
ComponentToDOM (newNode, TObject (Integer(Value)) as TPersistent);
end;
finally
FreeMem (PropList);
end;
end;
- 2022-01-26 03:00:57下载
- 积分:1
-
Delphi 隐藏或显示鼠标指针
Delphi 隐藏或显示鼠标指针,在编译后运行本程序生成的Exe程序,在窗口中单击鼠标左键,鼠标会消失,被隐藏了,再次单击后鼠标重现,很好的演示了在Delphi中如何显示或隐藏鼠标的操作。
- 2022-01-26 04:41:31下载
- 积分:1
-
Delphi7利用鼠标绘制矩形焦点的源码
本源代码主要演示Delphi7利用鼠标绘制矩形焦点,画出虚线框矩形,按住鼠标左键抖动矩形区域,即可显示虚线矩形框,可应用于需要拖动选择对象时作为选区使用,在Delphi中,这个功能使用Canvas实现:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if IsDraw then
begin
if Count >1 then
DrawFocusRect(Canvas.Handle,FocuRect);
FocuRect.Right := X;
FocuRect.Bottom := Y;
DrawFocusRect(Canvas.Handle,FocuRect);
Inc(Count);
IsEndDraw := True;
end;
end;
- 2023-02-14 21:35:04下载
- 积分:1
-
Delphi添加图层蒙版
Delphi添加图层蒙版,运行本程序后,在屏幕上添加一层阴影,透明度大概在70%左右,可看作是在屏幕上方蒙了一层薄膜的感觉,代码简单:procedure TForm1.FormCreate(Sender: TObject);
var
bTrans: Byte;
OldStyle: Integer;
begin
form1.Color := clGradientActiveCaption;
WindowState := wsMaximized;
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
OldStyle := GetWindowLong(Handle, GWL_EXSTYLE);
SetWindowLong(Handle, GWL_EXSTYLE, OldStyle or WS_EX_LAYERED Or WS_EX_TRANSPARENT);
bTrans := 128;
SetLayeredWindowAttributes(Handle, 0, bTrans, LWA_ALPHA);
end;
- 2022-02-06 10:25:25下载
- 积分:1
-
Delphi在窗口中单击左键弹出菜单
Delphi在窗口中单击左键弹出菜单,在运行的窗体空白外,单击鼠标左键,弹出主菜单,其实和右键 菜单 是一样的原理,希望通过这个简单的例子,了解自定义窗口菜单的实现方法。
- 2023-09-08 18:20:03下载
- 积分:1
-
Delphi 浏览性能数据库
Delphi 浏览性能数据库,选择单个、本地的计数器,显示选择计数器的信息。
- 2023-01-12 15:25:04下载
- 积分:1
-
Delphi 百叶窗的方式显示图像
百叶窗效果的图像显示,这个效果我觉得大家不会陌生吧,在电视上、电脑上,这种切换图片显示的方式还是挺常见的,像百叶窗的样式,本效果重在演示图像的解析。
- 2022-02-04 23:25:14下载
- 积分:1
-
Delphi 当鼠标和键盘在一定时间没有动作时关闭程序
Delphi 当鼠标和键盘在一定时间没有动作时关闭程序,这是一个智能化程序,类似于屏保,当一定时间没有操作时,会关闭软件,运行的技术也不很高深,有兴趣的可下载源代码研究学习。
- 2022-10-11 13:05:03下载
- 积分:1
-
Delphi 摄像头监控云台镜头控制系统
Delphi 云台镜头控制系统,用于摄像头监控系统中的云台控制程序,早几年写的,可能现在适用的硬件已经过时了,不过对于编写开发Delphi程序来说,源代码部分还是很有参考价值的。
本套云台控制系统运行的最终界面效果如示例图所示,界面友好,功能实用。
通过这套云台控制程序,你可控制摄像头光圈大孝焦距改变、转动摄像头、打开射灯等功能。
- 2023-07-22 04:15:04下载
- 积分:1