-
Visual C# 调用声音控制对话框
Visual C# 调用声音控制对话框,在windows Xp下表现挺好,在Windows7有些问题,调用的面板并不会显示出来,这是为何呢?windows调用 声音对话框的实例 ,基于Delphi7源码实现。
- 2022-03-10 20:40:03下载
- 积分:1
-
在输入时按回车移动光标到一下文本框-Delphi示例
Delphi实现回车移动焦点的功能,当用户在输入时按回车键,将移动光标到一下文本框,这个功能我觉得可很好的提升软件的操作体验,为实现快捷输入近了一步。具体代码请参考如下:
begin
if Key = 13 then
begin
keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY,0); //按下
keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0); //弹起
end;
end;
- 2022-08-21 20:36:32下载
- 积分:1
-
Delphi 简单的文件查看器
Delphi 简单的文件查看器,可以获取并显示文件的显示名,获取并显示文件类型信息,获取并显示表示该程序的图标,获取文件属性信息,始获取并显示文件上次修改的日期和时间,处理用户没有选择文件而选择了文件夹或驱动器的转化异常。
- 2022-08-11 18:22:46下载
- 积分: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 实现TDBGrid组件的斑马线显示
Delphi 实现TDBGrid组件的斑马线显示,也就是TDBGrid的不同行显示不同的颜色,设置不同的背景色,让数据显示更清淅,看上去像斑马线,俗称隔行换色,本例子是结合数据库实现的,若要正常运行,请先附加Database数据库中的SQLSERVER文件,附加后在本示例中修改数据库连接字符串即可。
- 2023-05-29 13:35:03下载
- 积分:1
-
Delphi 程序控制关闭显示器
Delphi 程序控制关闭显示器,不过我很好奇Delphi真能关闭显示器么?如果是用Delphi截断视频信号的输出,让显示器黑屏,这倒是有可能哦,但是让Delphi直接关闭显示器,有点不太可能吧?看了看代码,原来是这样:
begin
//关闭显示器
PostMessage(Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,1);
//打开显示器:
PostMessage(Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,0);
end;
- 2022-04-01 11:14:50下载
- 积分: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 读写物理扇区——实模式
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判断双字节字符的例子
Delphi判断双字节,用法简单,在窗口输入框中输入字符串,单击按钮即可,程序会判断出是否包含有双字节字符,判断方法请看下边的代码段:
s := Edit1.Text;
i := 0;
while i begin
if (ByteType(S,i) mbSingleByte) then
begin
s1 := s1+ copy(s,i,2)+;
i := i+2;
end
else
i:= i+1;
end;
label2.Caption := trim(s1);
- 2022-07-24 15:06:09下载
- 积分:1
-
Delphi 提高图像的亮度和对比度
Delphi 提高图像的亮度,每次只能提升一点高度,用着比较麻烦,不过解析图像部分可以借鉴下。以下代码可参考,不过我没发现哪里是调节图片亮度的:
PByte := ImageBmp.scanline[y];
for x:=0 to ImageBmp.Width-1 do
begin
if (PByte[x*3]
- 2023-09-02 06:40:03下载
- 积分:1