Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 29. Nov 2002, 11:30
Moin Nils,

ist zwar noch verbesserungsfähig, aber so ginge es.
Man fängt die Message WM_MOVING ab, die gesendet wird, wenn das Fenster bewegt wird.
LParam ist dann der Pointer auf ein Rect Struktur, die die jeweils aktuellen Koordinaten enthält.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  protected
    procedure WndProc(var msg : TMessage); override;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
uses Unit2;

{$R *.DFM}

procedure TForm1.WndProc(var msg : TMessage);

var
  prtWork : PRect;

begin
  if msg.Msg = WM_MOVING then
  begin
    prtWork := PRect(msg.LParam);
    Form2.Top := prtWork.Top;
    Form2.Left := prtWork.Left-Form2.Width;
  end;
  inherited WndProc(msg);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  Form2.Top := self.Top;
  Form2.Left := self.Left - Form2.Width;
  Form2.Show;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat