标签: delphi-xe6

如何实现快速RNG?

我正在尝试移植基于128位XorShift的现有随机生成器C.但是我在生成种子时遇到了麻烦,种子只是一次又一次地生成相同的数字.

static uint64_t s[ 2 ];

static uint64_t __inline next(void) {
    uint64_t s1 = s[ 0 ];
    const uint64_t s0 = s[ 1 ];
    s[ 0 ] = s0;
    s1 ^= s1 << 23;
    return ( s[ 1 ] = ( s1 ^ s0 ^ ( s1 >> 17 ) ^ ( s0 >> 26 ) ) ) + s0;
}

uint64_t getusertime() {
    struct rusage rusage;
    getrusage( 0, &rusage );
    return rusage.ru_utime.tv_sec * 1000000ULL + ( rusage.ru_utime.tv_usec …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe6

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

使用 Delphi XE7 FMX 运行终端命令

如何通过 Delphi xe6-7 OSX 应用程序运行终端命令?例如,我想运行一个返回 iTunes 播放列表中所有曲目名称的脚本。

我看到 VCL 和 WINDOWS 可以运行 ShellExecute() 函数,但我似乎无法在 FMX 中找到 OSX 的等效函数

delphi delphi-xe6 delphi-xe7

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

Delphi GetLastError 与执行包

当我在没有运行时包的情况下执行此代码时,出现 32 代码错误,这是正确的。但是当我激活运行时包(例如仅使用“FireDACASADriver;YmagControlDB”)时,错误代码始终为“0”

procedure TForm1.Button1Click(Sender: TObject);
Var
   Stream: TStream;
   iError : integer;
begin
   Stream := nil;
   iError := -1;
   try
      try
         Stream := TFileStream.Create('d:\toto.docx', fmOpenRead);
      except
         begin
            iError := GetLastError;
         end;
      end;
   finally
      if Assigned(Stream) then
         Stream.Free;
   end;
   showmessage('Erreur : ' + inttostr(iError));
end;
Run Code Online (Sandbox Code Playgroud)

如何使用运行时包修复 GetLastError?

delphi winapi getlasterror delphi-xe6

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

将剪贴板中的文本保存到文件中

我正在尝试下面的代码,应该将剪贴板文本保存到Delphi XE6中的文本文件中.代码运行正常,但在输出文件中只生成垃圾值,即使剪贴板包含复制的文本片段也是如此.如何更改代码才能正常工作?

function SaveClipboardTextDataToFile(
  sFileTo : string ) : boolean;
var
  ps1,
  ps2   : PChar;
  dwLen : DWord;
  tf    : TextFile;
  hData : THandle;
begin
  Result := False;
  with Clipboard do
  begin
    try
      Open;
      if( HasFormat( CF_TEXT ) ) then
      begin
        hData :=
          GetClipboardData( CF_TEXT );

        ps1 := GlobalLock( hData );
        dwLen := GlobalSize( hData );

        ps2 := StrAlloc( 1 + dwLen );

        StrLCopy( ps2, ps1, dwLen );

        GlobalUnlock( hData );

        AssignFile( tf, sFileTo );
        ReWrite( tf );
        Write( tf, …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe6

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

如何在DELPHI XE6中制作32位和64位Delphi应用程序?

我们打算买DELPHI XE6.现在我有Delphi 7的32位代码,我想在Delphi XE6中适应64位和32位.我在哪里可以选择我想在Delphi XE6中使用64位EXE或/和32位EXE?谢谢沃尔特

delphi delphi-xe6

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

没有重载版本的写入

我正在与xe6中的代码共享一个项目,我正在使用xe2版本16.我收到此错误

There is no overloaded version of 'write' that can be called with these arguments

在这个代码.

  {$IF CompilerVersion >= 19}
  // Modified code for Delphi XE5 & later
  tcpConnection.IOHandler.Write(TheMsg, IndyTextEncoding.Default  );
  {$ELSE}
  // Original XE2 code
  tcpConnection.IOHandler.Write(TheMsg, TIdTextEncoding.Default);
  {$IFEND}
Run Code Online (Sandbox Code Playgroud)

我还添加idGlobal了用途.这会导致错误的任何其他原因?

delphi indy delphi-xe2 delphi-xe6

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

通过调用祖先类的 destroy 方法释放对象

我有多个后代类共享一个祖先。当我想销毁一个对象时,我不知道实际类型是什么,因为保存实际对象的指针具有祖先类型。

认为它就像您有多个后代 from TButton,将所有对象保存在 TButton 类型的数组中,现在当您想要销毁对象时,调用TButton(ButtonArray[I]).Destroy会导致内存泄漏,因为它没有调用后代类型的 Destroy 方法。

我想要一种方法来正确地从祖先 Destroy 方法中销毁后代类。

delphi oop delphi-xe6

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

使用BinarySearch插入点

如何使用二进制搜索找到插入点,以便我可以将项目插入到已排序的数组中?默认设置TArray.BinarySearch不提供此类功能.

delphi delphi-xe6

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

标签 统计

delphi ×8

delphi-xe6 ×8

delphi-xe2 ×1

delphi-xe7 ×1

getlasterror ×1

indy ×1

oop ×1

winapi ×1