Announcement

Collapse
No announcement yet.

ClientToScreen Problem

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

  • ClientToScreen Problem

    Hallo zusammen,

    ich habe da ein Edit Feld (Edit1)auf einem Panel(Fanel1). Das Panel befindet sich auf einem Formular (Form1).

    Edit1->Parent = Panel1.

    In dem OnMouseDopwn-Event von Edit1 möchte ich nun das Edit1 vom Panel1 'lösen und direkt auf das Formular setzen, also
    Edit1->Parent = Form1

    Nun muß ich ja die Left und Top Eigenschaften anpassen. Laut Hilfe stelle ich mir das wie folgt vor:

    TPoint *P;

    P=TPoint(Edit1->Left,Edit1->Top);
    Edit1->Parent = Form1;
    P = Form1->ScreenToClient( Edit1->CientToScreen(P) );
    Edit1->Left = P.x;
    Edit1->Top = p.y;

    Leider funktioniert das nicht. Das Edit feld erscheint irgendwo auf dem Formular, nur nicht da wo es sein sollte. Habe mir mit dem Debugger auch schon die Koordinaten angeschaut, sehe aber kein Muster was mich zu einer Lösung bringen würde.

    Weiß vielleicht jemand was ich falsch mache bzw. wo mein Denkfehler liegt?

    Danke

    Manfred

  • #2
    Hi Manfred!<br>

    Dein TEdit muß global sein und darf nicht über den,<br>
    Objectinspector zugeordnet sein.<br>
    So funktioniert dann auch dein Code.<br>

    Gruß Fre

    Comment


    • #3
      Hallo Fred,

      Danke für deine Antwort! Die TEdit's sind alle dynamisch erzeugt. Habe den Fehler aber gerade selbst gefunden. Da das TEdit auf dem Panel sitzt muß ich natürlich die ClientToScreen Methode des Panels aufrufen und nicht die des TEdit. Dann funktioniert das auch einwandfrei.

      Manfre

      Comment

      Working...
      X