AGB  ·  Datenschutz  ·  Impressum  







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

WM_CopyData Problem

Ein Thema von aaaaaaaaaa_10 · begonnen am 21. Jul 2009 · letzter Beitrag vom 21. Jul 2009
Antwort Antwort
Seite 2 von 2     12   
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#11

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:01
Habe es wie folgt gemacht und es erscheint ersteinmal kein Fehler mehr.

  SendMessage(FindWindow('DKomMainWnd', nil), WM_COPYDATA, 0, Longint(@aCopyData)); Mal sehen wie es sich mit dem Empfangen verhält.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:10
Zitat von Alaitoc:
zumindest funktioniert es via Postmessage ein Objekt zu "versenden" und das verlangt
Die Parameter sind abhängig von der Nachricht und nicht von der API Funktion, die genutzt wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#13

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:13
Hab die Procedure jetzt in die Form des EmpfangsProgramms eingebunden :

Delphi-Quellcode:
 TKomMainWnd = class(TForm)
    ...
 procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
...

Delphi-Quellcode:
procedure TKomMainWnd.WMCopyData(var Msg: TWMCopyData);
begin
  oldi := String(PChar(Msg.CopyDataStruct.lpData));
end;
Wenn ich jetzt aber unter procedure TKomMainWnd.FormCreate(Sender: TObject); ShowMessage(oldi) ausführen will, wird mir nur ein leeres Fenster gezeigt.

Was mache ich verkehrt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#14

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:22
vermutlich, weil in FormCreate noch keine WM_COPYDATA-Nachricht empfangen wurde?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:25
Überlegen wir mal: Ich stelle den Stuhl ins Wohnzimmer und wundere mich dann, warum ich mich im Schlafzimmer nicht draufsetzen kann.
FormCreate ist die erste Methode, die aufgerufen wird, wenn das Formular erzeugt wird. Zu dem Zeitpunkt, wirst du noch keine WM_COPYDATA Nachricht empfangen haben. Desweiteren kommen die Daten eben in der Methode TKomMainWnd.WMCopyData an und nicht in FormCreate.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
aaaaaaaaaa_10
(Gast)

n/a Beiträge
 
#16

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:31
Zitat:
vermutlich, weil in FormCreate noch keine WM_COPYDATA-Nachricht empfangen wurde?
WIe empfange ich denn dadrin eine Nachricht?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:43
Ich glaube, du hast gar nichts verstanden. Rat mal, warum du beim Empfänger die Methode procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA; hast? Nämlich um dort die Daten zu empfangen die an dein Fenster mit WM_COPYDATA geschickt wurden. So, wo sind jetzt die geschickten Daten in deinem Quellcode verfügbar?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 11:47
Hier scheint auch wieder mal ganz dringend ein Hinweis auf die netten Hier im Forum suchenGrundlagen Tutorials fällig zu sein. Aus deinen bisherigen Fragen erkennt man, dass du noch sehr frisch dabei sein dürftest und es oftmals schon am kennen/verstehen von einfachen Prinzipien mangelt. Bevor das nicht vorhanden ist wirst du für jeden Pup hier auflaufen müssen, und das hält dich nur unnötig auf.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 12:03
Hallo,

zur Erklärung.
Im FormCreate existiert das Windows-Fenster noch nicht,
sondern erst das TForm (was NICHT das Windows-Fenster ist)

Die früheste Stelle ist FormActivate oder FormShow.

Im FormCreate geht das über memory mapped files,
was ich mir aber nicht antun würde.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#20

Re: WM_CopyData Problem

  Alt 21. Jul 2009, 13:23
in FormCreate existiert es schon, aber kurz davor existierte es noch nicht
zwischendurch werden standardmäßig auch keine Messages abgearbeitet
und demnach kann ein WM_COPYDATA an diese Form da noch nicht verarbeitet sein.

- wurde WM_COPYDATA vorm Create abgesendet, ging diese Nachricht ins Nichts, da das Zielfenster noch nicht existierte
- und selbst wenn die Nachricht in der Millisekunde (oder auch ein bissl länger) versendet, wärend das Erstellen der Form begann und OnCreate aufgerufen wurde, dann wird diese Nachricht erst verarbeitet, wenn das Programm später mal die eingegangenen Nachrichten abarbeitet
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 11:06 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