小编NGL*_*GLN的帖子

按钮标题中的换行符

我正在构建一个应用程序,我想在窗体上显示一个按钮.我想在两行上显示按钮的标题.我尝试在表单的OnCreate事件中使用以下代码,但它没有显示新行.

Button.Caption := 'Hello' + #13#10 + 'world';
Run Code Online (Sandbox Code Playgroud)

添加新行的任何其他方法?

delphi

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

网络架构发现

我想执行一个彻底的LAN设备发现,这样我就可以创建一个类似于附加的图表,但是有IP和MAC地址等附加信息.

我尝试过Torry的代码:

type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
var
  EnumHandle: THandle;
  BufSize: DWord;
  Res: DWord;
begin
  Result := False;
  List := Nil;
  Entries := 0;
  if WNetOpenEnum(RESOURCE_GLOBALNET,
                  ResourceType,
                  0,
                  NetResource,
                  EnumHandle) = NO_ERROR then begin
    try
      BufSize := $4000;  // 16 kByte
      GetMem(List, BufSize);
      try
        repeat
          Entries := DWord(-1);
          FillChar(List^, BufSize, 0);
          Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
          if Res = ERROR_MORE_DATA then
          begin
            ReAllocMem(List, …
Run Code Online (Sandbox Code Playgroud)

delphi lan network-programming discovery

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

Android multidex不支持proguard

我更新了所有内置工具,supportlibrary和google Play服务.但是我仍然收到以下错误:

错误:任务执行失败':app:shrinkReleaseMultiDexComponents'

java.io.IOException:必须在输入jar之后指定输出jar [app\build\intermediates\multi-dex\release\componentClasses.jar],否则它将为空.

我能够通过设置来解决这个问题minifyEnabledfalse,但是这不是我想要的.有谁知道如何修理它?

android proguard

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

如何在不需要先绘制的情况下获得位图透明度?

默认情况下,新创建的位图似乎具有(白色)背景.至少,对Pixels属性的查询确认.但是,当Transparent设置为true 时,为什么背景颜色不用作透明颜色?

考虑这个简单的测试代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  Bmp: TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Width := 100;
    Bmp.Height := 100;
    Bmp.Transparent := True;
    Canvas.Draw(0, 0, Bmp);                              // A white block is drawn
    Bmp.Canvas.Brush.Color := Bmp.Canvas.Pixels[0, 99];  // = 'clWhite'
    Bmp.Canvas.FillRect(Rect(0, 0, 100, 100));
    Canvas.Draw(0, 100, Bmp);                            // "Nothing" is drawn
  finally
    Bmp.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,整个位图表面必须先涂上它才能显得透明,这听起来很奇怪.

尝试以下变体来消除对FillRect所有具有相同结果(没有透明度)的调用:

  • 只有设定Brush.Color,
  • Brush.Handle := CreateSolidBrush(clWhite),
  • PixelFormat := pf32Bit,
  • IgnorePalette := True,
  • TransparantColor := clWhite,
  • TransparantMode …

delphi transparency bitmap

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

HTML定义哪个选择选项处于活动状态

我有一个选择框,其中包含以下内容(已缩短):

<select id="viewSelector" name="when" style="width:92%;">
    <option value="USA">USA</option>
    <option value="Australia">Australia</option>
    <option value="Germany">Germany</option>
</select>
Run Code Online (Sandbox Code Playgroud)

如果用户登录控制面板并想要更改他的国家/地区,他将收到此表单.我的问题是,每次美国都是默认设置,我无法根据用户所在国家/地区进行更改.例如,该用户居住在澳大利亚.他想将自己的国家改为美国并转到此页面.我希望展示的国家是澳大利亚.如果这是有道理的,请告诉我.

html php drop-down-menu

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

Delphi的KeyPreview如何运作?

一位同事和我本人正在就哪种方式减轻系统资源负担进行辩论.(注意:这不是我想要答案的问题.相反,标题和粗体下面的行是我寻求答案的问题.)

1. Using KeyPreview to get the keypresses on a form.
Run Code Online (Sandbox Code Playgroud)

要么

2. Using defining an OnMessage procedure and handling it there.
Run Code Online (Sandbox Code Playgroud)

乍一看似乎KeyPreview不会占用系统负担,因为定义OnMessage过程会导致我们的程序检查每条消息.我们不关心的注意消息会导致它被第一个if语句跳出.在最坏的情况下,我们会为每条消息执行if语句.

但我们想知道Delphi如何处理KeyPreview属性......我们想知道Delphi是否在内部定义了自己的OnMessage并查看消息然后触发与keypresses相关的事件.

如果是这种情况,那么两种方法都会大致相同吗?

delphi

9
推荐指数
2
解决办法
7232
查看次数

使用javascript数组删除li标签

我正在寻找解决方案来删除<li>使用javascript数组过滤的标签.

阵:

var mygroups=["1","8","3","4","5"]
Run Code Online (Sandbox Code Playgroud)

示例(输入):

<li><div>1 element.</div></li>
<li><div>2 element. This is my <span>post</span> into new group</div></li>
<li><div>3 element. Another one</li>
<li><div>
         <a href="javascript:void(0);">Actor</a>
         <a href="/groups/viewgroup/1-first-group">First group</a>
    </div>
</li>
<li><div><a href="javascript:void(0);">Actor</a>
         <a href="/groups/viewgroup/10-ten-group">Ten group</a>5 element. This is my <span>new post</span></div></li>
<li>
   <div>6 element. <a href="/j1.5/index.php/jomsocial/63-zzz/profile">Actor</a></div>
   <div><a href="/groups/viewgroup/test/5-second-group">Group other</a></div>
</li>
<li>7 element.</li>
<li><div><a href="/groups/viewgroup/test/8-second-group">First group</a></div></li>
<li><div><a href="/groups/viewgroup/16-other-group">First group</a></div></li>
<li><div><a href="/j1.5/index.php?option=com_community&view=groups&task=viewgroup&groupid=1&Itemid=4">My other group </a></div></li>
Run Code Online (Sandbox Code Playgroud)

如何获取此输出(删除锚点中不包含数组中的组的所有实例):

<li><div>
         <a href="javascript:void(0);">Actor</a>
         <a href="/groups/viewgroup/1-first-group">First group</a>
    </div>
</li>
<li>
   <div>6 element. <a href="/j1.5/index.php/jomsocial/63-zzz/profile">Actor</a></div>
   <div><a href="/groups/viewgroup/test/5-second-group">Group other</a></div> …
Run Code Online (Sandbox Code Playgroud)

html jquery jquery-selectors html-lists

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

自动调整Delphi按钮的大小

我想动态更改一个标题TButton.问题是,TButton如果标题太长而无法放在按钮上,则不会自行调整大小; 所以文字在按钮的边缘流血.

如何让按钮更改大小以适合标题?

一些想法:

  • 使用可以自行调整大小的其他按钮组件.有吗?
  • 子类TButton和集AutoSize=True(没试过这个,不知道它是否会起作用).
  • 计算标题的大小(以像素为单位),并在每次更改标题时手动更改宽度.

delphi button autosize delphi-2010

9
推荐指数
2
解决办法
6347
查看次数

性能问题在表单调整大小时重新调整大量组件的大小

到目前为止,我觉得我的失败在于搜索术语,因为有关此的信息必须非常普遍.基本上我正在寻找在调整表单大小时对多个组件执行调整大小时的常见解决方案和最佳实践.

我有一个基于组件的表单TScrollBox.ScrollBox包含在运行时动态添加的行.它们基本上是一个子组件.每个人左边都有一个图像,右边有一个备忘录.基于图像的宽度和纵横比设置高度.在调整滚动框的大小时,循环设置触发行自身内部调整大小的行的宽度.如果高度发生变化,循环也会设置相对顶部位置.

截屏:

在此输入图像描述

大约16行表现良好.我的目标是接近32排,非常不稳定,并且可以在100%使用时固定核心.

我试过了:

  • 添加了一个检查,以防止在上一个尚未完成时启动新的调整大小.它回答是否发生,有时确实发生.
  • 我试图防止它每隔30毫秒调整一次,这样每秒可以进行30帧的绘图.结果喜忧参半
  • 将行基本组件从TPanel更改为TWinControl.不确定使用Panel是否存在性能损失,但这是一种旧习惯.
  • 有和没有双缓冲.

我想允许在调整大小期间进行行调整大小,以预览图像在行中的大小.这消除了一个明显的解决方案,在某些应用中是可接受的损失.

现在,行内部的调整大小代码是完全动态的,并且基于每个图像的尺寸.我计划尝试的下一件事是基本上根据集合中的最大图像指定宽高比,最大宽度/高度.这应该减少每行的数学量.但似乎问题更多的是调整大小事件和循环本身?

组件的完整单元代码:

unit rPBSSVIEW;

interface

uses
  Classes, Controls, Forms, ExtCtrls, StdCtrls, Graphics, SysUtils, rPBSSROW, Windows, Messages;

type
  TPBSSView = class(TScrollBox)
  private    
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure ResizeRows(Sender: TObject);
    procedure AddRow(FileName: String);
    procedure FillRow(Row: Integer; ImageStream: TMemoryStream);
  end;

var
  PBSSrow: Array of TPBSSRow;
  Resizingn: Boolean;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TScrollBox]);
end;

procedure TPBSSView.AddRow(FileName: String);
begin
  SetLength(PBSSrow,(Length(PBSSrow) + 1));
  PBSSrow[Length(PBSSrow)-1] := TPBSSRow.create(self);
  With …
Run Code Online (Sandbox Code Playgroud)

delphi

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

如何禁用TScrollBox的滚动查看行为?

我有一个TScrollBox,其RichEdit比滚动框大,因此两个侧滚动条都出现在滚动框中.然后我有一个DoTask调用的函数RichEdit.SetFocus.

当我向下滚动到我想要查看部分文本控件的位置,然后调用时DoTask,ScrollBox将自动滚动到RichEdit的顶部.我怎么能避免这种情况?

delphi scroll

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