-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
13. Sep 2009
:thumb:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
13. Sep 2009
Also muss die Differenz logischerweise 0 sein, sonst hätten wir etwas falsch gemacht ;)
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Meinetwegen kann er die auch Erbsensuppe nennen, am Anfang kommt es ja eher auf eine verständliche Problemlösung an. Aber gut, Du hast insofern Recht, als dass man auch meiner Meinung nach immer sprechende Namen verwenden sollte, sonst steigt man später durch seinen eigenen Code nicht mehr durch.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Also, Du merkst Dir OnClick die aktuellen Koordinaten relativ zum Formular. Wenn man die Maus verschiebt, ändern sich diese logischerweise. Der Trick ist nun lediglich, das Formular so zu verschieben, dass die jetzt aktuellen Koordinaten wieder den gemerkten entsprechen. Dazu genügt uns die Addition von Form.Left bzw. Form.Top mit der Differenz aus aktuell und gemerkt. Dabei kann uns egal sein,...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Wenn Du das jetzt auch noch nachvollziehen kannst, sind ja alle zufrieden :zwinker:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Du machst ja auch zuviel des Guten ;)
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DeltaX := X;
DeltaY := Y;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Noch einmal ganz in Ruhe: im OnMouseDown merkst Du Dir DeltaX und DeltaY. Im OnMouseMove addierst Du nun zum Form.Left einfach die Differenz aus aktueller X-Koordinate und DeltaX und zu Form.Top die Differenz aus aktueller Y-Koordinate und DeltaY. Wenn diese Differenz positiv ist, verschiebt sich das Formular somit automatisch nach rechts bzw. unten, bei negativer Differenz nach links bzw. oben,...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Wozu die Boolean-Variable?
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Die musst Du gar nicht erkennen ;). Ganz kurzes Rechenbeispiel, gegeben sei eine gemerkte Koordinate X mit Wert 100.
Mausbewegung nach rechts -> X(101) - gemerktes X(100) = 1, d.h. Left um 1 erhöhen
Mausbewegung nach links -> X(99) - gemerktes X(100) = -1, d.h. Left um -1 erhöhen (also de facto um 1 verringern)
Dasselbe gilt natürlich analog für die Y-Koordinate.
Schlechtschreibung :oops:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Um wieder zur eigentlichen Aufgabenstellung zurückzukehren: die generelle Vorgehensweise wurde mindestens 2 mal bereits genannt. Hier etwas ausführlicher: im Ereignis OnMouseDown, das ausgelöst wird, sobald auf dem Formular eine Maustaste gedrückt wird, merkst Du Dir den aktuellen Punkt des Mauszeigers (die X- und Y-Koordinate werden freundlicherweise bereits als Parameter übergeben) in einer...
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Ahaaaa, dann erscheint das schon in einem anderen Licht. Aber wie gesagt, lass das Form1 weg oder ersetze es durch self, dann ist das auch richtig.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
12. Sep 2009
Hab ich das wirklich so geschrieben :shock:? Falls das jemand nutzen sollte, bitte das "Form1." vor dem Perform weglassen.
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
11. Sep 2009
Auch das dürfte nicht der Aufgabenstellung entsprechen. IMHO ist himitsu auf dem richtigen Weg, auch wenn das Plappermaul wieder zu vorschnell war :tongue:
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
11. Sep 2009
Also rate ich doch einmal: ihr sollt die Fenster so programmieren, dass sie sich auch in der Client-Area statt über die Titelleiste verschieben lassen, könnte das sein?
-
Forum: Sonstige Fragen zu Delphi
Delphi
by DeddyH,
11. Sep 2009
Hallo und Willkommen in der DP :dp:,
diese Aufgabenstellung ist aber mehr als schwammig, da Fenster sich ja normalerweise sowieso schon per Maus verschieben lassen. Bevor wir hier also mutmaßen und an der Aufgabe vorbei Vorschläge machen, solltest Du das noch einmal konkretisieren.