Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   eigene Labelkompo: Prozedur wo deklarieren? (https://www.delphipraxis.net/76247-eigene-labelkompo-prozedur-wo-deklarieren.html)

Mazel 31. Aug 2006 21:12


eigene Labelkompo: Prozedur wo deklarieren?
 
Hallo,

ich bin gerade dabei ein paar eigene Labelkomponenten zu verbessern. Damals habe ich folgende Prozeduren unter protected deklariert. Nun wollte ich wissen ob das nötig ist, wenn nicht würde ich sie einfach unter private deklarieren:

Delphi-Quellcode:
 protected
    { Protected-Deklarationen }
    procedure CMMOUSEENTER(var Msg: TMessage); Message CM_MOUSEENTER;  //geimeint sind diese beiden
    procedure CMMOUSELEAVE(var Msg: TMessage); Message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
Bei dieser Komponente handelt es sich um ein HoverLabel. Wenn die Maus über das Label geht wird die Textfarbe und Font geändert, wenn sie das Label verlässt, steht der Text wieder in der ursprünglichen Form da. Mir geht es aber eben um die Deklaration ;).

Gruß
Mazel

Flocke 31. Aug 2006 21:16

Re: eigene Labelkompo: Prozedur wo deklarieren?
 
Du kannst Message-Behandler im Private-Teil deklarieren, da man sie ohne Probleme jederzeit overriden kann (eben durch Angabe der Message). Ist so weit ich weiß auch in den Delphi-eigenen Quellen so gemacht.

Mazel 31. Aug 2006 21:20

Re: eigene Labelkompo: Prozedur wo deklarieren?
 
Ok,

danke. So richtig habe ich noch nicht verstanden wofür der protected Part zuständig ist. Private, public und published sind mir klar aber mit der Sichtbarkeit von protected haberts.

Gruß
Mazel

Bernhard Geyer 31. Aug 2006 21:24

Re: eigene Labelkompo: Prozedur wo deklarieren?
 
Zitat:

Zitat von Mazel
danke. So richtig habe ich noch nicht verstanden wofür der protected Part zuständig ist.

Für Methoden die man in einer Ableitung (auch wenn die Ableitung in einer anderen Unit ist) verwenden und überschreiben kann jedoch nicht von "außerhalb" Aufrufbar ist. Bei private ist das nur in der gleichen Unit möglich.

Mazel 31. Aug 2006 21:36

Re: eigene Labelkompo: Prozedur wo deklarieren?
 
Danke,

werde ich also kaum diesen Abschnit verwenden müssen, bei den einfachen Komponenten die ich erstelle.

Gruß
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 Uhr.

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