Ich erstelle Code für einen Dialog mit einer Radiogruppe als Teil eines Einstellungsformulars. Ein Teil unseres Codes ist, dass, wenn das Einstellungsformular geöffnet wird, die Radiogruppe angeklickt wird, die eine Menge Dinge konfiguriert (dh wenn der Radiobutton "aus" ist, dann ist eine Menge Konfigurationsmaterial versteckt).
Was ich will, ist zu wissen, wann der Benutzer tatsächlich auf die Radiogruppe klickt, anstatt dass er beim Öffnen des Einstellungsdialogs ausgelöst wird.
Also sieht der Code so aus:
%Vor%Aber dieser Code wird auch ausgeführt, wenn der Einstellungsdialog geöffnet wird. Was soll ich da reinstellen, um nur auszuführen, wenn der Benutzer tatsächlich mit der Maus auf die Schaltfläche klickt?
Danke
Testen Sie Ihren Absender
Sie können den Absender auf zwei Arten testen:
%Vor%oder Sie können den Typ eines Absenders testen.
%Vor% Das Schlüsselwort is
prüft, ob ein Objekt von einem bestimmten Typ ist.
Beachten Sie, dass der Test if AObject is TObject
immer wahr ist, da jedes Objekt von TObject abgeleitet ist.
Mehr Spaß mit der Typumwandlung
Die Tatsache, dass is
auf den Objekttyp und alle Vorfahren testet, kann auch für andere Zwecke verwendet werden:
Wegen der booleschen Kurzschlußauswertung überprüft Delphi zuerst (sender is TControl)
und nur weiter, wenn das stimmt. Machen Sie den nachfolgenden Test (TControl(Sender).Tag = 10)
sicher zu verwenden.
Wenn Sie das Konstrukt TControl(Sender)
nicht verstehen, können Sie sich über Typecasting informieren.
hier: Ссылка
und hier: Ссылка
Wenn ich Sie richtig verstehe, klicken Sie programmtechnisch auf Ihre Radiogroup, um den Anfangszustand des Formulars einzurichten, aber Sie haben zusätzlichen Code im Click-Handler, den Sie nicht ausführen möchten?
Wenn dies der Fall ist, sollten Sie in Erwägung ziehen, den Code zu entfernen, der den Status des Formulars auf eine eigene Methode festlegt, und ihn dann sowohl vom Radio-Click-Ereignis als auch vom Initialze / Show / Create Ihres Formulars aus aufzurufen.
Auf diese Weise können Sie denselben Code verwenden, um das Formular nach einem Benutzerklick auf den gewünschten Status zu setzen und es programmatisch zu setzen, ohne dass zusätzliche Logik erforderlich ist, wenn ein Benutzer mit dem Dialog interagiert. Oder vielleicht habe ich dein Problem völlig falsch verstanden ...
etwas wie das:
%Vor%Probieren Sie einige Funktionen oder Eigenschaften aus:
%Vor% Hinweis: wenn Sie den obj SENDER von ButtonClick( sender:TObject )
verwenden (zum Beispiel)
Absender = Klasse der Schaltfläche auf dem Klick = & gt; TButton
Also, TButton(Sender).properties
oder Methoden etc ...
Tags und Links delphi