5

xe2 に変換されている大量のレガシー コードを含む大規模な Delphi アプリケーションに取り組んでいます。私は vcl スタイルを実装していますが、ほとんど問題はありません。

ただし、一部のフォーム、特にページ コントロールとタブ シートを含む tpanel がある場合、タブシートが正しく描画されないことがあります。タブシートがある領域に以前あった画像が表示されます。したがって、フォームが最初に表示されるときは、コンピューターの背景画面になりますが、タブを変更すると、タブの背景/ラベル/コンポーネントが重なって表示されます。

これは、vcl スタイルを使用している場合にのみ発生します。スタイルを適用しないと、すべてが正常に表示されます。

一部のタブでのみ発生します。この問題を引き起こしている可能性のある特定のプロパティまたはメソッド呼び出し (またはその欠如) を分離しようとしましたが、特にこのコードで呼び出されるメソッドの純粋なサイズ (いくつかの形式では、起動するメソッド) を考えると、本当に苦労しています。タブの変更は 1000 行を超えるコードです)。

これが起こっていることを示すためにいくつかのスクリーン ショットを撮りに行きましたが、スクリーン ショットのフォームはすべて正しくレンダリングされています。これは、私が見ているものと実際に「そこにある」ものとの間にある種の断絶があることを示唆しています。

どんなアドバイスでも大歓迎です。

4

2 に答える 2

0

Windows XP PCで同じ問題であると思われるものを再現できました
.Windows 8.1は同じexeで正常に動作するようでした

Delphi XE 5を実行しています

新しい VCL フォーム アプリケーションを開始する

以下のコードをクリップボードにコピーします

新しいプロジェクトのメイン フォームをクリックして貼り付けます

次に、[プロジェクト] > [オプション] > [アプリケーション] > [外観] > [Luna などの任意のスタイルを選択] に移動します。

プロジェクトを実行すると、タブ「ts3」には以前の背景が表示されます。

上記のElissaが提案したように、パネルでDoubleBufferedをtrueに設定すると、印刷が改善されました

また、DBEdit15、DBEdit16、および DBEdit18 を visible false に設定すると、印刷が改善されましたが、その理由を特定できませんでした

object pgc1: TPageControl
  Left = 0
  Top = 0
  Width = 635
  Height = 299
  ActivePage = ts3
  Align = alClient
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  ParentFont = False
  TabOrder = 0
  object ts3: TTabSheet
    Caption = 'ts3'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    ImageIndex = 2
    ParentFont = False
    object pTotals: TPanel
      Left = 3
      Top = 36
      Width = 486
      Height = 237
      BevelOuter = bvNone
      DoubleBuffered = False
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      ParentDoubleBuffered = False
      ParentFont = False
      TabOrder = 0
      object Label19: TLabel
        Left = 3
        Top = -4
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label21: TLabel
        Left = 3
        Top = 59
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label22: TLabel
        Left = 3
        Top = 115
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label23: TLabel
        Left = 3
        Top = 167
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'Tahoma'
        Font.Style = []
        ParentFont = False
      end
      object Label24: TLabel
        Left = 233
        Top = 216
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
        Visible = False
      end
      object Label29: TLabel
        Left = 343
        Top = 145
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label30: TLabel
        Left = 343
        Top = 165
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label48: TLabel
        Left = 3
        Top = 21
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label53: TLabel
        Left = 319
        Top = 91
        Width = 8
        Height = 13
        Caption = 'llll'
      end
      object Label54: TLabel
        Left = 3
        Top = 139
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object Label64: TLabel
        Left = 343
        Top = 185
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object lbCons: TLabel
        Left = 3
        Top = 81
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
        Visible = False
      end
      object lPeriod_1: TLabel
        Left = 343
        Top = -4
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object lPeriod_2: TLabel
        Left = 343
        Top = 16
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object lPeriod_3: TLabel
        Left = 343
        Top = 39
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object lPeriod_4: TLabel
        Left = 343
        Top = 60
        Width = 8
        Height = 13
        Alignment = taRightJustify
        Caption = 'llll'
      end
      object btnPayHist: TButton
        Left = 15
        Top = 200
        Width = 121
        Height = 25
        Caption = 'btn'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'Tahoma'
        Font.Style = []
        ParentFont = False
        TabOrder = 0
      end
      object btnRefreshTotals: TBitBtn
        Left = 355
        Top = 112
        Width = 121
        Height = 25
        Caption = 'btn'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'Tahoma'
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 1
      end
      object DBEdit13: TDBEdit
        Left = 23
        Top = 0
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ParentShowHint = False
        ReadOnly = True
        ShowHint = False
        TabOrder = 2
      end
      object DBEdit14: TDBEdit
        Left = 23
        Top = 25
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ParentShowHint = False
        ReadOnly = True
        ShowHint = False
        TabOrder = 3
      end
      object DBEdit15: TDBEdit
        Left = 23
        Top = 119
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 4
      end
      object DBEdit16: TDBEdit
        Left = 23
        Top = 171
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 5
      end
      object DBEdit17: TDBEdit
        Left = 249
        Top = 213
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        DataField = 'Last_Statement'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 6
        Visible = False
      end
      object DBEdit18: TDBEdit
        Left = 23
        Top = 143
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 7
      end
      object DBEdit19: TDBEdit
        Left = 23
        Top = 63
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 8
      end
      object DBEdit20: TDBEdit
        Left = 23
        Top = 87
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 9
        Visible = False
      end
      object DBEdit21: TDBEdit
        Left = 363
        Top = 0
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 10
      end
      object DBEdit22: TDBEdit
        Left = 357
        Top = 16
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 11
      end
      object DBEdit23: TDBEdit
        Left = 363
        Top = 43
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 12
      end
      object DBEdit24: TDBEdit
        Left = 363
        Top = 64
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 13
      end
      object DBEdit25: TDBEdit
        Left = 363
        Top = 150
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 14
      end
      object DBEdit26: TDBEdit
        Left = 363
        Top = 170
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 15
      end
      object DBEdit27: TDBEdit
        Left = 355
        Top = 182
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 16
      end
      object DBEdit28: TDBEdit
        Left = 363
        Top = 96
        Width = 121
        Height = 21
        TabStop = False
        Color = clBtnFace
        Ctl3D = True
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clBlack
        Font.Height = -11
        Font.Name = 'MS Sans Serif'
        Font.Style = []
        ParentCtl3D = False
        ParentFont = False
        ReadOnly = True
        TabOrder = 17
      end
    end
    object Panel2: TPanel
      Left = 0
      Top = 0
      Width = 627
      Height = 30
      Align = alTop
      BevelOuter = bvNone
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      ParentFont = False
      TabOrder = 1
      object pDisp2: TPanel
        Left = 69
        Top = 4
        Width = 473
        Height = 21
        BevelOuter = bvNone
        Caption = 'pDisp2'
        Font.Charset = DEFAULT_CHARSET
        Font.Color = clWindowText
        Font.Height = -11
        Font.Name = 'Tahoma'
        Font.Style = []
        ParentFont = False
        TabOrder = 0
        object Label18: TLabel
          Left = 1
          Top = 4
          Width = 8
          Height = 13
          Caption = 'llll'
          Font.Charset = DEFAULT_CHARSET
          Font.Color = clWindowText
          Font.Height = -11
          Font.Name = 'Tahoma'
          Font.Style = []
          ParentFont = False
        end
        object DBEdit29: TDBEdit
          Left = 51
          Top = 0
          Width = 421
          Height = 21
          TabStop = False
          Color = clBtnFace
          Ctl3D = True
          DataField = 'Name'
          Font.Charset = DEFAULT_CHARSET
          Font.Color = clBlack
          Font.Height = -11
          Font.Name = 'MS Sans Serif'
          Font.Style = []
          ParentCtl3D = False
          ParentFont = False
          ReadOnly = True
          TabOrder = 0
        end
      end
    end
  end
  object ts1: TTabSheet
    Caption = 'ts1'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentFont = False
    object shp1: TShape
      Left = 48
      Top = 32
      Width = 521
      Height = 201
    end
    object Shape1: TShape
      Left = 120
      Top = 104
      Width = 377
      Height = 81
    end
  end
end
于 2015-04-20T07:41:40.153 に答える