-
Delphi 获取拖动到窗体中的文件的路径
Delphi 获取拖动到窗体中的文件的路径,这实际上是一个拖放打开文件的例子,这只不是其中的一个步骤,拖放打开是把文件拖放到本窗口中,直接打开该文件,而拖放得到路径是把文件的路径显示在窗口中,和打开文件其实难易程序是一样的。拖放后获取文件路径,代码如下:
procedure TForm1.FileIsDropped(var Msg: TMessage);
var
NumFiles : longint;
i : longint;
FName : array[0..255] of char;
begin
SetForegroundWindow(Handle);
NumFiles := DragQueryFile(Msg.WParam,$FFFFFFFF,nil,0);
for i := 0 to (NumFiles - 1) do
begin
DragQueryFile(Msg.WParam,i,FName,sizeof(FName));
Memo1.Lines.Add(FName);
end;
end;
- 2022-09-25 15:45:03下载
- 积分:1
-
Delphi+Interbase-Code-汽配进销存源码-源代码全-使用手册-钻石精品
(R)-Delphi+Interbase-Code-龙邦汽配进销存源码-源代码全-使用手册-钻石精品
- 2022-03-16 11:47:13下载
- 积分:1
-
Delphi 键盘钩子 封锁 windows 热键
Delphi 键盘钩子 封锁 windows 热键,封锁范围,可参见以下代码:
keycost := LPKBDLLHOOKSTRUCT(lParam);
if (keycost.vkCode=91) then//封锁win键
exit;
if (keycost.vkCode=VK_ESCAPE) and (GetAsyncKeyState(VK_CONTROL)0) then
exit; //封锁 ALT+TAB
if (keycost.vkCode=115) and ((keycost.flags and LLKHF_ALTDOWN)>0) then
exit; //封锁 ALT+F4
if (keycost.vkCode=VK_ESCAPE) and ((keycost.flags and LLKHF_ALTDOWN)>0) then
exit; //封锁 ALT+ESC
if (keycost.vkCode=VK_SPACE) and (GetAsyncKeyState(VK_CONTROL)
- 2023-03-30 06:05:03下载
- 积分:1
-
Delphi TreeView来显示数据库信息
Delphi 使用TreeView来显示数据库信息,从数据库中读取数据,然后生成树形交叉节点的菜单,这种菜单通俗的叫做“树形菜单”,也是大家平时比较常见的菜单形式之一。
function TreeAddItem(Sender: TTreeView;ItemList: TStrings;BookMark: TBookMark;Resort: Boolean):TTreeNode;
var
ThisNode,Node: TTreeNode;
i: integer;
begin
Node := Nil;
for i := 0 to ItemList.Count-1 do
begin
ThisNode := TreeFindItem(Sender,Node,ItemList[i]);
if(ThisNodeNil) then Node := ThisNode
else begin
if I then begin
if I=0 then Node := Sender.items.Add(Node, Itemlist[i])
else Node := Sender.items.AddChild(Node, Itemlist[i]);
end
else begin
if I=0 then Node := Sender.items.AddObject(Node, Itemlist[i],Bookmark)
else Node := Sender.items.AddChildObject(Node, Itemlist[i],Bookmark);
end;
Node.stateIndex := Node.level + 1;
if Resort and (Node.parent nil) then Node.parent.alphasort;
end;
end;
Result := Node;
end;
- 2022-02-02 14:05:08下载
- 积分:1
-
Delphi 应用程序背景与桌面融合在一起
Delphi 应用程序背景与桌面融合在一起,运行后,显示windows 桌面上的内容,显示壁纸,拖动窗口移动,桌面背景并不移动,好像是一个桌面相框一样,实现代码:
for i:=0 to ControlCount-1 do
if Controls[i] is TGraphicControl then
begin
//使TLabel组件不透明显示
Controls[i].perform(WM_PAINT, TLabel(Controls[i]).canvas.handle, 0);
end;
- 2022-02-02 23:31:59下载
- 积分:1
-
Delphi版智能图片放大器
Delphi版智能图片放大器,用滑块改变放大倍率,向左滑,则放大位数变大,反之则变校打开程序后,鼠标在图片区域移动,即可把鼠标悬停区域的图像放大显示N倍,放大位数就是刚才提到的,滑块来调整的放大位数,部分代码可参考如下:
Const //定义放大的区域
dSide=50;//区域大小
var
sSide: Integer;//放大比例[1至100],1为最大100为缩小
msHide: Boolean;
OldX,OldY,NewX,NewY: integer;
Dest,Source: TRect;
{$R *.DFM}
Procedure TForm1.ImageFD(x,y,Side: Integer);//定义放大区域及放大过程
begin
sSide:=30; //初始化放大比例
msHide:=True;
//Canvas.CopyMode:=cmSrcCopy;
image1.Picture.Assign(image2.Picture);
end;
详细情况请下载源码后查看Unit1.pas文件。
- 2023-04-17 17:00:04下载
- 积分:1
-
Delphi 控制Canvas上的直线点跟随鼠标移动
Delphi 怎样让Canvas上直线的一个端点跟着鼠标跑,控制Canvas上的直线点跟随鼠标移动,其实这就是画线的基本方法,直线的一端确定后,另一端需要鼠标移动来指定端点,本程序的功能就是让线段的另一头跟随鼠标移动,以确定线段的最终位置。
- 2022-02-25 18:56:03下载
- 积分:1
-
源码演示Delphi 如何放大和缩小图像【图片】
源码演示Delphi 如何放大和缩小图像【图片】,我们这个例子可以学习了解如何使用Delphi编程代码,放大或缩小一张图片,这里把放大和缩小图片的基数写在按钮事件中,用户每次单击按钮,就会按照一定的缩放倍数放大或缩小图像,本示例测试图片已写入程序中,编译运行后操作并演示效果,对图像的缩放部分,重点参考以下代码:
图片缩小操作:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if image1.Height>50 then
begin
image1.Height:=image1.Height-10;
image1.Width:=image1.Width-13;
end;
end;
图片放大操作:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if image1.Height
- 2023-04-18 03:35:03下载
- 积分:1
-
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 编写的图片垂直交错显示效果,之前就分享过这种效果,类似百叶窗的交替显示效果,可用于图片转场,不过本效果还有很多地方需要优化,当时是写给一本书,作为随书实例的,有兴趣的可参考,关于本功能的关键代码部分,请看以下代码:
newbmp:= TBitmap.Create;
newbmp.Width:=image1.Width;
newbmp.Height:=image1.Height;
bmpheight:=image1.Height;
bmpwidth:=image1.Width;
i:=0;
while i0 do
begin
newbmp.Canvas.CopyRect(Rect(0,j-1,bmpwidth,j),image1.Canvas,Rect(0,bmpheight-i+j-1,bmpwidth,bmpheight-i+j));
newbmp.Canvas.CopyRect(Rect(0,bmpheight-j-1,bmpwidth,bmpheight-j),image1.Canvas,Rect(0,i-j,bmpwidth,i-j+1));
j:=j-2;
Application.ProcessMessages;
end;
form1.Canvas.Draw(0,0,newbmp);
i:=i+2;
end;
newbmp.free;
- 2023-04-12 21:35:03下载
- 积分:1