Einzelnen Beitrag anzeigen

AJ_Oldendorf

Registriert seit: 12. Jun 2009
385 Beiträge
 
Delphi 12 Athens
 
#9

AW: AnsiString an Threads schicken (PostThreadMessage)

  Alt 11. Mai 2012, 17:20
Hi,
wo die Variable für ErzeugeNachricht herkommt, ist doch dargestellt

Delphi-Quellcode:
Var
  MyMsg : AnsiString;
...

ErzeugeNachricht(@MyMsg);
Zum Beispiel könnte der Aufruf durch ein Button Klick kommen.

Zitat:
Wenn InMsg vor ErzeugeNachricht weniger als 5 Zeichen enthält, dann sind die letzten 1-2 Zeichen undefiniert.
Das stimmt. Habe den Code nur "zusammen kopiert" und diese Stelle nicht richtig angepasst gehabt. Ist also Zufall das es da so steht.

Das Try except habe ich einfach nur zur Sicherheit drum gemacht. Könnte man natürlich auch weglassen.

Die Anwendung arbeitet ohne DLL's, also diese Aufrufe sind nur innerhalb der Anwendung.
Ich kann leider nicht zur sehr ins Detail gehen weil diese Anwendung bei und auf Arbeit entwickelt wurde und deswegen kann ich auch nicht den ganzen Code darstellen. Ich versuche es aber so gut es geht zu beschreiben.
Wir arbeiten mit Nachrichten wie ihr schon gesehen habt. Es gibt ein Hauptthread der die empfangenen Nachrichten auswertet und an die entsprechenden "Unterthreads" weiterleitet. Dies geschieht sehr oft im Programm weil die Kommunikation nur über dieses "Message-Konstrukt" arbeitet (also wird sehr oft benutzt).
Das Konstrukt für das Schicken und Empfangen der Nachrichten ist das von mir beschriebene. Ich sage auch nicht, dass dies die ultimative Lösung wäre, deswegen habe ich ja hier nachgefragt und würde gerne ein paar Anregungen sammeln, wie man sowas auch noch lösen könnte. Ich bin mir auch nicht ganz sicher ob diese beschriebe Lösung, nicht den Speicher ordentlich "framentiert"?!

Viele Grüße
Alex
  Mit Zitat antworten Zitat