-
Delphi GetCurrentDirectory得到系统当前目录
得到系统当前目录,Delphi 得到系统当前目录,这里使用了内置的GetCurrentDirectory函数来实现,比较方便,也比较简单。获取到系统目录后,是通过窗口的标题栏显示目录路径信息,在演示截图上请看窗口的标题栏,显示有程序当前所在的路径。关于GetCurrentDirectory用法,请参见以下两行代码:
GetCurrentDirectory(255,dir);//获得当前目录
form1.Caption:=dir;
- 2022-07-07 13:11:54下载
- 积分:1
-
Delphi 监控剪贴板的文字内容
Delphi 监控剪贴板的文字内容,这个监控程序可以监控复制到剪切板的文字信息,图片暂时不能监控到,具体的监控实现如下:
NextformHwnd:HWND;//观察链中下一个窗口句柄
procedure WMDrawClipBoard(var AMessage:TMessage);message WM_DRAWCLIPBOARD;
//处理WM_DRAWCLIPBOARD消息过程
{ Public declarations }
//将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
SendMessage(NextformHwnd,AMessage.Msg,AMessage.WParam,AMessage.LParam);
//查询剪贴板中特定格式的数据内容
if (Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT)) then
begin
//处理剪贴板中内容
memo1.Lines.Clear;
memo1.Lines.Add(Clipboard.asText);
end;
- 2022-01-22 10:48:45下载
- 积分: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 获取拖动到窗体中的文件的路径
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源码
窗口中的弹出式右键菜单-delphi PopupMenu源码,
procedure TForm1.Button1Click(Sender: TObject);
var
Poin:TPoint;
begin
Poin := Point(Button1.Left,Button1.Top+Button1.Height);
Poin := ClientToScreen(Poin);
PopupMenu1.Popup(Poin.X,Poin.Y);
end;
- 2022-07-24 15:12:59下载
- 积分:1
-
形象的电子表-Delphi程序
Delphi编写制作一款形象的电子表(钟表)效果,模拟时钟,界面方面做成了圆形,看不见窗口的边框,像是透明的窗口,各个指针会走动,关于各个指针的移动及计算方法,有兴趣可参考:
vh := Hour/12.0*2*Pi;
vm := Min/60.0*2*Pi;
vs := Sec/60.0*2*Pi;
with Canvas do
begin
Pen.Width:=4;
Pen.Color := clBlack;
MoveTo(60,60);
LineTo(60+Round(25*Sin(vh)),60-Round(25*Cos(vh)));
Pen.Width:=2;
Pen.Color := clBlack;
MoveTo(60,60);
LineTo(60+Round(45*Sin(vm)),60-Round(45*Cos(vm)));
Pen.Width:=1;
Pen.Color := clRed;
MoveTo(60,60);
LineTo(60+Round(55*Sin(vs)),60-Round(55*Cos(vs)));
end;
窗体方面:这个圆盘窗口要是能移动就好了,不支持右键菜单,也不能关闭,关闭窗口需要按键盘上的ALT+F4。
- 2022-01-27 12:29:32下载
- 积分: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 Canvas.Brush为窗体绘制渐变背景
Delphi 为窗体绘制渐变背景,这里使用了Delphi中的Canvas.Brush.Color来实现窗口背景的渐变色,不错吧?如示例图的左右渐变效果,实现的代码:
for i:=0 to self.Width-1 do
begin
c1:=GetRValue(StartColor)+Trunc(i*(GetRValue(EndColor)-GetRValue(StartColor))/(self.Width-1));
c2:=GetGValue(StartColor)+Trunc(i*(GetGValue(EndColor)-GetGValue(StartColor))/(self.Width-1));
c3:=GetBValue(StartColor)+Trunc(i*(GetBValue(EndColor)-GetBValue(StartColor))/(self.Width-1));
Canvas.Brush.Color:=RGB(c1,c2,c3);
//每次画矩形的画刷颜色
Dct:=Rect(i,0,i+1,self.Height);
//每次刷绘的矩形区域
Canvas.FillRect(Dct);
//填充颜色
end;
- 2022-05-24 21:26:59下载
- 积分:1
-
Delphi 获取MonthCalendar中选择的日期
Delphi 获取MonthCalendar中选择的日期,其实就是完成一个时间、日期的选择功能,年份、月份、日期、时间都可自定义调整并选择,这个简单的例子,可演示Delphi中MonthCalendar的用法,生成一个日期时间选择器功能。下面是相关代码:
procedure TForm1.Button1Click(Sender: TObject);
var
Year,Month,Days: Word;
begin
DecodeDate(MonthCalendar1.Date,Year,Month,Days);
Edit1.Text:=IntToStr(Year);
Edit2.Text:=IntToStr(Month);
Edit3.Text:=IntToStr(Days);
end;
全部源码请下载本实例包。
- 2022-02-02 06:32:18下载
- 积分:1
-
Delphi 获取全球标准时间
Delphi 通过网络获取全球标准时间,我们知道在Windows中有三个全球标准时间服务器,若你的电脑设置为自动更新时间,则系统自动会从这三台时间服务器中更新时间,你的电脑就不用自己校对时间了。本程序就是演示,用Delphi编写代码,去连接全球时间服务器,校对时间并更新系统时间的例子,你可通过本源码了解一下时间更新的问题。
- 2023-02-03 13:05:04下载
- 积分:1