Hallo,
Mir ein bißchen Arbeit sparen.
Ich brauche ein TLabel, sagen wir:
Geburtsdatum
und rechts daneben, die Combobox. Das soll, wenn wir es zum Laufen kriegen, dann auch für die Kombi
TLabel mit TEdit
gehen.
Bislang hab ich halt, ganz normal ein TLabel erzeugt, beschriftet, dann das TEdit erzeugt. Da mein Projekt aber ziemlich viele solcher Felder hat dachte ich, ich könnte es vereinfachen. Daher hab ich der Combobox, meinetwegen auch dem TEdit, eine Caption mitgegeben, die dann aber das zugehörige Label kriegen soll.
Das sollte es werden.
Vielleicht ist ja mein ganzer Ansatz quatsch?
Herzlich grüßt
Moo
Dein Ansatz ist schon ok aber halt nicht ganz so simpel wie du vieleicht meinst. Dein Problem, das du nun noch hast, ist die Beschriftung des Labels, wenn du alles andere von mir gepostete implentiert hast. Dazu kannst du z.B. die Change oder Select Methode überchreiben. Das musst du selber testen, was dir da besser passt. Eventuell soll das Label auch erst beim Exit geändert werden, dazu gäbe es auch eine Methode.
Delphi-Quellcode:
TMsDatumCombo= class(TCombobox)
...
protected
procedure Select; override;
...
end;
procedure TMsDatumCombo.Select;
begin
inherited;
FLabel.Caption := Text; // Hier kannst du den Labeltext setzen, je nach dem was ausgewählt wurde.
// Text ist der aktuell selektierte Eintrag in der Combo.
end;
Schau dir die doch bitte auch die Sourcen zu TCombobox und TEdit und deren Vorfahren an. Alles was da als Virtual oder Dynasmic deklariert ist, kannst du in einer abgeleiteten Komponente überschreiben und erweitern.