![]() |
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;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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