Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Panel einsperren (https://www.delphipraxis.net/119557-panel-einsperren.html)

Larsi 28. Aug 2008 08:45


Panel einsperren
 
Hi,
also ich habe ein Panel welches auf einem Image bewegt wird, proportional zur Mausposition mit folgendem Code (stammt von DeddyH):
Delphi-Quellcode:
if ssLeft in Shift then
    begin
      ReleaseCapture;
      TrsPanel1.Perform(WM_SYSCOMMAND,$F012,0);
    end;
Das Problem ist jetzt, dass man das Panel auch auf dem ganzen Form bewegen kann also nicht nur auf dem Image. Meine Frage ist jetzt wie ich das Panel sozusagen im Image einsperren kann?


MFG Lars Wiltfang

DeddyH 28. Aug 2008 08:47

Re: Panel einsperren
 
Setz ein neues Panel auf die Form und dort das Image mit alClient und das "Bewegungspanel" rein.

Neutral General 28. Aug 2008 08:50

Re: Panel einsperren
 
Hi,

Oder du kannst es auch mit MSDN-Library durchsuchenCreateRectRgn und MSDN-Library durchsuchenSelectClipRgn machen :wink:

Larsi 28. Aug 2008 08:56

Re: Panel einsperren
 
Zitat:

Zitat von DeddyH
Setz ein neues Panel auf die Form und dort das Image mit alClient und das "Bewegungspanel" rein.

Irgendwie funktioniert das nicht: Ich kann den Mauszeiger jetzt beim Verschieben nicht mehr aus dem Panel rausbekommen aber wenn ich das Bewegungspanel unten anfasse ist fast das gesammte Panel aus dem Panel und dem Image raus.
Zitat:

Hi,

Oder du kannst es auch mit Suche im Microsoft Developers NetworkCreateRectRgn und Suche im Microsoft Developers NetworkSelectClipRgn machen Wink
Wenn ich folgendes verwende:
Delphi-Quellcode:
Panel1 := CreateRectRgn(Image1.left, Image1.top, Image1.left + 376, Image1.top + 260 );
kommt folgender Fehler:
Zitat:

[DCC Fehler] Unit16.pas(60): E2010 Inkompatible Typen: 'TPanel' und 'HRGN'
Was ist HRGN, besitzt ein Panel überhaupt so eine Eigenschaft?

DeddyH 28. Aug 2008 09:08

Re: Panel einsperren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du machst was falsch. Schau Dir mal den Anhang an, so hatte ich das gemeint.

[edit] Ach, jetzt begreife ich erst, was Du meinst. Dann frag doch einfach ab, ob sich das Panel noch komplett innerhalb seines Parents befindet. [/edit]

Neutral General 28. Aug 2008 09:10

Re: Panel einsperren
 
Uuups...

Die Funktion hieß MSDN-Library durchsuchenClipCursor und arbeitet gar nicht mit Regions :oops:

Ne Region ist übrigens sowas ähnliches (die Leute die Ahnung haben hauen mich bitte jetzt nicht :mrgreen: ) wie ein Handle. Also eine Zahl... und Panel1 := 5; ging noch nie ;)

Larsi 28. Aug 2008 09:14

Re: Panel einsperren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von DeddyH
Du machst was falsch. Schau Dir mal den Anhang an, so hatte ich das gemeint.

Sorry wenn ich falsch liege, aber ich glaube du machst was falsch. Siehe Bild im Anhang. Das Panel kann man immernoch "rausschieben" wenn der Cursor an der richtigen Stelle ist.

@ Neutral General: ClipCursor begrenzt doch nur den Bereich des Cursors sodass solche Sachen wie im Anhang doch immernoch passieren können oder?

DeddyH 28. Aug 2008 09:16

Re: Panel einsperren
 
Schau mal auf mein Edit oben.

Larsi 28. Aug 2008 09:38

Re: Panel einsperren
 
Zitat:

Zitat von DeddyH
Du machst was falsch. Schau Dir mal den Anhang an, so hatte ich das gemeint.

[edit] Ach, jetzt begreife ich erst, was Du meinst. Dann frag doch einfach ab, ob sich das Panel noch komplett innerhalb seines Parents befindet. [/edit]

Und wie frage ich das ab?

Neutral General 28. Aug 2008 09:43

Re: Panel einsperren
 
Zitat:

Zitat von Larsi
Zitat:

Zitat von DeddyH
Du machst was falsch. Schau Dir mal den Anhang an, so hatte ich das gemeint.

[edit] Ach, jetzt begreife ich erst, was Du meinst. Dann frag doch einfach ab, ob sich das Panel noch komplett innerhalb seines Parents befindet. [/edit]

Und wie frage ich das ab?

Lars... Denk mal grad 5 Minuten nach. So schwer ist das nicht... :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 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