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/)
-   -   Delphi Auf eine SendMessage-Nachricht antworten? (https://www.delphipraxis.net/56033-auf-eine-sendmessage-nachricht-antworten.html)

Rastaman 30. Okt 2005 20:20


Auf eine SendMessage-Nachricht antworten?
 
Nabend! Gibt es eine Möglichkeit auf eine inkommende Nachricht zu antworten?
So wie z.b wie Winamp. Man sendet eine Nachricht und erhält dann die Infos, die Winamp zurückgibt.
Beispiel:

Delphi-Quellcode:
var
  i: Integer;
begin
  i := SendMessage(wndWinAmp, WM_USER, 1, 105);
end;
Und schon hat man die Länge des Aktuellen Songs in Sekunden in der Variable i.
Wie kann man sowas machen?

(Am besten wär n nonVCL-Beispiel)

Thx schonma!

marabu 30. Okt 2005 20:32

Re: Auf eine SendMessage-Nachricht antworten?
 
Hallo Rastaman,

VCL oder non-VCL ist da gerade egal. Schau mal in die Unit Messages. Am Ende eines message record ist ein DWORD Result, das den Rückgabewert deines message handlers aufnimmt.

Grüße vom marabu

Rastaman 30. Okt 2005 21:14

Re: Auf eine SendMessage-Nachricht antworten?
 
Man kann da rein schauen :gruebel:
Also ich hab nur .dcu Dateien. Alles was .pas in meinem D2k5 Ordner is, sind die Beispielanwendungen von Borland die dabei waren :?

marabu 30. Okt 2005 21:23

Re: Auf eine SendMessage-Nachricht antworten?
 
Wenn du mit der PE arbeitest, dann kannst du leider nicht reinschauen - sorry. Du kannst dann aber über Code Insight die Felder der Struktur TMessage betrachten. Du weißt wie das geht?

marabu

Rastaman 30. Okt 2005 21:27

Re: Auf eine SendMessage-Nachricht antworten?
 
Öhhhhh ... Nein :mrgreen:
Wär es nicht einfacher (sofern du es weisst), wenn du mir einfach sagst, wie man auf eine Nachricht antworten kann.
Wird ja nun nicht grad kompliziert sein :)

marabu 30. Okt 2005 21:50

Re: Auf eine SendMessage-Nachricht antworten?
 
Delphi-Quellcode:
uses
  Messages;

var
  msg: TMessage;
begin
  msg.Result := 0; // hier kannst du jeden 32-bit Wert zurückgeben
end;
Solltest du in Zukunft nachschauen wollen, welche Felder dir ein Record bereit hält oder welche Methoden ein Objekt, das du nur dem Namen nach kennst, dann deklariere eine Variable und gib irgendwo in deinem Code den Variablen-Namen gefolgt von einem Punkt an. Code Insight wird dir dann weiter helfen - oder fehlt das bei der PE auch?

marabu


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