Announcement

Collapse
No announcement yet.

Objekt von einer Form in eine andere Form zur LZ verschieben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Objekt von einer Form in eine andere Form zur LZ verschieben

    Hallo Leute,

    wie man ein Objekt zur LZ innerhalb einer Form verschiebt, weiss ich.
    Aber wie macht man das, wenn man "formübergreifend" verschieben will.
    Müssen da evtl. bestimmte Voraussetzungen vorliegen?

    Grüsse Peter

  • #2
    Hab ich noch nicht geteste, aber ich würde sagen, wenn es geht dann mit.

    obj.hide;
    obj.parent:=form2;
    obj.show

    Comment


    • #3
      Hallo Shadows,

      danke für den Hinweis, habe dies in der Zwischenzeit selbst herausgefunden.
      Ich habe nun eine Lösung, die aber nicht dem eigentlichen entspricht, wie ich es wollte (aber es erfüllt den Zweck).
      Das formübergreifende Verschieben sieht nicht so aus, wie man es gewohnt ist. Man klickt das Objekt an, wechselt mit der Maus auf die Form, in der man das Objekt ablegen möchte, hält die Shift-Taste gedrückt und clickt in das Formular (Event: OnMouseUp). Über die von Dir bereits geschriebene Lösung kann man dann das Objekt den neuen Parent zuweisen.
      Hier der Code:

      procedure TForm2.MyMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
      var
      ...
      begin
      TempGlobalObject:= TMyObject(Sender);
      ...
      end;

      procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      var
      MyForm: TForm2;
      begin
      MyForm:= FindControlAtPos as TForm2;
      if (TempGlobalObject <> nil) and (Shift = [ssShift]) then begin
      TempGlobalObject.Parent:= MyForm;
      end;
      end;

      Bin aber trotzdem noch dankbar, wenn jemand eine "optisch schönere" Lösung für mich hat.

      Grüsse Pete

      Comment

      Working...
      X