AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Vom Childfenster das Hauptfenster auf Verschieben überwachen
Thema durchsuchen
Ansicht
Themen-Optionen

Vom Childfenster das Hauptfenster auf Verschieben überwachen

Ein Thema von APP · begonnen am 20. Apr 2003 · letzter Beitrag vom 22. Apr 2003
Antwort Antwort
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#1

Vom Childfenster das Hauptfenster auf Verschieben überwachen

  Alt 20. Apr 2003, 19:04
Hallo,

ich suche eine Möglichkeit vom Childfenster einer Applikation (z.B. Form2) aus,
festzustellen, wann das Hauptfenster (z.B. Form1) mit der Maus verschoben wird.

Geht das?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 20. Apr 2003, 23:25
Moin Armin,

ja, geht.

Dazu musst Du in Deinem Form1 die Message WM_MOVE (Bewegung wurde beendet) bzw. WM_MOVING (Fenster wird bewegt) abfangen, und dieses an das andere Formular weitemelden.

Delphi-Quellcode:
// In Unit1

// in TForm1 deklarieren
    procedure FormMovingEnded(var msg : TMessage); message WM_MOVE;

//...

var
  msgMoveEnded : DWORD; // Für eigene Message

implementation

procedure TForm1.FormMovingEnded(var msg : TMessage);
begin
  // nur wenn das andere Formular existiert und sichtbar ist!
  if Assigned(Form2) and (Form2.Visible) then SendMessage(Form2.Handle,msgMoveEnded,0,0);
end;

initialization
begin // Eindeutige Message registrieren
  msgMoveEnded := RegisterWindowMessage('6868C4D1-3D8E-4DBC-B38F-B9C1C8A31E72');
end;


//**************************************************

// In Unit2

// In TForm2
  protected
    procedure WndProc(var msg: TMessage); override;

//...

implementation

procedure TForm2.WndProc(var msg: TMessage);
begin
  // auf die Private Message prüfen
  if msg.Msg = msgMoveEnded then
  begin // z.B. in ein Memo schreiben
    Memo1.Lines.Add('Form1 hat aufgehört sich zu bewegen: '+DateTimeToStr(now));
    exit;
  end;
  // Bei jeder anderen Message auf jeden Falle die original WndProc aufrufen
  inherited WndProc(msg);
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
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 21. Apr 2003, 08:32
Hallo Christian!

Wow, Danke
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 21. Apr 2003, 20:52
Hallo,
obwohl ich eine tolle Lösung von Christian bekommen habe,
bin ich mal unverschämt und frage,
ob es die Möglichkeit gibt, das Verschieben der MainForm
von einem Childfenster aus zu Überwachen, ohne das man
Code in das MainForm schreiben muß (weiß nicht, mit
einem Handle, Parent, oder so...).

Zum Beispiel, um diesen Code in eine Komponente zu integrieren...
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5
  Alt 21. Apr 2003, 21:12
Ja eine solche Lösung gibt es. Nur ist die umständlicher als die von Christian.
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 22. Apr 2003, 06:26
@jbg,

Super!

Und die wäre?!
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 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