Das liest sich im
MSDN aber (mal wieder) anders.
Zitat:
The EM_GETPARAFORMAT message retrieves the paragraph formatting of the current selection in a rich edit control.
...
If more than one paragraph is selected, the structure receives the attributes of the first paragraph, and the dwMask member specifies which attributes are consistent throughout the entire selection.
[edit] So, wieder einen Schritt weiter. Ich hatte vergessen, den Rückgabewert von EM_SETPARAFORMAT auszuwerten. Nun ist die Frage, wieso dieser Testcode "Das
Handle ist ungültig" ausspuckt.
Delphi-Quellcode:
const
TestFile = 'C:\temp\Test.rtf';
TestFile2 = 'C:\temp\Test2.rtf';
procedure TFormTest.Button1Click(Sender: TObject);
var
fmt: TParaFormat2;
begin
RichEdit1.Lines.LoadFromFile(TestFile);
RichEdit1.SelectAll;
ZeroMemory(@fmt, SizeOf(fmt));
fmt.cbSize := SizeOf(fmt);
SendMessage(RichEdit1.Handle, EM_GETPARAFORMAT, 0, lParam(@fmt));
RichEdit1.SelLength := 0;
RichEdit1.SelStart := Length(RichEdit1.Lines.Text);
RichEdit1.SelText := 'Dies ist die Kopie.' + sLineBreak;
if SendMessage(RichEdit1.Handle, EM_SETPARAFORMAT, 0, lParam(@fmt)) = 0 then
ShowMessage(SysErrorMessage(GetLastError))
else
RichEdit1.Lines.SaveToFile(TestFile2);
end;
[/edit]
[edit2] GetLastError scheint auch Quatsch zu sein, wie kann ich denn nun die Fehlerursache ermitteln? [/edit2]