AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied zwischen HWND und THandle?

Ein Thema von Mazel · begonnen am 25. Apr 2007 · letzter Beitrag vom 25. Apr 2007
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:28
Hallo,

ich würde gerne wissen, worin der Unterschied zwsichen HWND und THandle besteht. Bei einigen Funktionen aus Delphi wird das eine, bei einer anderen der andere Typ verlangt, aber auch bei manchen selbst erstellten Funktionen ist es oft unterschiedlich. Eigentlich sind beides lediglich nur Cardinalwerte, denke ich, weshalb wurden dann diese beiden Typen eingeführt?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:32
Meine simpe Erklärung:
Es könnte doch mal sein, dass in einer zukünftigen Windows Generation ein Handle für ein Window (Hwnd) nicht mehr 32bit breit ist, sondern 64 oder 80 oder xxx. Dann gibt es in einem Update oder in der nächsten
Delphiversion einen Typ Hwnd, der je nach Windowsversion 32bit oder 64bit breit ist. Und du kannst deine alten Programme auf diese Version einfach portieren und brauchst nix zu ändern (auch wenn cardinal und THandle immernoch 32bit sind)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:33
Es gibt mehrere Handle Typen zur Übersichtlichkeit.
Beispiel: HDC = Handle auf Device Context
natürlich kann man auch ein THandle nehmen. Aber durch die Verwendung des Types HDC (oder eines andeen speziellen Types) sieht jeder sofort um was für ein Handle es geht. Hwnd ist zum Beispiel ein Handle auf ein Fenster (Buttons etc. sind ja auch Fenster). Wenn ich also sehe das der Typ ein HDC ist komme ich nicht in Versuchung das Handle einer Funktion für HWNDs zu übergeben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:44
Eigentlich wollte MS damit Typsicherheit einfuehren, aber hat es leider wieder torpediert. Hauptsaechlich durch die Funktion CloseHandle mit der man fast alle Handles freigibt.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#5

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:45
Wenn ich statt dem HWND für ein Fensterhandle THandle oder gar HDC verwende, ändert sich aber am Wert nichts, bzw. wird der gleiche Wert übertragen? Es geht hier also lediglich darum, eine Übersichtlichkeit einzuhalten und um schneller mit eine Funktion/Prozedur zu arbeiten.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:52
Genau, wie du bereits festgestellt hast sind letzendlich alles Cardinals bzw. 32bit Werte. Du kannst also ebenso einen Integer (oder sogar Arrray[0..3] of Byte) verwenden (wenn dir der Delphicompiler nicht dazwischenfunkt aber auch das lässt sich mit Casts dann korrigieren und tritt eigentlich auch nur bei var-, const- und out-parametern auf)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#7

Re: Unterschied zwischen HWND und THandle?

  Alt 25. Apr 2007, 16:54
Ok,

danke für die Informationen.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  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 19:41 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