AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Durchklickbares Fenster soll verschoben werden können
Thema durchsuchen
Ansicht
Themen-Optionen

Durchklickbares Fenster soll verschoben werden können

Ein Thema von lbccaleb · begonnen am 25. Feb 2013 · letzter Beitrag vom 25. Feb 2013
Antwort Antwort
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

Durchklickbares Fenster soll verschoben werden können

  Alt 25. Feb 2013, 17:46
Hey, bei mir haperts gerade wieder nen bischen -.-

Also ich habe ein Fenster mit der Windows Funktion SetWindowLong die Eigenschaft "WS_EX_TRANSPARENT" verpasst.

Das ist nun also alles so wie es sein soll.

Nun fehlt mir aber gerade ne Idee, wie ich das ganze trotzdem noch mit der Maus verschieben kann.
Also man soll in eine Freie Stelle des Fenster klicken, und dann trotzdem das Fenster verschieben können.

Nun ist also das Problem, ich muss Feststellen, das der Anwender auch wirklich das Fenster "verschieben" will und nicht nur durchklicken möchte. Jemand ne Idee, wie man das realisieren könnte?


Vllt mit einem Timer, der 5s wartet wenn der Mauscursor auf dem Fenster ist und dann die Funktion freigibt?

Oder könnte man die Verschiebe Funktion noch anders aufrufen? Bei älteren Windows Versionen war doch das "Fenster verschieben" immer in diesem kleinen PopUp-Menü, welches zu erreichen war in dem man oben links auf das kleine Fenster Symbol klickte. Aber das gibt es ja nun unter Windows 7 auch nicht mehr?!

Oder denk ich gerade zu kompliziert?
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Durchklickbares Fenster soll verschoben werden können

  Alt 25. Feb 2013, 18:52
Für mich ist das ein Widerspruch in sich... es ist unmöglich, die wirkliche Intention des Anwenders zu erraten.

Timer find ich nicht optimal, denn ich würde als Anwender nicht gerne unter Zeitdruck beim Anklicken von Steuerelementen im Hintergrund stehen. Falls das Timeout andererseits sehr großzügig gewählt ist, besteht wiederum das Problem, dass man lange warten muss, um das Fenster zu verschieben, was ebenfalls für Frust sorgen dürfte. Stopp mal mit einem Timer die Zeit, wie lange 5 Sekunden sind. Stell dir mal vor, du müsstest jedes mal so lange warten, wenn du ein Fenster verschieben willst... mich würde das wahnsinnig machen.

Mach es doch einfach so, dass der User eine bestimmte (z.B. Strg) Taste gedrückt halten muss, um das Fenster anklickbar zu machen.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#3

AW: Durchklickbares Fenster soll verschoben werden können

  Alt 25. Feb 2013, 19:06
MobileMeter hat ebenfalls ein (optional) durchklickbares Fenster. Man kommt dennoch an das Programm selbst ran, weil es mit einem Symbol im Tray sitzt. Man sollte zwar nicht jedes Programm mit einem solchen Symbol ausstatten (zumal heutzutage jedes Furzprogramm sowas hat, was letztlich den Tray zumüllt), aber je nach Wichtigkeit eines Programms kann man das ja - ggf. optional - anbieten.

MfG Dalai
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Durchklickbares Fenster soll verschoben werden können

  Alt 25. Feb 2013, 19:49
Nur so als Brainstorming Beitrag: dein Fenster hat einen Rect Bereich auf dem Desktop. Das ist weniger interessant, aber daraus kannst du den Rect-Bereich deiner Titel-Liste ermitteln. Nun über Message die globale Mausposition ermitteln und immer wieder prüfen ob sich der Mauszeiger im Rect-Bereich befindet. Wenn ja, dann Durchklickbarkeit abschalten, sonst wieder einschalten.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Durchklickbares Fenster soll verschoben werden können

  Alt 25. Feb 2013, 19:57
OK, danke aber konnte es Mitlerweile selber lösen.

Habe in meinem Konfigurations Tab nen neuen Button erstellt (Fenstposition anpassen)

Diesen habe ich gesubclassed und dann den WM_LBUTTONDOWN direkt an das Fenster weiter geleitet.
Dann den Mauscursor auf der linken oberen Ecke vom Fenster positioniert.

Wenn mann jetzt also auf den Button klickt, kann man so direkt das Fenster verschieben.
Funktioniert wunderbar
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)

Geändert von lbccaleb (25. Feb 2013 um 20:05 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 02: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