Announcement

Collapse
No announcement yet.

Events in Steuerelementen auf Formularebene abfangen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Events in Steuerelementen auf Formularebene abfangen

    Hi,

    wie kann ich auf Formularebene Events ( mouseClick etc. ) abfangen die von oder in Steuerelementen wie TEdit oder TDBEdit ausgelöst werden. Ich brauche dann Name und Value des Steuerelementes um eine zentrale Weiterverarbeitung steuern zu können, da ich nicht eín und denselben Code in 20-30 Steuerelementen schreiben will (auch keinen Funktionsaufruf).
    Ich habe es über ein Popup Menu versucht welches den Steuerelementen zugewiesen habe, allerdings weiß ich dann im Menuevent nicht über welchen Steuerelement das Menu ausgelöst wurde. In TOject *Sender finde ich zumindest keinen Hinweis darauf

    Vielen Dank Joachim

  • #2
    Du verwendet einen EventHandler z.B. für alle OnClick-Ereignisse.
    Für Events, welche mehr bzw. andere Parameter benötigen brauchst Du
    auch einen EventHandler.<br>
    Folgendes Codefrakment ist jetzt zwar in Delphi geschrieben, aber vom Prinzip geht das auch beim C++-Builder!

    procedure MyForm.EditClick(Sender: TObject);<br
    var<br>
    Control: TControl;<br>
    begin<br>
    if Sender is TControl then //Typüberprüfung<br>
    begin<br>
    Control := Sender as TControl; // Dynamischer Typcast<br>

    Control.Name; // Name des Controls<br>
    Control.Text; // Text des Controls<br>
    end;<br>
    end

    Comment


    • #3
      Danke für den Tip Bernhard, aber leider ist es nicht das was ich brauche, da es im Eventhandler des Steuerelementes abläuft.

      Ich brauche die Möglichkeit auf Level des Formulares einen Event in einem x beliebigen Steuerelement abzufangen. Dann muß ich feststellen können um welches Steuerelement es handelt. Danach muß dann für eine Untermenge aller Steuerelemente des Formulares eine Verarbeitung gestartet werden.

      Mit anderen Worten den Event Click möchte ich nicht als TForm::EditClick() im Steuerelement haben sonderen als TForm::FormClick(). Der letztere wird aber nur bei direktem Click auf das Formular aufgerufen und nicht bei Klick auf ein Edit Feld

      Comment

      Working...
      X