Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi String via Sendmessage unvollständig (https://www.delphipraxis.net/186864-string-via-sendmessage-unvollstaendig.html)

Ajintaro 8. Okt 2015 12:46

AW: String via Sendmessage unvollständig
 
Hallo DP,

:| ein Foren-thread voller Emotionen... ich hoffe ich habe mti meinem Beitrag niemanden provoziert.
Bezüglich der Kernfrage, wieso der übermittelte String abgeschnitten wird wurde ich auf die richtige Spur gebracht:
Folgender code übertragt den String korrekt:

Sender:
Delphi-Quellcode:
DataStruct.cbData := 1 + (Length(Fmain.edit4.Text) * SizeOf(Char));
DataStruct.lpData := PWideChar(Fmain.edit4.Text);
Empfänger:
Delphi-Quellcode:
sMsg := PWideChar(Msg.CopyDataStruct.lpData);

Natürlich wären threads die klar bessere Lösung. Ich habe auch zuerst versucht, eine thread-basierte Lösung zu schreiben. Allerdings muss ich zugeben, dass das über meinem aktuellen (Delphi) Know-How ist. Es gibt unzählige Beitrage und Beispiele zu diesem Thema, aber ich konnte bisher keinen funktionierenden Code zustande bringen der einen POST request thread basiert absetzt.

hathor 8. Okt 2015 15:58

AW: String via Sendmessage unvollständig
 
Inter-process communication (IPC)
In computing, Inter-process communication (IPC) is a set of techniques for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC techniques are divided into methods for message passing, synchronization, shared memory, and remote procedure calls (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.
http://www.delphibasics.info/home/de...scommunication
.
IPC
Description Source Code: Source of program show how to create a component for communication between processes. Allows the exchange of information between the 32 and 64 bit processes, services, and isolated process (Low Level Integrity).
http://4coder.org/delphi-source-code/1009/

EWeiss 8. Okt 2015 16:25

AW: String via Sendmessage unvollständig
 
Zitat:

Die fachlich gängige Lösung sind hier nunmal Threads.
Wirklich?

Ich mache es über eine Callback.. da benötige ich keine Threads.

gruss

TBx 8. Okt 2015 16:31

AW: String via Sendmessage unvollständig
 
Zitat:

Zitat von hathor (Beitrag 1318063)
Inter-process communication (IPC)...
IPC...

Und was bitte soll uns nun diese lieblos dahingeworfene Linksammlung sagen?

Daniel 8. Okt 2015 16:40

AW: String via Sendmessage unvollständig
 
Zitat:

Zitat von EWeiss (Beitrag 1318067)
Zitat:

Die fachlich gängige Lösung sind hier nunmal Threads.
Wirklich?
Ich mache es über eine Callback.. da benötige ich keine Threads.
gruss

Es gibt ganz viele Wege nach Rom. Und jeder soll die Lösung wählen, die ihn glücklich macht.
Eines der im ersten Beitrag genannten Probleme war eben das Einfrieren der Anwendung, wenn das Internet mal wieder ein wenig braucht. Und da hilft allein ein Callback ja auch nicht, solange der bremsende Request im Main-Thread läuft.

EWeiss 8. Okt 2015 16:58

AW: String via Sendmessage unvollständig
 
Zitat:

Es gibt ganz viele Wege nach Rom.
Würde eher nach RIO plädieren. :lol:

Zitat:

Es gibt ganz viele Wege nach Rom. Und jeder soll die Lösung wählen, die ihn glücklich macht.
Richtig. ;)
Deshalb habe ich auch meine Herangehensweise mitgeteilt.
Aber gut wie du sagst jeder wie er will.

gruss

Daniel 8. Okt 2015 17:02

AW: String via Sendmessage unvollständig
 
Aber es würde mich interessieren, wie Du das Einfrieren des Main-Threads verhinderst (sei es in Rom oder Rio).

Ajintaro 9. Okt 2015 12:36

AW: String via Sendmessage unvollständig
 
Zitat:

Zitat von TBx (Beitrag 1318068)
Zitat:

Zitat von hathor (Beitrag 1318063)
Inter-process communication (IPC)...
IPC...

Und was bitte soll uns nun diese lieblos dahingeworfene Linksammlung sagen?

Hallo nochmal,

das Problem der String Übertragung wurde wie gesagt gelöst, wobei das Einfrieren auch die Sekundäranwendung betrifft im Fall von SendMessage.
Dieser Artikel war dabei sehr hilfreich: Windows Messages Tutorial

Ich habe mir das IPC Beispiel mal angesehen und es würde all meine Probleme lösen, ich habe nur Schwierigkeiten es komplett zu verstehen. Ich bin euch für eure Unterstützung sehr dankbar!

Habt alle ein schönes Wochenende!

BUG 9. Okt 2015 12:58

AW: String via Sendmessage unvollständig
 
Zitat:

Zitat von Daniel (Beitrag 1318073)
Aber es würde mich interessieren, wie Du das Einfrieren des Main-Threads verhinderst (sei es in Rom oder Rio).

Mit einem Event-getriebenen/asynchronem Programmierstil kann man auch ohne Threads "reaktive" Anwendungenen schreiben und das Verhungern der Benutzeroberfläche verhindern. Dafür würde man alle Aufgaben in kleine Happen zerteilen und nur asynchrone Systemcalls machen. Der oft zitierte IdleWorker ist afaik ein Schritt in diese Richtung.

Das ordentlich hinzugekommen ist aber nicht wirklich einfacher als Threads zu benutzen :wink:

mkinzler 9. Okt 2015 13:14

AW: String via Sendmessage unvollständig
 
Statt eines Autos kann man auch eine Porsche nehmen. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Seite 2 von 3     12 3      

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