![]() |
Deaktivieren von Controls in VCL Frame klappt nicht
Hallo,
gegeben ist eine VCL Form mit einem Frame darin. Das Frame wurde zur Entwurfszeit in die Form gesteckt. Im Constructor der Form ist seit eben Code drin, der unter bestimmten Umständen (die auch zutreffen, der Debuger sagt das auch!) die Steuerelemente des Frames deaktivieren soll. Nur: die Steuerelemente bleiben trotz Enabled := false oder ReadOnly := true anklickbar oder editierbar. Setze ich Enabled des Frame auf false ist alles deaktiviert, aber vom Zustand so dargestellt, als wäre es aktiv. Ist also nicht die wirklich richtige Lösung... Woran kann das liegen? Grüße TurboMagic |
AW: Deaktivieren von Controls in VCL Frame klappt nicht
Zitat:
|
AW: Deaktivieren von Controls in VCL Frame klappt nicht
Ok, hier etwas Code:
Delphi-Quellcode:
Und nein, auf frm_MyFrame wird in Tf_MyForm nirgends mehr zugegriffen.
constructor Tf_MyForm.Create(AOwner : TComponent;
SomeData : ISomeData; SomeThingy : ISomeThingy; ThingName : string; OnThingNameChanged : TOnThingNameChange; ReadOnly : Boolean); begin inherited Create(AOwner); FSomeData := SomeData; FThingName := ThingName; FOnThingNameChanged := OnThingNameChanged; FThingNameChanged := false; frm_MyFrame.Init(FSomeData, SomeThingy, ThingName, OnChangeButtonEnableState, OnThingNameChanged, true); if ReadOnly then begin frm_MyFrame.nb_Port.ReadOnly := true; frm_MyFrame.tf_URL.ReadOnly := true; frm_MyFrame.b_Test.Enabled := false; frm_MyFrame.b_Default.Enabled := false; b_OK.Enabled := false; // Workaround: unschön, aber deaktiviert wenigstens alles frm_MyFrame.Enabled := false; end; end; Grüße TurboMagic |
AW: Deaktivieren von Controls in VCL Frame klappt nicht
Ich vermute, das ist einfach die falsche Stelle.
Versuchs mal im Loaded der Form. |
AW: Deaktivieren von Controls in VCL Frame klappt nicht
@Thomas: Eigentlich ist das Form nach dem inherited Create bereits vollständig geladen. Andernfalls wäre der Zugriff auf das Frame selbst auch ziemlich fragil.
@Markus: Kannst du das an einem simplen Beispiel reproduzieren? |
AW: Deaktivieren von Controls in VCL Frame klappt nicht
Zitat:
|
AW: Deaktivieren von Controls in VCL Frame klappt nicht
Das OnCreate wird seit geraumer Zeit erst im AfterContruction ausgeführt, also definitiv nach dem Create.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 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