Announcement

Collapse
No announcement yet.

Reaktion auf ALT + TAB

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

  • Reaktion auf ALT + TAB

    Hallo Hagen!

    Du hast das letzte mal so schnell eine Lösung zur Hand gehabt, vielleicht fällt Dir auch dazu was ein:
    Ich rufe von meinem Delphi-Projekt aus ein DOS-Programm auf und schalte mit
    BringWindowToTop() und ShowWindow() in den Vordergrund (Wie schon gehabt!). Nach einer Datenspeicherung im DOS-Programm schalte ich dann wieder mein Projekt in den Vordergrund
    (Abfrage des Zeitstempels der DOS-LOG-Datei). Leider kann ich nicht autom. zurückschalten wenn im DOS-Programm ein Fehler aufgetreten ist da dann die LOG-Datei nicht aktuallisiert wird. Wenn ich dann mit Alt+TAB auf mein Projekt zurückschalt wird weder das OnShow-Ereignis der TabSheed noch das der Form ausgelöst. Ich muss jedoch eine Fehlerbehandlung starten (z.B. eine procedure zum Speicher rücksetzen u.ä.). Gibt es eine Möglichkeit eine Procedure zu starten wenn ich mit Alt+TAB auf mein Projekt umschalte?
    Danke im Voraus!
    Gruß Andreas Bergner

  • #2
    Hallo Andreas,

    es sollte reichen, wenn Du auf die Message <b>WM_ACTIVATEAPP</b> reagierst.

    Tschüß

    Torste

    Comment


    • #3
      Hallo Thorsten!

      "Das war ja einfach!" - Dank Dir! Super Tip.

      Gruß Andrea

      Comment


      • #4
        Wenn der Hagen mal nicht kann, ist der Torsten unser Mann ;-

        Comment


        • #5
          Gut zu wissen, dass es einige hilfsbereite Delphianer gibt.
          Ich versuch gerade einen Job als Delphi-Programmierer zu finden und man kann immer Hilfe brauchen, wenn es mal klemmt.

          Gruß Andrea

          Comment


          • #6
            hi uli, der reim ist nicht schlecht :
            Herzliche Grüße

            Markus Lemcke
            barrierefreies Webdesign

            Comment


            • #7
              Hallo Andreas,<p>
              nur als kleine Ergänzung:<br>
              Das OnActivate-Ereignis eines Formulars wird nur beim Aktivieren eines Fensters innerhalb der Delphi-Anwendung ausgelöst. Die Anwendung selber, nämlich Application, besitzt ebenfalls ein solches Ereignis. Nur kann man es nicht so bequem zur Entwurfszeit zuordnen. Man muß es zur Laufzeit tun. Am besten im OnCreate-Ereignis des Hauptformulars:z.B.<p>
              <pre>
              procedure THauptFormular.ApplicationOnActivate(Sender: TObject);
              begin
              if Assigned(FormLogView) then begin
              FormLogView.OnActivate(self);
              end;
              end;

              procedure THauptFormular.FormCreate(Sender: TObject);
              begin
              Application.OnActivate := ApplicationOnActivate;
              ...
              </pre>
              <p>
              Bei meinem Beispiel wird das OnActivate-Ereignis eines bestimmten Formulars ausgeführt, sofern es gerade existiert. Man könnte natürlich die Routine so umschreiben, daß immer das OnActivate-Ereignis des gerade aktiven Fensters ausgeführt wird.<br>
              Letzten Endes wird natürlich auch nichts anderes gemacht als die Nachricht WM_ACTIVATEAPP ausgewertet. Ich finde es allerdings schöner ein Problem mit Delphi-Bordmitteln zu lösen, sofern dies möglich ist. <br>Es lohnt sich übrigens sich in der Delphi-Hilfe mal die Klasse <b>TApplication</b> anzuschauen. Sie besitzt einige nette Eigenschaften und Methoden.<p>
              Gruß<br>
              Wolfgang Rolle

              Comment


              • #8
                Hi

                Mit D4/D5 gibts die neue TApplicationEvents Komponente, die einfacher und sicherer funktioniert.

                Gruß Hage

                Comment


                • #9
                  Hallo Wolfgang, Hallo Hagen!

                  Die Komponente TApplicationEvents ist genau das richtige. Damit wird genau das benötigte Ereignis ausgelöst.

                  Gruß Andrea

                  Comment


                  • #10
                    Hallo Hagen,<p>
                    du hast natürlich Recht. Die TApplicationEvent-Komponente ist mir glatt entgangen (obwohl ich schon seit einiger Zeit mit D5 arbeite). Die macht die Sache noch einfacher. In sofern hat sich mein Beitrag für mich gelohnt. <p>
                    Gruß<p>
                    Wolfgang Rolle

                    Comment

                    Working...
                    X