小编Ken*_*ite的帖子

如何获得当前带宽(下载)速度?

如何使用IdTCPServer或IdTCPClient获得当前带宽速度?

我想知道,客户端从服务器下载数据的速度有多快?

例如:下载速度:450 kbps

delphi indy

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

使用PHP套接字发送和接收数据

我正在尝试通过PHP套接字发送和接收数据.

Evrything还可以,但是当我试图发送数据时,PHP不会发送任何内容(Wireshark告诉我发送的数据长度为0).

我正在使用此代码:

<?php
$address = 'example.com';
$port = 1234;

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$sockconnect = socket_connect($sock, $address, $port);

$c = 0;
do {
    $c++;
    $msg = '<test>Xml data</test>';

    socket_write($sock, $msg, strlen($msg));

    echo socket_read($sock, 1024 * 100, PHP_NORMAL_READ);

} while ($c < 3);

socket_close($sock);
Run Code Online (Sandbox Code Playgroud)

谁能帮我?感谢您阅读我的问题.

php sockets

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

你怎么能得到TStringGrid中的单元格更加流畅的提示?

我正在跑Lazarus 0.9.30.

TStringGrid在表单上有一个标准,并希望在将鼠标指针移动到列标题上时显示不同的提示.我正在使用此代码执行此操作并且它有点工作但是您经常需要单击单元格以获取提示更改,当我实际希望它在鼠标指针移动时更改.我将所有提示存储在我使用列索引作为键搜索的集合中.有没有办法更顺畅地显示提示?

procedure TTmMainForm.SgScoutLinkMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  R, C: Integer;
begin
  R := 0;
  C := 0;

  SgScoutLink.MouseToCell(X, Y, C, R);

  with SgScoutLink do
  begin
    if (R = 0) then
      if ((C >= 3) and (C <= 20)) then
      begin
        SgScoutLink.Hint := FManager.ScoutLinkColumnTitles.stGetColumnTitleHint(C-3);
        SgScoutLink.ShowHint:= True;
      end; {if}
  end; {with}
end;
Run Code Online (Sandbox Code Playgroud)

delphi lazarus tstringgrid

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

Android:带标题栏的全屏活动

我想用标题栏设置我的活动全屏,我该怎么做?谢谢

android themes android-activity

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

如何在Delphi 7中创建两列(一个隐藏)的组合框?

如何创建一个TComboBox,其中有两列隐藏了其中一列,以便它可以保存id值以及其中的实际项目?然后如何以编程方式获得该id值?

delphi combobox delphi-7

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

TTaskBar内存泄漏

Embarcadero的TTaskbar有内存泄漏.由于我在表单上删除了此控件,因此每次关闭应用程序时,FastMM都会报告泄漏.

我尝试使用以下代码将FastMM静音:

procedure TMainForm.FormCreate(Sender: TObject);
begin
 fastmm4.RegisterExpectedMemoryLeak(Taskbar);
end;
Run Code Online (Sandbox Code Playgroud)

但它不会起作用.如何注册此泄漏?


内存块已泄露.大小是:100

该块由线程0xC64分配,当时的堆栈跟踪(返回地址)为:406A52 409A7B 409CAC 4283A0

[System.SysUtils] [System] [System.SysUtils.FmtStr] 409CC6 40D775 7628A65F
[StretchDIBits的未知功能] 7731594E
[RtlpNtMakeTemporaryKey上的
未知函数] 7731594E
[ RtlpNtMakeTemporaryKey上的未知函数] 773168F8
[ RtlpNtMakeTemporaryKey上的未知函数] 773168DC [ RtlpNtMakeTemporaryKey上的未知函数]

该块当前用于类的对象:UnicodeString
分配编号为:2209

内存块已泄露.大小是:36

该块由线程0xC64分配,当时的堆栈跟踪(返回地址)为:406A52 407D43 40846A 42CD40
[System.SysUtils] [System] [System.SysUtils.Exception.CreateFmt] 5DEDD7
[System.Win.TaskbarCore] [System.Win] [System.Win.TaskbarCore.TTaskbarBase.UpdateTab] 610F00
[Vcl.Taskbar] [Vcl] [Vcl.Taskbar.CheckMDI] 5DF39F
[System.Win.TaskbarCore] [System.Win] [System.Win. TaskbarCore.TTaskbarBase.ApplyTabsChanges] 610DB8
[Vcl.Taskbar] [Vcl] [Vcl.Taskbar.TCustomTaskbar.Initialize] 5EB044
[Vcl.Forms] [Vcl] [Vcl.Forms.TApplication.Run] 62573A
[MinimalTemplate.dpr] [MinimalTemplate ] [MinimalTemplate.MinimalTemplate] [26]

该块当前用于类的对象:ETaskbarException
分配编号为:2207

此应用程序已泄露内存.小块泄漏(不包括指针注册的预期泄漏):

21 - 36字节:ETaskbarException x 1
85 - …

delphi fastmm leakcheck

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

可以在FreePascal中的变体记录的案例中复制标识符吗?

这是我的问题:我想创建一个记录类型,其中在变体记录的情况下,一些(但不是全部)将具有某个字段.根据维基,这是完全合法的.然而,当我尝试编译以下代码时:

program example;

{$mode objfpc}{$H+}

uses sysutils;

type
  maritalStates = (single, married, widowed, divorced);

  TPerson = record
    name: record
      first, middle, last: string;
    end;
    sex: (male, female);
    dob: TDateTime;
    case maritalStatus: maritalStates of
      single: ( );
      married, widowed: (marriageDate: TDateTime);
      divorced: (marriageDate, divorceDate: TDateTime;
        isFirstDivorce: boolean)      
  end;

var
  ExPerson: TPerson;

begin
ExPerson.name.first := 'John';
ExPerson.name.middle := 'Bob';
ExPerson.name.last := 'Smith';
ExPerson.sex := male;
ExPerson.dob := StrToDate('05/05/1990');
ExPerson.maritalStatus := married;
ExPerson.marriageDate := StrToDate('04/01/2015');

end.
Run Code Online (Sandbox Code Playgroud)

编译失败,出现以下错误:

$ fpc ex.pas
Free …
Run Code Online (Sandbox Code Playgroud)

pascal freepascal record variant

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

如何创建特定区域的屏幕截图?

我有代码接收服务器端之前已定义的特定区域,并在客户端的Form上创建一个漏洞.而不是这个,我想得到这个相同区域的屏幕截图,但没有在最终结果中显示我的表格,就像正常的桌面捕捉,但在这种情况下将只捕获,这个小区域.

那么,我如何调整下面的代码呢?

procedure TForm1.CS1Read(Sender: TObject; Socket: TCustomWinSocket);
var
  X1, X2, Y1, Y2: Integer;
  List: TStrings;
  FormRegion, HoleRegion: HRGN;
  StrCommand: String;
begin
  StrCommand := Socket.ReceiveText;

  if Pos('§', StrCommand) > 0 then
  begin
    List := TStringList.Create;
    try
      FormRegion := CreateRectRgn(0, 0, Form12.Width, Form12.Height);
      ExtractStrings(['§'], [], PChar(StrCommand), List);

      X1 := StrToIntDef(List[0], 0) - Form12.Left - 2;
      Y1 := StrToIntDef(List[1], 0) - Form12.Top - 2;
      X2 := StrToIntDef(List[2], 0) - Form12.Left - 2;
      Y2 := StrToIntDef(List[3], 0) - Form12.Top - 2;

      HoleRegion := CreateRectRgn(X1, …
Run Code Online (Sandbox Code Playgroud)

delphi screenshot rectangles

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

无法理解Delphi XE6保护类型

我创建了两个单元并将第一个类放入其中一个:

  unit UBaseClass;

  interface

  type
    TBaseOuterClass = class
    protected type

      TBaseInnerClass = class
      public
      end;

    protected
      function GetInnerInstance: TBaseOuterClass.TBaseInnerClass; virtual;
    end;

  implementation

  { TBaseOuterClass }

  function TBaseOuterClass.GetInnerInstance: TBaseOuterClass.TBaseInnerClass;
  begin
  // doesn't matter
  end;

  end.
Run Code Online (Sandbox Code Playgroud)

我将派生类放入第二个单元:

unit UDerClass;

interface

uses
  UBaseClass;

type
  TDerOuterClass = class(TBaseOuterClass)
  protected type

    TDerInnerClass = class(TBaseInnerClass)

    end;

  protected
    function GetInnerInstance: TBaseOuterClass.TBaseInnerClass; override;
  end;

implementation

{ TDerOuterClass }

function TDerOuterClass.GetInnerInstance: TBaseOuterClass.TBaseInnerClass;
begin

end;

end.
Run Code Online (Sandbox Code Playgroud)

当我正在尝试编译时,我得到了

[dcc32错误] UDerClass.pas(22):E2362无法访问受保护的符号TBaseOuterClass.TBaseInnerClass

在行函数TDerOuterClass.GetInnerInstance:TBaseOuterClass.TBaseInnerClass;

我无法理解为什么TBaseOuterClass.TBaseInnerClass(作为内部受保护类)无法从TDerOuterClass(为TBaseOuterClass派生)访问.在这种情况下,实际上受保护类型是什么?

我在嵌套类型声明主题中没有找到任何解释.那么这种行为有什么理由吗?

它也与简单的受保护类型相关

protected type    
  TSimpleType = Integer; …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe6

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

调试完成后,Visual Studio 2015尝试访问光盘驱动器

我最近在新计算机上安装了Microsoft VS 2105 Professional(Update 3),我遇到了一种奇怪的行为.每当我尝试调试程序时,当我停止调试器时,它会尝试访问我的DVD驱动器,这既奇怪又烦人.除了我通常的日常项目之外,我尝试使用干净的"Hello World"风格的C++和C#项目,并且它仍然表现相同.

我已禁用诊断工具(工具 - >选项 - >调试 - >在调试时禁用启用诊断工具)并在安全模式下运行VS(devenv/SafeMode)但问题仍然存在.我使用"进程监视器"来识别触发访问DVD驱动器的程序,显然"StandardCollector.Service.exe"是罪魁祸首.您可以从下面的Process Monitor中找到日志(我删除了时间和PID列).我知道有一些报告的问题(内存)与这个特定的过程(StandardCollector.Service.exe),但为什么它试图创建/访问我的DVD驱动器上的文件对我来说是一个谜.我的操作系统是Windows 10家庭版.有人可以为这个问题建议任何诊断或解决方案吗?

这种行为仅在Visual Studio停止调试过程时发生,而不是任何其他程序(Windows在启动时也是如此,但我认为这很自然).我需要补充一点,如果我禁用然后从设备管理器启用DVD驱动器,问题就会消失(调试完成后无法访问DVD驱动器),但1-2分钟后会再次出现.

************************************来自过程监控的日志:

StandardCollector.Service.exe IRP_MJ_CREATE H:SUCCESS所需访问:通用读/写,Dis"Apple-tab-span"style ="white-space:pre;"> IRP_MJ_CREATE H:\ INVALID PARAMETER所需访问:Synchronize,Dis"Apple -tab-span"style ="white-space:pre;"> IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控件:IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:SUCCESS控件:IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控件: IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:NO媒体控制:IOCTL_DISK_GET_DRIVE_GEOMETRY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:FAST IO不允许控制:IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:SUCCESS控制:IOCTL_STORAGE_QUERY_PROPERTY StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:FAST IO DISALLOWED控件:IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Servi ce.exe IRP_MJ_DEVICE_CONTROL H:SUCCESS控制:IOCTL_CDROM_GET_CONFIGURATION StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:FAST IO不允许控制:IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_DEVICE_CONTROL H:SUCCESS控制:IOCTL_SCSI_PASS_THROUGH_DIRECT StandardCollector.Service.exe IRP_MJ_CLEANUP H:SUCCESS StandardCollector.Service.exe IRP_MJ_CLOSE H:成功

ide visual-studio-debugging visual-studio-2015

7
推荐指数
2
解决办法
817
查看次数