Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Delphi Transparente Labels... (https://www.delphipraxis.net/4348-transparente-labels.html)

NeoDeluxe 25. Apr 2003 13:37


Transparente Labels...
 
Servus.
Ich mollte da fragen, ob sowas gibt??? Transparente Labels...??? :roll:

Grüße, NeoDeluxe 8)

Stanlay Hanks 25. Apr 2003 13:41

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

NeoDeluxe 25. Apr 2003 14:15

Roger :!:
Du liegst völlig richrig...ein Label mit einem Transpaneten Hintergrund...welche Eingeschaft ise das???

Grüße, NeoDeluxe 8)

Luckie 25. Apr 2003 14:18

Zitat:

Zitat von NeoDeluxe
Du liegst völlig richrig...ein Label mit einem Transpaneten Hintergrund...welche Eingeschaft ise das???

Ich darf mal zitieren? :roll:
Zitat:

Zitat von Stanley
Ein label hat die Eigenschaft Transparent


Pseudemys Nelsoni 26. Apr 2003 19:18

btw: gibt 4-5 threads im board wo gefragt wird wie ein memo transparent auf der form liegt...leider 0 antworten :\

APP 26. Apr 2003 19:38

Hallo,

Zitat:

Zitat von silent
btw: gibt 4-5 threads im board wo gefragt wird wie ein memo transparent auf der form liegt...leider 0 antworten :\

einmal gegoogelt, -> www.delphispirit.com scrolle bis nach "Transparent Components v.1.0".

Pseudemys Nelsoni 26. Apr 2003 20:56

delphi 2-5, hab 6...habs trotzdem probiert kommt aber runtime error :\

APP 28. Apr 2003 10:50

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 :How to create a transparent TMemo


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.

Pseudemys Nelsoni 28. Apr 2003 13:53

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?

APP 28. Apr 2003 17:33

Hallo,
weil die Unit
Delphi-Quellcode:
unit TrMemo;
heißt, daher mußt Du die Unit als TrMemo.pas speichern! :mrgreen: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.
Seite 1 von 2  1 2      

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