delphi如何实现无窗口移动

delphi 实现无窗口移动 procedure imgListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private  procedure WMNCHITTEST(var 阅读详情


 procedure imgListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

private

 procedure WMNCHITTEST(var Msg: TWMNCHITTEST); message WM_NCHITTEST;


procedure TfrmStartHit.WMNCHITTEST(var Msg: TWMNCHITTEST);
const
  cOffset = 10;
var
  vPoint: TPoint;
begin
  inherited;
  vPoint := ScreenToClient(Point(Msg.XPos, Msg.YPos));
  if PtInRect(Rect(0, 0, cOffset, cOffset), vPoint) then
    Msg.Result := HTTOPLEFT
  else if PtInRect(Rect(Width - cOffset, Height - cOffset, Width, Height), vPoint) then
    Msg.Result := HTBOTTOMRIGHT
  else if PtInRect(Rect(Width - cOffset, 0, Width, cOffset), vPoint) then
    Msg.Result := HTTOPRIGHT
  else if PtInRect(Rect(0, Height - cOffset, cOffset, Height), vPoint) then
    Msg.Result := HTBOTTOMLEFT
  else if PtInRect(Rect(cOffset, 0, Width - cOffset, cOffset), vPoint) then
    Msg.Result := HTTOP
  else if PtInRect(Rect(0, cOffset, cOffset, Height - cOffset), vPoint) then
    Msg.Result := HTLEFT
  else if PtInRect(Rect(Width - cOffset, cOffset, Width, Height - cOffset), vPoint) then
    Msg.Result := HTRIGHT
  else if PtInRect(Rect(cOffset, Height - cOffset, Width - cOffset, Height), vPoint) then
    Msg.Result := HTBOTTOM;
end;


procedure TfrmStartHit.imgListMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
  SC_DRAGMOVE = $F012;
begin
  if (Button = mbLeft) then
  begin
    ReleaseCapture;
    (Self as TControl).Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
  end;
end;

原文来自: 【100脚本网 http://www.pc100.net 】


使用DELPHI实现鼠标操作的项目教程 DELPHI是一个历史悠久且功能强大的集成开发环境(IDE),广泛用于Windows平台的应用程序开发。它使用面向对象的编程语言Pascal的方言Object Pascal,提供了丰富的组件库和快速的开发工具。DELPHI应用程序在处理用户界面,尤其是在鼠标操作和事件处理方面表现突出。句柄是Windows编程中一个非常核心的概念,它是一种抽象的数据类型,通过它可以引用各种资源。句柄的使用是Windows应用程序中资源管理和内存管理的基础。 阅读详情

相关推荐

DelphiXE8FMX工程实现无边框托动(FMX内部方法)

2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!

三种方法实现Delphi无标题窗体的拖动

方 法 一:<br />通 过 响 应“wm_NCHitTest” 消 息 来 移 动 窗 体。<br />Windows 发 送“wM_NCHitTest” 消 息 来 确 定 鼠 标 操 作 是 否 发 生 在 窗 体的 客 户 区, 或 边 框 的 特 殊 区 上( 非 客 户 区)。 如 果Windows 发 现 用 户 单 击 了 窗 体 标 题, 系 统 将 移 动 窗 体,单 击 了 窗 体 边 框, 则 系 统 将 开 始 改 变 窗 体 大 小。<br />例 程 如 下:<br />pr

木兮小站 1万+

plotly包安装_Plotly(一)安装指南

plotly,是一个快速完善并崛起的交互式的、开源的绘图库库,Python库则是它的一个重要分支。现已支持超过40种独特的图表类型,涵盖了广泛的统计、金融、地理、科学和三维用例。Plotly 通过JavaScript构建,能基于Web显示实现交互式的可视化效果(Plotly最强大之处之一)。所以它的图形呈现可以方便的显示于Jupyter notebook(基于html)、独立的html中(直接显示...

weixin_35907189的博客 3473

Delphi 如何使无边框窗体可移动

直接在窗体的OnMonseDown事件中添加以下代码: procedure TForm16.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin POSTMESSAGE(Self.Handle,WM_LBUTTONUP,0,0); POSTMESSAGE(Self.Handle,274,61458,0); end; ...

xwl598017661的博客 430

Claude Code vs Codex

Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。

weixin_49869937的博客 2388

EPICS Phoebus手册1

EPICS客户端phoebus 手册

yuyuyuliang00的博客 3954

关于WM_NCHITTEST消息

我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下: 通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。 一个容易想到的方案是,处理鼠标消息WM_LBUTTONDOWN和WM_LBUTTONUP。在OnLButtonUp函数中计算鼠标位置的变化,调用MoveWindow实现窗口的移动。 注意,拖动标题栏移动窗口的时候...

weixin_30646315的博客 523

Python爬虫实战:绕过B站-352风控的完整解决方案

网络爬虫技术是数据采集和自动化测试的重要工具,其核心原理是通过模拟HTTP请求获取网页数据。在实践过程中,开发者常会遇到网站反爬机制,这涉及请求指纹识别、IP行为分析等安全技术。这些风控措施的价值在于保护网站数据安全和服务器资源,广泛应用于电商、社交、内容平台等场景。针对B站等平台的-352风控错误,需要综合运用请求头伪装、会话管理、参数签名破解等技术方案。本文重点探讨如何通过构建完整的浏览器级请求头、管理Cookie会话、以及使用Playwright等浏览器自动化工具,有效解决Python爬虫在B站数据采

weixin_33912638的博客 399

Delphi FMX 实现 鼠标 移动窗口

Delphi FMX 实现 鼠标 移动窗口 procedure Tufrm_min.rctngl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FMouseDown := True; end; procedure Tufrm_min.rctngl1...

yupor5的博客 1129

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 699

11、改进的加权轮询调度算法

本文详细介绍了对传统加权轮询(WRR)调度算法的改进方法,包括动态权重调整、优先级调度和预测机制,旨在提升系统的公平性、响应速度和适应性。通过设计与实现改进算法,并结合实验验证其在响应时间、资源利用率和公平性方面的显著提升,同时列举了该算法在数据中心、云服务平台、CDN及电商平台等实际场景中的应用案例。

day7的博客 190

移动无标题栏窗口L

想要移动无标题栏窗口,并不是像其想像的那么麻烦^_^, 请在有MOUSEDOWN事件的控件的MOUSEDOWN事件中写入以下代码: releasecapture; sendmessage(handle,wm_nclbuttondown,htcaption,0); 一切就OK了,现在可以在此控件上按上鼠标拖动了,,,, 上面是在DELPHI中的实现方法,其他语言相同(因是调用的API)。

cfsccss的专栏 598

基于STM32L4XX 、HAL库的SGM452B数字温度传感器驱动应用C语言程序设计

SGM452B_RESOLUTION_12BIT = SGM452B_CONFIG_R1 | SGM452B_CONFIG_R0 /* 12位分辨率,精度0.0625°C,转换时间200ms */SGM452B_RESOLUTION_11BIT = SGM452B_CONFIG_R1, /* 11位分辨率,精度0.125°C,转换时间100ms */SGM452B_RESOLUTION_10BIT = SGM452B_CONFIG_R0, /* 10位分辨率,精度0.25°C,转换时间50ms */

PP_Cottage的博客 327

Delphi 中禁止改变窗口

Delphi中禁用移动窗口,禁止改变窗口大小,禁用最大化、最小化<!--body { font-family: "Courier New"; font-size: 10pt;color: #000000 }.u0 { font-family: "Courier New"; font-size: 10pt;color: #FF0000 }.u1 { font-family: "C

1793

087、DAMO-YOLO Efficient-RepGFPN:重参数化加皇后融合加黄金分割的创新 Neck

DAMO-YOLO的Efficient-RepGFPN创新性Neck结构摘要: 该结构通过三重创新提升目标检测性能: 重参数化卷积:训练时多分支(3x3卷积+1x1卷积+BN分支)提升特征表达能力,推理时合并为单路3x3卷积保证效率; 皇后融合机制:采用可学习权重对不同尺度特征进行自适应加权融合,而非简单相加,通过Softmax归一化权重实现特征选择; 黄金分割连接:优化特征金字塔层间连接方式,按比例分配相邻层特征权重(如P3:P5≈0.618:0.382),减少冗余连接噪声。 实验表明,该结构有效解决了传

ai技术增长的博客 102

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

通用方法->移动无标题栏窗口

想要移动无标题栏窗口,并不是像其想像的那么麻烦^_^, 请在有MOUSEDOWN事件的控件的MOUSEDOWN事件中写入以下代码: releasecapture; sendmessage(handle,wm_nclbuttondown,htcaption,0); 一切就OK了,现在可以在此控件上按上鼠标拖动了,,,, 上面是在DELPHI中的实现方法,其他语言相同(因是调用的API)。

cfsccss的专栏 559

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[通用方法]移动无标题栏窗口

[通用方法]移动无标题栏窗口好简单,两句可以实现,可以通用。。。 想要移动无标题栏窗口,并不是像其想像的那么麻烦^_^, 请在有MOUSEDOWN事件的控件的MOUSEDOWN事件中写入以下代码: releasecapture; sendmessage(handle,wm_nclbuttondown,htcaption,0); 一切就OK了,现在可以在此控件上按上鼠标拖动了,,,, 上面是在DEL

cfsccss的专栏 586

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Delphi中拖动无边框窗口的5种方法

1.MouseMove事件中加入: // ReleaseCapture; // Perform(WM_SYSCOMMAND, $F017 , 0); 2.MouseDown事件中加入: // POSTMESSAGE(Self.Handle,WM_LBUTTONUP,0,0); // POSTMESSAGE(Self.Handle,274,61458,0); 3.MouseDown事件...

qq_33536143的博客 404

WinApi: GetParent、SetParent、MoveWindow - 获取、指定父窗口和移动窗口

提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法. //声明: {获取父窗口句柄} GetParent(hWnd: HWND): HWND; {指定父窗口} SetParent( hWndChild: HWND; {子句柄} hWndNewParent: HWND {父句柄} ): HWND; ...

weixin_30298497的博客 180

鼠标进入某控件时显示一个窗口并移动它

<br />今天想实现一个功能,就是鼠标移动到一个Panel上时,显示第二个窗口,并且这个窗口可以跟着鼠标移动,当鼠标离开这个Panel时隐藏这个窗口。一开始不知怎么做,后来发很不是很难。大体就是把鼠标的坐标转成屏幕坐标后,设置第二个窗口的left和top属性。代码如下:<br /> <br />unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For

好记性不如烂笔头 1642

通过指点操作获得窗口句柄

通过指点操作获得窗口句柄赵砥:     我用VB的sendkeys编写了一个向其他程序模拟键盘发送字符的工具,因VB编的程序体积太大,    我想用Delphi重写,使用SendMessage等API函数,但我想找到一个用鼠标点一下其他进程的    窗口便可获得该窗口的线程id和窗口句柄的方法,请指点一下。(使用findwindow获得窗口    句柄要输入窗口标题,不好。) 回答:    

iseekcode的专栏 867

DELPHI 禁止窗体移动

private procedure WMSYSCOMMAND(var msg:TMessage);message WM_SYSCOMMAND; { Private declarations } public { Public declarations } end; //禁止窗体移动 procedure TSysTemCen...

weixin_30677617的博客 520

Delphi实现全局鼠标钩子

其中涉及到的一些API,网上均能查到详细的解释,这里不再熬述。因为是全局钩子,所以要用dll注入。用到的鼠标消息结构如下: PMouseHookStruct = ^TMouseHookStruct; {$EXTERNALSYM tagMOUSEHOOKSTRUCT} tagMOUSEHOOKSTRUCT = packed record pt: TPoint; hwnd: HWND; wHitTestCode: UINT; dwExtraInfo: DWO

bdmh的专栏 6022

“磁性”窗口新篇

file://创建军于2004.6.15file://作者:透明墨豆(昵称)file://QQ:33125083file://说明:本程序是从《“磁性”窗口》--- wujian2的文章修改的,原因是原文章不全和file://有错误,并且觉得有不完善的地方,如不能分辨出两窗口是否在同一个区域,不能file://停靠屏幕边缘等。但此程序还有不足之处,如窗口Form不能跟随Winamp的窗口一起移动f

rogermmx的专栏 1027

【Delphi】在主Form以外的Unit中拦截主Form的消息

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Unit2, Unit3; type TForm1 = class(TForm) procedure Form...

BlueStorm的博客 357
上一篇: php如何抓取网页中邮箱地址代码
下一篇: PHP字符串函数汇总
shao882
博客等级 码龄12年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值