2013-05-23 11 views
5

Pracuję nad dużą aplikacją delphi z toną starego kodu, który jest konwertowany na xe2. Wdrażam style vcl iw większości przypadków nie ma problemu.Delphi XE2 VCL style nie rysuje poprawnie Tabsheets

Jednak w przypadku niektórych formularzy, szczególnie w przypadku, gdy posiadam tpanel, z kontrolką strony i zakładkami na arkuszach, tabele czasami nie rysują poprawnie. Wyświetlają obraz, który wcześniej znajdował się w obszarze, w którym znajduje się arkusz. Tak więc po pierwszym wyświetleniu formularza będzie to ekran tła na moim komputerze, ale jeśli zmienię karty, zakładki tła/etykiety/komponenty wydają się zachodzić na siebie.

Dzieje się tak tylko wtedy, gdy używam stylów vcl, jeśli nie zastosuję stylu, wszystko wygląda normalnie.

Występuje tylko na niektórych kartach. Próbowałem wyizolować konkretną właściwość lub wywołanie metody (lub jej brak), które mogą być przyczyną tego problemu, ale naprawdę mam problemy, szczególnie biorąc pod uwagę czysty rozmiar metod zwanych w tym kodzie (w niektórych formach, metoda, która strzela na zakładce zmiana przekracza 1000 linii kodu).

Poszedłem zrobić kilka zrzutów ekranu, aby zademonstrować to zdarzenie, ale formularze na zrzutach ekranu są renderowane poprawnie. Sugeruje to mi, że istnieje pewien związek między tym, co widzę, a tym, co jest "tam".

Każda rada byłaby najbardziej ceniona.

+1

Co zawartość zrzut ekranu różni się od tego, co faktycznie zobaczyć na ekranie –

+1

@MrLister Tak? , mo dziwna rzecz, którą widziałem. – Elissa

+0

Czy istnieje niestandardowy rysunek w kodzie (poszukaj "OnDraw")? Czy miesza się z DoubleBuffering lub innymi właściwościami, które mogą wpływać na budowanie ekranu? –

Odpowiedz

1

Może powinieneś użyć Vcl Styles Utils, co poprawia błąd stylu w delphi. Jeśli dobrze pamiętam, malowanie TTabSheets jest domyślnie niepoprawne - z wyjątkiem umieszczenia go w TPanel/etc.

0

udało mi się odtworzyć to, co moim zdaniem jest ten sam problem na Windows XP PC,
Windows 8.1 wydawał się działać dobrze z tym samym exe

Im uruchomiony Delphi XE 5

rozpocząć nowy VCL Forms Application

Skopiuj poniższy kod do schowka

Kliknij na głównej postaci w swoim nowym projekcie i Wklej

następnie przejdź do Projekt> Opcje> Aplikacja> Wygląd> "Wybierz dowolny styl, np. Luna”

Uruchom projekt, zakładka«TS3»ma tła, co było wcześniej.

ustawienie DoubleBuffered true na panelu sugerowane przez Elissa powyżej nie sprawiają, że drukowanie lepiej

także ustawienie DBEdit15, DBEdit16 i DBEdit18 do widocznego FAŁSZ sprawiło, że drukowanie lepiej - ale nie udało mi się ustalić, dlaczego

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 
Powiązane problemy