Announcement

Collapse
No announcement yet.

Repaint von Fenstern nach Resize zur Laufzeit unvollständig

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

  • Repaint von Fenstern nach Resize zur Laufzeit unvollständig

    Hallo an alle.
    Ich prügel mich jetzt bereits seit einigen Tagen mit einer harten Nuss herum.

    Unter Delphi 6 hat es wunderbar funktioniert, innerhalb von einem OnMouseMove die Formulargrösse mit Setbounds zu verändern.

    Seit dem Portieren auf Delphi 7 wird der Fensterinhalt erst beim Absetzen der Maus vollständig gezeichnet. Während dem Ziehen wird nur der Fensterhintergrund gezeichnet (Groupboxes, Labels, die Captions von Panels sind nicht sichtbar).

    Im Mousemove-Event (und auch ausserhalb) habe ich getestet:
    <pre>
    MoveWindow(myform.handle,aleft,atop,awidth,aheight ,true);
    myForm.SetBounds(ALeft, ATop, AWidth, AHeight);
    SetWindowPos(myform.handle, 0, ALeft, ATop, AWidth,AHeight,SWP_NOCOPYBITS+SWP_DRAWFRAME+SWP_FR AMECHANGEd); // mit unterschiedlichen Parametern
    </pre>
    Habe auch schon versucht, mit Handlemessages, Processmessages und Sendmessage(myform.handle,WM_PAINT,0,0) das Neuzeichnen zu erzwingen. Alles mit dem gleichen Effekt.

    Hat das jemand gelöst?

    Auch für einen grundsätzlichen Tipp was sich da mit Delphi 7 geändert hat wäre ich wirklich dankbar.

    Grüsse
    Aron

  • #2
    RedrawWindow(Handle, 0, nil, RDW_INVALIDATE or RDW_ERASE or RDW_UPDATENOW or RDW_ALLCHILDREN or RDW_FRAME)

    Comment

    Working...
    X