- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此代码为我的 TStringGrid (FMX - 10.4.1) 设置列标题
procedure TForm1.StringGrid1ApplyStyleLookup(Sender: TObject);
var
Header: THeader;
HeaderItem: THeaderItem;
I: Integer;
begin
Header:= THeader((Sender as TStringGrid).FindStyleResource('header'));
if Assigned(Header) then
begin
for I := 0 to pred(Header.Count) do
begin
HeaderItem:= Header.Items[I];
HeaderItem.StyledSettings := HeaderItem.StyledSettings - [TStyledSetting.Size, TStyledSetting.FontColor];
HeaderItem.Font.Size := 20;
HeaderItem.FontColor:= TAlphaColors.Blue;
HeaderItem.TextSettings.HorzAlign := TTextAlign.Center;
HeaderItem.TextSettings.VertAlign := TTextAlign.Center;
end;
Header.Height := 28;
end;
end;
我按预期得到了这个结果
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 400
ClientWidth = 600
Position = DesktopCenter
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
object StringGrid1: TStringGrid
Align = Client
CanFocus = True
ClipChildren = True
Margins.Left = 5.000000000000000000
Margins.Top = 50.000000000000000000
Margins.Right = 5.000000000000000000
Margins.Bottom = 5.000000000000000000
Size.Width = 590.000000000000000000
Size.Height = 345.000000000000000000
Size.PlatformDefault = False
StyleLookup = 'gridstyle'
TabOrder = 0
RowCount = 0
Options = [ColumnResize, ColLines, RowLines, RowSelect, Tabs, Header]
OnApplyStyleLookup = StringGrid1ApplyStyleLookup
Viewport.Width = 586.000000000000000000
Viewport.Height = 320.000000000000000000
object StringColumn1: TStringColumn
Header = 'Test'
end
end
object Button1: TButton
Position.X = 8.000000000000000000
Position.Y = 8.000000000000000000
Size.Width = 177.000000000000000000
Size.Height = 33.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
Text = 'Show Form Properties'
OnClick = Button1Click
end
object Text1: TText
Anchors = [akLeft, akTop, akRight]
Position.X = 192.000000000000000000
Position.Y = 8.000000000000000000
Size.Width = 401.000000000000000000
Size.Height = 33.000000000000000000
Size.PlatformDefault = False
Text = 'Unkown'
TextSettings.HorzAlign = Trailing
end
end
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
System.Rtti, System.TypInfo,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Grid.Style,
FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Grid, FMX.Header,
FMX.Objects;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Text1: TText;
StringColumn1: TStringColumn;
procedure Button1Click(Sender: TObject);
procedure StringGrid1ApplyStyleLookup(Sender: TObject);
private
{ Private declarations }
FCount: cardinal;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
PropList: PPropList;
PropCount, PropIndex: Integer;
begin
StringGrid1.ClearColumns;
PropCount:= GetPropList(Form1, PropList);
StringGrid1.RowCount:= PropCount;
StringGrid1.RowHeight:= 20;
StringGrid1.AddObject(TStringColumn.Create(StringGrid1));
StringGrid1.Columns[0].Width:= (StringGrid1.Width - 24) / 2;
StringGrid1.Columns[0].HorzAlign:= TTextAlign.Leading;
StringGrid1.Columns[0].Header:= 'Property';
StringGrid1.AddObject(TStringColumn.Create(StringGrid1));
StringGrid1.Columns[1].Width:= (StringGrid1.Width - 24) / 2;
StringGrid1.Columns[1].HorzAlign:= TTextAlign.Leading;
StringGrid1.Columns[1].Header:= 'Value';
for PropIndex:= 0 to pred(PropCount) do
begin
StringGrid1.Cells[0, PropIndex]:= PropList[PropIndex].Name;
StringGrid1.Cells[1, PropIndex]:= GetPropValue(Form1, PropList[PropIndex].Name, true);
end;
end;
procedure TForm1.StringGrid1ApplyStyleLookup(Sender: TObject);
var
Header: THeader;
HeaderItem: THeaderItem;
I: Integer;
begin
inc(FCount);
Text1.Text:= Format('Executed [%.3d]', [FCount]);
Header:= THeader((Sender as TStringGrid).FindStyleResource('header'));
if Assigned(Header) then
begin
for I := 0 to pred(Header.Count) do
begin
HeaderItem:= Header.Items[I];
HeaderItem.StyledSettings := HeaderItem.StyledSettings - [TStyledSetting.Size, TStyledSetting.FontColor];
HeaderItem.Font.Size := 20;
HeaderItem.FontColor:= TAlphaColors.Blue;
HeaderItem.TextSettings.HorzAlign := TTextAlign.Center;
HeaderItem.TextSettings.VertAlign := TTextAlign.Center;
end;
Header.Height := 28;
end;
end;
end.
最佳答案
我不能回答“为什么”的问题,除了“设计”。
但是要解决您的问题,请调用
StringGrid1.NeedStyleLookup;
在对网格的结构(列数/行数)进行更改后。
关于delphi - TStringGrid 的 FMX 自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65475645/
我创建了一个 FMX 组件,它是一个按钮数组。它有一个简单的列和行计数属性。数组中的每个按钮本身都是一个组件,当行数或列数发生更改时,我删除所有按钮并重新创建所需的数量。 我遇到的问题是,删除组件后,
是否可以在 Delphi FMX 中使用鼠标调整无边框窗体的大小?我尝试使用 OnMouseDown 和 OnMouseMove ,然后使用表单的位置与表单的左侧和顶部进行比较,但我无法使其工作。 出
我有一个带有 CheckColumn 的网格,该网格通过实时绑定(bind)与查询连接。当我打开查询时,所有数据都加载到网格中,但复选框不显示。如果我单击网格,则会出现复选框。 我打开查询时的图片:
我正在尝试构建一个看似简单的 GUI,其中可以平移、缩放和旋转 Timage。缩放和旋转应在/围绕定义的缩放和旋转中心位置进行。 我首先在 Windows 上尝试这个。现在一切正常,除了当图像旋转时,
我想知道如何反编译 fmx 文件以便在没有源代码的情况下对应用程序进行一些更改,我们只有 .fmx (Oracle 9i) 文件并且确实需要源代码。 最佳答案 实际上没有用于反编译 FMX 的工具。您
我有简单的 fmx 表单(Delphi 10.2 Tokyo): 在代码中,我将 Button2 显示为第二个: procedure TForm6.FormCreate(Sender: TObject
我在使用 FMX(XE3、Windows)设置托盘图标时遇到问题。我使用的代码可以在无数线程中找到,但我没有获得图标工作的消息处理。 为了说明这一点,我创建了一个测试应用程序,它在 FormCreat
我正在 firemonkey 中使用 DirectShow,但在输出视频时遇到问题。 iVideoWindow.Put_Owner(Panel1.Handle); 我需要 TPanel 的句柄,以在其
所以我一直在基于两个不同的源代码开发这个 TrayIcon 组件。 一款适用于 Windows,一款适用于 Mac。 一切工作正常,除了当使用 FMX TPopupMenu 作为托盘图标菜单时,它不断
假设我在 Firemonkey 中有一个小位图(比如 32x24 像素)。因此,我将 TImage 放入表单中,并在构造函数中包含以下代码: Image1.Bitmap.Create(32, 24
使用样书时,如果按钮已禁用,则颜色很难说明该按钮已禁用。因此,我想在按钮禁用时更改颜色。我怎么做。我正在使用德尔福西雅图 最佳答案 这并不像更改样式书中的正常颜色那么简单。禁用的外观是通过降低控件的不
我创建了一个测试新的 FMX 项目。向其中添加了一个 TabControl。使用上下文菜单添加 3 个选项卡。向第三个选项卡添加一个 TEdit。向选项卡控件添加了 OnChangeEvent 处理程
在 VCL 中,这是我如何从两个图像制作单个图像,同时在它们之间创建空间: procedure TForm2.Button1Click(Sender: TObject); var p1,p2:str
我有一个包含 2 RadioButtons(具有相同 GroupName)的表单,我需要保存 'A'(如果选择了 RadioButton1)或 'I' (如果选择了 RadioButton2)在状态字
我通过 TCameraComponent.SampleBufferReady 事件收到位图。然后我需要裁剪接收到的图像,以便获得例如矩形图像。 我用以下方法计算了必要的参数: procedure TP
我在 Delphi 10.1 的多设备应用程序(在 Windows 上)中遇到问题。我有一个 StringGrid (连接到数据库),我可以更改行的背景颜色,但问题是单元格之间有“填充”(灰色/银色)
有一些关于将 FMX 表单嵌入面板的代码... http://docwiki.embarcadero.com/CodeExamples/XE5/en/FMXEmbeddedForm_(Delphi)
通常在使用 TDataset 后代作为数据存储(例如 TClientDataset)的 Delphi VCL 应用程序中,在 Dataset1BeforeDelete 处理程序中,我们执行如下操作:
我目前正在使用 Delphi 10 Seattle 开发 Android 应用程序。我拥有一个 Galaxy Tab E (SM-T560) 和一个 Samsung Galaxy S3 Mini 来测
大家下午好! 我目前的一个项目遇到了一个相当烦人的问题。我正在我当前的一个项目中使用硬件库(Andreas Hausladen 的 NVAPI Pascal header 翻译)。这个库允许我从 NV
我是一名优秀的程序员,十分优秀!