M_Text.Lines.Capacity zuzuweisen bringt nichts, da das MEMO und seine
API sowas nicht kennt.
Wenn ich mich richtig erinnere hilft es aber bei anderen Tstrings-abkömmlingen und hier schadet's nicht. So hatte ich die
OH verstanden.
Abgesehn davon, daß das Memo über die
API den Text immer nur am Stück verwaltet/speichert und nicht zeilenweise.
Das werde ich mir rahmen!
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.
Davon hab ich kaum ein Wort verstanden, wohl weil ich mich noch nicht so recht mit Mesages beschäftigt habe.
Gruß
K-H