当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: DELPHI 光盘中有一个有一个演示程序名字是 coolstuf。
 

 

    摘要:不知道大家在使用qq时有没有想到它的缩入伸出的功能是如何实现的呢?实现这个效果的关键在于如何判断当前鼠标指针下面的窗体是不是我们的程序窗体。getcursorpos()是一个可以获得鼠标指针在屏幕中的坐标的api函数,利用它与findvclwindow()的结合就可以轻易地获得鼠标指针下的vcl可视组件,但当一个窗体中不只一个vcl可视组件,例如可能还有tpanel、tmemo等等类型时,那么我们......
 ·在delphi里播放flash     »显示摘要«
    摘要:首先,你的机器里要装有flash播放软件(你的ie能显示flash)。ie之所以能显示flash是安装了由macromedia公司提供的swflash.ocx控件,我们可以在win98的$windows\system\macromed \flash中或在win2000中的$winnt\system32\ macromed\flash中找到它。activex控件在windows里是通用的,delph......


由演示程序 coolstuf 而找到的工具栏错位问题

delphi 光盘中有一个有一个演示程序名字是 coolstuf.我在这个程序中发现一个有趣的现象.一旦你将第三行工具栏“链接栏”拖动到最顶端,然后再拖回原来的位置,那么工具栏最下方会多出一个大概 40px 的空白区域.这个问题很恶心,我暂时称它作“工具栏错位”.在 google 中搜索,发现也有其他人讨论过此问题.原因大致是:当工具栏高度发生变化后,刷新消息 rbn_heightchange 发送的时候,高度没被正确计算.因此它在执行 adjustsize 时就出现了偏差,而导致了错位.

【程序编程相关:Delphi 8 for .NET As

【推荐阅读:delphi2005探讨之一

我没找到现成的解决方案,于是只好自己动手寻找突破口.我发现这个问题只有在当某个工具栏设置过 fixedsize = true 后才出现.于是想到了这样一个办法,就是在接受到 rbn_heightchange 后,先将所有工具栏都设置成 fixedsize = false.这样的话高度计算就正确了. 【扩展信息:function GetVersion(

好了,我们开始着手修改 comctrls.pas 了.

1. 找到 procedure tcoolbar.cnnotify(var message: twmnotify);

2. 使用如下代码:

  case message.nmhdr^.code of

    rbn_heightchange:

    begin

      (* moved to wmsize(...)

      if isautosized and (componentstate * [csloading, csdestroying] = []) then

      begin

        readbands;

        beginupdate;

        try

          if autosize then adjustsize;

        finally


...   下一页
 ·winsock完成端口模型-delphi代码     »显示摘要«
    摘要:原文出处 《windows网络编程技术》第8章 完成端口模型 由于原书附的是c代码,我把其翻译成delphi代码。 其中winsock2.pas在delphi中不带,要另外下载http://jungla.dit.upm.es/~bti/files/winsock2.pas program completionio; {$apptype console} uses sys......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE