小编Zig*_*giZ的帖子

垂直条(|)Unicode替换

我们在其中一个模块中使用竖线bar |(|)字符作为字段分隔符.因此用户不应在标题中使用此字符.

如果他们确实使用它,我想用类似的角色替换它.

是否有Unicode替代品?我找到的唯一一个与它相似的角色是垂直条¦(¦).

xml csv unicode separator

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

如何复制组件/控件?

可能重复:
在运行时复制组件

我有一个TMyControl(Control1)与它自己的属性/事件.
如何创建Control2具有完全相同属性/事件的重复实例?


更具体地说,我想克隆现有TADODataSet的流媒体字段(和一些事件):

object ADODataSet1: TADODataSet
  Connection = ADOConnection1
  CursorType = ctStatic
  AfterOpen = ADODataSet1AfterOpen
  CommandText = 'select top 10  * from Polls'
  Parameters = <>
  Left = 224
  Top = 40
  object ADODataSet1PollID: TGuidField
    FieldName = 'PollID'
    FixedChar = True
    Size = 38
  end
  object ADODataSet1Title: TWideStringField
    FieldName = 'Title'
    Size = 255
  end
  object ADODataSet1Description: TWideStringField
    FieldName = 'Description'
    Size = 4000
  end
  object ADODataSet1PollType: TIntegerField …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

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

如何获得TGroupBox主题字幕颜色

我想获得TGroupBox标题的字体颜色,因此我可以将该颜色分配给TLabel.

我想我需要使用GetThemeColor,但我似乎无法弄清楚使用哪些参数?


更新 - 这是我根据答案使用的代码:

function GetGroupBoxTextColor: TColor;
var
  C: COLORREF;
  ElementDetails: TThemedElementDetails;
begin
  Result := clWindowText;
  if ThemeServices.ThemesEnabled then
  begin
    ElementDetails := ThemeServices.GetElementDetails(tbGroupBoxNormal);
    if GetThemeColor(ThemeServices.Theme[teButton], ElementDetails.Part, ElementDetails.State, TMT_TEXTCOLOR, C) = S_OK then
      Result := C;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

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

按阵列或列表中的GroupID对元素进行分组?

我做了一个简化的演示(带有伪结构)来说明我需要的东西:

type
  TMyRec = record
    GroupID: Integer;
    Color: TColor;
  end;

  TMyRecArray = array of TMyRec;
Run Code Online (Sandbox Code Playgroud)

我的输入数组/列表元素由非零GroupID组成.它们始终按GroupID分组(但未排序且无法排序):

GroupID
-------
2 
2
2
1
1
3
3
etc...
Run Code Online (Sandbox Code Playgroud)

每个元素都有一个Color.我的输出应该按GroupID分组,看起来应该是这样的(每个组都是clRed/ clGreen- 依次交替):

GroupID ; Color
-------   -----
2 ; clRed
2 ; clRed
2 ; clRed
1 ; clGreen
1 ; clGreen
3 ; clRed
3 ; clRed
etc...
9 ; clGreen    
7 ; clRed
7 ; clRed    
Run Code Online (Sandbox Code Playgroud)

我用的代码是:

procedure TForm1.Button1Click(Sender: TObject);
var
  R: TMyRecArray;
  I: …
Run Code Online (Sandbox Code Playgroud)

delphi grouping delphi-7

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

显示TImage部分暗淡

我正在尝试制作一个看起来如下的裁剪工具:

原始图片:

在此输入图像描述

裁剪工具 - 这就是我想要的:

在此输入图像描述

请注意,裁剪区域显示原始颜色,并且颜色周围较暗.


我做的是放置TShapeTImage的属性:

object Shape1: TShape
  Brush.Color = clSilver
  Pen.Mode = pmMask
  Pen.Style = psDot
end
Run Code Online (Sandbox Code Playgroud)

我计划使用TShape进行重新调整大小/应对控制.这就是Delphi的外观:

在此输入图像描述

正如你所看到的,它看起来并不好(调色板看起来很抖动),但主要的问题是我需要昏暗区域在裁剪区域周围,而不是在中心.我试图用另一个TShpae覆盖整个TImage,尝试了不同的Pen.Mode组合,但是没有好的结果,我认为我的方法/方法很糟糕.

您对如何实现所需行为有任何想法吗?

delphi delphi-7

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

限制TControl的比例

如何为TControl 创建约束比例(在我的情况下为TGraphicControl)?
因此,如果我改变它Width- Height意志改变比例(反之亦然).
另外,如果我设置BoundsRect控件应保持比例.在我的控制下,我有一个AspectRatio: TPoint属性,设置:

AspectRatio.X := 4;
AspectRatio.Y := 3;
Run Code Online (Sandbox Code Playgroud)

所以现在我的AspectRatioFactor = 4/3.这个比例应该始终保持.

如何才能做到这一点?

delphi delphi-7

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

如何处理开放的TControl数组

我有这个不编译的代码:

function IsControlOneOf(AControl: TControl; AControls: array of TControl): Boolean;
begin
  Result := False;
  // if AControls <> nil then // does not compile!
  if Length(AControls) <> 0 then // this compiles
    Result := AControl in AControls; // does not compile!
end;
Run Code Online (Sandbox Code Playgroud)

我可能错误地用开放数组动态数组.
我怎么测试"AControl in AControls"呢?我应该将低(AControls)迭代到高(AControls)并测试匹配,或者什么?

另外,有没有办法为open数组设置默认值?

AControls: array of TControl = []
Run Code Online (Sandbox Code Playgroud)

也不编译.

delphi delphi-7

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

标签 统计

delphi ×6

delphi-7 ×6

csv ×1

grouping ×1

separator ×1

unicode ×1

xml ×1