Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form mitte mit maus Focussieren (https://www.delphipraxis.net/102686-form-mitte-mit-maus-focussieren.html)

cran7 2. Nov 2007 11:50


Form mitte mit maus Focussieren
 
Ich ma wieder mit meinen ideen xD
diesmal:

gitbs ne möglichkeit das die Maus per buttondruck in die mitte der Form geht?
oder
dass die Form der maus folgt, sobald die am rand der Form is? also das die Form dann "mitgezogen" wird?

müsst ja eigtl mit

Mouse.CursorPos := Point(x,y);

un für x und y halt die koordinaten( die ja dynamisch sin, desshalb weis ich net wie ich das machn soll)

gehn oder?

lbccaleb 2. Nov 2007 12:06

Re: Form mitte mit maus Focussieren
 
es müsste eigentlich mit dem hier gehen, das hab ich on the fly geschrieben also event noch nen bissel rummbasteln ;-)


Delphi-Quellcode:
uses
  windows;
var
  x, y: integer;      
        x := GetSystemMetrics(SM_CXSCREEN);
        y := GetSystemMetrics(SM_CYSCREEN);
        Mouse.CursorPos := Point((x div 2),(y div 2));


mfg

SirThornberry 2. Nov 2007 12:07

Re: Form mitte mit maus Focussieren
 
@lbccaleb: Es geht um die mitte der From nicht um die Mitte der Bildschirme.

lbccaleb 2. Nov 2007 12:10

Re: Form mitte mit maus Focussieren
 
Zitat:

Zitat von SirThornberry
@lbccaleb: Es geht um die mitte der From nicht um die Mitte der Bildschirme.

ja ist ja auch nicht das problem dann sucht er einfach nach der form breite, bzw länge und teilt die durch 2 nen bissel flexsiebel muss man ja sein ;-)


edit:

(form1.width div 2)
(form1.high div 2)

so ungefähr müsste es dann ja aussehen..

mfg

angos 2. Nov 2007 12:14

Re: Form mitte mit maus Focussieren
 
Hallo Cran7,


Zitat:

Zitat von cran7
Ich ma wieder mit meinen ideen xD
diesmal:

gitbs ne möglichkeit das die Maus per buttondruck in die mitte der Form geht?

Delphi-Quellcode:
Mouse.CursorPos := Point(Form1.Left + Form1.Width div 2, Form1.Top + Form1.Height div 2);
Zitat:

oder
dass die Form der maus folgt, sobald die am rand der Form is? also das die Form dann "mitgezogen" wird?
hierfür kann man zB einen Timer auf die Form packen, mit folgendem onTimer-Ereignis
Delphi-Quellcode:
  if Mouse.CursorPos.X < Form1.Left then
    Form1.Left := Mouse.CursorPos.X
  else if Mouse.CursorPos.X > (Form1.Left + Form1.Width) then
    Form1.Left := Mouse.CursorPos.X -  Form1.Width;

  if Mouse.CursorPos.Y < Form1.Top then
    Form1.Top := Mouse.CursorPos.Y
  else if Mouse.CursorPos.Y > (Form1.Top + Form1.Height) then
    Form1.Top := Mouse.CursorPos.Y -  Form1.Height;

Grüße

cran7 2. Nov 2007 13:08

Re: Form mitte mit maus Focussieren
 
erstma fettes thx, das war das was ich gesucht hab :)

jetzt noch ne frage^^

gibts ne möglichkeit den timer etwas schneller zu machen? bei mir hat das immer ca 1sec verzögerung, un das is net so toll

E: hat sich erledigt, is ja einfach, einfach interval runterschraubn^^

dominikkv 2. Nov 2007 13:43

Re: Form mitte mit maus Focussieren
 
wäre es nicht besser statt dem timer einfach onMouseLeave der Form zu benutzen?
kp ob das funktioniert^^

cran7 2. Nov 2007 13:51

Re: Form mitte mit maus Focussieren
 
Zitat:

Zitat von dominikkv
wäre es nicht besser statt dem timer einfach onMouseLeave der Form zu benutzen?
kp ob das funktioniert^^

hab ich auch schon probiert, aber geht net, geht dann einfach raus


E: das geht doch, ausser nach oben, da kann ma mit maus raus...
aber damits geht muss ma den quelcode bisschen verändern, das darf dann net ganz beim verlassn sein
Delphi-Quellcode:
  if Mouse.CursorPos.X < Form1.Left + 4 then
    Form1.Left := Mouse.CursorPos.X - 4
  else if Mouse.CursorPos.X > (Form1.Left + Form1.Width) - 5 then
    Form1.Left := Mouse.CursorPos.X -  Form1.Width + 5;

  if Mouse.CursorPos.Y < Form1.Top + 4 then
    Form1.Top := Mouse.CursorPos.Y - 4
  else if Mouse.CursorPos.Y > (Form1.Top + Form1.Height) - 8 then
    Form1.Top := Mouse.CursorPos.Y -  Form1.Height + 8;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz