![]() |
ColorPanel - Panel mit speziellen Funktionen
Liste der Anhänge anzeigen (Anzahl: 2)
Hi Leute,
Ich hab mal meine erste eigene Komponente geschrieben und wollte mal fragen, was ihr davon haltet. Es ist ein Panel, wo man halt mehr einfärben kann, als beim Standard oder sogar bei den LMD-Panel. Es gibt Außerdem die möglcihkeit, es als Panel-Button zuverwenden, d.h. man kann sagen welches Bevel (Inner oder Outer) man den Effect des "Buttons" geben will. Hier ist ein Bild, wo man (so hoffe ich) erkennen kann, was ich meine. Bin gespannt was ihr dazu meint :zwinker: :mrgreen: Hab eigentlich auch ein eigenes Bild, di in ne dcr datei drin ist, die kann ich aber leider net dran hängen schade |
Re: ColorPanel - Panel mit speziellen Funktionen
Nun, deine Farbwahl verursacht bei mir zwar Augenkrebs :zwinker: ,aber der Sourcecode sieht ganz gut aus.
Du solltest noch alle unbenutzten Units aus dem Uses entfernen bzw. falls möglich aus Abschnitt interface nach Abschnitt implementation verschieben. Und die Einrückung der Sourcecodezeilen nach Borland Style Guide anpassen. PS: hab da noch einen Fehler gesehen:
Delphi-Quellcode:
Zusätzlich musst du noch die Assign-Methode von TBevelOptions überschreiben:
property BevelInnerOptions : TBevelOptions read FBevelInnerOptions write FBevelInnerOptions; // Falsch property BevelInnerOptions : TBevelOptions read FBevelInnerOptions write SetBevelInnerOptions; // Richtig
procedure TColorPanel.SetBevelInnerOptions(const Value: TBevelOptions); begin FBevelInnerOptions.Assign(Value); end;
Delphi-Quellcode:
procedure TBevelOptions.Assign(Sender: TObject);
begin if Sender is TBevelOptions then begin FOwner := TBevelOptions(sender).FOwner; ... end else inherited; end; |
Re: ColorPanel - Panel mit speziellen Funktionen
Ist das wirklich nötig?? Da es ja auch so funkt, oder nicht??
|
Re: ColorPanel - Panel mit speziellen Funktionen
Zitat:
Objekte in Delphi sind ja Zeiger. Wenn du im Konstruktor ein Objekt erzeugst, dann musst du genau dieses Objekt im Destruktor wieder freigeben. Über das property BevelInnerOptions überschreibst du den alten Zeiger. Also ist das ursprüngliche Objekt für immer verloren im Speicher (Speicherleck). Bei dem Objekt, dass du zugewiesen hast, besteht die Gefahr, dass es doppelt freigegeben wird. Deshalb muss das Objekt mit Assign() kopiert werden. So werden die Inhalte kopiert; nicht der Zeiger. |
Re: ColorPanel - Panel mit speziellen Funktionen
Aha, okay jetzt hab ich das auch mal verstanden, warum die immer Assign benutzen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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