![]() |
Problem mit eigenen Komponenten
Hallo,
ich versuche zur Zeit vorhandene Delphi-Komponenten umzuschreiben und stosse dabei immer wieder auf den selben Fehler. hier ein Beispiel:
Delphi-Quellcode:
unit LabelKomponente;
interface uses SysUtils, Classes, Controls, StdCtrls; type TLabel1 = class(TLabel) private { Private-Deklarationen } protected { Protected-Deklarationen } public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; published { Published-Deklarationen } end; procedure Register; implementation uses graphics; constructor Tlabel1.Create(AOwner: TComponent); begin inherited create(aowner); font.Color := clgreen; end; procedure Register; begin RegisterComponents('Samples', [TLabel1]); end; end. Diese Komponente wird in einem Package integriert und das Package installiert. Wenn ich die Komponente auf einem Form platziere wird sie grün angezeigt(wie gewünscht). Ändere ich dann den Code im Konstruktor auf "font.Color := clred;" so sollte sich das so auswirken, dass nach dem nächsten Kompilieren des Programmes, die Komponente rot dargestellt wird. Das passiert nicht. Weiters sollte ein Neukompilieren des Packages sich so auswirken, dass die Komponente bereits zur Designzeit rot auf dem Form dargestellt wird. Auch das passiert nicht. Erst wenn ich die Komponente neu auf dem Form platziere wird sie rot dargestellt. In Delphi-2006 hat das immer problemlos funktioniert. Ich vermute ein Problem mit Such- oder Bibliothekspfaden. Kann mir da irgendjemand helfen? |
Re: Problem mit eigenen Komponenten
Zitat:
denn von alleine kommt der geänderte Code da nicht rein und Packages werden nicht automatisch neu kompiliert. Zitat:
Standarmäßig ist Default 0, also Schwarz. wenn du es in der Komponente (im Package änderst), dann existiert also noch die vorrangige Angabe in der DFM (in den Formulardaten) gib also in deiner Defnition das Default mit an, dann wird A) die DFM kleiner (da diese dann nimmer mit drinseht) und B) er nimmt vermutlich dann den Wert, welchen du dort setzt (da er ja nicht mehr vom DFM-Loader überschrieben wird)
Delphi-Quellcode:
Achtung: default setzt den Property nicht auf den Wert, sondern besagt nur, daß der Property-Wert nicht gespeichert werden soll, wenn er dem Default-Wert entspricht.
TLabel1 = class(TLabel)
... published { Published-Deklarationen } property Color: TColor default clGreen; end; |
Re: Problem mit eigenen Komponenten
Danke für die schnelle Hilfe
Default hat mein Problem gelöst Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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 by Thomas Breitkreuz