我有一个表单,用于显示一些信息几秒钟.表单可以自由释放吗?我可以在构造函数中启动一个计时器,然后在timer-event中调用self.free吗?或者这可能会导致麻烦吗?
我最近尝试用这个工具磨练我的rails技能:
http://github.com/edgecase/ruby_koans
但我在通过一些测试时遇到了麻烦.此外,我不确定我是否正确地做了一些事情,因为目标只是通过测试,有很多方法可以通过它,我可能正在做一些不符合标准的事情.
有没有办法确认我做得对吗?
一个具体的例子:
在about_nil,
def test_nil_is_an_object
assert_equal __, nil.is_a?(Object), "Unlike NULL in other languages"
end
Run Code Online (Sandbox Code Playgroud)
所以它告诉我检查第二个子句是否等于一个对象(所以我可以说nil是一个对象)或者只是assert_equal true, nil.is_a?(Object)因为该语句是真的而放?
和下一个测试:
def test_you_dont_get_null_pointer_errors_when_calling_methods_on_nil
# What happens when you call a method that doesn't exist. The
# following begin/rescue/end code block captures the exception and
# make some assertions about it.
begin
nil.some_method_nil_doesnt_know_about
rescue Exception => ex
# What exception has been caught?
assert_equal __, ex.class
# What message was attached to the exception?
# (HINT: replace __ with …Run Code Online (Sandbox Code Playgroud) 我已经开始在我的Delphi应用程序中使用SmartInspect,因为我的用户遇到了我无法在我的机器上重现的错误/问题.当我对问题有一个总体概念时,我将在几个特定的地方监控应用程序,以确认哪些是有效的或哪些无效.
当bug没有明显的原因时,我感到迷茫.我不知道从哪里开始登录以缩小问题范围.是否有使用记录器的常用技术或最佳实践?
SmartInspect似乎非常强大,但我不知道要记录什么或如何组织我的日志,因此数据对于捕获错误是有意义和有用的.
注意:我正在使用SmartInspect,但我认为答案应该适用于任何日志包.
用户一直在报告我无法在我的机器上重现的问题/崩溃/错误.我发现这些问题很难解决.
我已经开始使用EurekaLog(太棒了!)和SmartInspect.这两种工具都有很大帮助,但我仍然发现很难发现一些问题.
我刚刚购买了David Agans的Debugging(等待它到达).
是否还有其他特定于Delphi的工具或技术有助于捕捉这些难以找到的远程问题?我发现难以追查的问题是那些不会引起例外或有明确原因的问题.EurekaLog捕获异常,一旦我有理论检查,SmartInspect就相当不错了.但在某些情况下,这是一个看似随机的崩溃,有几千行代码可能有问题.如何缩小根本原因?
'boolean'变量是否可以从任何线程读取和写入线程安全?我已经看到一些新闻组的引用说它们是.是否有其他数据类型?(列举的类型,也可能是短的内容?)
有一个可以安全地从任何线程和另一个列表中读取的所有数据类型的列表将是很好的,这些列表也可以安全地写入任何线程,而不必求助于各种同步方法.
我想了解当动态数组的大小增加时会发生什么.
到目前为止我的理解:
当数组大小增加时,是将额外的内存添加到现有的内存块上,还是将现有的元素复制到一个全新的内存块?
更改动态数组的大小是否会影响引用现有数组元素的指针?
谢谢,
[编辑]错误的假设被打破了.(新数组元素初始化为0)
背景
我使用一些FireMonkey控件创建了一个GUI.
问题
与用户控件的交互可防止更新动画控件,从而导致不稳定的不连续动画.
上面视频中的动画控件由TTimer组件驱动.使用FireMonkey的动画组件时问题仍然存在.
调查
滑块控件在调整时调用Repaint().平滑调整滑块将生成密集的Repaint()调用流,阻止其他控件更新.
该怎么办?
在一个控件不断更新时冻结动画不适合我的应用程序.我的第一个想法是交换Repaint()调用类似于VCL Invalidate()方法,但FireMonkey没有任何可比的AFAIK.
这个问题有一个很好的解决方法吗?
我正在努力改善我的Delphi应用程序对视障用户的可访问性.我的应用程序使用许多自定义GUI组件 他们大多来自TWinControl或TGraphicControl.
使用NVDA进行测试时,我的自定义组件似乎不可见.例如,当鼠标悬停在常规Delphi VCL控件(如按钮或表单)上时,NVDA将通过读取控件的名称(或其他详细信息)来做出响应.相比之下,当我将鼠标悬停在任何自定义控件上时,NVDA根本没有响应.
如何使我的自定义组件对NVDA和其他屏幕阅读软件可见?
我需要一个字符串散列函数,它将在Delphi XE2和PHP中产生相同的结果.我有什么选择?将优先考虑免费,简单且加密安全的解决方案.
delphi ×9
delphi-xe2 ×3
atomic ×1
debugging ×1
firemonkey ×1
hash ×1
logging ×1
nvda ×1
open-source ×1
php ×1
ruby ×1