![]() |
Xp-Mainfest auf einzelne Forms beziehen
Hi,
kann ich das Xp-Mainfest auf einzelne Forms beziehen ? |
Re: Xp-Mainfest auf einzelne Forms beziehen
Nein, es wird Teil der ressource und wirkt sich auf alle Fenster einer Anwendung aus.
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Das ist schlecht. Kann ich das Xp-Design anders in einzelne Forms reinbringen ? (Eine meiner Forms darf kein Xp-Mainfest enthalten, da sonst Fehler auftreten)
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Im Forum wurde gepostet, wie man das XP-Design für alle (ein spezielles) Control(s) eines Forms deaktivieren kann.
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Da hab ich jetzt aber keinen Thread gefunden....
|
Re: Xp-Mainfest auf einzelne Forms beziehen
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Ich benutze aber kein normales Memo. Ich benutze das TTransMemo. Da geht es leider nicht.
Mal andersherum: Könnte ich nur Buttons und eine ListView mit Xp-Design versehen ? |
Re: Xp-Mainfest auf einzelne Forms beziehen
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Zitat:
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Zitat:
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Deswegen soll er ihn ja suchen. Ein Workaround ist immer die schlechteste aller Mittel. Ein Anfang wäre schon mal, wenn er einen Thread im Forum eröffnen würde und uns mal den Fehler darlegen würde. Sollte er ihn schon in einer Fremdkomponente lokalisiert haben, wäre es zum Beispiel auch sinnvoll den Hersteller zu komtaktireen.
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Zitat:
|
Re: Xp-Mainfest auf einzelne Forms beziehen
Es war eine andere Komponente. Ich habe sie mal schnell ausgetauscht, läuft jetzt alles. Danke.
Hier die Komponente:
Delphi-Quellcode:
unit TrMemo;
{$R-} interface uses Messages, Controls, StdCtrls,classes; const TMWM__SpecialInvalidate=WM_USER+1111; type TTransparentMemo = class(TMemo) private procedure SpecialInvalidate(var Message:TMessage); message TMWM__SpecialInvalidate; procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL; procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL; procedure WMSetText(var Message:TWMSetText); message WM_SETTEXT; procedure CNCTLCOLOREDIT(var Message:TWMCTLCOLOREDIT); message CN_CTLCOLOREDIT; procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND; protected procedure CreateParams(var Params: TCreateParams); override; public constructor Create(AOwner: TComponent); override; end; procedure Register; implementation uses Windows; { TTransparentMemo } procedure TTransparentMemo.WMHScroll(var Message: TWMHScroll); begin inherited; PostMessage(Handle,TMWM__SpecialInvalidate,0,0); end; procedure TTransparentMemo.WMVScroll(var Message: TWMVScroll); begin SendMessage(Handle,TMWM__SpecialInvalidate,0,0); inherited; PostMessage(Handle,TMWM__SpecialInvalidate,0,0); end; procedure TTransparentMemo.CNCTLCOLOREDIT(var Message:TWMCTLCOLOREDIT); begin with Message do begin SetBkMode(ChildDC,TRANSPARENT); Result:=GetStockObject(HOLLOW_BRUSH) end end; procedure TTransparentMemo.WMSetText(var Message:TWMSetText); begin inherited; if not (csDesigning in ComponentState) then PostMessage(Handle,TMWM__SpecialInvalidate,0,0) end; procedure TTransparentMemo.SpecialInvalidate(var Message:TMessage); var r:TRect; begin if Parent<>nil then begin r:=ClientRect; r.TopLeft:=Parent.ScreenToClient(ClientToScreen(r.TopLeft)); r.BottomRight:=Parent.ScreenToClient(ClientToScreen(r.BottomRight)); InvalidateRect(Parent.Handle,@r,true); RedrawWindow(Handle,nil,0,RDW_FRAME+RDW_INVALIDATE) end; end; procedure TTransparentMemo.WMKeyDown(var Message: TWMKeyDown); begin SendMessage(Handle,TMWM__SpecialInvalidate,0,0); inherited; PostMessage(Handle,TMWM__SpecialInvalidate,0,0); end; procedure TTransparentMemo.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin Message.Result:=1 end; constructor TTransparentMemo.Create(AOwner: TComponent); begin inherited; ControlStyle:=[csCaptureMouse, csDesignInteractive, csClickEvents, csSetCaption, csOpaque, csDoubleClicks, csReplicatable, csNoStdEvents]; end; procedure TTransparentMemo.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); with Params do begin ExStyle:=ExStyle or WS_EX_TRANSPARENT and not WS_EX_WINDOWEDGE and not WS_EX_STATICEDGE and not WS_EX_DLGMODALFRAME and not WS_EX_CLIENTEDGE; end; end; procedure Register; begin RegisterComponents('cool!', [tTransparentMemo]); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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 by Thomas Breitkreuz