![]() |
Transparente Labels...
Servus.
Ich mollte da fragen, ob sowas gibt??? Transparente Labels...??? :roll: Grüße, NeoDeluxe 8) |
Ein label hat die Eigenschaft Transparent, damit man den text zum beispiel in ein Bild setzen kann, ohne gleich ein graues Rechteck drin zu haben. Oder hast du ein Label gemeint, dass den Text halbtransparent anzeigt?
Man liest sich Stanlay :D |
Roger :!:
Du liegst völlig richrig...ein Label mit einem Transpaneten Hintergrund...welche Eingeschaft ise das??? Grüße, NeoDeluxe 8) |
Zitat:
Zitat:
|
btw: gibt 4-5 threads im board wo gefragt wird wie ein memo transparent auf der form liegt...leider 0 antworten :\
|
Hallo,
Zitat:
![]() |
delphi 2-5, hab 6...habs trotzdem probiert kommt aber runtime error :\
|
Sorry Silent, habe die Kompo vorher nicht ausprobiert, läßt sich bei mir installieren funkt aber nicht :(
ABER: was sagst Du dazu (habe ich vorher getestet :mrgreen: )? Quelle : ![]()
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. |
hoi,
sieht ziemlich gut (und kompliziert :D) aus der code. Wenn ich den code bei mir einfüge kommen aber immer "ein paar" fehler :( : [Fehler] Unit1.pas(25): ';' erwartet, aber '.' gefunden [Fehler] Unit1.pas(25): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(27): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(28): Undefinierter Bezeichner: 'Handle' [Fehler] Unit1.pas(30): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(30): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(32): Undefinierter Bezeichner: 'Handle' [Fehler] Unit1.pas(33): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(36): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(36): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(44): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(44): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(46): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(47): Undefinierter Bezeichner: 'ComponentState' [Fehler] Unit1.pas(47): Operator ist auf diesen Operandentyp nicht anwendbar [Fehler] Unit1.pas(48): Undefinierter Bezeichner: 'Handle' [Fehler] Unit1.pas(50): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(50): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(54): Undefinierter Bezeichner: 'Parent' [Fehler] Unit1.pas(54): Operator ist auf diesen Operandentyp nicht anwendbar [Fehler] Unit1.pas(56): Undefinierter Bezeichner: 'ClientRect' [Fehler] Unit1.pas(57): Operator oder Semikolon fehlt [Fehler] Unit1.pas(57): Inkompatible Typen: 'HWND' und 'TPoint' [Fehler] Unit1.pas(58): Operator oder Semikolon fehlt [Fehler] Unit1.pas(58): Inkompatible Typen: 'HWND' und 'TPoint' [Fehler] Unit1.pas(59): Nicht genügend wirkliche Parameter [Fehler] Unit1.pas(62): '.' erwartet, aber ';' gefunden [Fehler] Unit1.pas(63): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(63): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(65): Undefinierter Bezeichner: 'Handle' [Fehler] Unit1.pas(66): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(69): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(69): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(73): Deklaration von 'TTransparentMemo' unterscheidet sich von vorheriger Deklaration [Fehler] Unit1.pas(75): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(76): Undefinierter Bezeichner: 'ControlStyle' [Fehler] Unit1.pas(79): Bezeichner redefiniert: 'TTransparentMemo' [Fehler] Unit1.pas(79): ';' erwartet, aber ')' gefunden [Fehler] Unit1.pas(81): Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Fehler] Unit1.pas(91): Inkompatible Typen: 'TComponentClass' und 'procedure, untyped pointer or untyped parameter' [Fehler] Unit1.pas(11): Ungenügende Forward- oder External-Deklaration: 'TForm1.FormCreate' [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden wieso das? |
Hallo,
weil die Unit
Delphi-Quellcode:
heißt, daher mußt Du die Unit als TrMemo.pas speichern! :mrgreen: :mrgreen:
unit TrMemo;
|
Re: Transparente Labels...
Hab das grad mal probiert
und der Bereich, wo Zeilen sind, ist nicht transparent. Mein Problem ist einfach, daß weißes TMemo mit bsNone in einem TPageControl (mit grauem Frabverlauf in XP) scheiße aussieht. |
Re: Transparente Labels...
Liste der Anhänge anzeigen (Anzahl: 1)
![]() nja, ich frag einfach nochmal, da ich nirgendwo eine Lösung finde und keine Fremdkomponenten verwenden möchte. Mein Problem ist, daß ich ein TMemo in einem TPageControl hab, welches erstens einen leichten grauen Varbverlauf hat (im Standard-XP-Style) und zweitens dieses grau auch keiner Systemfarbe entspricht, ich also maximal ein möglichst ähnliches Grau definieren könnte, welches an dieser Stelle nicht so auffällt, aber dieses dann nur bei meinem XP-Style paßt und nicht bei anderen Farbschemata :? |
Re: Transparente Labels...
Hallo himitsu,
ich weis was du meinst. Ich würde trotzdem sagen, daß die Standardfarbe in diesem Fall sogar übersichtlicher ist, da der "Blättern" Teil von dem statischen Teil optisch abgegrenzt ist. Persönlich würde ich um das Memo sogar noch den Rahmen stehen lassen um das zu untermauern. ...aber Gott sei dank sind die Geschmäcker verschieden :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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