AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TTabControl, XP-Style, OwnerDraw

Ein Thema von EConvertError · begonnen am 1. Okt 2006 · letzter Beitrag vom 13. Okt 2006
 
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#17

Re: TTabControl, XP-Style, OwnerDraw

  Alt 11. Okt 2006, 19:30
Und die Zeichenroutinen beim ThemeManager ähneln stark den normalen, wie z.B.rawEdge, nur dass die Parameter verständlicher sind und man nicht so viel zeichnen muss, wie bei den oldscool 3d effekten.
Im Endeffekt ists weniger code.
Hier mal ein Bleistift:
Delphi-Quellcode:
  Procedure DrawBtn( _sText: String;
                     _bDown: Boolean);
  Var
    oEleDet: TThemedElementDetails;
  Begin
    If ThemeServices.ThemesEnabled //hier mit Themes
    Then Begin
// ab her wird das Element ermittelt
      If _bDown
      Then oEleDet:=ThemeServices.GetElementDetails(tbPushButtonPressed)
      Else Begin
        If _iIndex=iMouseOver
        Then oEleDet:=ThemeServices.GetElementDetails(tbPushButtonHot)
        Else oEleDet:=ThemeServices.GetElementDetails(tbPushButtonNormal);
      End;
//hier ist dann das Zeichnen
      ThemeServices.DrawElement(Canvas.Handle,oEleDet,oRect);
      ThemeServices.DrawText(Canvas.Handle,oEleDet,
                             _sText,oRect,DT_CENTER Or DT_VCENTER,0);
    End Else Begin //Hier ohne
      If _bDown
      Then DrawEdge(Canvas.Handle,oRect,BDR_SUNKEN,
                    BF_RECT Or BF_SOFT Or BF_ADJUST Or BF_MIDDLE)
      Else DrawEdge(Canvas.Handle,oRect,BDR_RAISED,
                    BF_RECT Or BF_SOFT Or BF_ADJUST Or BF_MIDDLE);
      Canvas.Brush.Color:=clBtnFace;
      If _iIndex=iMouseOver
      Then Canvas.Font.Color:=clHighlightText
      Else Canvas.Font.Color:=clWindowText;
      DrawText(Canvas.Handle,@_sText[1],1,oRect,DT_CENTER Or DT_VCENTER);
    End;
  End;
Wobei diese Prozedur in eine andere eingebettet ist und oRect ist ne variable der äusseren...
die tbXXX Konstanten findest Du auch in der Unit Themes ...
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz