Hallo,
ich habe eine selbstgebastelte "MessageBox" mit einem TMemo. Ferner wird der Button OK mit Enter und der Button Abbrechen mit ESC ausgelöst. TMemo.WordWrap ist deshalb True und TMemo.WantReturn ist False. Der Text wird - so wie von mir gewünscht - am rechten Ende des TMemo in eine neue Zeile umgebrochen. Das Drücken von Enter wäre daher ohnehin Quatsch. Nach dem Klick auf OK (bzw. Enter)wird der Inhalt mit TMemo.Lines.SaveToFile('...') gespeichert. Leider werden dabei die automatischen Umbrüche nicht mit gespeichert.
Ich möchte jetzt aber, dass der Text exakt so, wie im TMemo auch in der Datei steht; und zwar mit den automatisch vorgenommenen Umbrüchen. Der Sinn ist, den Inhalt der Text-Datei später für die Ausgaben in einer Application.MessageBox zu benutzen. Dort wird zwar auch umgebrochen. Aber erst viel später, so dass man sehr unschöne Fenster hat.
Kann mir da jemand helfen?
Meine Idee war zunächst, im Ereignis OnKeyPress TMemo.CaretPos abzufragen und bei einer neuen Zeile vor dem Wort ein #10#13 einzufügen. Das ist aber aufwending. Und wenn später ein Wort gelöscht wird, gibt es Probleme.
Gruß, Alex
Delphi-Quellcode:
unit Unit1;
interface
uses
SysUtils, Forms, StdCtrls, Classes, Controls;
type
TForm1 =
class(TForm)
Memo1: TMemo;
Button1: TButton; Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile(ExtractFilePath(ParamStr(0)) + '
Test.txt');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with TStringList.Create
Do
try
LoadFromFile(ExtractFilePath(ParamStr(0)) + '
Test.txt');
Application.MessageBox(PAnsiChar(Text), '
Test');
finally
Free;
end;
end;
end.