Thema: Delphi SendMessage wartet nicht

Einzelnen Beitrag anzeigen

Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 17:25
Ich dachte die 1. Anwendung wird nicht geblockt, heißt: Du bekommst einen Rückgabewert obwohl das mit ShowModal() geöffnete Fenster noch offen ist.
Die Erklärung war dass der ShowModal()-Aufruf der Form2 selbst anfängt Nachrichten zu verarbeiten. Dem hast du deinen eigene Nachricht nicht beigebracht. Er wirft sie weg und beantwortet sie mit Null.

Versuche es doch mal so:
Delphi-Quellcode:
// TWindowHook = function (var Message: TMessage): Boolean of object;
function TForm1.handleIpcShowForm(var Message: TMessage): Boolean;
const
   WM_IPC_SHOWFORM = WM_USER + 1;
var
   secondForm: TForm;
begin
   case Message.Msg of
      WM_IPC_SHOWFORM: begin
         secondForm := TForm.Create(nil);
         try
            Message.Result := secondForm.ShowModal();
            Result := True;
         finally
            secondForm.Destroy();
         end;
      end;
   else
      Result := False;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Application.HookMainWindow(handleIpcShowForm);
end;
  Mit Zitat antworten Zitat