![]() |
Objekt im onCreate erzeugen, aber wie?
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:
fliegt mir schon der designer um die Ohren, ist ja auch irgendwie klar, das ist ja auch noch alles nicht fertig.
fLabel := TLabel.create (fOwner);
Geht sowas überhaupt, und wenn ja, wie? Herzlich grüßt Moo |
AW: Objekt im onCreate erzeugen, aber wie?
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. ;-) |
AW: Objekt im onCreate erzeugen, aber wie?
Schau mal, ob Dir AfterCreate hilft:
![]() |
AW: Objekt im onCreate erzeugen, aber wie?
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:
Im Designer klappts, nur starte ich das Programm:
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; 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 |
AW: Objekt im onCreate erzeugen, aber wie?
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. |
AW: Objekt im onCreate erzeugen, aber wie?
Huhu Stahli,
Bringt leider nichts... |
AW: Objekt im onCreate erzeugen, aber wie?
Kannst Du Deine Unit oder ein Testprojekt oder ein Video mal zeigen?
Ich glaube zwar nicht, aber vielleicht bringt Dir SetSubComponent etwas: ![]() Dann wird das Label mit seinen Eigenschaften mit in der Formulardatei abgelegt (was die Formulargröße etwas erhöht). |
AW: Objekt im onCreate erzeugen, aber wie?
Zitat:
Zitat:
|
AW: Objekt im onCreate erzeugen, aber wie?
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. |
AW: Objekt im onCreate erzeugen, aber wie?
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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