小编Tru*_*uls的帖子

在Delphi中循环遍历不规则枚举

1)有没有人知道是否可以在Delphi(XE)中循环不规则枚举?

循环正常的枚举是可以的.来自Delphi Basics:

var
  suit : (Hearts, Clubs, Diamonds, Spades);
begin
// Loop 3 times
For suit := Hearts to Diamonds do
   ShowMessage('Suit = '+IntToStr(Ord(suit)));
end;
Run Code Online (Sandbox Code Playgroud)

但是,如果'suit'被声明为

var
  suit : (Hearts=1, Clubs, Diamonds=10, Spades);
Run Code Online (Sandbox Code Playgroud)

它循环10次.并不令人惊讶,但我想循环3.到目前为止,我发现的唯一解决方案是将枚举转换为集合,并使用像delphi.about.com上的'for ... in'-loop .

那么,如果问题1)的答案是否定的,那么:
2)如何从枚举转换为Delphi中的设置?

我使用它的上下文是一个编辑框(TEdit)的组件数组,它有一个不规则的编号(edit1,edit5,edit7,edit3,...).虽然可以对所有编辑框进行重新排序,但它删除了使用枚举作为允许在枚举中添加编辑框的灵活方式的原因.

delphi loops enumeration

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

覆盖javamoney.properties中的属性?

使用新的1.0版JavaMoney API参考实现,我们尝试通过覆盖javamoney.properties来阻止资源加载器加载其他ExchangeRateProvider.

{1}conversion.default-chain=MY-PROVIDER
# Turn off loading of the default Moneta ExchangeRateProviders.
{1}load.ECBCurrentRateProvider.type=NEVER
{1}load.ECBHistoric90RateProvider.type=NEVER
{1}load.ECBHistoricRateProvider.type=NEVER
{1}load.IMFRateProvider.type=NEVER
{1}load.AbstractECBRateProvider=NEVER
Run Code Online (Sandbox Code Playgroud)

但是,日志告诉我它们仍然被加载:

jun 19, 2015 8:27:58 AM  org.javamoney.moneta.internal.convert.AbstractECBRateProvider newDataLoaded
INFO: Loaded ECBCurrentRateProvider exchange rates for days:1
Run Code Online (Sandbox Code Playgroud)

从LoaderService接口'NEVER'触发加载本地资源(而不是远程),但我也试过'LAZY'.

public interface LoaderService {

/**
 * Platform RI: The update policy defines how and when the
 * {@link LoaderService} tries to update the local cache with newest version of
 * the registered data resources, accessing the configured remote
 * {@link URI}s. By default …
Run Code Online (Sandbox Code Playgroud)

java jsr354 java-money

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

将XValues从一个TChartSeries复制到另一个TChartSeries

有没有人知道如何在Delphi7(和TeeChart 4.04)中将XValues从一个TChartSeries复制到另一个TChartSeries?TChartSeries.ReplaceList(CopySeries.XValues, OriginalSeries.XValues)不起作用,因为它似乎取代了引用,所以当更改OriginalSeries时,CopySeries也是如此.CopySeries的长度等于或大于OriginalSeries.我想保留CopySeries.YValues.

我的解决方法是创建一个临时列表

Dummy := TChartSeries.Create(nil);
Dummy.AssignValues(OriginalSeries);
CopySeries.ReplaceList(CopySeries.XValues, Dummy.XValues);
Dummy.YValues.Destroy;
Run Code Online (Sandbox Code Playgroud)

但是我得到了内存泄漏,因为我无法销毁Dummy,因为它也会删除CopySeries.XValues引用的Dummy.XValues.

任何帮助是极大的赞赏.

delphi memory-leaks teechart

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

标签 统计

delphi ×2

enumeration ×1

java ×1

java-money ×1

jsr354 ×1

loops ×1

memory-leaks ×1

teechart ×1