Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prog-Startart: Per Mouse-Click oder Enter-Key? (https://www.delphipraxis.net/154668-prog-startart-per-mouse-click-oder-enter-key.html)

r29d43 21. Sep 2010 09:24

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Zitat:

Zitat von Luckie (Beitrag 1050854)
Es geht nicht um den Ort, sondern um das wie, ob mit Mausklick oder über die Enter-Taste, wenn das Icon auf dem Desktop den Fokus hat.

So ist es!

Zweck der Sache: Wenn das Prog. über die Enter-Taste gestartet wurde, dann soll anfänglich eine andere Button im Prog den Focus haben als sonst (beim MouseClick-Start) üblich ...um nach der Startanzeige mit nur einem weiteren Druck der Enter-Taste elegantest auch noch eine weitere Anzeige einsehbar zu machen. Per Mouse ist das eh kein Aufwand, und deswegen soll der Focus dann auch auf einer anderen (Haupt-)Button stehen...

Diese Sache ist also nicht sooo extrem wichtig (eher nur so eine kleine Spielerei am Rande), so dass auch so ein Hook vorab installiert dafür jetzt viel zu viel Aufwand wäre.

himitsu 21. Sep 2010 09:27

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Dann laß den Fokus besser auf dem "anderen" Button, egal wie gestartet wurde.

Es macht sich nicht sonderlich optiomal, wenn sich das Verhalten scheinbar "zufällig" ändert.

Und wer sagt, daß man dann nicht mit Enter weiterarbeiten kann/will, selbst wenn man das Programm über 'nen Mausklick gestartet hatte? :wink:

r29d43 21. Sep 2010 10:01

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
na ja, wenn ich mit Mausklick gestartet bin, dann greif ich danach eigentlich sowieso nicht mehr groß zur Tastatur. Dann ist es eh irgendwie egal, wo der Focus sitzt.

Das sollte auch nur so eine kleine Hilfe für Handhold-PCs sein, wo man ja oft keine Maus zur Verfügung hat, und wo die Mausbewegung immer so ein bisschen umständlich ist. Nach dem Starten des Progs und dem Aufbau der zweiten Anzeige wäre der Focus dann ja auch sowieso wieder zur dieser auch sonst normalen (Haupt-)Button zurückgewandert.

Aber event. generiere ich für diese zweite Anzeige auch nochmal einen extra Hotkey, das wäre imo auch noch ok.

hathor 21. Sep 2010 10:10

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Ich verstehe nicht, warum man daraus ein "Problem" macht!

Der Focus kann doch IMMER beim Programmstart auf dem Button sein, der mit dem ENTER-Key das OnClick-Ereignis verarbeiten soll.
Bei der Mouse- oder Touch-Bedienung ist es doch wurscht, wo der Focus beim Programmstart ist!

r29d43 21. Sep 2010 13:34

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Dieses anfängliche Anzeigen (gewisser Infos) ist da eher nur eine kleine Sache, die zwar ganz nützlich ist, aber eben nicht die Hauptsache des Progs (wie ja schon gesagt). Ich will halt nicht, dass bei einem normalen Prog-Start per Maus der Focus dann auf einer Button sitzt die irgendwo am äußeren Rand platziert ist, sondern dann sollte der schon mehr zentral auf dem Button der Hauptfunktion sitzen.

hathor 21. Sep 2010 14:09

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Man kann indirekt herausfinden, ob das Programm mit der Maus oder der Tastatur gestartet worden ist:

Beim Programmstart GetCursorPos-Function(Windows) im Abstand von wenigen Sekunden 2 x aufrufen.
Bei Ungleichheit wurde die Maus zum Starten benutzt...

Zitat:
Ich will halt nicht, dass bei einem normalen Prog-Start per Maus der Focus dann auf einer Button sitzt die irgendwo am äußeren Rand platziert ist, sondern dann sollte der schon mehr zentral auf dem Button der Hauptfunktion sitzen.

Ach, jetzt verstehe ich erst, was Du willst!!!

Delphi-Quellcode:
procedure MoveMouseIntoControl(AWinControl: TControl);
var rtControl: TRect;
begin
  rtControl := AWinControl.BoundsRect;
  MapWindowPoints(AWinControl.Parent.Handle, 0, rtControl, 2);
  SetCursorPos(rtControl.Left + (rtControl.Right - rtControl.Left) div 2,
    rtControl.Top + (rtControl.Bottom - rtControl.Top) div 2);
end;


Aufruf-Beispiel:
MoveMouseIntoControl(Button1);

r29d43 21. Sep 2010 15:17

AW: Prog-Startart: Per Mouse-Click oder Enter-Key?
 
Zitat:

Zitat von hathor (Beitrag 1050968)
Beim Programmstart GetCursorPos-Function(Windows) im Abstand von wenigen Sekunden 2 x aufrufen.
Bei Ungleichheit wurde die Maus zum Starten benutzt...

zur Not, ja!
thx, :-)

Aber den Code brauche ich nicht, denn wenn ich per Maus starte, dann wisch ich den Mauszeiger natürlich per Hand selbst in quasi 1/10tel Sekunde auf diesen Button.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.
Seite 2 von 2     12   

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