Thema: Delphi LParam to TRect

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

LParam to TRect

  Alt 17. Mär 2017, 19:51
Warum funktioniert das nicht bzw. wie geht es richtig.

rc := lP;

es funktioniert nur wenn ich den Speicher vorher kopiere.
CopyMemory(@rc, Pointer(lP), sizeof(rc)); oder ist das so korrekt?
Delphi-Quellcode:
    WM_MOVING:
      begin
        Monitor := MonitorFromWindow(WinHandle, MONITOR_DEFAULTTONEAREST);
        CopyMemory(@rc, Pointer(lP), sizeof(rc));

        if (rc.Top < 0) then
          rc.Top := 0;

        rc.Right := rc.Left + pMM^.ptMinTrackSize.X;
        rc.Bottom := rc.Top + pMM^.ptMinTrackSize.Y;
        tmi.cbSize := sizeof(tmi);
        if (GetMonitorInfo(Monitor, @tmi)) then
        begin
          if (rc.Bottom > tmi.rcWork.Bottom) then
          begin
            rc.Bottom := tmi.rcWork.Bottom;
            rc.Top := rc.Bottom - pMM^.ptMinTrackSize.Y;
          end;
        end;
        Result := 1;
        Exit;
      end;
Die Daten kommen richtig an.
Aber eigentlich wollte ich LParam direkt an TRect (rc) übergeben.

gruss

Geändert von EWeiss (17. Mär 2017 um 19:54 Uhr)
  Mit Zitat antworten Zitat