小编Nic*_*ges的帖子

如何在Delphi项目中拥有多个类型库?

如果你有一个Delphi项目并想要为它添加一个类型库,你可以很容易.

但是,我们希望能够添加多个不同类型的库.Delphi XE IDE似乎强迫您拥有一个且只有一个名为的类型库

MyProject.tlb
Run Code Online (Sandbox Code Playgroud)

我希望能够在我们的主项目中有多个类型库并进行COM插件,但我不想要一个单片类型库,而是需要多种类型的库用于各种不同类型的插件.

这可行吗?难道只是IDE强制执行"只能有一个TLB"规则吗?

delphi com typelib delphi-xe

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

如何从TGraphicField中提取位图?

我疯了.

这就是我在做什么

  1. 在表单上删除TClientDataset,TImage和TButton.
  2. 将Clientdataset1.Filename设置为biolife.xml
  3. 双击按钮并添加以下代码:

    procedure TForm31.Button1Click(Sender: TObject);
    var
      BF: TBlobField;
      BS: TStream;
      BM: TBitmap;
    begin
      ClientDataset1.Open;
      ClientDataset1.First;
      BF :=  ClientDataSet1.FieldByName('Graphic') as TBlobField;
      BS := ClientDataSet1.CreateBlobStream(BF, bmRead);
      BS.Position := 0;
      BM := TBitmap.Create;
      try
        BM.LoadFromStream(BS);
      finally
        BM.Free;
      end;
    end;
    
    Run Code Online (Sandbox Code Playgroud)

运行.当我这样做时,我得到"位图图像无效".

咦?这些数据多年来一直是位图 - 出了什么问题?

delphi bitmap

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

为什么我的Angular应用程序在StackBlitz上运行时会出错?

我有一个Angular应用程序在我的机器上运行正常ng serve,但是当我在StackBlitz上运行时:

https://stackblitz.com/github/nickhodges/primedirective

我收到以下错误:

Error in /turbo_modules/@angular/compiler@7.0.4/bundles/compiler.umd.js (2617:21)
Can't resolve all parameters for ApplicationModule: (?).
Run Code Online (Sandbox Code Playgroud)

我已经更新了StackBlitz编辑器上的依赖项,它仍然不起作用,给出了稍微不同的错误.

Error in /turbo_modules/@angular/compiler@7.1.0/bundles/compiler.umd.js (2497:21)
Can't resolve all parameters for ApplicationModule: (?).
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么StackBlitz会出现这个错误?

angular stackblitz

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

Angular中ValidatorFn函数的正确返回值是多少?

我的自定义验证器中有以下代码:

import { ValidatorFn, AbstractControl } from '@angular/forms';

// Credit for this function:
// https://stackoverflow.com/a/17390131/2044
function isPrime(aNumber: number): boolean {
  let start: number = 2;
  const limit: number = Math.sqrt(aNumber);
  while (start <= limit) {
    if (aNumber % start++ < 1) {
      return false;
    }
  }
  return aNumber > 1;
}

export class NumberValidators {
  static isPrimeNumber(): ValidatorFn {
    return (control: AbstractControl): { [key: string]: boolean } | null => {
      if (isPrime(control.value)) {
        return null;
      }
      return {
        isPrimeNumber: …
Run Code Online (Sandbox Code Playgroud)

validation angular

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

如何在不改变格式信息的情况下更改剪贴板上的文本?

另一个剪贴板问题

当文本放到剪贴板上时,它经常以多种方式进行,通常有和没有格式化信息.我想知道的是 - 如何在不改变格式的情况下更改剪贴板上的文本.换句话说,我想改变文本方面,但保持格式完全相同.

这又是我的"TextScrubber"应用程序,我想从剪贴板上的文本中删除换行符,但我不想改变有关该文本的格式信息.

我希望通过迭代所有存在的格式,存储每个格式,然后在文本被擦除后重新插入它,我不必"强力"它.

delphi clipboard

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

StrPCopy已弃用.有什么选择?

这是我的问题:如何摆脱此代码提供的关于StrPCopy被弃用的警告?或者换一种方式 - 我如何摆脱我认为最终会消失的StrPCopy?我根本不想使用AnsiString单元.

program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
    aAmount: array[0..12] of AnsiChar;
    TempStr: string;
begin
    TempStr := '123456789012';
    StrPCopy(aAmount, TempStr);
    WriteLn(aAmount);
    ReadLn;
end.
Run Code Online (Sandbox Code Playgroud)

delphi string

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

这种C类型的等效Delphi结构是什么?

我试图在Delphi中使用基于c的DLL.在我介入所有其他功能之前,我以为我会尝试让其中一个功能正常工作,而且我受到了阻碍.这是C调用:

int FindCityCounty(char *zip, char cityname[28], char state[2], char countyname[25],
    char countynum[3]);
Run Code Online (Sandbox Code Playgroud)

我对这个概念感到困惑char cityname[25].就是它:

array[0..24] of Char/AnsiChar;
Run Code Online (Sandbox Code Playgroud)

翻译这些结构的正确方法是什么?我所有的尝试都以胡言乱语结束了.

更新:

以下是被调用函数的示例:

#include <stdio.h>
#include <Windows.h>
#include <srv.h>        /* for CALLBACK, HINSTANCE */
#include <direct.h>     /* for _getdrive and _getdcwd */

#define cpy_blank(word,len) memset(word,' ',len)
#define cpy_word strncpy

typedef int (CALLBACK* FindCityCounty)(
        char ZIP[5],char cityname[28],char state[2],char countyname[25],char countynum[3]);


void runCA(FindCityCounty pCA)
{
    char ZIP[5], cityname[28], state[2], countyname[25], countynum[3];
    int rc;

    printf("CorrectAddress C API Demonstration\n\n");
    printf("FindCityCounty() function call\n");
    printf("==================================\n");

    /* …
Run Code Online (Sandbox Code Playgroud)

delphi

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

是否有LIKE搜索的解决方案,其字段末尾有空格?

好的,我们有一个MS SQL Server数据库.数据库随着时间的推移而发展.我猜测过去的一些领域CHAR(<somenumber>)现在VARCHAR或是NVARCHAR.结果,一些数据最后有空格.

我们的应用程序提供了搜索Exact/EndsWith/BeginsWith/Contains选项的选项.生成的SQL如下所示:

Select * from Customers where CustName LIKE 'Concord Elementary School'
Select * from Customers where CustName LIKE '%Concord Elementary School'
Select * from Customers where CustName LIKE 'Concord Elementary School%'
Select * from Customers where CustName LIKE '%Concord Elementary School%'
Run Code Online (Sandbox Code Playgroud)

但是,客户注意到Ends With和Contains搜索无效.(他们最近使用我们的脚本更新了他们的数据库,该脚本启用了Unicode,将CHAR字段更改为NVARCHAR字段....)

据我所知,这些查询在"Unicode更新"之前有效,它更改了许多表的字段类型.

如果我对数据库运行上面的SQL,我会得到第三个和第四个查询的结果.但是,第一个和第二个查询什么都不返回.

所以,我去了现场,复制了数据,粘贴了它,并注意到该字段最后有空格 - 毫无疑问,该字段的结果曾经是一个CHAR.结果,上述查询无法提供所需/预期的结果.

我们有数千个这样的查询,因此修复不明确.

那么我的问题是:可以做些什么来使我们的应用程序按预期工作?

sql sql-server

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