AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi "Application.OnMessage" wird 30x hintereinander ausgelöst???
Thema durchsuchen
Ansicht
Themen-Optionen

"Application.OnMessage" wird 30x hintereinander ausgelöst???

Ein Thema von Schucki · begonnen am 17. Jul 2004 · letzter Beitrag vom 18. Jul 2004
Antwort Antwort
Seite 2 von 2     12   
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11

Re: "Application.OnMessage" wird 30x hintereinande

  Alt 18. Jul 2004, 10:37
Zitat von Schucki:
Wichtig ist das es geht ohne 30x aufpopen...
Das passiert weil OnMessage für jede Nachricht für jedes TWinControl ausgelöst wird. Und wenn du einen Broadcast machst, dann bekommt jedes TWinControl deiner Anwendung die Nachricht und für jedes wird OnMessage aufgerufen.


Zitat:
Was noch interessant währe wie setzt man nun an wenn man nun nicht nur Zahlen übertragen möchte...
...sondern auch mal eine Zeichenkette ?
Das geht nicht so einfach. Da musst du entweder WM_COPYDATA benutzen, was aber wegen des Broadcasts zu unvorhersehbaren Ereignissen kommen kann, da du ja nicht wissen kannst, was andere Programme mit dieser Nachricht anstellen (wollen).

Für Text hast du dann noch Named Pipes und Shared Memory (MMF) zur Verfügung.
  Mit Zitat antworten Zitat
Schucki

Registriert seit: 17. Jul 2004
158 Beiträge
 
Delphi 2010 Architect
 
#12

Re: "Application.OnMessage" wird 30x hintereinande

  Alt 18. Jul 2004, 17:36
Hi,

ich versuche es gerade über eine Pointerübergabe...
Den Pointer ansich kann ich übertragen.

Ersteinmal die Frage... "Ist er nur "einmal" gültig?"
oder kann der Wert mehrmals vorkommen?

Der Pointer zeigt ja auch eine Speicherstelle... einmal im gesamten System oder für jede Anwendung?

Ich habe nämlich das kleine Problem das ich zwar meinen Pointer übertragen kann
welcher auf ein 500er Array zeigt.
Nur auslesen kann ich ihn nicht...

Ich habe mal die Codeschnippsel eingefügt die wichtig sind...

Sender sowie Empänger haben...
Code:
type RemoteInfo = array[0..500] of char;

var poiInfo:^RemoteInfo;
    Info:RemoteInfo;
Sender...
Code:
...
StrCopy(Info,PChar('Hallo Ich Bin Es!!!'));
poiInfo:=@Info;
intP2:=Integer(poiInfo);
SendMessage(HWND_BROADCAST,HCWM_SET,PAR_CMD,intP2);
...
Empfänger...
Code:
...
intP2:=Msg.LParam;
poiInfo:=Pointer(intP2);
Info:=poiInfo^;
...
Kann mir jemand verraten warum INFO nur wirres Zeug enthält?
Wo ist mein Fehler?


Ein schönen Sontag noch... Schucki...
Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:29 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