Hi Leute,
ich hab mir - abgeguckt von Roger Donnays dragdop-Beispiel in seinem Dispatch.exe - selbst an verschiedenen Stellen Drag+Drop in meine Anwendung integriert.
Dabei erstelle ich beim "Mousedown" einen "Dragdrop"-Dialog (ohne Titel - also einfach ein Kasten), den ich mit der Maus herumbewege. dadurch sieht der Benutzer auch WAS er gerade bewegt.
Das funktioniert alles wunderbar - und wenn die Maus an der dafür vorgesehenen Stelle wieder losgelassen wird, dann wird nicht nur sauber eingefügt, sondern auch der temporäre Dialog gelöscht.
Problem: wenn ich die Maus mit gehaltener Taste aus meiner Anwendung hinausziehe und dort die Maus loslasse, dann bleibt der Dialog bestehen. Ich habe dann keine Kontrolle mehr über Mouse-Events wie "mouse up".
Wenn ein User das mehrfach tut, dann habe ich bald 10 bis 20 "Dialog-Leichen" in der Taskleiste und auf dem Bildschirm rumliegen. Erst beim Beenden der Applikation werden diese wieder entfernt.
Welche Lösungs-Ansätze gibt es, um diese überflüssig gewordenen Dialoge zu entfernen ??
Idee 1: Wenn ich bei einem "Mouse motion" Event den STATUS der Maus abfragen könnte - also ob während der Bewegung die linke taste gedrückt war oder nicht (geht das ?), dann könnte ich in allen anderen Dialog-Handlern meiner Anwendung diese Dialoge zerstören.
Idee 2: wenn ich den Dialog und eine Zeit-Info über seine Erzeigung PUBLIC mache, dann könnte ich in allen Handlern der Anwendung nach z.B. 10 Sekunden Existenz den Dialog zerstören (also nichts für zögerliche Drag+Drop-Anwender )
Hat jemand noch andere Ideen ??
Vielen dank im Voraus
Klaus (Pope) Bischoff
Löschen eines "verwaisten" Drag+Drop-Dialogs ???
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
hi,
benutzt du den Express++ oder "lernst" du nur daraus ?
achso für die Express++ User : den DropDialog() kann man sich ja selbst "auffüllen". Ich habe mir
bei Diego was "abgeguckt". Er macht einen Snapshot von dem markierten Bereich und zeigt das
BMP beim Dragdrop an ... nur so als Idee weil es "hübsch" aussieht.
habe ad hoc keine Antort und wäre wohl auch recht spät dran, aber was interessiert:Pope hat geschrieben: ich hab mir - abgeguckt von Roger Donnays dragdop-Beispiel in seinem Dispatch.exe - selbst an verschiedenen Stellen Drag+Drop in meine Anwendung integriert.
benutzt du den Express++ oder "lernst" du nur daraus ?
achso für die Express++ User : den DropDialog() kann man sich ja selbst "auffüllen". Ich habe mir
bei Diego was "abgeguckt". Er macht einen Snapshot von dem markierten Bereich und zeigt das
BMP beim Dragdrop an ... nur so als Idee weil es "hübsch" aussieht.
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 164
- Registriert: Mo, 09. Jan 2006 17:06
- Wohnort: Paderborn
- Hat sich bedankt: 2 Mal
- Kontaktdaten:
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
Hallo Jimmy,
Vielen Dank!
Hans
So etwas Ähnliches habe ich auch vor. Kannst Du mir etwas auf die Sprünge helfen, wie man das umsetzen kann?AUGE_OHR hat geschrieben:Ich habe mir
bei Diego was "abgeguckt". Er macht einen Snapshot von dem markierten Bereich und zeigt das
BMP beim Dragdrop an ... nur so als Idee weil es "hübsch" aussieht.
Vielen Dank!
Hans
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
wenn du mir deinen Source zeigst.hschmidt hat geschrieben:So etwas Ähnliches habe ich auch vor. Kannst Du mir etwas auf die Sprünge helfen, wie man das umsetzen kann?
Ich habe ja auch den Source von Klaus nicht gesehen, aber ich "denke" es fehlt in der Drag Methode eine Event Schleife die das up/down/move "auswertet".
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
Hallo, Klaus.
Wenn es irgendein Event gibt (außer Mouse Down im richtigen Ziel oder Mouse Move) und es existiert noch ein DropDialog, dann ist dieser zu löschen. So mache ich das. Funzt.
Wenn es irgendein Event gibt (außer Mouse Down im richtigen Ziel oder Mouse Move) und es existiert noch ein DropDialog, dann ist dieser zu löschen. So mache ich das. Funzt.
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 164
- Registriert: Mo, 09. Jan 2006 17:06
- Wohnort: Paderborn
- Hat sich bedankt: 2 Mal
- Kontaktdaten:
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
Hallo Jimmy,
da habe ich mich wohl falsch ausgedrückt.
Die Mimik mit dem Drag and Drop habe ich schon programmiert und das funktioniert auch soweit.
Was mich interessiert ist die Sache mit dem Snapshot und der Anzeige als Bild beim Ziehen.
Ich benutze da im Moment einen anderen Cursor. Das geht auch, aber eine optische Aufbesserung wäre vielleicht nicht schlecht.
@Tom:
Der Beitrag von Klaus ist schon 3 Jahre alt und ich gehe davon aus, dass das Problem nicht mehr akut ist. Ich hatte mich da nur drangehängt, weil mit der Hinweis von Jimmy mit dem Snapshot interessierte.
Beim nächsten Mal mache ich einen eigenen Thread auf....
Schöne Grüsse
Hans
da habe ich mich wohl falsch ausgedrückt.
Die Mimik mit dem Drag and Drop habe ich schon programmiert und das funktioniert auch soweit.
Was mich interessiert ist die Sache mit dem Snapshot und der Anzeige als Bild beim Ziehen.
Ich benutze da im Moment einen anderen Cursor. Das geht auch, aber eine optische Aufbesserung wäre vielleicht nicht schlecht.
@Tom:
Der Beitrag von Klaus ist schon 3 Jahre alt und ich gehe davon aus, dass das Problem nicht mehr akut ist. Ich hatte mich da nur drangehängt, weil mit der Hinweis von Jimmy mit dem Snapshot interessierte.
Beim nächsten Mal mache ich einen eigenen Thread auf....
Schöne Grüsse
Hans
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Löschen eines "verwaisten" Drag+Drop-Dialogs ???
Hallo, Hans.
Ups. Und ich hatte mich schon gefreut, dass sich Klaus mal wieder meldet.
Schau Dir mal "GraSaveScreen()" und "GraRestScreen()" in der Xbase-Doku an, und zwar im Abschnitt "Die Rastergrafik - XbpBitmap". Das liefert Dir eigentlich alles, was Du benötigst, um einen Bildschirmausschnitt als Drop-Dialog anzuzeigen.
Ups. Und ich hatte mich schon gefreut, dass sich Klaus mal wieder meldet.
Schau Dir mal "GraSaveScreen()" und "GraRestScreen()" in der Xbase-Doku an, und zwar im Abschnitt "Die Rastergrafik - XbpBitmap". Das liefert Dir eigentlich alles, was Du benötigst, um einen Bildschirmausschnitt als Drop-Dialog anzuzeigen.
Herzlich,
Tom
Tom