小编Mas*_*ler的帖子

Observable.Do 永远不会触发,即使底层 IObservable 发生变化

我在 ReactiveUI 中获得了一些速成课程,并且System.Reactive.Linq在发现我需要的 UI 库后将其用于所有内容。大多数情况下这似乎很容易理解,但是有一个操作没有做任何事情。

我有一个控件,我需要在两个地方使用它的值。我有一个IObservable<T>代表它的价值,我使用如下:

案例 1:我需要将一个值与另一个 observable 值相结合,从而为另一个 observable 提供一个值。所以我Observable.CombineLatest(myObservable, otherObservable, (m, o) => ProduceValue(m, o))完全按照预期使用此更新生成它 。由此,我知道这myObservable是正确触发更新。

情况 2:我需要在其他地方使用这个值,在不可观察的上下文中。所以:myObservable.Do(v => UpdateViewModelWith(v))这永远不会触发。 我已经通过在 lambda 中放置一个断点并在调试器下运行它来验证这一点。

从案例 1 我知道 observable 正在正确触发。据我了解,observables 在概念上很像 Events,(有一堆机制让它们感觉更像IEnumerables,)并且 Events 完全能够接受多个侦听器,所以事实上它们不应该有两个成为问题。(通过更改设置两个侦听器的顺序进行验证,这不会导致观察到的行为发生变化。)那么什么会导致案例 2 永远不会运行呢?

c# wpf system.reactive reactiveui

1
推荐指数
1
解决办法
71
查看次数

D2009 VCL单元不会编译

我在Delphi 2009的TFields实现中发现了一个错误,并编写了一个快速补丁.我将DB.pas复制到我的项目文件夹并将其添加到项目的文件列表中,但现在我无法编译它.当我转到代码中指定的位置时,前两个错误消息甚至没有任何意义.

当然,如果可以依赖任何东西进行正确编译,那么它就是CodeGear的代码.他们已经设法编译它,以生成VCL组件.那我错过了什么?这是编译器的输出:

[DCC Error] DB.pas(2536): E2134 Type 'Pointer' has no type info
[DCC Error] DB.pas(10799): E2066 Missing operator or semicolon
[DCC Error] DB.pas(12933): E2217 Published field 'FCursor' not a class or interface type
[DCC Error] DB.pas(12934): E2217 Published field 'FTitle' not a class or interface type
[DCC Fatal Error] testing.dpr(23): F2063 Could not compile used unit '..\..\..\vclpatch\DB.pas'
Run Code Online (Sandbox Code Playgroud)

database delphi compiler-construction delphi-2009

0
推荐指数
1
解决办法
1251
查看次数

为什么我的自定义组件会在IDE中引发AV?

我正在尝试编写一个简单的组件,允许您使用SDL 1.3 API在Delphi窗口上嵌入一个或多个SDL渲染表面.它将编译和安装得很好,但是当我尝试在表单设计器中使用该组件时,每当我尝试在对象检查器中访问其属性,保存表单或删除组件,并将其放置在一个上时,它就会引发AV.然后尝试运行的表单给出了一个链接器错误:由于某种原因,它显然无法正确读取DFM.

DLL可以在http://www.libsdl.org/tmp/SDL-1.3-dll.zip找到,我的组件的源代码可以在这里下载.SDL.pas是一个JEDI-SDL头文件; 剩下的就是我自己的代码.

我没有看到任何理由在表单设计器中引发AV.如果我在运行时动态创建控件,我没有任何稳定性问题.任何人都可以看看这个,也许可以提供一些反馈,可以帮助我清理它?

delphi components sdl access-violation

0
推荐指数
1
解决办法
363
查看次数

与Delphi XE4一起发售的Indy多大了?

我在64位XE4中发送SMTP消息遇到了一些问题,而且它似乎发生在Indy代码的深处.

这是XE4附带的标准Indy代码,但是当我查看每个文件顶部的标题时,它们似乎自2005年以来一直没有更新!显然这里有一些棘手的问题.

XE4附带的Indy版本多大了,从那时起Win64兼容性有了显着的改进?

delphi indy delphi-xe4

0
推荐指数
1
解决办法
196
查看次数

可以从数据集外部完成数据集过滤吗?

我有两个TDBLookupComboBox控件,我想连接到同一个数据集,但每个控件都显示一个不同的数据子集.如果我只需要一个盒子,我会在数据集上使用过滤,但我需要能够同时显示它们,我不知道有任何方法可以做到这一点.有谁知道它是否可以完成,如果可以,怎么做?

delphi filtering dataset

-1
推荐指数
1
解决办法
345
查看次数

什么时候TGraphicControl.Paint叫?

我正在尝试编写一个自定义TGraphicControl后代,允许用户在VCL表单上嵌入SDL渲染表面.这将提供一种在表单中显示SDL动画的简单方法.

显然,使用Paint方法重绘了TGraphicControl.这种情况多久被召唤一次?只有当某些事情发生在使控件无效时,或者还有其他事情可以调用它吗?它如何与自己绘图的东西相互作用?

delphi vcl sdl image

-1
推荐指数
1
解决办法
1763
查看次数