小编Dan*_*iel的帖子

检测目录是否是Delphi中的联结

我一直在谷歌搜索这个我可能有一些脑云,因为它不起作用.

我需要检测文件夹是否是一个联结,所以我的递归文件搜索不会运行到无限循环.

我可以使用像这样的简单函数

IsJunction(attr: dword): boolean; 
Run Code Online (Sandbox Code Playgroud)

其中attr dwFileAttributes来自TWin32FindData;

我似乎无法让它工作.谢谢!

delphi junction

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

Delphi应用程序表单显示而不是在启动时隐藏

我有一个程序,它不会启动最小化,并在dekstop上显示一个非常小的窗口.

图片:http://i.imgur.com/j8xus.jpg

码:

程序:

program Project4;

uses
  Forms,
  Unit4 in 'Unit4.pas' {Form4};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := false;
  Application.ShowMainForm:=false;
  Application.CreateForm(TForm4, Form4);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

单元:

unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AppEvnts, ExtCtrls, Menus;

type
  TForm4 = class(TForm)
    TrayIcon1: TTrayIcon;
    ApplicationEvents1: TApplicationEvents;
    PopupMenu1: TPopupMenu;
    Exit1: TMenuItem;
    procedure TrayIcon1DblClick(Sender: TObject);
    procedure ApplicationEvents1Minimize(Sender: TObject);
    procedure ApplicationEvents1Restore(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
  private
    { Private …
Run Code Online (Sandbox Code Playgroud)

forms delphi systray hide

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

在delphi中如何使用null分隔符创建字符串

我正在使用SHFileOperation,源可以是一个pwidechar,文件名以null分隔,整个事件以double null结尾.

我可以创建一个widechar数组,它保存了我需要的信息但是当我尝试转换为pwidechar函数时,它只复制到第一个null.

我究竟做错了什么?

delphi string null shfileoperation

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

传递一个tmemorystream作为var

当我尝试将tmemorystream作为var或指向程序的指针传递时,它会被损坏.这样做的正确方法是什么?

例如:

function tform1.downloadmemupdate(url, desc: string; var data: tmemorystream; var msg: string): boolean;
begin
  filelabel.Caption:=desc;
  downloadmemthread:=tdownloadmemthread.create(url);
  dlcancelbtn.Enabled:=true;
  downloadmemthread.dlstart;
  waitforsingleobject(downloadmemthread.Handle, INFINITE);

  downloadmemthread.data.SaveToStream(data); //corrupted
  downloadmemthread.data.SaveToFile('data.zip');  //works

  dlcancelbtn.Enabled:=false;
  result:=not (downloadmemthread.canceled and downloadmemthread.success);
  dlcanceled:=downloadmemthread.canceled;
  msg:=downloadmemthread.msg;
  downloadthread.Free;
end;
Run Code Online (Sandbox Code Playgroud)

delphi pointers var procedure

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

Delphi TIdHTTP POST与GET相比非常慢

德尔福2009

我最近从多个GET请求切换到单个POST,我认为它会更有效但事实证明它要慢得多.它从1-2秒变为8-10秒,我无法弄清楚原因.

unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP;

type
  TForm4 = class(TForm)
    d: TIdHTTP;
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
var m: tmemorystream;
    data: tstringlist;
    i: integer;
begin
  memo1.Clear;

  m:=tmemorystream.Create;
  data:=tstringlist.Create;
  data.Add(format('test1');
  data.Add(format('test2');

  d.Post('http://www.someurl.com/test.php', data, m);
  m.Position:=0;
  data.LoadFromStream(m);
  memo1.Lines.Add('Received:');

  for i := 0 to data.count …
Run Code Online (Sandbox Code Playgroud)

delphi http indy

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

如何使用dcpcrypt在delphi和php之间同步加密

我正在使用Delphi 2009,我在这里看到的大部分答案都是针对2010+我尝试将加密(delphi)同步到解密(php)并失败.

在delphi中生成加密的字符串:

program Project4;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  DCPcrypt2,
  DCPsha1,
  DCPblockciphers,
  DCPdes,
  EncdDecd;

var des: tdcp_des;
    enc,dec: ansistring;

begin
  try
  des:=tdcp_des.Create(nil);
  des.InitStr('test', tdcp_sha1);
  enc:=encodestring(des.EncryptString('this is a test'));
  des.Free;

  des:=tdcp_des.Create(nil);
  des.InitStr('test', tdcp_sha1);
  dec:=des.DecryptString(decodestring(enc));
  des.Free;

  writeln(enc);
  writeln(dec);
  except
    on E:Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;
end.
Run Code Online (Sandbox Code Playgroud)

在php中解密:

<?php
function decrypt($str, $key)
{
    $size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
    $data = base64_decode($str);
    $block = mcrypt_get_block_size('des', 'ecb');
    $k = substr(sha1($key), 0, $block);
    $str = mcrypt_decrypt(MCRYPT_DES, $k, $data, MCRYPT_MODE_CBC, $iv);
    $pad …
Run Code Online (Sandbox Code Playgroud)

php delphi mcrypt

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

如何从德尔福发送喜欢的Facebook?

在我的应用程序中,我有一个小的自定义按钮,只显示一个FB图标和指向业务页面的链接.我希望按钮执行Like,以便页面上的我的号码增加.

到目前为止,我只看到一种从FB获取Like图形的方法,其中包含一个链接.我如何跳到喜欢的?

delphi facebook hyperlink facebook-like

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