AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Objekt im onCreate erzeugen, aber wie?

Ein Thema von Marco Steinebach · begonnen am 15. Jul 2021 · letzter Beitrag vom 19. Jul 2021
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#1

Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 21:17
Hallo zusammen,
Ich habe eine von TEdit abgeleitete Klasse. Die soll ein TLabel auf die Form bringen, wenn man sie benutzt.
Auf Deutsch: in das TEdit sollen Datumswerte hinein, und ich hätte gern, dass daneben, erzeugt von meiner abgeleiteten Klasse, ein TLabel erzeugt wird, in dem der zugehörige Wochentag erscheint.
Schreibe ich im onCreate meines TEdits
Code:
fLabel := TLabel.create (fOwner);
fliegt mir schon der designer um die Ohren, ist ja auch irgendwie klar, das ist ja auch noch alles nicht fertig.
Geht sowas überhaupt, und wenn ja, wie?

Herzlich grüßt
Moo
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.093 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 21:54
Was für eine Fehlermeldung kommt denn?

Leite doch einfach von TLabeledEdit ab oder schau rein wie das gemacht ist. Oder vielleicht reicht dir das ja auch schon.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.222 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 21:56
Schau mal, ob Dir AfterCreate hilft: https://www.swissdelphicenter.ch/de/...de.php?id=1276
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#4

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 22:17
Hallo Zusammen,
@Stali: toll, das After Create hilft zwar hier nicht, aber das ist alle mal besser, als es mit einem Timer zu lösen - super, jetzt wird die Nacht noch länger.

Zu meinem eigentlichen Problem (TLabeledEdit) hab ich in meinem Uralt-Delphi leider noch nicht:
Code:
constructor TMsDatumCombo.create (aOwner: TComponent);
begin
  inherited create (aOwner);
  fOwner := aOwner;
  fShowLabel := true;
  fCaption := '';
  fLabel := TLabel.create (fOwner);
  with fLabel do
  begin
    left := self.left;
    top := self.top;
    focusControl := self;
    parent := self.parent;
    Caption := self.Caption;
  end;
  self.left := self.left + 120;
end;
Im Designer klappts, nur starte ich das Programm:
Exception Class TLabel not found.
Hääää?

Und wenn ich versuche, den Items in onCreate etwas hinzuzufügen, fliegt mir gleich der Objekt-Manager um die Ohren. Sprich, ich füge die Komponente ein:
Eltern-Objekt nicht vorhanden.

Ich bitte nochmal um Hilfe.

Herzliche Grüße
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.222 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 23:10
Evtl. musst Du Deine Unit statt compilieren noch einmal neu installieren.
Erst durch das Installieren wird die Komponente in der neuen Form in der IDE vollständig registriert.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 23:13
Huhu Stahli,
Bringt leider nichts...
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.222 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 15. Jul 2021, 23:32
Kannst Du Deine Unit oder ein Testprojekt oder ein Video mal zeigen?

Ich glaube zwar nicht, aber vielleicht bringt Dir SetSubComponent etwas: https://www.delphipraxis.net/79726-u...der-gruen.html
Dann wird das Label mit seinen Eigenschaften mit in der Formulardatei abgelegt (was die Formulargröße etwas erhöht).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.093 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 16. Jul 2021, 06:52
Zu meinem eigentlichen Problem (TLabeledEdit) hab ich in meinem Uralt-Delphi leider noch nicht:
Da es eine aktuelle Version für nicht-kommerzielle Zwecke kostenlos gibt, ist das ja kein Hindernis...

Im Designer klappts, nur starte ich das Programm:
Exception Class TLabel not found.
Versuche es einmal ohne Owner. Vielleicht klappt das mit dem Lademechanismus der Daten des Formulars nicht, wenn du da eine zusätzliche Komponente in den Owner hängst, die zur Designzeit unter dem Namen gar nicht vorhanden war. Denn die Werte werden natürlich erst nach dem Ausführen des Konstruktors geladen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.992 Beiträge
 
Delphi XE4 Professional
 
#9

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 16. Jul 2021, 06:57
Hallo,
schreib mal unten ein RegisterClass(TLabel) rein.

etwa so

Unit Kompi

Interface

Implementstion


Begin
RegistrClass
End

Und dahinter noch ein MessageBox.
Dann siehst du, ob der richtige Quellcode verwendet wird.
Heiko

Geändert von hoika (16. Jul 2021 um 07:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.586 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Objekt im onCreate erzeugen, aber wie?

  Alt 16. Jul 2021, 10:40
Wenn deine Komponente eine weitere "eigenständige" Komponente automatisch einfügen soll, dann muß sie den selben Owner bekommen. (aber das willst du ja nicht)

Deine Komponente ist Besitzer/Verwalter des Labels, also ist deine Komponente auch für die Erstellung/Freigabe verantwortlich.
* also dein Edit ist Owner des Labels (so macht es fast jeder Andere)
* oder der Owner ist NIL und du gibst im Destroy das Label selbst frei (unnötig umständlich)


Und zu TLabeledEdit
* jupp einfacher
* aber falls das mit dem Delphi 5 stimmt und nur jemand nicht zu faul war ausversehn vergessen hatte das einzustellen


PS: Ohne Clipping kann unter FMX das Label auch das Edit als Parent bekommen und dennoch außerhalb liegen.
Das erleichtert nochmal andere Dinge, wie Neuausrichtung, wenn das Edit verschoben wird, und die Skalierung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (16. Jul 2021 um 10:44 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 10:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf