在CodeGear Delphi 2007中,如何关闭特定警告和提示?我试图关闭H2077 - 分配给'varname'的值从未使用过.
我偶然发现了这个页面为什么我不应该调用Application.CreateForm.现在我有一些像这样的代码:
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update; // force update
Application.Initialize;
Application.CreateForm(TClientData, ClientData);
SplashForm.Update; // force update
Application.CreateForm(TClientMainForm, ClientMainForm);
Application.ShowHint := True;
Application.Run;
ClientMainForm.ServerConnected := false;
FreeAndNil(ClientMainForm);
FreeAndNil(ClientData);
Run Code Online (Sandbox Code Playgroud)
首先创建一个splashform,然后创建一个datamodule并持续主窗体.页面说不应该调用Application.CreateForm两次.上面的代码应该改变吗?
我已经看了很久了,最后决定把问题放在这里.我有一些我需要维护的应用程序是用Delphi 2007 for .NET(ASP.NET 2.0)编写的.通常,我第一次运行应用程序(使用IIS)时,我得到了经典的"无法在Web服务器上启动调试.无法附加到ASP.NET工作进程"消息.我只需按F9(运行)再次运行.有时我必须尝试运行几次才能实际运行.
我正在运行Windows 7 64位(并且在Vista 64位上看到了相同的效果).我确实为ASP.NET配置了IIS,并且我的Web.config文件中有以下代码.
<system.webServer>
<modules>
<add name="DbgConnect" type="Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=10.5.0.0,
Culture=neutral, PublicKeyToken=b0524c541232aae7" preCondition="managedHandler" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
关键是我最终可以在调试器中运行应用程序,有时甚至是第一次尝试.很多时候,当我遇到故障时,它会在我按下Run后大约15秒左右发生,有时甚至在我点击一两页(或三个)Web应用程序之后.并且,是的,当Delphi进入这种模式时,我可以简单地运行而无需调试,一切都很好(除非我真的想调试).并且,我可以继续尝试在调试器中运行,最终它将正常工作.
似乎Delphi的.NET调试器在某种程度上得到了应用程序无法运行的想法,然后放弃并停止进程(正如我所提到的那样,有时候显然正在运行).
我知道其他开发者也看到了这种行为.我的问题是,有谁知道如何阻止这种烦人的行为?
使用Delphi我想在边框图标按钮上添加另一个按钮; 关闭,最大化,最小化.关于如何做到这一点的任何想法?
我有这样的基类声明
type
TBaseClass=class
protected
constructor Create(LoadData:boolean;const Param1,Param2:string); overload;
public
Destructor Destroy; override;
end;
Run Code Online (Sandbox Code Playgroud)
现在,在另一个单元的子类TChid_Class,从下降 TBaseClass
TChid_Class=class(TBaseClass)
function Create(const Param1, Param2 : String;const Param3 : OleVariant ; var Param4 : LongInt): Integer;overload;
constructor Create; overload;
constructor Create(LoadData:boolean); overload;
end;
Run Code Online (Sandbox Code Playgroud)
在此类中,存在一个称为Create构造函数的函数,问题是,当我尝试创建实例时TChid_Class遇到访问冲突。
我写了这个小控制台应用程序,显示了问题
program TestClass;
{$APPTYPE CONSOLE}
uses
Variants,
SysUtils;
type
TBaseClass=class
protected
constructor Create(LoadData:boolean;const Param1,Param2:string); overload;
public
Destructor Destroy; override;
end;
TChid_Class=class(TBaseClass)
function Create(const Param1, Param2 : String;const Param3 : OleVariant ; var Param4 : LongInt): …Run Code Online (Sandbox Code Playgroud) 我想要优化一段具有这种结构的代码:
while (i > 0) do begin
Dec(i);
Run Code Online (Sandbox Code Playgroud)
这看起来效率低下,所以我尝试这样做:
while (Dec(i) >= 0) do begin
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为Dec是一个过程而不是一个函数.
所以我把它重写为:
procedure Withloop;
var
....
function Decr(var a: integer): integer; inline;
begin
Dec(a);
Result:= a;
end;
...
while (Decr(i) >= 0) do begin
Run Code Online (Sandbox Code Playgroud)
但这会编译成:
SDIMAIN.pas.448: while (Decr(i) >= 0) do begin
00468EE5 8BC4 mov eax,esp
00468EE7 E8D0FEFFFF call Decr <<--- A call??
00468EEC 85C0 test eax,eax
00468EEE 0F8D12FFFFFF jnl $00468e06
00468EF4 EB01 jmp $00468ef7
Run Code Online (Sandbox Code Playgroud)
然而,在程序的另一部分,它内联函数就好了.
我可以使用哪些经验法则(或硬规则)来了解Delphi将遵守该inline指令?
当使用Delphi 2007和Indy 9时,可以加载哪些最新的OpenSSL库以及它们在哪里可用?
我需要在Delphi 2007中阅读并将一些图片从jpg转换为bmb到bmp.
转换后,某些图片被剪切,灰度或最差.
我搜索过,但在任何情况下我都找不到在delphi 2007中添加像TWICImage这样的WIC例程的技巧.
我在某处读到可以通过COM轻松添加,但我不知道如何导入文件或文件.
谢谢.
我有一个包含三个主要组件的表单:
一切都开始看起来很棒.但是与底部对齐的FlowPanel也设置为AutoSize.它包含一个可以自行折叠的面板.内部面板包含用户可以决定隐藏的摘要信息.这会将FlowPanel的大小降低到非常小的尺寸但不会完全消失.仍然有一个按钮,用户可以在其中重新展开摘要面板.
面板重新展开导致FlowPanel增长时出现问题.那时状态栏和FlowPanel的顺序相反.它们仍然设置为对齐底部,但现在状态栏位于我的FlowPanel之上.
我可以在没有折叠面板的测试应用程序中复制它,只需在表单上放置按钮即可查看底部流量面板的高度.如果高度增加,则订单会发生变化.如果它减少了,那么一切都保持相同的顺序.我的测试表单中唯一的代码是:
FlowPanel2.Height := FlowPanel2.Height * 2;
Run Code Online (Sandbox Code Playgroud)
我也测试了这个,底部面板是常规TPanel而不是FlowPanel,结果相同.
关于为什么会发生这种情况以及如何预防的任何想法?

我有一个表单,其中包含某些具有事件处理程序的组件.现在我想将这些事件处理程序(那些方法)移动到一个单独的单元,仍然能够在设计时通过Object Inspector将它们分配给组件事件.
是否可以仅为事件方法创建一个单独的单元,以便Object Inspector允许我在设计时分配它们?
假设我是否会使用公共程序制作该单元:
unit Unit2;
interface
procedure ButtonClick(Sender: TObject);
implementation
procedure ButtonClick(Sender: TObject);
begin
// do something here
end;
end.
Run Code Online (Sandbox Code Playgroud)
或者使用已发布方法的类,如下所示:
unit Unit2;
interface
type
TMyClass = class
published
procedure ButtonClick(Sender: TObject);
end;
var
MyClass: TMyClass;
implementation
{ TMyClass }
procedure TMyClass.ButtonClick(Sender: TObject);
begin
// do something here
end;
end.
Run Code Online (Sandbox Code Playgroud)
如何为事件方法创建一个单独的单元,IDE允许我在设计时分配给组件事件?例如:

delphi ×10
delphi-2007 ×10
asp.net ×1
bmp ×1
com ×1
delphi.net ×1
indy-9 ×1
inline ×1
jpeg ×1
optimization ×1
ssl ×1
titlebar ×1
vcl ×1
warnings ×1
windows ×1