AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Form verliert focus (dspack)
Thema durchsuchen
Ansicht
Themen-Optionen

Form verliert focus (dspack)

Ein Thema von heinz_braun · begonnen am 31. Aug 2006 · letzter Beitrag vom 31. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
heinz_braun

Registriert seit: 29. Aug 2006
13 Beiträge
 
Delphi 6 Enterprise
 
#1

Form verliert focus (dspack)

  Alt 31. Aug 2006, 16:24
Hi

ich nutze delphi 7 und habe 2 forms.
die 2. form soll mit hilfe von dspack videos abspielen. das erste viedeo wird ordentlich abgespielt, aber beim nächsten verliert die form den focus bei form2.FilterGraph1.RenderFile(Moviefile); der focus ist auch nicht bei der form1. wo ist der focus???


Delphi-Quellcode:
    form2.FilterGraph.Active := True;
    form2.VideoWindow.FilterGraph := form2.FilterGraph;
    form2.FilterGraph.ClearGraph;
    form2.FilterGraph.RenderFile(Moviefile);
    form2.FilterGraph.Play;
habe es schon mit Form2.setfocus probiert, hat aber nicht funktioniert.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 16:33
Ich hatte einen ähnlichen Effekt. Kann es sein, dass Du über das DSPack mit DivX arbeitest und rechts unten in der Symbol-Leiste ein kleines DivX-Icon erscheint? In meinem Fall ist der Fokus dorthin gewandert.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
heinz_braun

Registriert seit: 29. Aug 2006
13 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 16:43
ja genau
das ist mir garnicht aufgefallen, das da ein neues symbol im tray ist.
Wie hast du das gelöst???
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 16:45
Guck dir mal das an:
Delphi-Quellcode:
function ForceForegroundWindow(hwnd: THandle; Delay : Integer): Boolean;
const
  SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
  ForegroundThreadID: DWORD;
  ThisThreadID: DWORD;
  timeout: DWORD;
begin
  if delay <> 0 then
    sleep(delay);

  if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE);

  if GetForegroundWindow = hwnd then Result := True
  else
  begin
    if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4)) or
      ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
      ((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
      (Win32MinorVersion > 0)))) then
    begin
      Result := False;
      ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
      ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
      if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
      begin
        BringWindowToTop(hwnd);
        SetForegroundWindow(hwnd);
        AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
        Result := (GetForegroundWindow = hwnd);
      end;
      if not Result then
      begin
        SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
          SPIF_SENDCHANGE);
        BringWindowToTop(hwnd);
        SetForegroundWindow(hWnd);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0,
          TObject(timeout), SPIF_SENDCHANGE);
      end;
    end
    else
    begin
      BringWindowToTop(hwnd);
      SetForegroundWindow(hwnd);
    end;
    Result := (GetForegroundWindow = hwnd);
  end;
end;
Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
heinz_braun

Registriert seit: 29. Aug 2006
13 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 17:09
gibt es keine einfachere möglichkeit ???
ich bin nicht so gut wie du in delphi und habe probleme den code zu verstehen.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#6

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 17:41
Hi heinz_braun,

wir werden uns wohl noch des öffteren über DSPack unterhalten , das selbe Problem hatte ich auch, habe zwar nicht mehr 2 Formulare aber probier doch mal das, nachdem du mit RenderFile den Film abspielst:

Delphi-Quellcode:
uses
 Unit2; //der Name der Unit
...

form2.FilterGraph1.RenderFile(Moviefile);
Form2.SetFocus;
Gibt der Form den Fokus zurück.

Ist deine Form garnicht mehr zu sehen? Wenn ja dann versuch mal:

Delphi-Quellcode:
form2.FilterGraph1.RenderFile(Moviefile);
Form2.BringToFront;
Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 18:17
Also die Funktion tut nichts anderes, als ein Fenster in den Vordergrund zu zwingen. Die Funktion bindest du ganz einfach im Implementation Teil deiner Unit1.pas ein.

Um Form2 den Fokus zu geben:
ForceForegroundWindow(Form2.Handle, 0); @Mezel:
Zitat:
habe es schon mit Form2.setfocus probiert, hat aber nicht funktioniert.
SetFocus geht also schonmal nicht es könnte sein, dass BringToFront auch nicht geht ... dann eben einfach "meine" Funktion benutzen ...

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#8

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 18:27
Hi,

verstehe ich nicht warum das nicht geht, bei mir gings mit dem SetFokus, habe aber später einiges an meinem Player geändert, so dass ich das nciht mehr brauchte.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
heinz_braun

Registriert seit: 29. Aug 2006
13 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 19:10
danke für die vielen antworten.

das mit form2.setfocus funktioniert bei mir nicht.

die funktion von Florian Bernd funktioniert nur beim 1. mal. das heisst, das ich das fenster(form2) öffne und 2 filme abspielen lasse. danach wird das fenster invisible gesetzt und später wieder visibile und jetzt verliert die form2 wieder den focus.

grrrr
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Form verliert focus (dspack)

  Alt 31. Aug 2006, 19:20
Zitat von heinz_braun:
Wie hast du das gelöst???
Eigentlich noch gar nicht. Ich hatte noch an anderen Stellen zutun und war vorerst froh, die Video-Ausgabe prinzipiell gelöst zu haben.
Daniel R. Wolf
mit Grüßen aus Hamburg
  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 13:46 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