小编Bri*_*ost的帖子

使用Pascal Script和SynEdit创建IDE

我正在使用RemObjects的PascalScript(优秀)和SynEdit编辑器创建一个内置的脚本引擎.它几乎完成了使用PascalScript附带的IDE示例和SynEdit中的IDE示例 - 但是 - 我无法看到如何询问PascalScript编号的源代码行是否是"可执行的".(然后我可以用它来用'Delphi蓝点'标记SynEdit排水沟).我想我可能不得不对ROPS输出进行反汇编?

这里有PascalScript专家吗?谢谢.布莱恩.

ide delphi scripting pascalscript synedit

9
推荐指数
1
解决办法
2973
查看次数

使用Delphi可以在W7中禁用任务切换键盘快捷键吗?

我的应用程序已经有一种模式多年,客户可以"禁用对操作系统的访问".显然这个功能与谷物相悖(至少就Windows而言),但有些安装我的应用程序是唯一一个应该可见的机器操作员程序,在这种情况下这样的功能是有用的.

我使用的技术是从几个"层"构建的:

  1. 隐藏任务栏和按钮.
  2. 禁用任务切换.
  3. 禁用我的主表单系统图标.

要禁用我使用的任务栏:

// Get a handle to the taskbar and its button..
Taskbar := FindWindow('Shell_TrayWnd', Nil);
StartButton := FindWindow('Button', Nil);

// Hide the taskbar and button
if Taskbar <> 0 then
  ShowWindow( Taskbar, SW_HIDE );
if StartButton <> 0 then
  ShowWindow( StartButton, SW_HIDE );

// Set the work area to the whole screen
R := Rect( 0,0,Screen.Width,Screen.Height );
SystemParametersInfo(
  SPI_SETWORKAREA,
  0,
  @R,
  0 );
Run Code Online (Sandbox Code Playgroud)

这很好用,但在W7上似乎还算不错.研究如何在几年前禁用任务切换发现了唯一一种"假装"你的应用程序是屏幕保护程序的技术(除了将应用程序重命名为'explorer.exe'并启动它等等)之外的其他方法:

procedure EnableTaskSwitching( AState : boolean );
// Enables / disables task …
Run Code Online (Sandbox Code Playgroud)

windows delphi taskbar task-switching

9
推荐指数
2
解决办法
3927
查看次数

将Delphi TLabel的字体更改为Italic会拖尾 - 为什么?

下面显示了字体设置为Arial Regular 16的默认TLabel的简单演示. 在此输入图像描述

单击按钮时的代码是:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Font.Style := Label1.Font.Style + [fsItalic];
end;
Run Code Online (Sandbox Code Playgroud)

单击该按钮时,最后一个字符将被截断,即:

在此输入图像描述

默认情况下,TLAbel.AutoSize是真的所以这应该没问题吧?这是在XE和Delphi 7中是一样的.这是一个错误吗?

delphi fonts tlabel autosize italic

9
推荐指数
2
解决办法
7816
查看次数

如何使用Delphi计算当前日期的日出和日落时间

给定特定纬度和经度并使用Delphi(我使用的是XE2),我需要确定当天的日出和日落时间(当地时间).我发现了这篇文章并使用了SysTools库,但结果与英国公布的表格不一致.

有没有人看过这个pascal算法?

delphi delphi-xe2

9
推荐指数
1
解决办法
2473
查看次数

是否可以使用Inno Setup'Pin to start menu'?

我正在使用优秀的Inno安装程序安装程序,我注意到一些应用程序(通常来自Microsoft)已安装,其启动图标已在开始菜单(在Windows 7中)高度可见('固定?').我完全依赖于最近使用的算法,我的图标在开始菜单中是"大",或者有没有办法从安装程序推广我的应用程序?

scripting installer inno-setup startmenu windows-7

8
推荐指数
3
解决办法
5010
查看次数

是否可以在不重启的情况下卸载内核驱动程序?

我正在玩Win7 DDK中的一个内核驱动程序示例.我可以修改编译并构建我的*.sys文件.我也可以使用INF(使用设备管理器或devcon)或直接使用服务控制管理器来安装它.当我进行下一次更改并生成更新的*.sys文件时,我似乎在这个新文件和我现在停止的驱动程序之间发生了冲突(我尝试过使用Servcie控制管理器'停止'和'删除服务'等).如果我重新启动,我可以安装新驱动程序并运行正常.同样,如果我在设备管理器中选择卸载,Windows会提示我重新启动.

那么,如何轻松地轻松测试对核心驱动程序的增量修改?谢谢

service kernel reboot driver windows-7

8
推荐指数
1
解决办法
1万
查看次数

是否有一个Delphi选项来"锁定"表单的设计(布局)以防止意外更改?

经过多年的Delphi开发,我现在在我们的应用程序中共享了数百种表单.编译范围从Delphi 7到XE,因此可以在任何IDE中打开一个表单.Delphi 7之后众所周知的Explicitxxx属性添加解决方案,以避免形式意外获取早期编译器无法处理的属性(例如Andreas的DDevExtensions),但我想要一个更积极的'开关'阻止Delphi制作或保存任何形式修改.期.

当然,您可以使用只读标志,并且版本控制系统提供了额外的方法,可以看到发生了这样的修改.我真正喜欢的是一个{$ LockDFM}开关,我可以放在窗体的单元中,或者查看窗体布局时的上下文菜单选项.

任何人都可以想到一个实现这一目标的巧妙方法吗?

谢谢

forms delphi dfm

8
推荐指数
1
解决办法
4319
查看次数

如何使用Delphi屏幕键盘表单的窗口焦点消息

我的应用程序中需要一个内置的屏幕数字小键盘.由于各种原因,我无法使用TMS软件或其他商业组件产品.我对下面显示的基于按钮的解决方案非常满意,但我还不知道如何解决焦点切换问题,单击按钮激活键盘形式,我失去了我想要角色的聚焦控制.如果我将键盘按钮保持在目标表单中,但我想要一个独立于表单的解决方案,我的解决方案是有效的.有没有办法禁用按钮激活或知道焦点来自哪里,以便我可以使用像Scree.ActiveControl:= ?? 把它还掉?

在此输入图像描述

forms delphi keyboard focus

8
推荐指数
2
解决办法
4328
查看次数

转向使用Delphi软件包 - 请最好的做法?

我试图在使用这些软件包编译我的应用程序之前开始创建自己的库作为软件包,从而模块化我的代码.多年来,我有点'了解'包装,当我加载组件包并点击"安装"时它会松一口气,而且确实如此.我知道安装组件(或组件)的过程是通过创建BPL然后在IDE中注册.

我开始迷路的地方是如何使文件可用,以便我可以使用EITHER编译包或预编译的dcu(就像第三方供应商那样)并且不会一直指向我的项目源代码.我可以使用以下设置创建一个包:

在此输入图像描述

我已经指定我的所有输出都将进入'c:\ scratch\wow'.在构建之后,我找到了TEST.BPL,TEST.DCP和许多DUC.现在,当我指向此文件夹中的另一个项目以使用DCU时,我得到一个缺少的DFM错误(其中一个单位是一个表单).我应该手动将所需的DFM复制到此输出文件夹中吗?DPK知道这个表格,为什么我没有为我复制DFM?我假设使用TEST.BPL,该文件包含所有内容,但我希望在两种模式下工作.当然,我可以通过在我的项目搜索路径中包含源文件夹来找到DFM来解决这个问题,但是第三方库似乎已经在其输出文件夹中有了DFM.他们是否使用安装程序在那里安装它们?谢谢

代替

delphi package dfm

8
推荐指数
2
解决办法
3715
查看次数

如何在使用ScaleBy()后将delphi TForm重置为原始外观

我希望允许用户调整表单的大小,并按比例调整其控件的大小.ScaleBy(N,M)对我来说很好,但如果重复,当然会出现累积舍入错误.为了解决这个问题,我只希望在ScaleBy()之前调用以默认外观和大小重新创建表单,然后使用各种值调用ScaleBy.我知道我可以通过在一个面板中托管我的表单(并处理/重新创建它)来做到这一点但是有一个调用会在使用ScaleBy()之后重置表单吗?

编辑 - 我正在使用Delphi XE2,也会对任何人使用组件或其他代码(付费或免费)成功地扩展表单感兴趣 - 我自己的下载还没有产生可行的解决方案.

delphi resize scale tform delphi-xe2

8
推荐指数
1
解决办法
5851
查看次数