Thema: Delphi DBRichEdit in RichEdit

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 18. Mai 2003, 00:38
Moin Stephan,

vom Prinzip her klappt das so (getestet):

Delphi-Quellcode:
var
  cfWork : TCHARFORMAT;
  pResult : PChar;

begin
  DBRichEdit1.Lines.Add('TEXT');
  DBRichEdit1.SelectAll;
  cfWork.cbSize := SizeOf(cfWork);
  SendMessage(DBRichEdit1.Handle,EM_GETCHARFORMAT,SCF_SELECTION,lParam(@cfWork));
  pResult := AllocMem(DBRichEdit1.SelLength);
  try
    SendMessage(DBRichEdit1.Handle,EM_GETSELTEXT,0,lParam(pResult));
    RichEdit1.Lines.Clear;
    SendMessage(RichEdit1.Handle,WM_SETTEXT,0,lParam(pResult));
    RichEdit1.SelectAll;
    SendMessage(RichEdit1.Handle,EM_SETCHARFORMAT,SCF_SELECTION,lParam(@cfWork));
  finally
    FreeMem(pResult,DBRichEdit1.SelLength);
  end;
  DBRichEdit1.SelLength := 0;
  RichEdit1.SelLength := 0;
end;
Es wird einfach mit Hilfe der zugehörigen Messages das Format des selektierten Textes und anschliessend der Text selber aus dem DBRichEdit ausgelesen, und dann auf das RichEdit übertragen.

Wichtig:
Dieses Beispiel setzt voraus, dass der gesamte Text das gleiche Format hat, ggf. müsste also das Format Zeichenweise übertragen werden.

Warum ein DBRichEdit beim Speichern nicht das Format mitspeichert weiss ich allerdings auch nicht. Gemäss der VCL Sourcen dürfte das eigentlich nicht sein, und ist doch so
(wahrscheinlich hab' ich's übersehen)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat