Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#51

AW: RTF - Absatzhintergrund setzen

  Alt 12. Jul 2011, 10:35
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]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (12. Jul 2011 um 11:15 Uhr)
  Mit Zitat antworten Zitat