AGB  ·  Datenschutz  ·  Impressum  







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

Handles und Treads

Ein Thema von Getox · begonnen am 25. Jan 2013 · letzter Beitrag vom 26. Jan 2013
Antwort Antwort
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Handles und Treads

  Alt 25. Jan 2013, 11:30
Für den Anfang reicht es aber total aus, nen Handle mehr oder wniger als ID zu sehen - zum besseren Verständnis.

Noch etwas - es heißt Threads, nicht Treads
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Handles und Treads

  Alt 25. Jan 2013, 11:58
Ich fasse Zacherl noch mal so zusammen wie ich es verstanden habe:
Handles sind da, um bestimmte Aktionen an etwas auszuführen. Das Fenster, der Thread oder was auch immer hat schon eine eigene ID. Das ist aber egal, da man im Normalfall nicht die Berechtigung hat, Aktionen auszuführen, welche durch das Handle ermöglicht werden. Das Handle selber bekommt auch eine ID, ist aber im Gegensatz zu den dazugehörigen "Objekten" nur von einem Prozess aus ansprechbar.

Ist das so ungefähr korrekt? (Zusammenfassen finde ich toll, da man sich dann noch mal Gedanken drüber macht und im Nachhinein überprüft werden kann, ob ich es wirklich verstanden habe )

Von Bummi habe ich bis zum ersten "Longword" alles verstanden glaube ich. Danach ist das alles irgendwie Bahnhof o.O

@Aphton
Das es Thread heißt, war mir eigentlich bewusst... ich hab erst gedacht, das wäre nur in der Überschrift falsch. Aber als ich dann den ersten post gesehen habe dachte ich nur "WTF! Was machst du da, Gehirn???". Wie dem auch sei, ich habe mich schon selber ausgelacht und ich hoffe sowas passiert mir nicht zu oft... aber es ist ja auch Freitag und noch früh und so.

BTW ist das da L in deinem Avatar? <3
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#3

AW: Handles und Treads

  Alt 25. Jan 2013, 12:08
...und dazu habe ich auch eine Frage

Manchmal ist es doch notwendig, daß man folgendes
in der MainUnit des Programmes definieren muß:
Delphi-Quellcode:

const WM_ICONTRAY = WM_USER + 1; {-warum +1-}

procedure TrayMessage(var Msg: TMessage); message WM_ICONTRAY;
Klar, es ist irgendeine Identifikationsnummer für
Windows Messages. Nun zur Frage.

Wovon hängt der Wert ( hier +1) ab, den ich hinzufügen muß?
Manchmal liest man in Programmbeispielen auch +99.
Das verwirrt mich doch ziemlich! Welche Fehler kann man
hier denn machen?

MfG,
terence
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Handles und Treads

  Alt 25. Jan 2013, 20:39
Zitat von Getox:
BTW ist das da L in deinem Avatar? <3
Jupp ^^

const WM_ICONTRAY = WM_USER + 1; {-warum +1-}
Was hier geschieht, ist, dass du eine Vereinbarung, ne Definition machst. Du sagst, WM_ICONTRAY hat genau "diesen Wert". Dieser Wert muss eindeutig sein. Alles unterhalb WM_USER (1024) ist bereits vergeben, deshalb nimmt man beliebige Werte drüber.
Bsp. die Ok sind:
Delphi-Quellcode:
const
  WM_MYMESSAGE1 = WM_USER + 1;
  WM_MYMESSAGE2 = WM_USER + 2;
Nicht OK:
Delphi-Quellcode:
const
  WM_MYMESSAGE1 = WM_USER + 1;
  WM_MYMESSAGE2 = WM_USER + 2;

  WM_MYOTHERMESSAGE = WM_USER + 1;
Man kann nämlich per SendMessage / PostMessage (auch) prozessübergreifend "Nachrichten" schicken. Der Empfänger kann nun zu jeder Nachricht "reagieren".
Bsp. die Message 1025 (WM_USER + 1 = WM_MYMESSAGE1) wird empfangen, er kuckt nach, ob es zu dieser Msg nen Event gibt. Ist er nicht eindeutig, kommts hier schon zu Problemen
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (25. Jan 2013 um 20:42 Uhr)
  Mit Zitat antworten Zitat
terence14
(Gast)

n/a Beiträge
 
#5

AW: Handles und Treads

  Alt 26. Jan 2013, 07:17
@Aphton
@Medium

Danke, jetzt weis ich's endlich auch, und verwende es nicht nur.

WM_USER ist also ein vordefinierter Wert, so wie MAXINT oder MAX_PATH.

Dieses WM_USER bedeutet nichts anderes, als Finger weg von allen
Zahlen, die darunter liegen.

Was ich dazuaddiere, um eine eineindeutige Zahl zu bekommen bleibt
mir überlassen. Das ist wahrscheinlich so, wie der Rückgabewert
von sich schliessenden Dialogboxen.

MR_OK, MR_CANCEL, MR_ALL, MR_ALL+1, MR_ALL+2, usw.

Dieser Wert muß nur mit anderen Programmen von mir abgeglichen
werden, wenn ich mit diesen über PostMessage oder SendMessage
Daten austauschen möchte.

MfG,
terence
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: Handles und Treads

  Alt 26. Jan 2013, 09:09
Was man nicht weiß, kann man nachschlagen: MSDN-Library durchsuchenWM_USER
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz