小编Uwe*_*abe的帖子

在Delphi中,客户端和服务器之间交换字符串数据的方法有哪些?

我在内联网上有一台服务器和一些客户端(大约50个).客户端向服务器发送短(大约40个字符)的字符串数据,服务器使用类似的字符串进行应答.每个客户端每秒最多(但不是永久)2-3个请求.服务器必须序列化请求以获取响应字符串.

系统应尽可能减少对网络的影响(即服务器可能已经运行了类似于Web服务器的东西).它应该尽可能容易安装和管理.

使用Delphi(客户端:D7,服务器到D2010)实现此目的的可能性有哪些?

delphi client

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

如何使用WinInet在Delphi 2010中发送HTTP Post请求

我想使用WinInet在Delphi 2010中发送HTTP Post请求,但我的脚本不起作用; /

这是我的Delphi脚本:

uses WinInet;
procedure TForm1.Button1Click(Sender: TObject);
var
  hNet,hURL,hRequest: HINTERNET;
begin
  hNet := InternetOpen(PChar('User Agent'),INTERNET_OPEN_TYPE_PRECONFIG or INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(hNet) then
  begin
  try
    hURL := InternetConnect(hNet,PChar('http://localhost/delphitest.php'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,DWORD(0));
    if(hURL<>nil) then
      hRequest := HttpOpenRequest(hURL, 'POST', PChar('test=test'),'HTTP/1.0',PChar(''), nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_PRAGMA_NOCACHE,0);
    if(hRequest<>nil) then
      HttpSendRequest(hRequest, nil, 0, nil, 0);
    InternetCloseHandle(hNet);
  except
      ShowMessage('error');
    end
  end;
end;
Run Code Online (Sandbox Code Playgroud)

和我的PHP脚本:

$data = $_POST['test'];
$file = "test.txt";
$fp = fopen($file, "a");
flock($fp, 2);
fwrite($fp, $data);
flock($fp, 3);
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

delphi post http wininet

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

如何修改Rad Studio社区版

在设置 Embarcadero Rad Studio 10.2.3 Community Edition 期间,我没有选择 Interbase Express 组件。现在我想安装这些组件,但找不到修改安装以选择这些组件的方法。

初始设置后如何修改 RAD Studio Community Edition 安装?

delphi rad-studio

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

TWinControl 组件不响应表单大小调整的问题

我有一个用 Delphi 10.4 编写的可视化控件。为了方便地关注问题,我仅创建了具有 Anchors 和 Align 属性的 TwinControl。我包括了 AutoSize 属性。问题是当该组件构建安装并放置在 TForm 上时,控件将不会响应表单大小调整。

该控件已将控件设置为锚定正确。我向表单添加了一个 TButton,并将其锚点设置为 akRight。按钮随着表单的拉伸而移动。我的控制没有。我可以提供这个小测试的完整源代码。也许有人以前见过这个。我以前曾在我的组件中使用过 TFrame,但发现存在一些显示问题,仅部分控件显示或根本不显示。我的客户没有留下深刻的印象。我会欣赏一些智慧。

这是来自 TWinControl 的代码

unit SampleControl;

    interface

    uses
      System.Classes, Vcl.Controls, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons, Vcl.Dialogs,
      Vcl.Graphics,AdvGrid,vcl.Forms,System.SysUtils,StrUtils,Messages, EBS3DataUtils,
      EBSGridSetup,System.UITypes,WinApi.Windows,vcl.Grids,AdvObj,System.Variants;

    Type
      TSampleControl = class(TWinControl)
      private
        FAnchors: TAnchors;
        FAlign : TAlign;
        FAutoSize : Boolean;
        procedure InitializeComponents;
        procedure SetAnchors(const Value: TAnchors);
        procedure SetAlign(const Value: TAlign);
        procedure SetAutoSize(const Value: Boolean);
      Public
        procedure Resize; Override;
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      Published
        property Anchors: TAnchors read FAnchors write SetAnchors default …
Run Code Online (Sandbox Code Playgroud)

delphi anchor components vcl alignment

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

Delphi:Dll -&gt; DataSet.First 导致访问冲突

我有一个用 Delphi 编写的简单 Dll:

library usr_d;

uses
  System.SysUtils, System.Classes, DB,Vcl.Dialogs
  ;

{$R *.res}

Procedure SetMyData(DataSet: TDataSet);export;
begin
  if Assigned(DataSet) then
  begin
    ShowMessage(DataSet.FieldByName('MyFieldName1').AsString);
    try
      DataSet.First;
    except on E: Exception do
      ShowMessage('Error accessing field: ' + E.Message);
    end;
  end
  else
    ShowMessage('DataSet parameter is not assigned!');
end;

exports
  SetMyData;

begin
end.    
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

Procedure TMainForm.CallMyDll;

type
  TSetMyData = procedure(DataSet: TDataSet); stdcall;

Var
  MyHandle               : HMODULE;
  SetMyData              : TSetMyData;  

Begin
  MyHandle := LoadLibrary('c:\MyFolder\usr_d.dll');
  if MyHandle <> 0 then
   begin
     @SetMyData := GetProcAddress(MyHandle, 'SetMyData');
     if @SetMyData …
Run Code Online (Sandbox Code Playgroud)

delphi dll access-violation

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