Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem beim Positionieren der Form (https://www.delphipraxis.net/82038-problem-beim-positionieren-der-form.html)

-=cats=- 7. Dez 2006 07:37


Problem beim Positionieren der Form
 
Guten Morgen :hi:

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 :-D
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=- :coder:


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 :gruebel:

raiguen 7. Dez 2006 09:21

Re: Problem beim Positionieren der Form
 
Moin :-)

Warum nimmst du nicht einen Frame anstelle einer Form? Verstehe den Sinn nicht ganz, was du vorhast...

-=cats=- 7. Dez 2006 09:28

Re: Problem beim Positionieren der Form
 
Also, ich brauche das AlphaBlend :-)
Und soweit ich weiß hat das nur die Form :-)

Ich denke, ich habe das Problem für`s erste
gelöst.
Bisher funktioniert es. Aber ich schätze mal,
wenn ich die Form gleich maximiert starte
(ohne Titelleiste und so) wird es noch einige
Probleme geben ... Mal schaun :-)

Die Lösung ist, das ich vor der if-Bedingung
auch noch mal die Position zuweise.
Und auch noch mal im onCreate der Hauptform.

TStringlist 7. Dez 2006 13:16

Re: Problem beim Positionieren der Form
 
Steht da in der PSDK unter WM_MOVING nicht auch:

Zitat:

wParam
This parameter is not used.
Das könnte ja event. folgendes erklären:

Zitat:

Zitat von -=cats=-
Die Lösung ist, das ich vor der if-Bedingung
auch noch mal die Position zuweise...



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz