| |
|
|
funkheld | Hallo, guten Tag. Ich hab ein Problem mit Daten zurückzuholen vom Loksim3d. Mit Sendmessage kann ich beim Loksim3D die Indusi betätigen, das klappt.
Nun kann man mit dem String : cLOK_INSTRUMENT_TACHO = "LOK.INSTRUMENT.TACHO" die Geschwindigkeit abfragen, rückgabe ist ein String, der ja in einem Pointer zurückgegeben wird. Jetzt weiss ich nicht wie man das machen kann mit dem Befehl "Postmessage". Wer kann mir das bitte mal erklären?
Danke.
Gruss
Tastendruck kann ich Loksim3D senden :
|
|
|
| |
|
|
|
| Hi!
Gemäß dem Thementitel "Wie funktioniert das Postmessage bei mir im Beispiel ?" finde ich gar kein PostMessage in Deinem Beispiel.
Postmessage ist im Unterschied zu SendMessage auch eher nicht dazu da, auf einen Rückgabewert zu warten.
Wenn die Adresse eines Strings zurückgegeben wird dann kannst Du die Zeichen einfach so auslesen/ ausgeben: KompilierenMarkierenSeparieren |
|
|
| |
|
|
|
| Nachtrag: Dollarzeichen vergessen/ nachgetragen.
(auch wenn es mit xpse auch ohne funktioniert ^^ ) |
|
|
| |
|
|
|
funkheld | Jup, danke. Muss noch mal umbauen den ganzen Kram.
Gruss |
|
|
| |
|
|
|
| Kein Problem. Und wenn Du einen anderssprachigen Quelltext hast dann einfach zeigen denn den kann man dann leicht nach XProfan umschreiben. |
|
|
| |
|
|
|
funkheld | Mal einfach gefragt, ich möchte mit Postmessage von einem anderen Programm(Freebasic) ein String senden an das Fenster "Profan". STRPTR wandelt eine Stringvariable in un Adresse um.
Dim text as String text="Test" fenster = FindWindow(0, "Profan") Postmessage(profan,STRPTR(text),0,0)
Diesen Text von Freebasic soll das Profanfenster empfangen. Wie geht das?
Danke.
Gruss |
|
|
| |
|
|
|
| Hi,
da gibt es lauter Wege per,
das Einfachste wäre dazu wohl dass das Programm(Freebasic) das Handle von einer durch das XProfan-Programm erzeugten ListBox-Liste erhält und direkt an die ListBox Einträge anhängt.
Das wäre auch threadsicher und einfach dann durch das XProfan-Programm (getString$(..., getCount(... ) abzurufen.
Andernfalls... dieser Aufruf ist nicht sinnvoll:
Postmessage(profan,STRPTR(text),0,0)
da hierbei die Nachrichtennummer die Adresse des Strings ist und Du im Empfänger- Programm ja die Adresse nicht kennst bzw. die Nachrichtennummer eine bereits übliche/ verwendete Nachrichtennummer sein kann.
Dann eher...
PostMessage(profan,wm_user+12345,strptr(text),0)
und dann im XProfan-Programm innerhalb der sogenannten SubClassProc auf Nachricht wm_user+12345 warten und dann den String aus dem &swParam laden per print string$(&swParam,0).
Für Strings/ Daten zwischen Prozessen austauschen gibts windowsweit wiederum eigentlich die wm_copydata -Nachricht ( [...] ).
XProfan-Beispiel: [...]
Hier noch mehr: [...]
Was Du auch machen kannst ist einfach mit SetText/ GetText bzw. SetWindowText ( [...] ) Fenstertitel setzen und abfragen z.B. von Fensterndie nicht sichtbar sind. |
|
|
| |
|
|
|
funkheld | So, danke, die nehme ich jetzt in Freebasic um die TCP-Daten vom Loksim3d per: PostMessage(profan,wm_user+12345,strptr(text),0) an Profan zu senden um diese dann als Grafik darstellen .
Wie geht denn das jetzt hier bitte? :
und dann im XProfan-Programm innerhalb der sogenannten SubClassProc auf Nachricht wm_user+12345 warten und dann den String aus dem &swParam laden per print string$(&swParam,0)
Danke.
Gruss |
|
|
| |
|
|
|
| |
|
| |
|
|
|
| Anstelle von StrPtr(text) musst du Addr(text$) verwenden.
PostMessage ist etwas schneller als SendMessage, wartet aber nicht auf die Rückantwort der Message. |
|
|
| |
|
|
|
| @Frank: Wie ich es verstanden habe bezog sich sein "StrPtr(text)" auf FreePascal. |
|
|
| |
|
|
|
funkheld | Hallo, jup danke per die Aiuto. Es war Freebasic. Aber irgendwie hakt es da im Freebasic mit dem Datenversenden. Ich nehme jetzt mal Purebasic als TCP-Grundgerüst welches den Datentransfer übernimmt mit Send/Postmessage. Zur Zeit klappt es mit dem TCP-Gerüst bei mir mit XProfan nicht, mit dem Server und Clienten. Es sollte da mal ein Grundgerüst mit einfachen Befehlen geschaffen werden von euch Spezialisten, denn TCP und der dazugehörige Kram ist per einen Anwender der den Datentransfer Server/Client per sein Programm haben möchte überhaupt nicht einfach. Dabei ist es, wenn es funktioniert eine grosse Bereicherung per das XProfan.
Das mit dem SubClassing muss ich erstmal verdauen.Der Automatische ablauf davon begreife ich noch nicht.
Danke.
Gruss |
|
|
| |
|
|