Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
18. Jul 2003
Moin Ille,
Ich denke mal so
if ((Shape1.Left+Shape1.Width+X) >= Edit2.Left)
and
((Shape1.Top+Shape1.Height) >= Edit2.Top)
and
(Shape1.Top <= (Edit2.Top+Edit2.Height)) then
Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
18. Jul 2003
Moin Ille,
Ist Edit2 jetzt links oder rechts?
Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
18. Jul 2003
Moin Ille,
wenn Du als Oberkante Edit1.Top nimmst sollte das aber gehen.
Wenn sich die Position des Edits ändert, ändert sich auch Top.
In meinem Beispiel müsste man "nur" Eigenschaften (Top,Left,Width usw.) gegen die entsprechenden für die Links/Rechts Bewegung austauschen.
Aus Shape1.Top müsste also z.b. Shape1.Left werden.
Voraussetzungen
Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
18. Jul 2003
Moin Ille,
ein kleines Beispiel, wie man den Shape zwischen den Edits hin- und herlaufen lassen kann.
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1.Top := trunc((Form1.ClientRect.Bottom-Form1.ClientRect.Top-Shape1.Height)/2);
Shape1.Left := trunc((Form1.ClientRect.Right-Form1.ClientRect.Left-Shape1.Width)/2);
Edit1.Left :=...
Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
18. Jul 2003
Moin Ille,
tut mir leid, aber der Codeschnipsel ist so aus dem Zusammenhang gerissen, dass ich da überhaupt nicht durchblicke.
Wie sind x und y deklariert, wie werden die initalisiert, wodrin ist das Codefragment enthalten (ich vermute Timer Event)?
Vielleicht hilft es Dir weiter, wenn Du mal nach kollision suchst.
Kollisionserkennung hatten wir schon ein paar Mal.
Forum: Object-Pascal / Delphi-Language
Delphi
by Christian Seehase,
17. Jul 2003
Moin Ille,
also mit dem Code Fragment kann ich so nichts anfangen, häng das Projekt doch mal gezippt (bitte ohne die DCUs / EXE) als Attachement hier an.
BTW:
Es gibt hier Delphi Tags für die Formatierung von Codeabschnitten.
Ich hab' das mal in Deinem Beitrag nachgetragen.
Bitte künftig selber verwenden. Danke.