Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TAction in TComponent einbauen
patmann2001 - Mi 16.11.11 14:19
Titel: TAction in TComponent einbauen
Hallo,
ich habe einen Button von TCustomControl abgeleitet. Da ich in diesem Btn das Zeichnen selber mache, kann ich meine Caption nicht von TCaption ableiten. Deshalb habe ich das selber gemacht. Wenn ich nun die Eigenschaft Action ableite, dann ändert sich natürlich meine Caption nicht. Das möchte ich aber. Was muss ich machen, damit sich speziell diese Eigenschaft ändert, bzw. wie kann ich auf ActionChange zugreifen.
Vielen Dank für eure Hilfe.
lg Patmann
bummi - Mi 16.11.11 16:08
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| TMyControl=CLass(TCustomControl) private Flabel:TLabel; protected procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override; public Constructor Create(AOwner:TComponent);Override; End;
procedure TMyControl.ActionChange(Sender: TObject; CheckDefaults: Boolean); begin inherited; FLabel.Caption := Caption; end; |
patmann2001 - Mi 16.11.11 17:13
Hallo,
das hilft schon mal, das beim Zuweisen der Action die Caption gesetzt wird, jedoch wenn die Caption geändert wird, durchläuft das Programm diese Routine nicht mehr.
Da fehlt noch was.
Lg Patmann
bummi - Mi 16.11.11 22:39
Dann häng' Dich in die Messages ich würde mal bei WM_SETTEXT anfangen ....
patmann2001 - Do 17.11.11 16:27
Hallo,
es hat etwas mit der Function GetActionLinkClass zu tun. Ein normaler Button wird dann von der Classe TControlActionLinkClass abgeleitet. Mein Button ist aber eine eigene Klasse und ich musste daher diese Classe neu ableiten. Soweit so gut. Wenn ich den Button jetzt zur Laufzeit erzeuge, gibt es auch keine Fehlermeldung und die Action arbeitet einwandfrei. Wenn ich nun jedoch den Button in der Entwicklungsumgebung auf das Formular lege erhalte ich die Fehlermeldung:
| Zitat: |
Fehler
Zugriffsverletzung bei Adresse 005C436D in Modul 'coreide60.bpl'. Lesen von Adresse 00000006.
|
Gibt es da eine Möglichkeit, die Entwicklungsumgebung zu debuggen? Wie komme ich an den Fehler ran.
Lg Patmann.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!