Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi LParam to TRect (https://www.delphipraxis.net/192074-lparam-trect.html)

EWeiss 17. Mär 2017 19:51


LParam to TRect
 
Warum funktioniert das nicht bzw. wie geht es richtig.

rc := lP;

es funktioniert nur wenn ich den Speicher vorher kopiere.
Delphi-Quellcode:
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

Luckie 17. Mär 2017 19:58

AW: LParam to TRect
 
Speicher reservieren? Was CopyMen automatisch macht?

EWeiss 17. Mär 2017 20:04

AW: LParam to TRect
 
Zitat:

Zitat von Luckie (Beitrag 1364589)
Speicher reservieren? Was CopyMen automatisch macht?

Tip? Lass mich bitte jetzt nicht raten ;)

gruss

Luckie 17. Mär 2017 20:17

AW: LParam to TRect
 
Rat mal. :mrgreen: GetMem? Bin mir nicht sicher.

EWeiss 17. Mär 2017 20:27

AW: LParam to TRect
 
Zitat:

Zitat von Luckie (Beitrag 1364591)
Rat mal. :mrgreen: GetMem? Bin mir nicht sicher.

Und von was GetMem? LOL.
Das hilft mir irgendwie nicht weiter..

Ich möchte nur wissen ob meine Methode mit CopyMemory korrekt ist.
Wenn ja kann ich mir den versuch ersparen lP auf den TRect umzulegen wie auch immer das gehen mag.

gruss

Luckie 17. Mär 2017 20:30

AW: LParam to TRect
 
GetMem ist eine normale Funktion von Delphi. Mir fällt gerade die WinAPI Funktion nicht ein. Aber wenn es so funktioniert?

Luckie 17. Mär 2017 20:35

AW: LParam to TRect
 
AllocMem?

EWeiss 17. Mär 2017 20:38

AW: LParam to TRect
 
Zitat:

Zitat von Luckie (Beitrag 1364593)
GetMem ist eine normale Funktion von Delphi. Mir fällt gerade die WinAPI Funktion nicht ein. Aber wenn es so funktioniert?

Jo mit GetMem kann ich mir den Speicher holen denke aber nicht das ich es in Verbindung mit CopyMemory benötige oder?
Mir ging es halt nur darum wie ich rc := lp (also Lparam an den TRect zuweisen kann ohne CopyMemory).

Ja Vielleicht etwas konfus meine Frage.

gruss

Luckie 17. Mär 2017 20:48

AW: LParam to TRect
 
Hach. Wo sind meine WinAPI Tage mit meinem WinAPI Wissen geblieben? :roll: Und bitte keinen Verweis auf meine eigenen Tutorials! :twisted:

Zacherl 17. Mär 2017 21:42

AW: LParam to TRect
 
Delphi-Quellcode:
Rect := PRect(lParam)^
evtl.?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Seite 1 von 2  1 2      

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