M_Text.Lines.Capacity zuzuweisen bringt nichts, da das MEMO und seine
API sowas nicht kennt.
Abgesehn davon, daß das Memo über die
API den Text immer nur am Stück verwaltet/speichert und nicht zeilenweise.
Dieses Memo.Lines (TMemoStrings) ist nur ein Wrapper/Umleitung zur
WinAPI des Memo.
Memo.Lines.Text = Memo.Text und das geht beides auf SetWindowText/WM_SETTEXT.
Messages werden immer im Erstellungsthread der Empfangskomponente verarbeitet, also kann man aus jedem Thread senden und es wird automatisch syncronisiert.
Delphi-Quellcode:
SetWindowText(M_Text.Handle, PChar(templl.Text));
// oder
SendMessage(M_Text.Handle, WM_SETTEXT, PChar(templl.Text), 0);
// nur M_Text.Handle sollte man besser im MainThread auslesen, wenn man nicht sicherstellen kann, dass M_Text.HandleAllocated=True
Wenn z.B. der Speicher nicht reicht, um den Text zu laden (=
Exception), wird templl nicht freigegeben und auch das Memo zeigt nie wieder etwas an, da es weiterhin durch BeginUpdate gesperrt bleibt.