AGB  ·  Datenschutz  ·  Impressum  







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

Zuweisungs problem

Ein Thema von venice2 · begonnen am 19. Aug 2020 · letzter Beitrag vom 19. Aug 2020
Antwort Antwort
venice2
(Gast)

n/a Beiträge
 
#1

Zuweisungs problem

  Alt 19. Aug 2020, 15:57
Ich möchte in meiner Winproc lParam TWindowPos zuweisen finde die Lösung nicht.
Mein Fenster wird durch andere Anwendungen in der ZOrder verändert deshalb muss ich hier gegen wirken.

Delphi-Quellcode:
    WM_WINDOWPOSCHANGING:
      begin
        wp := TWindowPos(lParam);
        //...
      end;

invalid TypeCast.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Zuweisungs problem

  Alt 19. Aug 2020, 16:09
Das eine ist ein Record, das andere eine Ganzzahl.
Fällt der Groschen?
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: Zuweisungs problem

  Alt 19. Aug 2020, 16:10
Das eine ist ein Record, das andere eine Ganzzahl.
Fällt der Groschen?
Nein.
Oder meinst als PWindowPos definieren? (Scheint so) Denke du hast mich auf die Lösung gebracht. Danke

Geändert von venice2 (19. Aug 2020 um 16:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zuweisungs problem

  Alt 19. Aug 2020, 16:16
Was ist TWindowPos ?
So hol ich Koordinaten:
Delphi-Quellcode:
var pt: TPoint;

...

pt.x := Word(lParam);
pt.y := Word(lParam shr 16);
Hilft das weiter?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: Zuweisungs problem

  Alt 19. Aug 2020, 16:18
Was ist TWindowPos ?
So hol ich Koordinaten:
Delphi-Quellcode:
var pt: TPoint;

...

pt.x := Word(lParam);
pt.y := Word(lParam shr 16);
Hilft das weiter?
Nein ich will keine Koordinaten aber das kannst du nicht wissen.
Wie ich diese bekomme ist mir klar.
Danke!

Ich benötige das HWND von wp.hwndInsertAfter.

Delphi-Quellcode:
  
    wp: PWindowPos;
    //...
    WM_WINDOWPOSCHANGING:
      begin
        wp := @LParam;
        wp.hwndInsertAfter := GetWindow(VisRenderThread.ParentHandle, GW_HWNDNEXT);
        Result := 0;
        exit;
      end;
so gehts
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: Zuweisungs problem

  Alt 19. Aug 2020, 18:06
Wie sieht das aus.
Was ist falsch mein Programm oder das Programm welches die ZOrder meiner Anwendung verändert?

Ich erstelle ein Window und setze dieses auf die nächste ZOrder meiner Anwendung.

Delphi-Quellcode:
procedure TBassVis.SizeMove;
var
  InsertAfter: HWND;
  rc: TRect;
begin
  if mVisParam.VisHandle <> 0 then
  begin
    InsertAfter := GetWindow(gG.MainHandle, GW_HWNDNEXT);

    SetWindowPos(mVisParam.VisContainerHandle, InsertAfter, 0, 0, 0, 0,
      SWP_NOMOVE or SWP_NOSIZE or SWP_NOOWNERZORDER or SWP_NOACTIVATE or SWP_ASYNCWINDOWPOS);

    GetWindowRect(HSprDisplayC, rc);
    MoveWindow(mVisParam.VisContainerHandle, rc.Left, rc.Top,
      rc.Right - rc.Left, rc.Bottom - rc.Top, false);
  end;
end;
Wenn sich das Fenster ändert führe ich SizeMove aus.

Delphi-Quellcode:
    WM_SIZE, WM_MOVE, WM_WINDOWPOSCHANGED, WM_IME_NOTIFY:
      if Assigned(VisBassVis) then
        VisBassVis.SizeMove;
und beim start nachdem die Vis gestartet wurde.

Das Problem ist nun verwende ich Camtasia dann verdreht mir diese Anwendung die ZOrder.
Das Programm scannt wohl alle Fenster der Anwendung verdreht dann aber die ZOrder bzw. setzt sie falsch warum auch immer.

Wie kann ich dem gegenwirken.

Meine Funktion wie ich mir das dachte funktioniert leider nicht.
Vielleicht hat ja noch jemand einen Tip.

EDIT:
Ok geht jetzt.
Ich schicke einfach ein WM_NCACTIVATE dann reorganisiert sich das wieder.
So ein murks das andere Anwendungen sich da rein klemmen.

Preview:

Geändert von venice2 (19. Aug 2020 um 19:30 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:14 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