AGB  ·  Datenschutz  ·  Impressum  







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

Fehler bei Dialog in dll

Ein Thema von snook · begonnen am 18. Apr 2011 · letzter Beitrag vom 5. Mai 2011
 
snook

Registriert seit: 25. Jun 2010
94 Beiträge
 
Delphi 2005 Professional
 
#5

AW: Fehler bei Dialog in dll

  Alt 5. Mai 2011, 10:56
okay, falls jemand mal mit windoesbotschaften und derren verarbeitung probleme hat, hab es gelöst. bin mir zwar immer noch nicht so ganz im klaren wie die botschaftsverarbeitung aussieht, aber so hab ich das ganze jetzt gehandelt.

Delphi-Quellcode:

procedure TControlWrapper.ControlWndProc(var Msg: TMessage);
var PlugIn: IPlugIn;
    addr : LongInt;
    lMsg : TMessage;
begin
  ControlLocked := true; // ordnet FControl wieder die original windowproc zu
  FControl.WindowProc(msg); // verarbeitung der message ohne weiteres einhängen der pluginbotschaftsverarbeitung
  ControlLocked := false; // hängt sich wieder in die windowproc von FCOntrol ein
    if (AllocatedPlugIn > 0) then // botschaft wird an das plugin gesendet um dort darauf zu reagieren
    begin
      addr := SendMessage(AllocatedPlugIn,PM_GETPLUGIN,0,0);
      if addr <> 0 then
        try
          PlugIn := IPlugIn(addr);
          with lMsg do
          begin
            msg := CM_NOTDISPNEXT;
            lParam := 0;
            wParam := 0;
            result := 0;
          end;
          PlugIn.WndProc(lmsg); //verhindert aufruf von DefWindowProc, falls botschaft von plugin nicht vearbeitet wird
          PlugIn.WndProc(Msg);
        finally
          PlugIn := nil;
        end;
    end;
end;
letztendlich lasse ich das control in ruhe seine botschaft verarbeiten, bis ich selber damit weiter rumpfusche. ausserdem wird die botshcaft nicht an die defwindowproc übergeben, da sie bereits in FControl verarbeitet wurde.
da es jetzt funktioniert schliese ich mal darauf, das bei der verarbeitung von globalen messages wohl in den delphi controls noch einiges mehr an botschaften traffic verursacht wird, obwohl ja die botschaften hier zur erzeugung des dialogs verwendet werden (scheinbar werden aber wohl die controls auch neu gezeichnet)
  Mit Zitat antworten Zitat
 


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 14:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz