Einzelnen Beitrag anzeigen

Benutzerbild von -=cats=-
-=cats=-

Registriert seit: 22. Sep 2006
128 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem beim Positionieren der Form

  Alt 7. Dez 2006, 07:37
Guten Morgen

Also, ich habe 2 Forms. Die eine soll mit verschoben
werden, wenn ich die andere verschiebe.

Jetzt habe ich überlegt, das könnte man mit WM_MOVING
machen.
Irgendwie klappt das auch ... nur nicht so ganz.
Das Problem ist, das die kleine Form am linken Rand
der großen Form erscheinen soll.
Da ich bei WM_MOVING ja ein TRect bekomme, kann ich
von da aus ja auf rect.left und rect.top zugreifen.
Dann dachte ich mir, übergebe ich diese Daten doch
der kleinen Form, damit sie weiß, wo sie sich positionieren
soll. Sie richtet sich auch jedes mal mit aus, nur irgendwie
1 km vom linken Rand entfernt
Also, das passt nicht so ganz ...
Hat jemand eine Idee, wie ich damit die Position ausrechnen
kann, damit sie wirklich am linken Rand der großen Form
sitzt ?
Irgendwie komme ich hier zu keinem Ergebnis

Hier mal mein Code:

Delphi-Quellcode:
procedure TForm19.WndProc(var Message: TMessage);
var r:TRect;
    fwSide:Integer;
    links : integer;
    oben : integer;
begin
  if Message.Msg=WM_MOVING then begin
    fwSide := Message.wParam;         
    if (fwSide and WMSZ_LEFT)<>0 then begin
      r:=TRect(Pointer(Message.lParam)^);
      Application.Title:=IntToStr(r.Left);
      rechteckZurueck := r;
      links := r.Left;
      oben := r.Top;
      Form21.Top := oben; // Das ist die kleine Form, die die
      Form21.Left := links; // Daten übergeben bekommt
    end;
  end;
   inherited WndProc(Message);
end;
Vielen Dank schon mal für Eure Hilfe !!!

Gruß,
-=cats=-


Und dann ist mir noch aufgefallen,
egal, wie ich den Wert bei Form21.Top := oben;
verändere (auch bei Form21.left), die kleine Form erscheint immer wieder
an der gleichen Stelle ...
Sehr merkwürdig
  Mit Zitat antworten Zitat