Konstruktor von TEdit
-
Hallo,
wie kann den Konstruktor von TEdit benutzen, ich möchte hier
alle Edits beim erstellen einen anderen Font, eine andere Farbe sowie
Grö?e verpassen.Die Objekte werden allerdings schon in der Klasse TForm1 erstellt
"TEdit *Edit1", wird der Konstruktor nicht erst bei der Declaration
"TEdit *Edit1 = new TEdit" aufgerufen.Oder noch besser kann ich nicht schon in der VCL die eingestellten Eigenschaften von TEdit irgendwie ändern?
Die Borland Hilfe sagt mir irgendwie zum Konstruktor nicht viel.
__fastcall virtual TEdit(Classes::TComponent* AOwner) : Stdctrls::TCustomEdit(AOwner) { }
__fastcall TEdit(HWND ParentWindow) : Stdctrls::TCustomEdit(ParentWindow) { }
-
ich habs mir nun ein paar mal durchgelesen, versteh aber nicht was du machen
willst. Ich vermute mal ein neues Edit Feld auf der Form erstellen.Das geht so:
TEdit * MyEdit = new TEdit(this); MyEdit->Parent = this;
-
Nein, es gibt die Klasse TEdit die einen Konstruktor hat, dieser wird immer
dann aufgerufen wenn ein Objekt der Klasse TEdit erstellt wird z.B. Edit1.Nun möchte ich den Konstruktor von TEdit für mich nutzen und dem erstellten
Objekt andere Eigenschaften geben.
-
Den FAQ-Beitrag "Komponenten - zur Laufzeit erstellen" kennst du?
Die Alternative wäre das Ableiten einer neuen Komponente.
-
Das mit dem Ableiten ist garnicht so einfach!
Ich Habe mir "Komponenten zur Laufzeit erstellen" angeschaut, sagt mir aber nichts.
Ich dachte das jede Klasse einen Konstruktor hat, kann ich den nicht irgendwie
nutzen?Könnt Ihr die Zeit der Frage "zum Forum zurückkehren oder ..." nicht etwas
verlängern, oder keine Zeitbegrenzung.
-
hermes schrieb:
ich möchte hier alle Edits beim erstellen einen anderen Font, eine andere Farbe sowie Grö?e verpassen.
[...]
Ich Habe mir "Komponenten zur Laufzeit erstellen" angeschaut, sagt mir aber nichts.TEdit * MyEdit = new TEdit(this); MyEdit->Parent = this; MyEdit->Font->Name = "Arial Black"; // Font MyEdit->Color = clGreen; // Farbe MyEdit->Width = 321; // GrösseWo ist das Problem?
-
Das ist aber kein Edit das ich mit dem Borland Builder auf meinem Formular
plaziert habe, sondern ein Edit das zur Laufzeit erstellt wird ,ich möchte aber den Konstruktor der von mir mit dem Borland Builder
auf meinem Formular erstellten Edits."Voraussetzung für mein gerede ist, das ich da nichts falsch verstehe"
-
Wie gesagt, leite eine eigene Komponente ab. Ob sich das für so lapidare Änderungen wie die von dir beschriebenen lohnt sei mal dahingestellt. Schliesslich kannst du auch einfach ein Standard-Edit auf die Form packen, es wie gewünscht anpassen und anschliessen per Copy'nPaste beliebig oft "klonen".
Theoretisch könntest du nätürlich auch direkt in den VCL-Sourcen herumpfuschen (Prof. und Enterprise only), aber das willst du nicht wirklich. Oder bist du sicher, dass du in Zukunkft in allen deinen Projekten nur noch TEdits mit grünem Hintergrund oder Riesenschrift verwenden wirst?
-
hermes schrieb:
Hallo,
wie kann den Konstruktor von TEdit benutzen, ich möchte hier
alle Edits beim erstellen einen anderen Font, eine andere Farbe sowie
Grö?e verpassen.
[...]Oder noch besser kann ich nicht schon in der VCL die eingestellten Eigenschaften von TEdit irgendwie ändern?
[...]Ich mag ja jetzt auf dem Holzweg sein, aber wenn du einfach die Eigenschaften des Edits ändern willst, warum nutzt du dann nicht den Objektinspektor?
Falls du den Edits zufällige Eigenschaften zuweisen willst, einfach im OnShow der Form die Eigenschaften zufällig setzten (Edit1->?,Edit2->?,....). Das dies nicht im Editor sichtbar ist, sollte selbsterklärend sein, da nur zur Laufzeit dieser Zufallsgenerator sinn macht