![]() |
RichEdit - SelAttributes und Protected aufheben und setzen
Moin,
Hab folgendes Problem: Der Inhalt des RichEdit/RTF darf nicht kopiert werden können. Dafür gibts ja das feine 'with MateriaRTF.SelAttributes do Protected := true;' oder die Einstellung 'onSelectionchange' im ObjectInspector. Ich wills temporär auf false setzen, lasse Schlagworte suchen (rot markieren) und dann soll er wieder protected werden. Aber das wird er nicht! Setze ichs im ObjectInspector auf true, dann temporär auf false, lasse Schlagworte suchen und setze es wieder auf false - dann kann ic den Text trotzdem kpopieren. Aber das darf nicht. Was mache ich falsch, wenn ich die Sperre vorrübergehend aufheben will
Delphi-Quellcode:
Frage - Kann man trotz protected irgendwie highlighten/markieren
procedure TForm_1.Such_Box_1ButtonClick(Sender: TObject);
var reh: TRichEditHelper; // (der von Luckie) sl: TStringList; begin if trim(Such_Box_1.text) <> '' then begin with M_RTF.SelAttributes do Protected := false; // temporär entsperren M_RTF.ReadOnly := false; reh := TRichEditHelper.Create(M_RTF); sl := TStringList.Create; try sl.Add(trim(Such_Box_1.text)); if Suche_exact.Checked = true then reh.HighlightWordsNonExact(sl, [fsBold], clRed) else reh.HighlightWords(sl, [fsBold], clRed); M_RTF.SelStart := 0; finally FreeAndNil(sl); FreeAndNil(reh); end; end; M_RTF.ReadOnly := true; with M_RTF.SelAttributes do Protected := true; // und wieder sperren end; |
Re: RichEdit - SelAttributes und Protected aufheben und set
Hallo,
das Kopieren in die Zwischenablage kannst du schneller und einfacher verhindern:
Delphi-Quellcode:
Das Einfügen aus der Zwischenablage ist unmöglich, wenn ReadOnly = True gesetzt ist. Um Screen-Shots zu verhindern musst du wohl etwas mehr Aufwand treiben.
procedure TDemoForm.RichEditSelectionChange(Sender: TObject);
begin with Sender as TRichEdit do SelLength := 0; end; Grüße vom marabu |
Re: RichEdit - SelAttributes und Protected aufheben und set
Boaahh - ist das einfach... hab wieder viel zu kompliziert gedacht
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz