Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows.SetParent / GetParent (https://www.delphipraxis.net/130372-windows-setparent-getparent.html)

toms 7. Mär 2009 08:10


Windows.SetParent / GetParent
 
Hallo

Form1 wird so auf ein anderes Fenster mit Handle ParentWin gesetzt.
(ParentWin ist ein gültiges Fensterhandle)
Delphi-Quellcode:
 Windows.SetParent(Form1.Handle, ParentWin);
Bei dieser Abfrage gibt ParentWin 0 zurück
Delphi-Quellcode:
 ParentWin := Windows.GetParent(Form1.Handle);
Auch bei dieser Abfrage gibt ParentWin 0 zurück
Delphi-Quellcode:
 ParentWin := GetWindow(Self.Handle, GW_HWNDPREV);
Mache liegt der Fehler. Blicke irgendwie nicht durch...

toms 7. Mär 2009 08:30

Re: Windows.SetParent / GetParent
 
Wenn ich anstelle des
Delphi-Quellcode:
Windows.SetParent()
das Parent via
Delphi-Quellcode:
Self.ParentWindow := ParentWin;
setze gibt das GetParent() nicht 0 zurück. Hat jemand eine Erklärung?

quendolineDD 7. Mär 2009 08:46

Re: Windows.SetParent / GetParent
 
Steht irgendwas in GetLastError?
Intern macht SetParentWindow auch nichts weiter, als SetParent aufzurufen.

jaenicke 7. Mär 2009 09:20

Re: Windows.SetParent / GetParent
 
Was in SetParentWindow passiert ist, wenn das vorherige Elternfenster 0 war, dass SetParent entsprechend gesetzt wird.
Wenn aber vorher noch kein Elternfenster gesetzt war, dann wird lediglich FParentWindow auf den neuen Wert gesetzt. Und genau ab diesem Zeitpunkt liefert GetParent nicht mehr 0. ;-)

toms 8. Mär 2009 09:26

Re: Windows.SetParent / GetParent
 
Zitat:

Zitat von quendolineDD
Steht irgendwas in GetLastError?

"Der Vorgang wurde erfolgreich beendet"


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 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