delphi-7专题提供delphi-7的最新资讯内容,帮你更好的了解delphi-7。
我需要删除按钮焦点矩形,因为在单击按钮后它在TBitBtn字形上看起来很糟糕. 您可以为TBitBtn创建一个Interposer类并覆盖SetButtonStyle,防止它的内部IsFocused变量被设置: type TBitBtn = class(Buttons.TBitBtn) protected procedure SetButtonStyle(ADefault: Boo
假设我有一个表单,上面有一个菜单栏.我在菜单栏上有一个项目,一个TMenuItem,我可以为其指定一个快捷键组合,例如Ctrl I.但是当我为TMenuItem指定ShortCut属性时,它似乎只是改变了它的视觉外观.菜单项显示快捷键代码,而不是自动侦听要按下的快捷键并触发我的ActionManager代码. 我的google-fu今天似乎失败了,我只找到关于如何为windows分配全局热键的文章
如何在TCustomControl上绘制Unicode文本?没有画布还有其他选择吗? 是的,你是对的.不过,我建议你升级到Delphi 2009或更高版本,其中VCL具有完全的Unicode支持,一切都更容易. 无论如何,你可以做到 procedure TMyControl.Paint; var S: WideString; r: TRect; begin inherited; r
我正在尝试通过减少执行某些操作所需的点击次数来改进GUI.但是,困扰我的一个VCL组件是TValueListEditor,它包含一个键和值列表,所有这些都由下拉列表控制.选择选项始终需要三次点击,只需要两次: 此时,最上面的行具有焦点,可以使用下拉列表(两次单击)更改值.但是,当用户想要编辑不同的密钥时,他首先必须将焦点更改为该密钥才能使用下拉列表(三次单击). 有没有办法在所有行上显示下拉箭头以
如果按下鼠标按钮,并且显示窗口,当鼠标按钮被释放时窗口将接收到MouseUp事件。 一旦显示窗口,是否可以检测到鼠标按钮是否已被按下? 我会试试这个: procedure TForm1.FormShow(Sender: TObject); begin if GetKeyState(VK_LBUTTON) and $8000 <> 0 then ShowMessage('Left mou
我写了一个Win32应用程序(在Delphi-7中,32位使用TThread类)来创建100个线程.每个线程在恢复时将连续(循环)增加与线程对象相关联的64位计数器(因此不会锁定或共享数据). 如果让系统运行10到15秒,然后停止,那么每个线程都应该看到大致相同的计数.但是我所观察到的是,81条线程运行不到4亿次循环,其余的循环次数超过9.5亿次.最慢的线程只有2.3亿,而最快的2111万. 根据
我的问题是,如果一个线程快速将消息发布到主UI线程,并且如果我在那时更新UI,有时主消息队列会被卡住(我没有更好的词来描述这个). 这是简化的repro代码: const TH_MESSAGE = WM_USER + 1; // Thread message TH_PARAM_ACTION = 1; TH_PARAM_FINISH = 2; type TForm1 = class
我想知道这里几个Delphi用户在做单元测试,如果有的话?有什么东西与IDE集成,你发现工作很好吗?如果没有,你使用什么工具,你有或知道的示例小项目,以证明它是如何工作的? 更新: 我忘了提到我使用BDS 2006 Pro,虽然我偶尔会掉到Delphi 7,当然其他人可能正在使用其他版本。 DUnit是一个xUnit类型的单元测试框架,用于与win32 Delphi。因为Delphi 2005 D
我在TStringList类中的分隔符有麻烦。看一看: var s: string; sl: TStringList; begin sl := TStringList.Create; s := 'Users^foo bar^bar foo^foobar^barfoo'; sl.Delimiter := '^'; sl.DelimitedText := s; ShowM
我想自动检出一个文件,当我开始编辑它在Delphi 7 IDE。 ClearCase是我的版本控制系统,我真的讨厌需要检出一个文件,然后开始编辑。它总是打破我的思想流程:我试图解决一个问题,找到我需要改变,尝试编辑它,失败,因为文件是只读,打开清除,搜索文件,最后签出,尝试编辑文件,失败,因为IDE仍然认为它是readonly,告诉IDE不是readonly。当我终于回到代码,我忘了我在做什么。
我刚碰到一个恼人的问题。突然Avira AntiVir开始将一个可执行文件从我的软件标记为病毒。 由于几乎任何用户的默认操作是单击确定,Avira建议将病毒置于隔离区,我的大多数用户都在删除此可执行文件。 好吧,让我们不要傲慢,检查我是否真的没有感染。我发布的文件到http://www.virustotal.com和所有的反病毒只有Avira标志它作为感染。此外,我扫描我的计算机与两种不同的反病毒
我们公司有一个软件,已经发展了10多年,所以有一些真正过时的东西在那里。它仍然是相当实用和一切,但我看到Delphi XE的新功能,它让我想切换。问题是源代码本身是超过300mb的.pas文件(总共1gb组件等)。 我们使用自定义组件,旧的jvcl东西和最新的devexpress。 如果我决定从Delphi 7迁移到Delphi XE,我会有多难? 谢谢。 唯一真正的问题是转换为Unicode。您
将窗体设置为WindowState = wsMaximized有时会导致窗体最大化,但不会: 长期的bug:这是我在2003年Borland新闻组第一次提出的问题: > Accepted fix for WindowState = wsMaximized? 然后在2006年再次: > wsMaximized breaks it, NOT caused by Position=poScreenCen
我有一个问题(或更可能是一个错误报告)关于位移位行为在Delphi(测试在Borland德尔福7)。 目标:对任意数字执行“算术”向右移位。 这意味着符号位必须被扩展 – 如果数字的最高有效位被设置,二进制数将从1开始填充,而不是0。 因此,在算术移位之后的数字“-1”必须保持相同的数(所有位= 1),但是“逻辑移位”(其总是用零填充数)必须给出最大正整数(最大正有符号整数,要正确) 我测试它只在
我注意到以下现象: 使用Delphi 7构建的可执行文件,其中包括“Update”(例如“UpdateMyApp.exe”)的名称的一部分使UAC能够显示“您是否允许程序更改您的计算机”的警告。 这是一个简单的hello world应用程序。在资源管理器中显示文件显示覆盖到应用程序图标的屏蔽符号。 一旦你重命名exe,屏蔽消失,应用程序开始没有警告。 如上所述,只有在使用Delphi 7构建的程序
有什么办法知道我目前在使用的方法的名称吗? 以便: procedure TMyObject.SomeMethod(); begin Writeln('my name is: ' + <hocus pocus>); end; 将产生此输出: 我的名字是:SomeMethod JCL是免费的,具有这一功能。这取决于堆栈跟踪可以做多么好,调试信息有多少。 JclDebug.pas function
当试图运行Delphi 7时,我得到这个可怕的消息: 发现Borland许可证信息,但对Delphi无效。没有这个信息你不能运行Delphi。单击退出按钮退出Delphi。 今天早上,Delphi运行正常,当我试图加载我正在工作的项目时,窒息。我从原始磁盘重新安装了Delphi – 同样的消息。我刚刚从几天前完成了系统还原 – 同样的消息。 帮帮我! 根据Chillibear的 archives,
我认为没有本地支持gif动画图像。 最好的方法怎么样?任何允许的免费组件?我正在考虑使用TImage和ImageList Timer,但是我需要将gif的每个帧导出到一个分离的bmp文件中。 它在现代德尔福很简单。它全部内置。将一个TImage放到窗体上,并将动画GIF加载到Picture属性中。然后,通过 Animate属性启动动画: (Image1.Picture.Graphic as TGI
我在delphi 7工作,我正在工作的字符串,我遇到这个 For a string of default length, that is, declared simply as string, max size is always 255. A ShortString is never allowed to grow to more than 255 characters. 在delphi str
我的应用程序是基于模态形式。主窗体使用ShowModal打开一个窗体,此窗体使用ShowModal打开另一个窗体,因此我们已经堆叠了模态窗体。有时候会出现一个问题,当我们以新的形式调用ShowModal时,它隐藏在以前的表单之上,而不是在顶部显示。按Alt选项卡后,表单返回顶部,但这不是很好的解决方案。你遇到这个问题,你是怎么处理的? 编辑: 我使用Delphi 7。 你没有提到哪个版本的Delp