Thema: Delphi Handles?!

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Handles?!

  Alt 22. Jan 2007, 21:04
Ich versuch mal von ganz vorn anzufangen. Unter Windows ist so ziemlich alles ein Fenster. Ein Button, ein Textfeld, eine Listbox, die Taskleiste etc.
Jedes Fenster hat auch ein Handle welches dazu dient dieses Fenster anzusprechen. Es ist sozusagen die ID des Fensters. Wenn du ein Fenster maximieren, minimieren, neu zeichnen lassen, oder irgendetwas anderes damit machen willst musst du das über diese ID/Handle machen. Mit SendMessage kannst du eben an diese ID eine Nachricht schicken und zusätzliche Parameter. Der erste Paramter ist bei SendMessage das Handle, der zweite dann die Nachricht (z.B.: wm_paint damit sich was malt, wm_erasebkgnd damit der Hintergrund neu gemalt wird etc.) und die beiden letzten Paramter sind abhängig von der Message.

Ab hier nur weiterlesen wenn du durcheinander gebracht werden willst
Diese Handles sind also eine ganz praktische Sache um ein Fenster eindeutig zu identifizieren. Allerdings gibt es nicht nur für Fenster ein Handle sondern für viel weitere Sachen auch. Zum Beispiel wenn du dir Dateien eines Ordners auflisten lassen willst. Allerdings sind dies dann keine Fensterhandles mehr und somit geht auch SendMessage nicht zu verwenden.
Willst du zum Beispiel den Inhatl eines Ordners auflisten ruft man FindFirst auf und es wird innerhalb der Struktur eine ID/Handle zurück gegeben. Über dieses Handle wird dann das Suchergebnis/Auflistungsergebnis angesprochen. So übergibt man FindNext eben diese Struktur mit dem Handle damit die Nächste gefundene Datei zurück geliefert wird etc.

Im Endeffekt sind Handles (in deinem Fall Fensterhandles) also eine Art ID um etwas anzusprechen.

[Edit]
Zu deiner konkreten Frage. Dazu musst du die Message/Nachricht herausfinden welche dafür nötig ist und dann muss eben diese mit SendMessage an das Handle gesendet werden
Aber am besten du erstellst für diese konkrete Frage einen neuen Thread und beschreibst was du ganz konkret vor hast.
[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat