AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente zur Designzeit

Ein Thema von Tonic1024 · begonnen am 4. Dez 2003 · letzter Beitrag vom 4. Dez 2003
Antwort Antwort
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Komponente zur Designzeit

  Alt 4. Dez 2003, 08:53
Moin...

Dank der großen Unterstützung der DP habe ich es geschafft meine erste eigene Komponente zu "backen". Ist ein Button und funkt zur Laufzeit in allen Funktionen prächtig.

Das I-Tüpfelchen wäre ja nun, wenn der auch zur Designzeit brauchbar wäre - isser nämlich noch nicht...

Woran mag das liegen: Wenn ich die Komponente installiere, dann erscheint das Symbol auch im Reiter und ich kann es auf das Form ziehen. Im OI zeigt er aber keine Werte an (Top, Left, etc.) und wenn ich die App starte, kommt eine Fehlermeldung: "Fehler beim Lesen von Btn.Left" (sinngemäß).

Delphi-Quellcode:
type
  TBtn = class(TButton)
    procedure AnimationTimer(Sender: TObject);
  private
    FLeft: Integer;
    FTop: Integer;
    [..]
    procedure refresh();
  protected
  public
  published
    constructor Create(Form: TForm; Panel: TPanel = nil);
    property Left: Integer read FLeft write SetLeft;
    property Top: Integer read FTop write SetTop;
    [..]
  end;
Muss ich für den OI noch extra Propertys schaffen oder muss ich FLeft mit Grundwerten ausstatten? WIE und vor allem WANN ließt der OI denn die propertys (z.B. Left) aus?

Hoffe jemand weiss...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 08:59
Wenn du eine Komponente aufs Formular ziehst, wird zunächst einmal der Constructor und bei Bedarf die Paint-Methode ausgeführt. Du könntest also noch im Constructor Werte vergeben.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 09:48
Schmeiss Top und Left raus. Die hast du naemlich schon von TButton geerbt.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 10:55
@Treffnix: Grundwerte im Constructor hatte ich probiert, ändert nichts... Es gibt dann zwar die Werte, aber die Meldung, dass sie nicht gelesen werden können, bleibt.

@Robert: Ich habe die Komponente als TComponent entwickelt und versuche sie jetzt auf TButton umzustricken damit ich die Grafiken für den Reiter habe... Wenn ich aber die Probertys Left und Top entferne kann ich sie auch nicht mehr nutzen...

Wenn ich sie erben will muss ich sie dann trotzdem eintragen, und wenn ja, wie?
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 11:38
Da Left und Top bei TButton schon published sind, musst du garnichts machen.
Probier es doch einfach aus.
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 12:02
Hab ich doch längst probiert... ich sehe die property im Autovervollständigen und weise einen Wert zu. Nur wie ich in der Klasse wieder darauf zugreifen kann weiss ich nicht...

Vielleicht sollte ich dabei sagen, dass ich ein guter Theoretiker bin - wenn du weisst was ich meine

Ich mach Delphi erst seit drei Monaten... Hab vorher viel anderes Zeug gemacht und lerne, wie ich finde, recht schnell... Aber manchmal hakt es einfach...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#7

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 12:25
Also, wenn dein Button von TButton abgeleitet ist, müssten die Properties Left und Top automatisch vererbt werden, wenn du sie in deiner Ableitung nicht neu deklarierst, da sie ja in TButton schon published sind. Du könntest aber auch noch versuchen sie im Published-Teil extra durchzureichen.

Delphi-Quellcode:
published
  [..]
  Property Left;
  Property Top;
...
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
673 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 12:28
ist zwar nur en schönheitsfehler, aber Konstruktoren macht man public...
der Unterschied zw. Public und Published ist ja nur, daß man published-Variablen im OI sieht, Public aber ned. desweiteren werden published gestreamed, public ned...
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#9

Re: Komponente zur Designzeit

  Alt 4. Dez 2003, 12:42
RIESEN BRETT VORM KOPF!!!!

Okay... hab an der völlig falschen Stelle gesucht, und Ihr habt natürlich alle recht...
geht nun. Property Left habe komplett rausgeschmissen. Ich konnte ja left zuweisen, logisch.

Nun benutze ich aber als Schaltfläche ein Shape. Dem Shape muss ich natürlich das auch zuweisen...

shape.left:=self.left //ganz schlimmer Newbee-Fehler Wie konnte ich das nur übersehen..? Naja, Komponenten sind mir halt immernoch recht fremd...

Jetzt taucht aber ne neue Frage auf...
Komponente installiert - TBluBtn undefiniert... Wiso?

schonwieder ein neuer Thread...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  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 04:45 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