要約:
(1)これはバグである可能性が非常に高いです。ただし、64ビットOS、VCL、MFCラッパーのいずれに関連しているのかはわかりません。Delphiの専門家からの以下の回答とコメントを確認してください。
(2)私にとっての回避策:
a。状況は、ステータスバーに表示するsix
Key-Valueがあるということです。pairs
値は実行時に変更されます。
b。パネルset text
以上のことはできないようです。
c。この点で、値の呼び出しを使用し、最後の2つのキーの呼び出しを使用します。したがって、制限を超える必要はありません。
d。仕事をするために、私はそれがすでに持っている別のテキストを提供する必要があります。10
six
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'
================================================== ================
私のWindows7X64では、statusBarに11日以降のパネルのテキストが正しく表示されません。
(1)空のVCLアプリケーションプロジェクトを新しくwithout
保存します。デザイン時に11番目のステータスパネルのテキストを設定すると、実行時にテキストがまったく表示されません。(添付の写真を参照してください。)
(2)保存して再度開くと、デザイン時にテキストも表示されません。
(3)実行時にテキストを設定すると、新しいテキストが古いテキストと異なる場合にのみテキストが表示されます。11番目のパネルのテキストが'try'
設計時 に設定されているとします。
Self.stat1.Panels[10].Text := 'try'; // 'try' is not shown
self.stat1.Panels[10].Text := 'try_'; // 'try_' is shown
(4)この動作は、Windows 7 X64でのみ発生し、WindowsXPでは発生しません。
(5)同じ動作がすべてのDelphiバージョンに当てはまると思います。
(6)動作はDelphiよりもWindowsバージョンに関連しているようです。つまり、同じサンプルアプリケーションは、Windows 7では上記の動作を示しますが、WindowsXPでは示しません。
(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)サンプル写真:
考えられる理由について誰かがコメントするのを手伝ってもらえますか?どんな提案でも大歓迎です!