|
|
|
|
|
 |
delphi richedit中用鼠标右击定位光标 |
| |
日期:2007-06-27 08:47:14
点击:9 评论:0 |
|
mousePoint.x:=x;
mousePoint.y:=y;
atPos:=RichEdit1.Perform(EM_CHARFROMPOS,0,Longint(@mousePoint));
if ( atPosTextRange.cpMax) then
RichEdit1.Perform(WM_LBUTTONDOWN, MK_LBUTTON, MakeLong(X, Y)); |
|
 |
delphi 截获非客户区的消息 |
| |
日期:2007-06-27 08:45:45
点击:9 评论:0 |
|
private
procedure WMNCMOUSEMOVE(var Message: TMessage);
message WM_NCMOUSEMOVE; |
|
 |
delphi 运行中拖动一个元件 |
| |
日期:2007-06-27 08:44:31
点击:9 评论:0 |
|
在一个新的Form中放入一个Panel,加入如下代码:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012; { a magic number }
begin
ReleaseCapture;
panel1.per |
|
 |
delphi 俘获windows关闭的消息 |
| |
日期:2007-06-27 08:42:46
点击:7 评论:0 |
|
响应 WM_QUERYENDSESSION 消息
procedure WMQueryEndSession (var Message: TMessage); message WM_QUERYENDSESSION ;
如果返回0,表明不能关闭 |
|
 |
delphi 支持文件拖放的程序 |
| |
日期:2007-06-27 08:41:22
点击:10 评论:0 |
|
inherited;
memo1.lines.clear;
{$IFDEF WIN32}
I:=dragqueryfile(message.wparam,$ffffffff,nil,0);
{$ELSE}
I:=dragqueryfile(message.wparam,$ffff,nil,0);
{$ENDIF}
caption:=inttostr(i);
for i:=0 to i-1 do
begin
dragqueryfi |
|
 |
delphi 消息广播 |
| |
日期:2007-06-27 08:40:20
点击:14 评论:0 |
|
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(@S));
|
|
 |
delphi 截获滚动条消息 |
| |
日期:2007-06-27 08:37:49
点击:19 评论:0 |
|
{Get the min and max range of the horizontal scroll box}
GetScrollRange(WindowHandle,
SB_VERT,
TheRangeMin,
TheRangeMax);
{Get the horizontal scroll box position}
TheRange := |
|
 |
delphi 使MEMO自动滚动 |
| |
日期:2007-06-27 08:36:09
点击:32 评论:0 |
|
memo.Perform(EM_SCROLLCARET, 0, 0 ); |
|
 |
delphi 使控件设计时响应消息 |
| |
日期:2007-06-27 08:34:17
点击:16 评论:0 |
|
procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST; |
|
 |
delphi 用WndProc来处理消息 |
| |
日期:2007-06-27 08:32:11
点击:10 评论:0 |
|
if (Message.Msg = CM_MOUSELEAVE) then
begin
Font.Color := clWindowText;
Font.Style := Font.Style - [fsUnderline];
end;
if (Message.Msg = CM_MOUSEENTER) then
begin
Font.Color := clBlue;
Font.Style := Font.Styl |
|
 |
delphi 关闭外部应用程序 |
| |
日期:2007-06-27 08:26:36
点击:9 评论:0 |
|
下面给出一段在 Delphi 中关闭“计算器”程序为例:
var
HWndCalculator : HWnd;
begin
// find the exist calculator window
HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator
if HWndCalculator <> 0 then
Send |
|
 |
delphi 显示密码编辑框中的密码 |
| |
日期:2007-06-27 08:24:57
点击:14 评论:0 |
|
我们在使用Windows时,经常会碰到一些密码编辑框,输入其中的文字都以“*”显示。现在,有许多共享软件和自由软件都可以实现隐藏密码的正确显示。究竟这是怎样实现的呢!其实,这比较简单,虽然这些信息都以“*”显示,但其内部还是以当初的字符表示,所以,我们只 |
|
 |
delphi 关闭windowns |
| |
日期:2007-06-27 08:23:13
点击:10 评论:0 |
|
控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等, ExitWindowsEx(UINT uFlags,DWORD dwReserved);是实现这一功能的API函数
首先定义常数
const
EWX_FORCE=4; //关闭所有程序并以其他用户身份登录
EWX_LOGOFF=0; //重新启动计算机并切换到MS-DOS方式
EWX_REBO |
|
 |
delphi API函数开发三原则 |
| |
日期:2007-06-27 08:21:40
点击:22 评论:0 |
|
Windows 的API 函 数 是 应 用 程 序 开 发 的 有 力 辅 助 工 具, 对 它 们 的 恰 当 使 用, 可 大 大 增 强 和 改 进 应 用 程 序 与 系 统 打 交 道 的 能 力, 使 自 己 的 程 序 真 正 具 有 底 层 操 作 功 能。 作 为RAD 工 具 的 基 础 代 表,BORLAND DELPHI |
|
 |
delphi Win32 API 使用的特殊情况 |
| |
日期:2007-06-27 08:20:31
点击:16 评论:0 |
|
我个人认为,Delphi 是当今最好的 Windows 可视化开发工具。
其种种特点令开发如虎添翼。但要想发挥出 Delphi 真正的内含性能比如开发控件,实现一些特殊的功能,就必须直接调用 Win32 API。
Win32 API 主要包含在 Windows95/98/NT/2K 的系统动态连接库中如 Kernel3 |
|
|
|
|
|
|
|