Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar (https://www.delphipraxis.net/189693-alt-tab-2tes-formular-mit-showmodal-anwendung-nicht-mehr-sichtbar.html)

Piro 11. Jul 2016 10:57

ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Moin zusammen,

sorry für den Titel aber ich wusste nicht besser, wie ich es kurz beschreiben soll.

Meine Anwendung öffnet eine 2tes Formular mit ShowModal, um Daten einzugeben. Wenn das passiert, kann ich nicht mehr mit ALT+TAB die Anwendung anwählen, um z.B. von einer anderen Windows Anwendung zurückzukehren.
Wenn das 2. Formular nicht ist, klappt alles bestens.

Kennt einer das Problem und weiß, die Einstellung, die ich übersehe bzw. nicht finde?

Vielen Dank im Voraus.

Sven

mm1256 11. Jul 2016 12:37

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Ist der Owner im Constructor der modalen Form die Application?

himitsu 11. Jul 2016 13:48

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Zitat:

kann nicht mehr auswählen
Soll das heißen, dass deine Anwendung dann nicht mehr in der Fensterauswahl des Alt+Tab oder Win+Tab enthalten ist? (Alt/Win länger gedrückt halten)

Delphi-Quellcode:
ZweiterDialog.PopupMode := pmExplicit;
ZweiterDialog.PopupParent := ErsteForm;

baumina 11. Jul 2016 14:07

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Vielleicht hat das Modale Fenster ein StayOnTop.

Piro 11. Jul 2016 19:25

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Ja, in Alt+Tab sehe ich nichts mehr.

Die 2. Form hat den FormStyle : fsNormal

Desweiteren hat
Delphi-Quellcode:
ZweiterDialog.PopupMode := pmExplicit;
ZweiterDialog.PopupParent := ErsteForm;
keinen Erfolg gebracht.

Zitat:

Owner im Constructor der modalen Form
Keine Ahnung woher ich das bekomme.

So rufe ich die 2. Form so auf.

Delphi-Quellcode:
ZweiteForm.ShowModal;

mm1256 12. Jul 2016 06:57

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Zeig doch bitte mehr Quelltext. Wie z.B. schon erwähnt, den Constructor, die ".dpr" usw. Irgendwo muss sich da was versteckt haben.

Piro 12. Jul 2016 09:07

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Hier der Constructor der Formulare. ich finde da leider nichts auffälliges.
Delphi-Quellcode:
program Aufgabenbuch;

uses
  Windows,
  SysUtils,
  Forms,
  Dialogs,
  MSXML2_TLB,
  Registry,
  uMain in 'uMain.pas' {frm_main},
  uTask in 'uTask.pas' {frm_task},
  uLogin in 'uLogin.pas',
  uHostAlive in 'uHostAlive.pas',
  StartOnce in 'StartOnce.pas',
  uMonthCalendar in 'uMonthCalendar.pas' {frm_monthcalendar},
  About in 'About.pas' {frm_about};

{$R *.res}

function DoesXMLExist: boolean;
var
 reg : TRegistry;
 s : string;
begin
 Result := False;
 reg := TRegistry.Create(KEY_READ);
 if reg <> nil then
 begin
   with reg do
   try
     RootKey := HKEY_CLASSES_ROOT;
     if OpenKey('CLSID\' + GuidToString(CLASS_DOMDocument60)+ '\InProcServer32', false) then
     try
       s := ReadString('');
       s := StringReplace(s,'%SystemRoot%',GetEnvironmentVariable('SYSTEMROOT'),[rfReplaceAll]); // falls eine Systemvariable gesetzt ist
       Result := (s <> '') and (fileexists(s));
     finally
      CloseKey;
     end;
   finally
     Free;
   end;
 end;
end;

begin
  ReportMemoryLeaksOnShutdown := True;
  Application.Initialize;
  Application.Title := 'Aufgabenbuch';

  if not DoesXMLExist then
  begin
    MessageDlg('MSXML 6 ist erforderlich. ' + Application.Title + ' wird beendet.',mtInformation,[mbOK],0);
    Exit;
  end;

  Application.CreateForm(Tfrm_main, frm_main);
  Application.CreateForm(Tfrm_task, frm_task);
  Application.CreateForm(Tfrm_monthcalendar, frm_monthcalendar);
  Application.CreateForm(Tfrm_about, frm_about);
  Application.Run;
end.
Ich habe mir mal ein kleines neues Projekt gemacht mit einer Form und einem Button. Beim Klick auf dem Button kommt eine 2. Form hoch.
Mit diesem kleinem Projekt geht alles mit ALT-TAB.

Danach habe ich ein neues Formular meiner Anwendung hinzugefügt und es dann einfach mit ShowModal angezeigt. Siehe da, es funktioniert alles wie gewünscht. :wall::wall::wall:

Woran kann es denn noch liegen?

Bin mit meinem Wissen am Ende.

Piro 12. Jul 2016 09:15

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
:hello:

Ich habe es gefunden. Ich habe die Formulare verglichen.

Es liegt am BorderStyle.

Derzeit verwende ich bsToolWin. Wenn ich z.B. auf bsSingel oder bsDialog wechsel, funktioniert alles.
Gut zu wissen.

Also wenn man nicht bsSizeToolWin oder bsToolWindow verwendet erscheint die Anwendung auch im ALT-TAB Menü.

Danke an alle für die Ideen und Hilfestellungen.

mm1256 12. Jul 2016 09:47

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Hallo,

dieses seltsame Phänomen ist nachvollziehbar. Ist das nun ein VCL-Bug?

EDIT: Ich muss mich korrigieren. Der erste Test war mit XE-7. Soeben nochmals mit 10.1 Berlin getestet. Da tritt es nicht mehr auf. Das Problem ist also anscheinend nach XE-7 behoben worden :thumb:

himitsu 12. Jul 2016 10:37

AW: ALT+TAB - 2tes Formular mit ShowModal - Anwendung nicht mehr sichtbar
 
Tool-Fenster und Dialoge werden nicht in der Taskleiste angezeigt und sind dann auch nicht im Alt+Tab sind.

Aber man kann ja "selber" daran rumfummeln, wenn man die vielen Threads zu "Fenster (nicht) in Taskleiste anzeigen" beachtet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Seite 1 von 2  1 2      

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