我的简化目标是构建一个包含项目模板的列表组件.例如:
<list>item</list>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import {bootstrap} from 'angular2/platform/browser';
import {Component} from 'angular2/core';
@Component({
selector: 'list',
template: `
<ul>
<li *ngFor="let i of items" >
<ng-content></ng-content>
</li>
</ul>
`
})
class List {
items = [1, 2, 3];
}
@Component({
selector: 'app',
directives: [List],
template: '<list>item</list>'
})
class App { }
bootstrap(App, []);
Run Code Online (Sandbox Code Playgroud)
预期结果:
实际结果:
•
•
•项目
近十年前我放弃了Delphi的DBGrid,因为它根本没有用.从那以后,我使用了Virtual TreeView,它提供了很多价值,但它有一些问题.像当前的开发状态(例如None)以及没有良好数据绑定版本的事实.DevExpress的QuantumGrid以丰富的功能集而闻名,但实在是相当昂贵.我认为,对于数据绑定网格控件的95%的一般用例,其巨大的功能集可能有点过分.
有没有人知道具有以下功能的数据绑定网格控件:
我很少在网格控件中使用编辑,因此编辑功能不一定非常棒.
有什么好建议吗?
我有一个"更高阶的组件",它以下面的方式实现(没有类型).
const Themeable = (mapThemeToProps) => {
return (WrappedComponent) => {
const themedComponent = (props, { theme: appTheme }) => {
return <WrappedComponent
{...props}
theme={merge(
{},
defaultTheme,
appTheme,
mapThemeToProps(merge(defaultTheme, appTheme))
)}
>
}
themedComponent.contextTypes = { theme: PropTypes.object };
return themedComponent;
}
}
Run Code Online (Sandbox Code Playgroud)
总结它的作用,它需要一个mapThemeToProps
功能.这将接收通过合并defaultTheme
(由我的库appTheme
提供)和(由ThemeProvider
组件通过上下文提供)创建的主题参数.然后它将创建一个扩展Theme
并将其作为被调用的prop传递给组件theme
.在实践中,它将按如下方式使用(Themeable
在此范围内调用):
const mapThemeToProps = (theme) => ({
background: theme.palette.dark,
color: theme.text.light,
});
function Greeting({ theme: { background, color } }) {
return ( …
Run Code Online (Sandbox Code Playgroud) 我一直试图在Delphi 2010中使用Aero找到一个好看的设计.人们看到的一个显而易见的用途是将玻璃框架扩展到包括屏幕底部的OK/Cancel按钮.我注意到这在Delphi 2010中看起来不太正确 - 每个按钮周围都有一个白色边框.
此图显示了问题:前三个按钮来自我的应用程序,后两个按钮来自Paint.NET的图层属性对话框.
Delphi控件的白色边框控制http://i30.tinypic.com/1zzqfm0.png
我尝试了DoubleBuffered的各种组合以及首先将控件放在其他控件上的几种组合,但问题仍然存在.有任何想法吗?
我从一个离开公司的程序员那里继承了一个非常大的子系统,并且第一个业务是阻止进程耗尽内存.
基本上,它是一个循环数据集,在其中我们创建和销毁一个关闭并完成大量工作的数据模块.只要创建了这个数据模块,您就可以在任务管理器中看到内存使用一直在攀升,直到它爆炸为止.我似乎从几年前读过的一篇文章中回忆起,人们不应完全信任任务管理器报告的内容,因为这些值是估计而非实时.所以我在寻找其他选择.
这是我尝试过的:
是否有其他工具可以帮助我跟踪分配和释放内存的位置?我一直在评论各处的一些功能,以查看问题消失的地方,并检查显式分配的所有内容是否被释放,但我仍然有泄漏,这可能是一个非常令人沮丧的过程.
在Delphi 2006(我认为)介绍TFlowPanel和TGridPanel之前,我做了一个概念相似的控件.它仍然做了一些控件不能做的事情,当我将代码升级到Delphi 2009时,我决定添加一些增强功能.
现在,子控件的顺序由其创建顺序决定.FlowPanel和GridPanel使用ControlIndex和其他过滤属性显示更好的方法,但我想知道是否有办法在设计时处理拖放重新排序?据我所知,拖动编辑控件并将其拖放到我的面板上并不会调用我在设计时可以访问的任何内容.
我想要一种方法来直接检测掉落操作,或者可能检测控件何时被移动,以便我可以确定它应该去哪里.
有任何想法吗?
更新: 好的,让它工作.容器控件已经重写AlignControls来管理控件的放置.拖动嵌套控件并将其删除时,再次调用AlignControls.然后,我将控件的新坐标与列表中的其他控件进行比较,并将其移动到适当的位置.
我必须解决几个问题(主要与AlignControls的许多调用有关),但基本概念很简单.感谢所有评论者提供的所有帮助.
假设我有一个名为Transaction的表和另一个名为Price的表.价格保留不同日期的给定资金的价格.每个基金都会在不同的日期添加价格,但他们不会在所有可能的日期都有价格.因此,对于XYZ基金,我可能有5月1日,5月7日和5月13日的价格,基金ABC可能会在5月3日,5月9日和5月11日有价格.
所以现在我正在考虑交易之日基金普遍存在的价格.该交易是在5月10日为XYZ基金进行的.我想要的是当天最新的已知价格,这将是5月7日的价格.
这是代码:
select d.TransactionID, d.FundCode, d.TransactionDate, v.OfferPrice
from Transaction d
inner join Price v
on v.FundCode = d.FundCode
and v.PriceDate = (
select max(PriceDate)
from Price
where FundCode = v.FundCode
/* */ and PriceDate < d.TransactionDate
)
Run Code Online (Sandbox Code Playgroud)
它有效,但速度非常慢(在现实世界中使用几分钟).如果我删除带有前导注释的行,则查询非常快(大约2秒),但它会使用每个基金的最新价格,这是错误的.
不好的是,与我们使用的其他一些表相比,价格表是微不足道的,我不清楚它为什么这么慢.我怀疑违规行迫使SQL Server处理笛卡尔积,但我不知道如何避免它.
我一直希望找到一种更有效的方法来做到这一点,但到目前为止它已经逃过了我.有任何想法吗?
我一直在尝试找到一种通用的方法来通知UI控件列表中的更改.例如,当一个对象被添加到列表中时,我希望它自动添加到列表框中.如果从列表中删除了一个对象,我希望它从列表框中自动删除.
不幸的是,Delphi的列表之间存在一些令人抓狂的不一致:TList <>.通知很好,但TStringList.OnChange甚至没有告诉你改变是什么,TList甚至没有任何通知!
我希望LiveBindings会给我一个监控大多数列表更改的正确方法,但到目前为止我还没有看到它.我看到的所有示例都填充了控件并设置了列表项和控件项之间的绑定(我的示例中的列表框项).但是从列表中添加/删除对象根本不会影响控件.
有没有人知道我错过了一种机制,或者更普遍的是,这是一种很好的通用方法吗?
澄清: 我之前似乎并不清楚.我需要通用方法的原因是因为我编写了一个可以连接到各种源的网格控件,包括一些现有代码.我编写了一个接口,网格接受它作为源,然后是一些适配器类来接受一些列表并使它们作为该接口可用.由于我也需要接受现有代码,因此不能覆盖TList.Notify.并且由于没有事件可以看到更改,因此它实际上意味着TList没有可由客户端使用的通知机制,例如我的适配器类.TStrings也没有,但TStringList引发了一个简单的OnChange,这意味着适配器类实际上无法确定已更改的内容.
我实际上有一个非常好的解决方案,使用TVirtualMethodInterceptor,但它完全停止在Delphi XE中工作,而不是在XE2中修复.
在Delphi中,所有TEdit和TComboBox控件默认为21像素高.在TComboBox的情况下,这个大小是绝对的,并试图将它拉伸到更大的东西是行不通的.在TComboBoxEx的情况下,默认高度为22像素,这使得它在您使用它的任何形式上都很突出.现在根据Microsoft文档,ComboBoxEx本质上是一个ComboBox,其处理所有者绘制的功能以允许图像和缩进.
那么可以让我的TComboBoxEx控件高21像素吗?这取决于什么?
更新:根据Roddy的建议,我在此问题上添加了Quality Central报告.另外,我发现了一个问题.显然,大小取决于组合框中项目-1的大小.因此,您将该大小设置为15(或小于默认大小的一个像素),并且框缩小为更熟悉的21像素.
delphi ×6
typescript ×2
aero-glass ×1
angular ×1
bootstrap-4 ×1
controls ×1
data-aware ×1
dbgrid ×1
delphi-xe2 ×1
design-time ×1
grid ×1
height ×1
javascript ×1
list ×1
livebindings ×1
memory-leaks ×1
monitoring ×1
reactjs ×1
sql-server ×1