Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Fensterinhalt wird beim Ziehen nicht angezeigt (https://www.delphipraxis.net/169070-fensterinhalt-wird-beim-ziehen-nicht-angezeigt.html)

tofse 27. Jun 2012 06:46

Fensterinhalt wird beim Ziehen nicht angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
ich verwende folgenden Code, um TPanel's in einer Scrollbox zu bewegen.

Code:
ReleaseCapture;
DraggingTermin.Perform(WM_SYSCOMMAND, $F012, 0);
Sobald das Objekt bewegt wird, "überwacht" ein Timer die x,y Positionen und führt Berechnungen durch. Das funktioniert wunderbar und sieht so aus wie im ersten Bild. Das hellblaue Objekt wird gezogen, der Timer berechnet die neue Einfügeposition und zeigt dort die blaue Linie an.

Nun das Problem. In unserer Terminalserverlandschaft sind so ziemlich alle visuellen Effekte ausgeschaltet, darunter auch "Fensterinhalt beim Ziehen anzeigen". Sieht dann wie in Bild2 aus. Ok, der Inhalt wird nicht angezeigt, das ist klar, ABER wieso kann ich nicht auf die Koordination zugreifen, bzw. zugreifen klappt natürlich, aber die bleiben fix beim Ursprungsobjekt und ändern sich erst, wenn das Objekt losgelassen wird. D.h. ich kann die blaue Linie nicht während dem Ziehen berechnen :-(
Ich habe nun mehrere Möglichkeiten
1) den Anwender überzeugen, dass er auf die Linie verzichtet. Wird wohl nix, da er die ausdrücklich gefordert hat
2) den Kollegen von der Systembetreuung überzeugen, den visuellen Effekt wieder einzuschalten...wird auch schwierig
3) darauf hoffen, dass mir hier jemand einen Tipp gibt :-)

Mir will nicht in den Kopf, warum dieser Effekt überhaupt auftritt, denn es wird ja "nur" der Fensterinhalt nicht angezeigt (lt. Checkbox Beschreibung!). Die Position verändert sich doch trotzdem, also muss es möglich sein, darauf zuzugreifen, oder :gruebel:

Danke und sorry für die Ausschweifungen
Christof

Bummi 27. Jun 2012 06:49

AW: Fensterinhalt wird beim Ziehen nicht angezeigt
 
mhhh... vielleicht die Berechnung umstellen auf absolute Mauskoordinaten?

tofse 27. Jun 2012 06:56

AW: Fensterinhalt wird beim Ziehen nicht angezeigt
 
Das wird schwierig, da die neue Einfügeposition vom Objekt abhängt (linke obere Ecke).
Wenn der Benutzer das Objekt gaaaanz rechts anklicken würde, dann müsste unter Umständen über den halben Bildschirm gezogen werden, bis der Mauszeiger eine neue Spalte erreicht.
Ich MUSS also auf das Objekt zugreifen :-(

Bummi 27. Jun 2012 07:01

AW: Fensterinhalt wird beim Ziehen nicht angezeigt
 
Ich meine nicht das Umstellen des ReleaseCapture, sondern lediglich das Zeichnen der Linie.
Bei ReleaseCapture die Mauskoordinaten merken und in Deinem "Timer" die relativen Änderungen für die Berechnung der Linienposition heranziehen.

tofse 27. Jun 2012 07:05

AW: Fensterinhalt wird beim Ziehen nicht angezeigt
 
Hm, verstehe, könnte ich versuchen...

Edit: Super ! Funktioniert


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