Delphi可用的大多数组件都没有Delphi 2009的HTML帮助文件.许多组件(包括一些非常流行的商业组件)只有HLP和CHM帮助文件.
许多第三方组件不再被积极开发,但被许多开发人员使用.因此,这些组件没有IDE帮助.
关于旧的CHM帮助文件的投诉很少,但今天有大量关于帮助文件系统的投诉.也许现在是Codegear重新考虑所使用的帮助文件系统类型的时候了.
关于它的一个抱怨是,即使您安装了提供HTML帮助文件的组件,"内容"选项卡也会因先前安装的组件内容被删除而损坏.
是否有可能考虑使用Codegear的替代方案?
下面的代码在Delphi 7中运行正常.但是,在Delphi 2009中,表单仍然隐藏,但任务栏上的按钮现在出现了.
ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)
上面的代码在FormCreate方法中调用.
我正在寻找一个用于Delphi(7)的FOSS SHA1实现.
最好是一些小的,甚至是独立的SHA1,而不是一个庞大的图书馆.易于安装和使用很好,但当然可靠性是优先级1.
更新:谢谢,Rob,这段代码就像一场梦
我正在尝试编写我的第一个firemonkey - 高清应用程序
在下拉菜单中选择编辑 为什么禁用所有编辑选项?
要么
在屏幕顶部的主菜单中,选择编辑
为什么禁用所有编辑选项?
问题:我做错了什么?
我想使用cookie/session建立一个登录系统,但我不确定它们的安全性是什么样的.
对于会话,如果"login"设置为"yes",我可以相信吗?用户是否能够改变它返回的内容?我应该只存储加密密码并在每个页面上进行检查吗?
使用cookies,我是否需要检查mysql注入等内容?
这可能听起来像初学者的东西,但如果有人能为我澄清它会真的有用.在此先感谢您的回复!
我正在使用Borland c ++ builder.我有一个应用程序,我希望隐藏主窗体,直到在不同的窗体上按下按钮.我已将mainform上的Visible值设置为false,但在运行程序时它仍会显示.谁知道该怎么办?
我使用Open Tools API创建了一个访问ClearCase的小型IDE插件.它有菜单项"Check In","Check Out"等.它工作正常,但是如果我开始在IDE编辑器中输入或者我试图保存文件,我希望它自动检出一个只读文件.你认为这有可能吗?
我尝试了一些事情但最终放弃了.IOTAEditorServices.KeyboardServices具有看起来很有前景的AddKeyboardBinding方法.使用它我添加了一个带有绑定类型btPartial的通知程序(后来尝试了btComplete)并且插件开始检测一些快捷键按下但不是所有键盘事件,远非它...任何想法将非常感谢!
我想确定给定组件在我的应用程序中属于哪种形式.Parent和Owner属性都不能被假定为表单本身,所以我不能简单地使用它.
我想我可以递归地通过Parent属性,直到我得到从TForm派生的东西,但是有更好的方法吗?我使用了搜索功能,但找不到任何特定于我的问题.
顺便说一句,我正在使用Borland C++ Builder(标记为Delphi,因为大多数VCL用户似乎都是用Delphi编写的,而且我读Delphi代码就好了).
提前致谢!
我正在使用TApplicationEvents OnShortCut事件来获取Delphi程序中的应用程序键盘快捷方式.
使用以下代码:
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean) ;
begin
if (Msg.CharCode = VK_F9) then
begin
ShowMessage('F9 pressed!') ;
Handled := True;
end;
end;
Run Code Online (Sandbox Code Playgroud)
题:
如何检测何时按下"ALT C"?
这是我的程序使用的类层次结构:

TForm_Upgrade_Database的构造函数如下所示:
__fastcall TForm_Upgrade_Database :: TForm_Upgrade_Database(TComponent*Owner,int newest_version):TForm(Owner){}
在尝试创建公式的实例之后
TForm_Upgrade_Database *dlg = new TForm_Upgrade_Database(this, newest_version);
Run Code Online (Sandbox Code Playgroud)
我的程序抛出EStackOverflow异常

我停止了程序并在TForm_Upgrade_Database构造函数中使用断点再次运行它.几步之后callstack看起来像这样:

如何TCustomForm构造函数继续尝试调用其后代的构造函数???
最小的测试用例:
so_project.cpp:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "f_form.h"
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
TForm_Upgrade_Database *form = new TForm_Upgrade_Database(NULL, 10);
delete form;
form = NULL;
return 0;
}
//---------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
f_form.cpp:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "f_form.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_Upgrade_Database *Form1;
//---------------------------------------------------------------------------
__fastcall TForm_Upgrade_Database::TForm_Upgrade_Database(TComponent* Owner, int x)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
f_form.h:
//---------------------------------------------------------------------------
#ifndef f_formH
#define …Run Code Online (Sandbox Code Playgroud) delphi ×7
vcl ×4
c++builder ×3
c++ ×2
delphi-2009 ×2
c++builder-6 ×1
constructor ×1
cookies ×1
delphi-xe2 ×1
firemonkey ×1
ide ×1
opentools ×1
php ×1
session ×1
sha1 ×1