总结:
(1)这很可能是一个bug。但是,我不能确定它是否与 64 位操作系统、VCL 或 MFC 包装器更相关。请查看以下 Delphi 专家的回答和评论。
(2) 我
的解决方法:情况是我有six
键值pairs
显示在状态栏中。这些值将在运行时更改。
湾。看来我不能set text
超过10
面板。
C。在这方面,我将对值使用six
调用,并对最后两个键使用调用。因此,我不必超过限制。
d。为了完成工作,我需要提供它已有的不同文本。set text
two
set text
10
set text
e. 因此示例代码可以描述为:
// Designtime
stat1.Panels[0].Text := 'Key1'
stat1.Panels[2].Text := 'Key2'
stat1.Panels[4].Text := 'Key3'
stat1.Panels[6].Text := 'Key4'
stat1.Panels[8].Text := 'Key5__'
stat1.Panels[10].Text := 'Key6__'
// runtime
stat1.Panels[1].Text := 'Value1'
stat1.Panels[3].Text := 'Value2'
stat1.Panels[5].Text := 'Value3'
stat1.Panels[6].Text := 'Value4'
stat1.Panels[9].Text := 'Value5'
stat1.Panels[11].Text := 'Value6'
stat1.Panels[8].Text := 'Key5'
stat1.Panels[10].Text := 'Key6'
==================================================== =================
在我的 Windows 7 X64 中,状态栏没有正确显示从 11 号开始的面板的文本。
(1)新建一个空的VCL应用项目without
保存,如果我在设计时为第11个状态面板设置了文本,在运行时文本根本不会显示。(见附图。)
(2)如果我保存并重新打开它,文本也不会在设计时显示。
(3) 如果我在运行时设置文本,只有当新文本与旧文本不同时才会显示文本。假设第 11 个面板的 Text'try'
在设计时设置为:
Self.stat1.Panels[10].Text := 'try'; // 'try' is not shown
self.stat1.Panels[10].Text := 'try_'; // 'try_' is shown
(4) 这种行为只发生在我的 Windows 7 X64 上,而不会发生在我的 Windows XP 上。
(5) 我认为相同的行为适用于所有 Delphi 版本。
(6) 似乎该行为与 Windows 版本的关系比与 Delphi 的关系更大。我的意思是,相同的示例应用程序将在 Windows 7 上显示上述行为,但在 Windows XP 上不会。
(7) 一个示例 dfm 文件转储如下:
object Form3: TForm3
Left = 0
Top = 0
Caption = 'Form3'
ClientHeight = 202
ClientWidth = 731
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object stat1: TStatusBar
Left = 0
Top = 183
Width = 731
Height = 19
Panels = <
item
Text = '0'
Width = 50
end
item
Text = '1'
Width = 50
end
item
Text = '2'
Width = 50
end
item
Text = '3'
Width = 50
end
item
Text = '4'
Width = 50
end
item
Text = '5'
Width = 50
end
item
Text = '6'
Width = 50
end
item
Text = '7'
Width = 50
end
item
Text = '8'
Width = 50
end
item
Text = '9'
Width = 50
end
item
Text = '10'
Width = 50
end
item
Text = '11'
Width = 50
end>
ExplicitLeft = 248
ExplicitTop = 152
ExplicitWidth = 0
end
object btn1: TButton
Left = 152
Top = 40
Width = 433
Height = 89
Caption = 'btn1'
TabOrder = 1
OnClick = btn1Click
end
end
(8) 样张图片:
有人可以帮助评论可能的原因吗?任何建议表示赞赏!