标签: delphi-xe5

Delphi下载文件Android与Memory Stream

我试图以这种方式从服务器下载文件:

var MeS:TMemoryStream;
begin
 Mes:=TMemoryStream.Create;
 IdFTP1.Connect;
 Mes.Position:=0;
  try
   IdFTP1.Get(Mes, 'dolcestilnovo.txt', True, False);
  finally
   MeS.Free;
   IdFTP1.Disconnect;
  end;
 Memo5.Lines.LoadFromStream(Mes);
end;
Run Code Online (Sandbox Code Playgroud)

我必须显示dolcestilnovo.txtMemo5内部的内容,但我在IdFTP1.Get();方法上有错误.

错误显示"没有可以使用这些参数调用'Get'的重载版本".我能做什么?

我想使用MemoryStream自从我在Android设备上下载它.

delphi android indy delphi-xe5

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

编译用于AppStore配置的Delphi移动应用程序时出错

我编译了适用于ios模拟器和Android的应用程序(使用delphi xe5),一切正常,但是当我为Appstore配置编译应用程序时,出现此错误,我在错误中进行了搜索,但没有发现任何帮助。

element中缺少必需的属性“ Include”。E:\ Users \ RezaRa \ AppData \ Roaming \ Embarcadero \ BDS \ 12.0 \ iPhoneOS6.1.sdk

任何的想法?

delphi delphi-xe5

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

为什么表单不是自动调整当前分辨率?

我有一个Firemonkey HD应用程序并将其部署在iPad 2上.工作正常.

当我在带有Retina显示屏的iPad 4上部署相同的应用程序时,我遇到了问题.

关键是我在表单上有一些绘图操作,需要精确的表格宽度和高度.

ShowMessage('form wh = ' + FloatToStr(TForm(FImage.Parent.Parent). Width) + ':' + FloatToStr(TForm(FImage.Parent.Parent).Height));
Run Code Online (Sandbox Code Playgroud)

在两台设备上我收到一条消息:

form wh = 1024:748
Run Code Online (Sandbox Code Playgroud)

我需要的是自动更改表单大小.

我该怎么做才能得到它?

更新:我尝试使用Screen.Size.Width但在Retina显示屏上有Screen.Size.Width = 1024.我做错了什么?

delphi ios retina-display firemonkey delphi-xe5

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

Delphi XE5中的DateTimeToString不起作用吗?

我有一小段代码:

  DateTimeToString(DiffString, 't.zzz', TDT);
    ShowMessage('TDT: ' + DateTimeToStr(TDT));
    ShowMessage('DiffString: ' + DiffString);
Run Code Online (Sandbox Code Playgroud)

第一个ShowMessage的结果给出了随机好的DateTime TDT值...第二个,其中DiffString是exacly 00:00.000

任何人都可以在其他IDE中检查它吗?

delphi delphi-xe5

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

钩窗消息

如何为从我的应用程序创建的特定窗口挂钩窗口消息.我做到了这一点,但我得到一个错误说E2036 Variable required.

type
  TSomeClass = class
  ...
  WndProc(code : integer; wParam: WPARAM; lParam: LPARAM ) : LResult;
  ...
  end;

var
  SomeClass: TSomeClass;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ...
  SomeClass := TSomeClass.Create;
  SetWindowsHookEx(WH_CALLWNDPROC, @SomeClass.WndProc, 0, GetCurrentThreadId);
  ...
end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe5

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

使用https:// - Delphi下载协议时出错

我想知道如何在Delphi中下载协议https://的文件.我正在使用idhttp,但是当我点击下载它时会返回错误代码:

-1
Run Code Online (Sandbox Code Playgroud)

单击按钮后,几秒钟就会终止应用程序.

uses: IdHTTP, IdSSLOpenSSL;

IdHTTP1 := TIdHTTP.create(nil);
 try
            IdHTTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);  
            IdHTTP1.Request.Accept := 'text/html, */*';
            IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
            IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
            IdHTTP1.HandleRedirects := True;
            IdHTTP1.get(FNomeArq,MS);
            Ms.Seek(0,soFromBeginning);
            header := IdHTTP1.Response.ContentType;
 except on E : EIdHTTPProtocolException do begin
             showmessage(intToStr(IdHTTP1.ResponseCode));
            end;
            on E: EIdSocketError do begin
                showmessage(intToStr(IdHTTP1.ResponseCode));
            end;
            on E: Exception do begin
              showmessage(intToStr(IdHTTP1.ResponseCode));
            end;
 end;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

delphi delphi-xe5

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

在哪里可以找到用于Windows API调用的Delphi声明?

我希望能够看到如何在Delphi中调用Windows API.最近我有一个关于GetProcessorAffinity的问题,并且Delphi声明作为答案的一部分发布.我想知道如何找到这种信息.

delphi winapi delphi-xe5

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

使用LZMA对内存流进行解压缩

我有一个远程管理工具,是64位平台的必要更改.我使用Zlib进行压缩和解压缩内存流,但是在做了这个更改之后,当我尝试用64位平台编译我的项目时,Zlib类显示了几个错误,因为Zlib只能用于32位平台.

然后,我在互联网上搜索了一些用于压缩和解压缩内存流的类似类,我发现这个问题讨论的是关于LZMA类,它也可以像我需要的那样制作,类似于Zlib类.

我明白了这个建议:

您将面临的最大问题是您选择使用的库需要您知道要解压缩的文件大小.

所以,我在这里完全知道一些建议,试着解决这个问题.

换句话说,我想知道如何解压缩我的项目的服务器端接收的内存流的大小?

欢迎任何意见或建议.

compression delphi memorystream lzma delphi-xe5

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

没有SSL时IOHandler之间的差异

我正在使用Indy从URL地址获取JSON.我的代码是用TIdSSLIOHandlerSocketOpenSSL作为IOHandlerTIdHTTP.

var IdHTTP: TIdHTTP;
    IdSSL: TIdSSLIOHandlerSocketOpenSSL; // IO handler #1
    IdnoSSL: TIdIOHandlerStack;          // IO handler #2
    JSON: String;
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果有一些理由使用SSL作为处理程序,当网址很简单时http://www.example.com,不是https://www.example.com吗?

begin
  IdHTTP := TIdHTTP.Create;

  try
    IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
    IdHTTP.IOHandler := IdSSL;

    // IdnoSSL:= TIdIOHandlerStack.Create(IdHTTP);
    // IdHTTP.IOHandler :=  IdnoSSL;

    JSON := IdHTTP.Get('http://www.example.com');
  finally
    IdHTTP.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

或者我应该删除TIdSSLIOHandlerSocketOpenSSL和使用noSSL TIdIOHandlerStack

任何帮助或建议都是适用的.

delphi ssl indy10 delphi-xe5

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

TWinSocketStream.Read():读取错误6,句柄无效

当我关闭与某个客户端的连接时,会发生此错误.错误发生在服务器的此代码行中:

Received := SocketStrm.Read(Data, SizeOf(Data));
Run Code Online (Sandbox Code Playgroud)

而且,当智能手机重新启动时(或者,例如,当我关闭客户端应用程序时),丢失的客户端的数据不会从ListView服务器应用程序中删除.

有人可以帮我解决这2个错误吗?

以下是我发送数据的代码:

客户端(Android):

 public class MainActivity extends AppCompatActivity {

        private Socket xclientSocket;

            class ClientThread implements Runnable {

                @Override
                public void run() {

                    try {

                        InetAddress serverAddr = InetAddress.getByName("192.168.15.12");

                        xclientSocket = new Socket(serverAddr, 101);

                        new Thread(new CMDThread()).start();

                    } catch (Exception e1) {
                        System.out.println(e1.toString());
                    }

                }
            }

            class CMDThread implements Runnable {

                @Override
                public void run() {

                    try {

                    while(xclientSocket.isConnected()){

                        BufferedReader xreader = new BufferedReader(new InputStreamReader(xclientSocket.getInputStream()));
                        DataOutputStream dOut = new DataOutputStream(xclientSocket.getOutputStream());

                        String xline;

                        if …
Run Code Online (Sandbox Code Playgroud)

sockets delphi multithreading android delphi-xe5

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