如果我运行程序并引发异常,我会被问到是否要继续或中断.
如果让我选择休息,我可以看到那里的异常是从,但未来若突破是在图书馆或系统文件的我的源文件不是一个(说的例外是System.pas或Controls.pas)我需要手动步骤执行前使用F8,直到它返回到我的一个文件,所以我可以看到我的代码的哪一部分导致异常.
这可能需要很长时间.
我知道我应该在我的代码中捕获较低级别的异常,但在这个例子中它并没有击中我的异常处理程序之一.
有没有办法说
我也对其他编译器/ IDE如何处理它的一般好奇感兴趣.
如果我没有像我应该那样明确表示道歉.
我们有一个应用程序服务器,当网络拥塞时(在客户端的站点),已经观察到发送带有TCP窗口大小为0的标头.
我们想知道是否是Indy或底层Windows层负责根据标称64K调整TCP窗口大小以适应可用吞吐量.
而且我们可以在它变为0时动作(没有任何东西被发送,用户等待=>没有好处).
因此,欢迎任何信息,链接,指向Indy代码的指针......
免责声明:我不是网络专家.请保持答案可以理解为平均我;-)
注意:它是Windows Server 2003 SP2上的Indy9/D2007.
更多详细信息:
TCP零窗口案例发生在与数据库服务器通信的中间层上.
它发生在最终用户抱怨客户端应用程序速度减慢的同一时刻(这是触发网络调查的原因).
已确定2个导致瓶颈的主要网络问题.
TCP零窗口发生在网络拥塞时,但可能是也可能不是由它引起的.
我们想知道什么时候发生,并且有办法在我们的代码中做一些事情(至少记录日志).
所以核心问题是谁将窗口大小设置为0以及在哪里?
在哪里挂钩(在Indy?)以了解何时发生这种情况?
我们最近从Delphi 2006升级到Delphi 2007,项目文件从更改.bdsproj为.dproj.
到目前为止,我的研究表明,为了创建.dproj,需要在D2007 IDE中打开现有项目.我们有超过400个.bdsproj文件,因此手动执行此操作并不实用.
我想出的过程是使用以下命令从命令行打开所有项目:
find . -name *.bdsproj -exec bds.exe -pDelphi -ns -m "{}" ";"
Run Code Online (Sandbox Code Playgroud)
这是不理想的,因为它很慢(等待BDS加载,等待编译发生,等待BDS关闭,......).
有没有一种有效的方法将多个转换.bdsproj为.dproj?
注意:上面命令行中的'find'是类似UNIX的查找(例如MKS或GNU),它搜索文件,而不是Windows查找文件中搜索文本.
您好,我怎样才能在delphi中找到最小和最大的数字?
假设我有10个不同的数字存储在一个数组中:
如何在阵列中找到最大数量和最小数字?
我试图从.log文件中读取数据并处理其内容.日志文件由另一个应用程序创建.当我在Delphi中使用readln命令并在备忘录中显示文件的内容时,我只从一个包含超过6000行数据的文件中获取一行数据(ÿþI).
procedure TForm1.Button1Click(Sender: TObject);
Var
F : TextFile;
s : string;
begin
AssignFile(F, 'data.log');
Reset(F);
while not Eof(F) do
begin
Readln(F, s);
Memo1.Lines.Add(s);
end;
end;
Run Code Online (Sandbox Code Playgroud)
有谁知道问题可能是什么?
我发现此文档表明您可以使用备用注册表项启动Delphi.但我无法让它工作(使用Delphi 2007,也尝试过2010).我的捷径的目标是
"C:\ Program Files\CodeGear\RAD Studio\5.0\bin\bds.exe"-pDelphi -rHKEY_CURRENT_USER\Software\Borland\BDS\5.0
当我运行Delphi启动时没有加载任何包. 我以错误的方式传递密钥吗?这是2007/2010期间的功能吗?(它似乎在那里,因为在启动时正常加载的包没有加载)
我想要解决什么?:
我使用不同版本的第三方组件有不同的发行版.当我需要修复旧分支上的错误时,UI(使用后来的第三方版本运行)更改dfm,使用部分ect.适合在UI中安装的版本.旧的分支仍然链接旧版本的第三方,并崩溃
我有一个给定文件夹的完整路径名称,例如
c:\foo\bar
Run Code Online (Sandbox Code Playgroud)
现在我想在c:\ foo里面引用一个名为baz.txt的文件,
c:\foo\bar\..\baz.txt
Run Code Online (Sandbox Code Playgroud)
我目前正在使用.. path运算符向下一级并获取我需要的文件.
是否有一个可以进行路径操作的函数,例如UpOneLevel(str) - > str?我知道我可以通过拆分字符串并删除最后一个令牌来编写一个,但我宁愿它是一个内置/库函数,所以如果有例如转义反斜杠,我不会遇到麻烦.
如何将字符串数组转换为字符串(使用分隔符char)?我的意思是,是否有一些系统功能我可以使用而不是编写自己的功能?
我有一个由DataSource链接到DBGrid的ADOQuery.
ADOQuery和DataSource位于DataModule中,连接采用另一种形式.
在查询获取记录时,有没有办法让我的应用程序显示行?
像MSSQL Management Studio一样.
选择大约需要7分钟来终止执行.
我正在使用Delphi 2007.
我正在尝试将SysUtils.WrapText()函数与包含转义的单引号字符的字符串一起使用,并且得到了意外的结果。
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.Text := WrapText('Can''t format message, message file not found', 15);
ShowMessage(Lines.Text);
finally
Lines.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果字符串包含撇号字符,则该函数似乎根本不会包装字符串。
我也尝试使用#39代码而不是单引号char,但是问题仍然存在。此外,我已经检查过Lines.Count了1。
我试过删除单引号字符:
var
Lines : TStrings;
begin
Lines := TStringList.Create;
try
Lines.Text := WrapText('Cant format message, message file not found', 15);
ShowMessage(Lines.Text);
finally
Lines.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
然后开始按预期包装字符串:
我想知道为什么会发生这种情况,以及如何将WrapText()函数与此类字符串一起使用?