小编ple*_*103的帖子

使用TOpenDialog选择目录

我真的想知道用TOpenDialog选择目录的各种方法,无论是下载新组件还是使用Delphi提供的内容,但最好使用Delphi提供的内容.

在此之前,我一直在使用SelectDirectory命令,但我认为我的程序用户查找指定目录会很困难.

我认为SelectDirectory是"弱"的,因为在搜索你想要的目录时它可能是一个很长的过程.比如说,您想要导航到Application Data目录.在那里航行需要多长时间或多长时间?最后,用户甚至可能无法访问他们想要的目录.

我需要这样的东西,用户可以将目录复制并粘贴到顶部的目录地址栏中.

在此输入图像描述

谢谢你的所有答案.

delphi delphi-2010

48
推荐指数
4
解决办法
8万
查看次数

原子bool无法保护非原子计数器

我遇到了一个(基本的)自旋锁互斥锁的问题,似乎没有按预期工作.

4个线程正在递增受此互斥锁保护的非原子计数器.结果与使互斥体看起来破碎的预期结果不匹配.

示例输出:

  result: 2554230
expected: 10000000
Run Code Online (Sandbox Code Playgroud)

在我的环境中,它发生在以下条件下:

  • flag是的std::atomic<bool>,其他任何东西,如std::atomic<int>std::atomic_flag(和test_and_set)工作正常.

  • 使用gcc 6.3.1和-O3flag 在X86_64上编译

我的问题是,有什么可以解释这种行为?

#include <iostream>
#include <vector>
#include <atomic>
#include <thread>
#include <mutex>
#include <assert.h>

class my_mutex {
    std::atomic<bool> flag{false};

public:
    void lock()
    {
        while (flag.exchange(true, std::memory_order_acquire));
    }

    void unlock()
    {
        flag.store(false, std::memory_order_release);
    }
};


my_mutex mut;
static int counter = 0;


void increment(int cycles)
{
    for (int i=0; i < cycles; ++i)
    {
        std::lock_guard<my_mutex> lck(mut);

        ++counter;
    }
} …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mutex atomic c++11

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

在Firemonkey中获取应用程序路径

所以在VCL中,可以使用以下代码行来检索应用程序路径:

ExtractFilePath(Application.ExeName)
Run Code Online (Sandbox Code Playgroud)

我尝试了同样的事情Firemokey,我注意到ExeName不再可用.我可以使用哪些代码作为替代方案?

delphi delphi-xe3 firemonkey-fm2

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

计算文件夹中的文件夹

有谁知道我可以使用的代码来计算指定目录中的文件夹数量?

delphi delphi-2010

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

如何绕过Window的"复制"/文件传输窗口

我正在编写一个(特定的)备份程序(对于Minecraft),我想知道一种可以绕过这个窗口的方法:

在此输入图像描述

我仍然是Delphi的初学者,但我希望看到我可以使用的不同方法.

先感谢您 :)

delphi delphi-2010

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

我的程序如何对TDateTimePicker中的更改做出反应?

我想知道当用户从TDateTimePicker组件中选择特定日期时如何更改标签的标题.

例如:如果在TDateTimePicker组件上标记了06/02/2012,则label1的标题将变为"Hello World",否则如果是其他任何日期则不会发生任何事情.

delphi datetimepicker delphi-2010

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

永久删除目录

我用这段代码删除整个目录:

uses
  ShellApi;

function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc  := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom  := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
Run Code Online (Sandbox Code Playgroud)

是否有任何标志我可以设置允许永久删除已删除的目录?
通过永久删除,我的意思是它在删除后不会显示在回收站中,因为这是我使用DelDir函数时发生的情况.

delphi delphi-2010

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

压缩组件

我正在寻找支持Delphi2010的压缩组件,并允许我执行以下基本操作:

  • 创建.zip档案
  • 从.zip档案中提取
  • 删除.zip档案

我还需要该组件可以免费用于商业用途,并且可能不使用/依赖DLL(我不介意,如果它).

到目前为止,我已经研究过ZipForge,FlexCompress,KaZipUnRAR,但我发现我需要购买商业使用ZipForge和FlexCompress的许可证.当谈到KaZip时,代码中存在错误,因此我在安装组件方面没有成功.而UnRAR就是这样; 它只解压缩.zip或.rar档案.

总而言之,我需要一个压缩组件:

  • 免费用于商业用途
  • 支持Delphi 2010
  • 执行上述操作
  • 不使用DLL(但是,我不介意)

compression delphi delphi-2010

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

DBX错误:驱动程序无法正确初始化

我正在运行Delphi XE3(终极版),MySQL数据库,这是我点击时得到的错误Test Connection.

在此输入图像描述

作为响应,我将libmysql库放在我的xampp目录中并将其复制到我的System32目录中.但这不起作用.

此消息引用了哪些库/驱动程序以及将它们放入的正确目录是什么?

libmysql版本 - 5.5.16.0

mysql delphi dbexpress delphi-xe3

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

Test Suite无法运行TypeError:无法读取未定义的属性"bind"

在React Native项目上工作.我试图用Jest测试一个更大的组件.我得到这个测试未能在未定义的属性上运行错误,这没有任何意义,因为几行之后它说所有的测试运行正常.

我已经尝试删除我的节点模块并再次运行npm install.

你可以在这里看到错误:

在此输入图像描述

和测试在这里:

import React from 'react';
import ReactNative, {
  Image,
  Text,
  View
} from 'react-native';
import renderer from 'react-test-renderer';
import TeamDetail from '../../app/scenes/TeamDetail/TeamDetail';

const mockFn = () => 'THIS IS A MOCK!!!!';

describe('<TeamDetail />', () => {
  it('renders correctly', () => {
    const team = {};
    const captains = {
      count: 1,
      items: [],
      links: { next: 'next link', prev: 'prev link', },
    };
    const leagueTeamCount = 1;
    const games = {
      count: 1,
      items: [], …
Run Code Online (Sandbox Code Playgroud)

javascript jest react-native

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