AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi wie merken, wenn mein Programm nicht im Vordergrund ist?
Thema durchsuchen
Ansicht
Themen-Optionen

wie merken, wenn mein Programm nicht im Vordergrund ist?

Ein Thema von DJTonic · begonnen am 14. Aug 2003 · letzter Beitrag vom 15. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
DJTonic

Registriert seit: 14. Aug 2003
4 Beiträge
 
#1

wie merken, wenn mein Programm nicht im Vordergrund ist?

  Alt 14. Aug 2003, 18:26
Ich hoffe mir kann jemand helfen:
Ich bräuchte einen Codeschnipsel, damit ich merken kann, ob mein Programm im Fordergrund ist oder ob ein anderes Programm im Fordergrund ist (also mit den der user arbeitet) oder ob er mein Programm minimiert hat.
Wäre wichtig.
Danke schonmal im voraus.
  Mit Zitat antworten Zitat
Pascal

Registriert seit: 10. Aug 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: wie merken, wenn mein Programm nicht im Fordergrund ist?

  Alt 14. Aug 2003, 18:29
Hallo,

Mit
if Form1.WindowState = wsMinimized then ... bekommst du leicht heraus, ob dein Programm minimiert ist,

mit
if Form1.Active then ... ob dein Programm (bzw. Fenster) aktiv ist.

Gruß Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#3

Re: wie merken, wenn mein Programm nicht im Fordergrund ist?

  Alt 14. Aug 2003, 18:30
Hallo und herzlich willkommen im Forum!

1. Es heißt Vordergrund
2. Ich weiß leider nicht, wie du merkst, wenn dein Prog im Hintergrund ist, aber mit SetForegroundWindow(HandleDeinesProgs) (oder so ähnlich) kannst du dein programm normalerweise wieder in den Vordergrund bringen. Also wenn du das regelmäßig mit einem Timer machst, wäre dein Programm fast zu jeder Zeit im Vordergrund.

Oder hast du was anderes vor, als nur dein Programm im Vordergrund zu halten?

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
DJTonic

Registriert seit: 14. Aug 2003
4 Beiträge
 
#4

Re: wie merken, wenn mein Programm nicht im Fordergrund ist?

  Alt 14. Aug 2003, 18:34
Ups, dummer Tippfehler

Danke schonmal für den Tip mit dem Aktiv. Funktioniert wunderbar.
ABER:
das mit dem minimieren geht nicht.
ich habe geschrieben:
if Form1.WindowState = wsMinimized then begin
label1.caption :='war minimiert';
end;

geht aber nicht. nicht wenn ich alles minimiere oder nur das eine programm mit dem Strich beim X.
hab ich was falsch gemacht?
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: wie merken, wenn mein Programm nicht im Fordergrund ist?

  Alt 14. Aug 2003, 19:26
dazu hab ich auch eine frage, und zwar möchte ich das mein programm das wenn es nicht das aktive mehr ist es minimietr wird...aber in welche prozedur pack ich das?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: wie merken, wenn mein Programm nicht im Fordergrund ist?

  Alt 14. Aug 2003, 20:18
aus der SDK hab ich gelesen das es mit WM_ACTIVATE WA_INACTIVE geht...aber in welche prozedur kommt das? bzw wie fängt man die messages ab, und wann?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Pascal

Registriert seit: 10. Aug 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: wie merken, wenn mein Programm nicht im Vordergrund ist?

  Alt 15. Aug 2003, 09:44
Ich habe mal einen Blick in Hilfe risikiert , und folgendes gefunden:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnDeactivate := AppDeactivate;
end;

procedure TForm1.AppDeactivate(Sender: TObject);
begin
  Application.Minimize;
end;
So müsste es gehen.
@DJTonic: Ich habe es selber probiert und es funktioniert wirklich nicht, keine Ahnung, warum. Vielleicht krieg ich noch was raus.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: wie merken, wenn mein Programm nicht im Vordergrund ist?

  Alt 15. Aug 2003, 10:14
Es gibt diese Komponente TApplicationEvents. Damit kannst du Anwendungs(nicht Formular-)ereignisse abfangen und behandeln. Beispiele dafür wären:
OnActivate
OnDeactivate
OnException
OnIdle
OnMinimize
OnRestore
Mit diesen Ereignissen kann man so ziemlich alles abfangen...

Hoffe das hilft weiter
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Pascal

Registriert seit: 10. Aug 2003
22 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: wie merken, wenn mein Programm nicht im Vordergrund ist?

  Alt 15. Aug 2003, 10:57
Richtig, so habe ich es ja auch oben beschrieben.
Allerdings habe ich es so verstanden, dass er nicht beim minimieren etwas machen will, sondern irgenwann mal feststellen will, ob sein Fenster momentan minimiert ist.
Und wie er das feststellt, ist mir noch nicht klar.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: wie merken, wenn mein Programm nicht im Vordergrund ist?

  Alt 15. Aug 2003, 11:01
Am einfachsten: in OnMinimize eine Boolean-Variable setzen, bei OnActivate zurücksetzen. Ist Variable gesetzt => Fenster minimiert...
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz