-
Windows 剪贴板高级编程-Delphi源码实例
Windows 剪贴板高级编程-Delphi源码实例,其实也不是什么高级编程,挺基础的剪贴板应用。学习如何在Delphi环境下读取Windows剪贴板的内容。在编写一些系统辅助类的软件中,可使用到这些小技巧。以下代码:将剪贴板内容读取出来,在代码的执行放入一个按钮事件中:
procedure TForm1.Button2Click(Sender: TObject);
var
DataRec: TDataRecord;
Data: THandle;
PData: Pointer;
begin
Data := Clipboard.GetAsHandle(CF_CUSTOMFORMAT);
if Data = 0 then Exit;
PData := GlobalLock(Data);
Move(PData^, DataRec, GlobalSize(Data));
GlobalUnlock(Data);
with DataRec do
ShowMessage(Name + #13#10 + Sex + #13#10 + Hobby);
end;
- 2022-04-22 08:40:48下载
- 积分:1
-
Delphi 浏览性能数据库
Delphi 浏览性能数据库,选择单个、本地的计数器,显示选择计数器的信息。
- 2023-01-12 15:25:04下载
- 积分:1
-
Delphi 自定义播放窗口
Delphi 自定义播放窗口,指定视频显示窗口,本源码演示的重点主要是播放器窗口外观的设计,调用了外部的一张jpg图片做为播放器的主窗口,让窗口风格首先看上去具有播放器程序的风格,因此,在美化窗口时如何使用jpg格式的图片,是本例要表现的重点功能,希望对窗体设计感兴趣的Delphi初学者好好学习研究一番哦。
本播放器虽然重在演示窗口功能的实现,不过它真的可以播放视频文件,比如mpg格式的文件。
- 2022-05-25 21:56:20下载
- 积分: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 限制窗口最大化显示,当用户单击最大化按钮后,窗口稍微变大了一点,但并没有最大化,有时候,我们需要限制,不让窗口最大化,在编写实现此功能时,定义了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 渐变的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
-
Delphi 制作红绿眼镜三维立体画
这是一个Delphi色彩控制方面的示例,我看上去更像是Delphi分离出红绿颜色通道,从页形成的一种立体效果,复制和修改颜色模式来实现,相关代码可参考如下:
//设置添充颜色的大小
DBitmap.Width := LBitmap.Width;
DBitmap.Height := LBitmap.Height;
vRect := Rect(0, 0, DBitmap.Width, DBitmap.Height); //获取添充区域
DBitmap.Canvas.Brush.Color := vGreen; //设置画笔颜色
DBitmap.Canvas.FillRect(vRect); //添充颜色
LBitmap.Canvas.CopyMode := cmSrcPaint; //将复制模式改为OR
LBitmap.Canvas.CopyRect(vRect, DBitmap.Canvas, vRect); //对图片进行复制
DBitmap.Canvas.Brush.Color := vRed;
DBitmap.Canvas.FillRect(vRect);
RBitmap.Canvas.CopyMode := cmSrcPaint; //将复制模式改为OR
RBitmap.Canvas.CopyRect(vRect, DBitmap.Canvas, vRect); //对图片进行复制
DBitmap.Canvas.CopyRect(vRect, LBitmap.Canvas, vRect);
DBitmap.Canvas.CopyMode := cmSrcAnd; //将复制模式改为AND
DBitmap.Canvas.CopyRect(vRect, RBitmap.Canvas, vRect);
except
Exit;
end;
Result := True;
end;
- 2023-02-01 08:05:04下载
- 积分:1
-
Delphi 播放指定avi-mid-wav文件
Delphi 播放指定avi-mid-wav文件,这几种都是音频格式,因此这个可以说是播放音频文件的例子,控制面板中包括了常用的播放控制按钮,在此基础上,可写出一个Delphi音乐播放器,当然本源码比较早了,适合学习一些简单的Delphi音频编程技巧。
procedure TForm1.N2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
with MediaPlayer1 do
begin
Filename := OpenDialog1.FileName ;
Open;
DisPlayrect := Rect(1,1,Panel2.Width ,Panel2.Height );
Notify := true;
end;
end;
end;
- 2023-05-08 02:15:02下载
- 积分:1
-
返回底数的任何次幂-Delphi方法
Delphi 返回底数的任何次幂,本演示求2的4次幂、3的3次幂,求解过程如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := FloatToStr(Power(2,4));
Edit2.Text := FloatToStr(Power(3,3));
end;
以上代码定义在按钮事件中,当用户单击按钮后激活。
- 2022-03-01 01:34:29下载
- 积分:1
-
Delphi在TListView中显示数据库
Delphi在TListView中显示数据库,ListView控件的简单用法,在日常的编程开发中,这个比较常用 。
self.ListView1.ViewStyle:=vsReport;
for i:=0 to Query1.FieldCount-1 do
begin
TempColumn:=self.ListView1.Columns.Add;
TempColumn.Caption:=Query1.Fields[i].FieldName;
end;
Query1.First;
while not Query1.Eof do
begin
TempItem:=self.ListView1.Items.Add;
TempItem.Caption:=Query1.Fields[0].AsString;
for i:=1 to Query1.FieldCount-1 do
begin
TempItem.SubItems.Add(Query1.Fields[i].AsString);
end;
Query1.Next;
end;
- 2023-06-25 00:05:04下载
- 积分:1