![]() |
vordefinierte Eigenschafte in eigener Komponente ändern
Hallo, ich arbeite gerade das Tutorial zu Componentenerstellung durch.
Nun stellt sich die Frage, wie ich z.b. die Standard Höhe eines Buttons verändern kann? Meine Komponente ist vom Type TButton abgeleitet und nun wollte ich die Standarthöhe wenn man Ihn auf die Form zieht verändern. Wo muss ich dies machen? Vielen Dank! |
Re: Frage zu eigener komponente
Zitat:
Delphi-Quellcode:
constructor TMyButton.Create(AOwner: TComponent);
begin inherited Create(AOwner); Height := 40; end; |
Re: Frage zu eigener komponente
das hatte ich gerade probiert, klapp aber itrgendwie net?
Das hier geht leider so nicht:
Delphi-Quellcode:
unit HandoffButton;
interface uses SysUtils, Classes, Controls, StdCtrls, Buttons; type THandoffButton = class(TBitBtn) private { Private-Deklarationen } FActive : Boolean; FFrequenz : string; protected { Protected-Deklarationen } public property Active : boolean read FActive write FActive; property Frequenz : string read FFrequenz write Ffrequenz; constructor create(AComponent : TComponent); override; { Public-Deklarationen } published { Published-Deklarationen } end; procedure Register; implementation procedure Register; begin RegisterComponents('Zusätzlich', [THandoffButton]); end; constructor THandoffButton.create; begin inherited create(Acomponent); Height := 41; end; end. |
Re: vordefinierte Eigenschafte in eigener Komponente ändern
vllt statt:
Delphi-Quellcode:
mal diesen constructor bearbeiten
constructor THandoffButton.create;
begin inherited create(Acomponent); Height := 41; end;
Delphi-Quellcode:
constructor THandoffButton.create(AComponent:TComponent);
begin inherited create(Acomponent); Height := 41; end; |
Re: vordefinierte Eigenschafte in eigener Komponente ändern
Zitat:
das sind doch beides dieselben constructoren, man muss im implementationteil nicht nochmal die parameter angeben. Aber troetzdem Danke für den Tip |
Re: vordefinierte Eigenschafte in eigener Komponente ändern
Soweit ich weiß muss man das schon Tun. es existiert ja ein unterschied:
Wenn du z.b. das hier gegeben haben hast:
Delphi-Quellcode:
Woher sollte er dann wissen welche der beiden du mit
procedure ix;
procedure ix(a:integer);
Delphi-Quellcode:
gemeint hattest?
procedure ix;
begin irgentwas; end; |
Re: vordefinierte Eigenschafte in eigener Komponente ändern
Zitat:
|
Re: vordefinierte Eigenschafte in eigener Komponente ändern
Ich würds machen.
|
Re: vordefinierte Eigenschafte in eigener Komponente ändern
Zitat:
|
Re: vordefinierte Eigenschafte in eigener Komponente ändern
eigentlich müßte es so funktionieren, denn der "original"-TButton bzw. TCustomButton setzt die Größe genau an gleicher Stelle
Delphi-Quellcode:
und wenn man dann in seinem Constructor nach Inherited Create einen anderen Wert setzt, dann wird dieser übernommen.
constructor TCustomButton.Create(AOwner: TComponent);
begin inherited Create(AOwner); ControlStyle := [csSetCaption, csDoubleClicks]; Width := 75; Height := 25; PS: das Gerede bezüglich THandoffButton.create(AComponent:TComponent); ... dort kann man im Implementation-Teil die Funktions-Signatur (also die Parameter weglassen) und Delphi nimmt die Definition aus der Forward-Definition in der Klasse. Aber wenn die Funktion überladen wurde, muß man es angeben, da Delphi sonst nicht weiß welche Version es nun darstellen soll. [add] laß mal das override; weg. möcht mal wissen, wie ich grad darauf kam :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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