小编Fab*_*mes的帖子

如何在默认情况下让Delphi 2009在第二台显示器中打开我的应用程序?

在调试时我总是希望Delphi在第二个监视器中打开我的应用程序,但它总是在第一个监视器中打开,我知道我可以在关闭之前保存应用程序放置,但我希望它在调试模式下始终在第二个监视器中打开.

有没有办法配置delphi 2009来做到这一点?

delphi multiple-monitors delphi-2009

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

如何使用fastMM追踪棘手的内存泄漏?

将项目从Delphi 2007升级到Delphi 2009后,我收到了一个未知的内存泄漏,到目前为止我一直在尝试使用fastMM来跟踪它,这是fastMM堆栈跟踪报告:

A memory block has been leaked. The size is: 20

This block was allocated by thread 0x111C, and the stack trace (return addresses) 
  at the time was:
40339E [System.pas][System][@GetMem][3412] 534873 [crtl][_malloc]
56D1C4 [canex.cpp][MidasLib][DllGetDataSnapClassObject][3918]
56D316 [canex.cpp][MidasLib][DllGetDataSnapClassObject][3961]
56D5EE [canex.cpp][MidasLib][DllGetDataSnapClassObject][4085]
562D48 [DBCommon.pas][DBCommon][TFilterExpr.PutExprNode][1583]
408E46 [System.pas][System][DynArraySetLength][20464]
56D5EE [canex.cpp][MidasLib][DllGetDataSnapClassObject][4085]
408E92 [System.pas][System][@DynArraySetLength][20486]
528C1B [Forms.pas][Forms][TCustomForm.DoCreate][3260]
171A1A [GetRawStackTrace]

The block is currently used for an object of class: Unknown

The allocation number is: 302844
Run Code Online (Sandbox Code Playgroud)

有时我得到这个:

A memory block has been leaked. The size is: 20

This …
Run Code Online (Sandbox Code Playgroud)

delphi memory-leaks delphi-2009 fastmm

7
推荐指数
2
解决办法
5294
查看次数

如何解决WPF Designer错误'类型{0}不支持直接内容'.'?

以下XAML(下面)定义了资源中的自定义集合,并尝试使用自定义对象填充它;

<UserControl x:Class="ImageListView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300"
    xmlns:local="clr-namespace:MyControls" >
    <UserControl.Resources>
        <local:MyCustomCollection x:Key="MyKey">
            <local:MyCustomItem>
            </local:MyCustomItem>
        </local:MyCustomCollection>
    </UserControl.Resources>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

问题是我在'类型'的设计者中遇到错误.MyCustomCollection'不支持直接内容'.我已经尝试在MSDN中建议设置ContentProperty,但无法弄清楚要将其设置为什么.我使用的自定义集合对象如下,非常简单.我已经尝试了Item,Items和MyCustomItem,并且无法想到还有什么可以尝试.

<ContentProperty("WhatGoesHere?")> _
Public Class MyCustomCollection
    Inherits ObservableCollection(Of MyCustomItem)
End Class
Run Code Online (Sandbox Code Playgroud)

我将非常感激地收到关于我出错的任何线索.还提示如何深入了解WPF对象模型以查看在运行时公开的属性,我也可以通过这种方式来理解它.

问候

瑞安

wpf designer contentproperty

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

将DUnit CheckEquals中的问题与货币字段值进行比较

我正在比较DUnit中的一些货币值,但它在我的机器上根本不起作用(在其他机器上工作,但在我的机器上不工作).

一个例子:

CheckEquals(16.65, SomeCurrencyFieldValue);
Run Code Online (Sandbox Code Playgroud)

举:

expected: <16,65> but was: <16,65>
Run Code Online (Sandbox Code Playgroud)

如果做以下比较然后工作:

var
  Temp: Currency;
begin
  Temp := 16.65;
  CheckEquals(Temp, SomeCurrencyFieldValue);
Run Code Online (Sandbox Code Playgroud)

问题是:当我将值直接传递给CheckEquals方法时,为什么比较不起作用?

delphi dunit

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

使用关联字符串(键/值)的最简单方法是什么?

我有很多常量相关的常量,在某些时候我需要配对它们,像这样:

const
  key1 = '1';
  key2 = '2';
  key3 = '3';

  value1 = 'a';
  value2 = 'b';
  value3 = 'c';
Run Code Online (Sandbox Code Playgroud)

我想避免这样做:

if MyValue = key1 then Result := value1;
Run Code Online (Sandbox Code Playgroud)

我知道如何使用字符串列表:

MyStringList.Add(key1 + '=' + value1);
Result := MyStringList.Values[key1];
Run Code Online (Sandbox Code Playgroud)

但是,有没有更简单的方法呢?

delphi

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

6
推荐指数
2
解决办法
3513
查看次数

有没有更好的方法将所有DataSet字段及其属性复制到另一个DataSet?

我正在克隆一个TClientDataSet,我想将所有字段复制到克隆(这是一个新的DataSet),我知道我可以循环遍历Fields并复制信息,或者创建我的类的2个实例,然后克隆光标,但有更好的方法吗?像创建一个新的DataSet并分配字段信息?

编辑:

以下类助手方法适用于我:

procedure TDataSetHelper.CopyFieldDefs(Source: TDataSet);
var
  Field, NewField: TField;
  FieldDef: TFieldDef;
begin
  for Field in Source.Fields do
  begin
    FieldDef := FieldDefs.AddFieldDef;
    FieldDef.DataType := Field.DataType;
    FieldDef.Size := Field.Size;
    FieldDef.Name := Field.FieldName;

    NewField := FieldDef.CreateField(Self);
    NewField.Visible := Field.Visible;
    NewField.DisplayLabel := Field.DisplayLabel;
    NewField.DisplayWidth := Field.DisplayWidth;
    NewField.EditMask := Field.EditMask;

   if IsPublishedProp(Field, 'currency')  then
     SetPropValue(NewField, 'currency', GetPropValue(Field, 'currency'));

  end;
end;
Run Code Online (Sandbox Code Playgroud)

有人有更好的方法吗?

delphi

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

为什么StrToInt('X5')在Delphi中返回5?

为什么StrToInt('X5')在Delphi中返回5?X是一些科学记数法还是类似的东西?是否还有一些其他字符也将转换为Integer?

delphi

6
推荐指数
2
解决办法
1044
查看次数

如何暂时禁用Firebird 2.1中的表中的所有约束?

我想禁用所有外键约束并在之后重新启用它们,有没有办法做到这一点?

我知道SQLServer允许这样做,但是Firebird呢?

sql firebird constraints firebird2.1

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

任何适用于快速报告的好的PDF导出过滤器?

我最近发现,Fast Report的PDF导出过滤器导出的PDF在Mac OSX,iOS和Android设备中无法正确显示.

Fast Report告知他们的pdf实现仅支持Windows,他们无法说明他们正在开发的新实现何时可用.

我也尝试使用Gnostice导出过滤器,但他们的演示安装程序在Delphi XE中不起作用,当我联系他们时,他们用了15天时间向我发送了一些附带的dcus,但也没有用.所以我正在寻找另一种选择.

如果您知道或使用适用于快速报告的PDF导出过滤器,请告诉我.


2015年11月:快速报告现在具有PDF/A支持,启用此选项后,所有平台上的PDF都可以正常使用.


2014年10月 - 快速报告5似乎仍然生成"仅限Windows"的 PDF.考虑到Fast Report是与Delphi捆绑在一起的报告生成器,针对此问题的生产就绪解决方案将为跨平台开发人员带来好处.

以下是使用Fast Reader 5演示生成的新示例,在Android 4.4上使用Adobe Reader 11显示:

在此输入图像描述

在Windows上:

在此输入图像描述

pdf delphi pdf-generation cross-platform fastreport

6
推荐指数
3
解决办法
9201
查看次数