![]() |
TMemo kopiergeschützt
Hi
In meinem Delphi Programm werden gewisse Daten in einem TMemo Feld gezeigt. Wie kann ich verhindert, dass diese Daten herauskopiert werden können? Ich habe probiert mit Eigenschaft ReadOnly = true, aber diese verhindert nur schreiben in einem Memo Feld. Mit einer Maustaste kann man dort weiterhin Text markieren und herauskopieren. Enabled = false kommt auch nicht in Frage, weil die ScrollBars weiter funktionieren müssen Muchacho |
Re: TMemo kopiergeschützt
Wo kommt der Text denn her? Und was machst du, wenn du es doch schaffen solltest und jemand macht einen Screenshot? Oder schreibt es einfach ab?
Wenn du den Text wirklich vor Kopieren schützen willst, zeig ihn nicht an. |
Re: TMemo kopiergeschützt
Hallo,
man könnte auch ein eigenes Popup-Menü mit den gewünschten Funktionen hinterlegen, also alles außer kopieren... |
Re: TMemo kopiergeschützt
Per SendMessage kann man den Inhalt immernoch vom Memo abfragen
oder man kopiert den Text aus dem RAM oder wo er sonst noch gespeichert wurde. |
Re: TMemo kopiergeschützt
Zitat:
|
Re: TMemo kopiergeschützt
Hi
Screenshot ist egal. Es handelt sich hier um umfangreiche verschiedene Listen die mit Mühe zusammen gestellt wurden. Also die Sensibilität dieser Daten ist egal Diese Daten sind fest im Programm verankert und betragen jedes mall mehrere hundert Zeilen. Scheinbar sollte dies kein Problem sein solche Daten zu schützen. Eigentlich kann man dieses Problem als Verhinderung einer Markierung in TMemo ansehen. Muchacho @Bernhard: „Full Ack“ Bernhard ist eine tief überlegte Antwort, danke. |
Re: TMemo kopiergeschützt
Hallo
Das Kopieren von Text kannst du durch Abfangen von WM_COPY verhindern.
Delphi-Quellcode:
Wenn auch Msg.Msg auf WM_GETTEXT überprüft wird, kann der Text auch nicht mehr von "außen" ausgelesen werden.
private
FOldMemoProc: TWndMethod; protected procedure MemoWndProc(var Msg: TMessage); end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.MemoWndProc(var Msg: TMessage); begin if (Msg.Msg = WM_COPY) then begin Msg.Result := 1; ShowMessage('Kopieren nicht erlaubt ;)'); end else FOldMemoProc(Msg); end; procedure TForm1.FormCreate(Sender: TObject); begin FOldMemoProc := Memo1.WindowProc; Memo1.WindowProc := MemoWndProc; end; Musst nur überprüfen, ob dies keine anderen "Nebenwirkungen" mit sich bringt. |
Re: TMemo kopiergeschützt
...oder ganz simpel. Legst du was transparentes drüber, da kann man gar nicht erst markieren.
:hi: |
Re: TMemo kopiergeschützt
Zitat:
Gruss Reinhard |
Re: TMemo kopiergeschützt
@haentschman: geht nicht, weil ich ScrollBars benutzen muss
@toms :hello: Danke für Deine fachliche, zieleorientierte Hilfe (Klein aber Fein) ! Muchacho |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 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