Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Theme-Rahmen vom TEdit zeichnen (https://www.delphipraxis.net/153127-theme-rahmen-vom-tedit-zeichnen.html)

BlueStarHH 22. Jul 2010 08:33

Theme-Rahmen vom TEdit zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich möchte in eine Paintbox den Rahmen von einem TEdit zeichnen. Dabei soll das aktive Theme (XP,Vista,7) verwendet werden. Ich habe es mit dem Code unten probiert, doch der gezeichnete Rahmen sieht nicht so aus wie der Rahmen vom TEdit. Im Bildschirmfoto mein mit der Paintbox gezeichneter Rahmen und zum Vergleich ein TEdit, so wie es aussehen soll. Danke für die Hilfe! Bitte ganz genau hinschauen, sonst sieht man evtl. die Unterschiede nicht.

Delphi-Quellcode:
uses Themes;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  Details: TThemedElementDetails;
begin
  if ThemeServices.ThemesEnabled then
  begin
    Details := ThemeServices.GetElementDetails(teEditRoot);
    ThemeServices.DrawElement(PaintBox1.Canvas.Handle, Details, PaintBox1.ClientRect);
  end;
end;

uligerhardt 22. Jul 2010 08:59

AW: Theme-Rahmen vom TEdit zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Unter XP schaut's gleich aus, soweit ich erkennen kann.

BlueStarHH 22. Jul 2010 09:04

AW: Theme-Rahmen vom TEdit zeichnen
 
Zitat:

Zitat von uligerhardt (Beitrag 1036768)
Unter XP schaut's gleich aus, soweit ich erkennen kann.

Mein Bildschirmfoto ist unter Windows 7 entstanden. Dort und unter Windows Vista sieht der Rahmen anders als unter XP aus. Er ist nicht mehr einfarbig sondern oben dunkler als unten.

himitsu 22. Jul 2010 09:10

AW: Theme-Rahmen vom TEdit zeichnen
 
Hast du mal 'nen anderes Detail probiert, wie z.B. teEditTextNormal?

uligerhardt 22. Jul 2010 09:58

AW: Theme-Rahmen vom TEdit zeichnen
 
Zitat:

Zitat von himitsu (Beitrag 1036775)
Hast du mal 'nen anderes Detail probiert, wie z.B. teEditTextNormal?

Genau. Du kannst auch mal mit Mike Lischkes Windows XP Theme Manager in den möglichen Elementen rumstöbern.

BlueStarHH 22. Jul 2010 10:09

AW: Theme-Rahmen vom TEdit zeichnen
 
Zitat:

Zitat von himitsu (Beitrag 1036775)
Hast du mal 'nen anderes Detail probiert, wie z.B. teEditTextNormal?

Auch mit teEditTextNormal und den anderen teXXXX gehts nicht.

BlueStarHH 7. Sep 2010 11:08

AW: Theme-Rahmen vom TEdit zeichnen
 
Hier ist die Lösung:
http://stackoverflow.com/questions/3...der-of-a-tedit

Sherlock 25. Jan 2011 10:58

AW: Theme-Rahmen vom TEdit zeichnen
 
Eine grundsätzliche Frage zu dieser Thematik: Muss das "XP-Manifest" für die Anwendung vorliegen, oder geht das auch ohne?

Sherlock

uligerhardt 25. Jan 2011 11:17

AW: Theme-Rahmen vom TEdit zeichnen
 
Zitat:

Zitat von Sherlock (Beitrag 1077169)
Eine grundsätzliche Frage zu dieser Thematik: Muss das "XP-Manifest" für die Anwendung vorliegen, oder geht das auch ohne?

Ich behaupte mal, ohne Manifest geht das nur mit einem extremen Haufen an Hacks - Theme-Daten selber erstmal finden, dann parsen, zeichnen, ... Und wenn du in der Lage bist, das in deine Anwendung einzubauen, kannst du auch ein Manifest integrieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz