AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mauszeiger positionieren

Ein Thema von eddy · begonnen am 11. Dez 2003 · letzter Beitrag vom 14. Dez 2003
Antwort Antwort
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#1

Mauszeiger positionieren

  Alt 11. Dez 2003, 11:17
Hallo Leute,

wenn ich in einer Liste (DBGrid) einen Eintrag mit Doppelclick auswähle, wechsel ich (gewollt) auf eine anderes Blatt eines TPageControl.

Nun steht der Maus-Cursor häufig so ungünstig auf dem angewählten Blatt, daß ungewollt bei fehlerhaft benutzter Maus Daten verändert werden.

Nun möchte ich den Mauszeiger auf unkritische Koordinaten setzen, so daß wildes unkontrolliertes Drücken auf Maustasten und Betätigen des Scrollrades ohne die unerwünschten Effekte bleiben.

So etwa:

MausCursorPosition(X) := DBGrid.Left + 50
MausCursorPosition(Y) := DBGrid.Top + 50


Da gibt's doch bestimmt etwas ....

mfg
eddy
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: Mauszeiger positionieren

  Alt 11. Dez 2003, 11:37
Ich finde das ist zwar der flasche Weg, einfach die Mausposition zu ändern anstatt das Verhalten der Komponente wo es zum Daten ändern kommt, aber propier das mal:
Windows.SetCursorPos(x, y);
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#3

Re: Mauszeiger positionieren

  Alt 11. Dez 2003, 21:05
Hallo Tpercon,

ich bin immer für bessere Lösungen zu begeistern .....

mfg
eddy
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Mauszeiger positionieren

  Alt 11. Dez 2003, 23:49
Ich finde Eddies Problem vollkommen gerechtfertigt.
Lass mal den User 3-mal klicken:
1-mal Doppelklick => Aktion...
1-mal normaler Klick auf anderem Tab => möglicher Super-GAU

Ein anderer Lösungsweg wäre ein Timer, der erst ein paar Sekundenbruchteile nach dem Doppelklick auf das DBGrid die Aktionen des anderen Tab auf "enabled" setzt.

Ich finde die Neupositionierung aber
1. sicherer
und
2. anwenderfreundlicher (setze die Maus einfach in die Nähe einer Schaltfläche/Komponente, die User wahrscheinlich als nächstes nutzen will).

@Eddy
Jetzt ohne dir in den A**** kriechen zu wollen:
Ich finde es gut, dass es Entwickler gibt, die sich über solche Probleme Gedanken machen - gibt's nicht viele davon

mfG Robert
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Mauszeiger positionieren

  Alt 11. Dez 2003, 23:58
Und ich finde es schlecht.

Was passiert denn da bzw. was macht der Benutzer?
- Er kuckt wo der Mauszeiger ist.
- Führt selbigen auf den Button.
- Klickt.
- Will mit der Maus weiterarbeiten und was ist...? Er sucht den Mauszeiger von neuen, weil du sie im einfach wo anders hingesetzt hast.

Versuche die Kontrolls auf dem anderen Tabsheet oder was das ist, anders anzuordnen oder setzt den Button wo anders hin. Aber eigentlich kann ich mir keine vernünftige Anordnung vorstellen, bei der so was passieren könnte. Buttons sind entweder am rechten Rand oder unten (rechts). Zeig mal Screenshots.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#6

Re: Mauszeiger positionieren

  Alt 14. Dez 2003, 18:26
Hallo Leute,

eigentlich wollte ich aus einer/m Maus/zeiger keinen Elefanten machen.

Ich wollte schlicht und einfach einen Fehler verhindern, der selbst mir immer wieder beim Probieren und Testen passiert ist. Der Standard-DateTimePicker reagiert vielleicht auch ein bischen empfindlich, jedenfalls habe ich mir ungewollt das Datum versaut, mal die Tage, mal die Monate, mal die Jahre. Rein zufällig, wo ich diesen eben gerade erwischt habe.

Die Methode mit dem Mauszeiger verschieben war eine durchaus funktionsfähige Variante, allerdings mir vom Programmieraufwand zu stressig.

@Lucki: Fehler abfangen halte ich für durchaus legitim und nicht für schlecht, wenn man vielleicht auch nicht in der Lage ist, jeden möglichen Bedien-, Daten- oder auch Programmfehler vorherzusehen und abzufangen. Und wenn ich dazu einen Mauszeiger 5 Pixel nach unten verschieben muß, dann dürfte der Nutzer das nicht mal merken. Meinerseits war nicht die Rede davon, daß ich auch noch den nächsten Button clicken wollte, daß muß der Nutzer schon selbst in Abhängigkeit seiner Wünsche machen.

Im übrigen habe ich leider keine weiteren Vorschläge erhalten, das Problem zu lösen. Da ich das Datumsfeld aber nicht an einer anderen Stelle positionieren wollte, habe ich auf den Standard-DateTimePicker durch DateEdit der RXControls ersetzt. Damit konnte ich das gleich Problem trotz größter Anstrengungen nicht mal gewollt hervorrufen.

mfg
eddy
  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 17:03 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