AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Vorschaufenster ohne Fokus einblenden

Ein Thema von OlliWW · begonnen am 14. Nov 2013 · letzter Beitrag vom 28. Nov 2013
Antwort Antwort
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#1

Vorschaufenster ohne Fokus einblenden

  Alt 14. Nov 2013, 15:19
Hallo,

Ich habe in Delphi 2007 ein kleines Programm geschrieben, dass im Hintergrund läuft. Es checkt in regelmäßigen Abständen meine Emails und soll, wenn neue Emails vorhanden sind, ähnlich wie Outlook so ein kleines VorschauFenster "Sie haben neue Emails" einblenden.
Dazu habe ich eine kleine Form geschrieben mit fsStayOnTop und dieses funktioniert auch schon fast wie gewünscht.

Einziges Problem:
Wenn das Fenster erzeugt und angezeigt wird (Form.Show) verliert die Anwendung in der ich gerade tätig bin natürlich den Focus, was sehr umständlich ist, wenn man gerade zum Beispiel etwas tippt.

Gibt es einen Weg den Fokus in der aktuellen Anwendung (dessen Handle natürlich unterschiedlich ist) zu halten / direkt wieder umzuschalten?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Vorschaufenster ohne Fokus einblenden

  Alt 14. Nov 2013, 15:33
Ich habe so etwas ähnliches für die Anzeige des aktuellen Anrufers gemacht und so gelöst, dass mein Formular erst gar kein Fokus erhält, so dass das aktuelle Fenster auch keinen verlieren kann:

Delphi-Quellcode:
  procedure DoShowWin;
  begin
    ShowWindow(fmShowAnrufer.handle, SW_HIDE); // falls das Fenster noch da ist erstmal weg machen
    fmShowAnrufer.Hide; // falls das Fenster noch da ist erstmal weg machen
    fmShowAnrufer.Show;
    ShowWindow(fmShowAnrufer.handle, SW_SHOWNOACTIVATE);
  end;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.129 Beiträge
 
Delphi 12 Athens
 
#3

AW: Vorschaufenster ohne Fokus einblenden

  Alt 14. Nov 2013, 15:33
Vermutlich:

Delphi-Quellcode:
ShowWindow(MyForm.Handle, SW_SHOWNOACTIVATE);
MyForm.Visible := True;
Das Fenster muß natürlich mit Visible=False erstellt wurden sein.

[edit]
Wenn das Fenster niemals den Fokus bekommen soll:
WS_EX_NOACTIVATE (sollte in CreateParams gesetzt werden)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.

Geändert von himitsu (14. Nov 2013 um 15:37 Uhr)
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#4

AW: Vorschaufenster ohne Fokus einblenden

  Alt 28. Nov 2013, 11:41
Danke für die Antworten.
Dieser Code hat genau das getan was ich mir vorgestellt habe:
Delphi-Quellcode:
  Form2 := TForm2.Create(Self);
  ShowWindow(Form2.handle, SW_SHOWNOACTIVATE);
  Form2.Visible := True;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:17 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