![]() |
Transparente TEdit auch mit XPManifest
Hallo NG,
weiß einer von Euch Profis (ich leider noch nicht) wie man auch mit Einsatz von XPManifest in D7 zum Beispiel TEdit Componenten transparent gestalten kann ? Das Überschreiben von WMEraseBkGnd und Co. funktioniert leider mit XPManifest nicht. Wäre ganz nett - Danke Kurti |
Re: Transparente TEdit auch mit XPManifest
Ich schließe mich dieser Frage an. Alle Beispiele die man findet sind nur für Forms ohne das
Xp Manifest geeignet (für die Forms habe ich schon eine funktionierende Variante). Also wie kriegt man das ganze für Forms mit Xp Manifest hin? Vielen Dank. MfG |
Re: Transparente TEdit auch mit XPManifest
Und wenn man das Theming für Edits deaktiviert, funktioniert es dann?
|
Re: Transparente TEdit auch mit XPManifest
Zitat:
Bedingung wäre natürlich, dass das Theming für alle Edits deaktiviert wird. Weiterhin sollte es auch ohne Zusatzkomponenten möglich (Thememanager). Vielen Dank. madas |
Re: Transparente TEdit auch mit XPManifest
Ich weiß ja nicht wie du es ausprobiert hast, das hast du ja nicht genau verraten. Aber abgesehen davon, dass unter Vista der Hintergrund im Edit etwas verschoben ist funktioniert das hiermit z.B. schon:
![]() |
Re: Transparente TEdit auch mit XPManifest
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, die Komponente habe ich auch schon durch.
Naja und das Ergebnis hat mit Transparenz nicht viel zu tun (siehe Anhang). |
Re: Transparente TEdit auch mit XPManifest
HI,
so wie ich das Ergebnis sehe, egibt sich für mich folgende Frage: Muss das unbedingt ein TEdit sein? Wenn nicht, nimm einfach ein TLabel und setze Transparent auf true. Dann kannst du auch noch zum editieren sagen: Beim Doppelklick auf das Label soll ein Edit kommen, in dem man den Wert des Labels aktualisiert. Somit wäre das Problem einfach umgangen. Wenn ja, kann ich leider keine Lösung bieten Bernhard EDIT: Speichere deine Bilder bitte direkt im Forum per Anhang ab. Dann kannst du sie als noch per [img] anzeigen. Wir sind dann nicht mehr auf die ImageHack-Server angewiesen. |
Re: Transparente TEdit auch mit XPManifest
Zitat:
So ich glaube ich habe jetzt eine Lösung für ein Form mit Xp-Manifest:
Delphi-Quellcode:
Wäre nett wenn das mal jemand testen würde. Einziger Nachteil von dem Edit ist,
unit TransEdit;
interface uses Windows, Messages, SysUtils, Classes, Controls, StdCtrls, Graphics; type TTransEdit = class(TEdit) private { Private declarations } procedure SetTransparent(Value: Boolean); function GetTransparent: Boolean; protected { Protected declarations } procedure CNCtlColorEdit(var Message: TWMCtlColorEdit); message CN_CTLCOLOREDIT; public { Public declarations } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published declarations } property Transparent: Boolean read GetTransparent write SetTransparent default False; end; procedure Register; implementation { TTransEdit } uses Forms, Themes; procedure Register; begin RegisterComponents('Test', [TTransEdit]); end; constructor TTransEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TTransEdit.Destroy; begin inherited Destroy; end; procedure TTransEdit.SetTransparent(Value: Boolean); begin if Transparent <> Value then begin if Value then ControlStyle := ControlStyle - [csOpaque] else ControlStyle := ControlStyle + [csOpaque]; Invalidate; end; end; function TTransEdit.GetTransparent: Boolean; begin Result := not (csOpaque in ControlStyle); end; procedure TTransEdit.CNCtlColorEdit(var Message: TWMCtlColorEdit); begin with ThemeServices do if ThemesEnabled and Transparent then begin SetBkMode(Message.ChildDC, Windows.TRANSPARENT); DrawParentBackground(Handle, Message.ChildDC, nil, False); Message.Result := GetStockObject(NULL_BRUSH); end else inherited; end; end. wenn das Edit über mehrere Controls geht, flackert es ein bissel. Aber dafür findet sich sicher auch eine Lösung. Hat jemand eine Idee, wie man noch das Flackern beseitigen kann? Vielen Dank. madas |
Re: Transparente TEdit auch mit XPManifest
Also unter Vista scheint der Hintergrund des Formulars durch, wenn ich das Edit z.B. über ein Memo lege.
Gegen das Flackern habe ich einmal DoubleBuffered getestet, aber das gibt Grafikfehler, auch inkl. DoubleBuffered Fix. |
Re: Transparente TEdit auch mit XPManifest
Zitat:
von der Anzeige her sieht es so i.O. aus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 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