Entwickler-Ecke

Sonstiges (Delphi) - Fenster ziehen, Mauskoords speichern


Ecthelion - So 15.12.02 11:44
Titel: Fenster ziehen, Mauskoords speichern
Hallo,

1. Wie muss eine Prozedur aussehen, mittels der der User ein Fenster auf dem Bildschirm festlegen kann, indem er nur die linke obere Ecke festlegt, dann die linke untere festlegt und der Rest des Rechtecks sich anhand einer Berechung von selbst aufzieht?

2. Alternativ dazu wäre es auch nett, wenn der User nur einmal klickt und dann mittels Mausbewegung links bzw. rechts die linke Kante des Fensters vergrößert bzw. verkleinert (Klickpunkt = Mittelpunkt der Kante), während sich der Rest mal wieder selbst aufspannt (oder auch nicht, das ist eigentlich egal).

Danke


Aya - Di 17.12.02 06:40

Hi,

Also, erstmal... wenn du nur die linke obere und die linke untere ecke hast, hab ich keine ahnung wie du daraus ein rechteck konstruieren willst, daher geh ich mal von aus du hast dich verschrieben und meintest, linke obere und rechte untere ecke :roll:

In dem fall geht es einfach so:

Quelltext
1:
2:
3:
var
  LX, LY: Integer; //LinksOben Koordinaten
  RX, RY: Integer; //RechtsUnten Koordinaten


und dann einfach das Form halt erstellen...


Quelltext
1:
2:
3:
4:
  NewForm.Left:=LX;
  NewForm.Top:=LY;
  NewForm.Width:=RX-LX;
  NewForm.Height:=RY-LY;


fertig... das gleiche auch mit "klicken"... mußt halt einfach LX etc die MausPosition zuweisen (Mouse.CursorPos.X/Y)

Au'revoir,
Aya


Ecthelion - Di 17.12.02 18:26

Danke. Das mit links oben und links unten war schon überlegt, spielt aber an sich keine Rolle im Moment.

Wie mach ich das, dass er sich erst bei Aufruf einer Prozedur überhaupt um die Mauskoordinaten schert und dann, wenn ich 2mal geklickt hab, wieder ins Hauptprogramm zurückkehrt?

Also: Button zum Aufruf, dann Minimierung des Programmfensters, 2 Klicks, zurück ins Programmfenster und die beiden Punkte sind gespeichert; optional das Ziehen eines Rechtecks, wobei sich die Breite nämlich als Vielfaches der entsprechenden Höhe ergeben soll [Verständnis] oder eben einfach nur so, dass nach dem ersten Klick ein Strich in die Richtung des Mauspfeils gezogen wird, vom ersten Punkt aus. An der Stelle gleich dieses: wie setze ich die X-Koordinate konstant, so dass die Maus nur auf einer Linie gezogen werden kann?

Danke.


Ecthelion - Di 07.01.03 16:26

bump

Noch was: 1. Klick speichert Koordinaten in einer, 2. Klick in andrer Variable, während die beiden noch nich da sind soll das Programmfenster im Hintergrund sein