AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SendMessage wartet nicht

Ein Thema von Sunlight7 · begonnen am 14. Nov 2016 · letzter Beitrag vom 14. Nov 2016
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#11

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 17:19
ShowModal läuft in der 2. Anwendung, was hat das mit dem Blocken in der 1. Anwendung zu tun? Oder verstehe ich da was falsch?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 17:28
Hallo,
warum gehst du überhaupt über Messages?
Das sind Kanonen auf die armen Spatzen.
Heiko
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 17:30
Weil er zwei verschiedene Prozesse hat. Ich bin für IPC-Sachen kein Profi, aber für so etwas einfaches wie "Mache ein Fenster auf" hätte ich das wahrscheinlich auch genommen...
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 17:46
ShowModal läuft in der 2. Anwendung, was hat das mit dem Blocken in der 1. Anwendung zu tun? Oder verstehe ich da was falsch?
Der Sender blockt halt nur so lange, bis der Empfänger die Nachricht bearbeitet hat. Du gehst davon aus, dass dies erst nach dem ShowModal der Fall ist. Da ShowModal die Message aber selbstständig abarbeitet, hört MSDN-Library durchsuchenSendMessage praktisch direkt zeitgleich mit deinem ShowModal Aufruf auf zu blockieren.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#16

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 18:40
Wenn ich also anstatt ein Formular mit ShowModal anzuzeigen eine MessageBox aufrufe funktioniert es, was macht Windows da anders?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 18:41
Eine Windows-Messagebox ist keine VCL-Anwendung? Hast du die Beiträge hier drüber überhaupt gelesen?

Geändert von Der schöne Günther (14. Nov 2016 um 18:42 Uhr) Grund: Immer freundlich bleiben
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#18

AW: SendMessage wartet nicht

  Alt 14. Nov 2016, 18:52
Ja ich habe die Beiträge gelesen und bin deswegen vom ShowModal weggegangen und es würde mich weiterhin interessieren, wie Windows sein Modales Fenster realisieren kann ohne den SendMessage Block zu stören. Das Windows nicht Delphi VCL ist bin ich mir ebenfalls bewusst, daher ja der Gedanke, ob ich die Windows Variante nachahmen kann.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18: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