AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls vordefinierte Eigenschafte in eigener Komponente ändern
Thema durchsuchen
Ansicht
Themen-Optionen

vordefinierte Eigenschafte in eigener Komponente ändern

Ein Thema von SimStar001 · begonnen am 3. Jul 2009 · letzter Beitrag vom 3. Jul 2009
Antwort Antwort
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#1

vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 16:35
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!
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: Frage zu eigener komponente

  Alt 3. Jul 2009, 16:39
Zitat von SimStar001:
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!
Im constructor einfach die Höhe setzen:

Delphi-Quellcode:
constructor TMyButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Height := 40;
end;
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#3

Re: Frage zu eigener komponente

  Alt 3. Jul 2009, 16:43
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.
  Mit Zitat antworten Zitat
Draos

Registriert seit: 12. Aug 2008
42 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:00
vllt statt:
Delphi-Quellcode:
constructor THandoffButton.create;
begin

  inherited create(Acomponent);
  Height := 41;
end;
mal diesen constructor bearbeiten
Delphi-Quellcode:
constructor THandoffButton.create(AComponent:TComponent);
begin

  inherited create(Acomponent);
  Height := 41;
end;
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#5

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:03
Zitat von Draos:
vllt statt:
Delphi-Quellcode:
constructor THandoffButton.create;
begin

  inherited create(Acomponent);
  Height := 41;
end;
mal diesen constructor bearbeiten
Delphi-Quellcode:
constructor THandoffButton.create(AComponent:TComponent);
begin

  inherited create(Acomponent);
  Height := 41;
end;

das sind doch beides dieselben constructoren, man muss im implementationteil nicht nochmal die parameter angeben.

Aber troetzdem Danke für den Tip
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#6

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:42
Soweit ich weiß muss man das schon Tun. es existiert ja ein unterschied:
Wenn du z.b. das hier gegeben haben hast:
Delphi-Quellcode:
procedure ix;
procedure ix(a:integer);
Woher sollte er dann wissen welche der beiden du mit
Delphi-Quellcode:
procedure ix;
begin
  irgentwas;
end;
gemeint hattest?
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:45
Zitat von Teekeks:
Soweit ich weiß muss man das schon Tun.
Damit die Diskussion hier mal aufhört und das Problem weiter gesucht wird: Nein, er muss es in diesem Falle nicht. Bei überladenen Funktionen muss dies entsprechend gemacht werden, bei allen anderen nicht. Überladungen wurden später (afaik D5) eingeführt, das nicht angeben der Signatur in der Implementation stammt hingegen schon aus den ganz alten Delphi Tagen (D1) - vielleicht sogar schon Turbo Pascal (damals nie so gesehen/probiert/gemacht).
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#8

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:48
Ich würds machen.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 17:50
Zitat von QuickAndDirty:
Ich würds machen.
Ja, ich auch. Ich mache es nur so - aber das ist nicht Thema der Sache. Ist nun bald Schluß? Die Frage und das Problem ist ein anderes also bitte Beiträge dazu!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

Re: vordefinierte Eigenschafte in eigener Komponente ändern

  Alt 3. Jul 2009, 18:14
eigentlich müßte es so funktionieren, denn der "original"-TButton bzw. TCustomButton setzt die Größe genau an gleicher Stelle
Delphi-Quellcode:
constructor TCustomButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := [csSetCaption, csDoubleClicks];
  Width := 75;
  Height := 25;
und wenn man dann in seinem Constructor nach Inherited Create einen anderen Wert setzt, dann wird dieser übernommen.

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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 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