Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMemo kopiergeschützt (https://www.delphipraxis.net/144477-tmemo-kopiergeschuetzt.html)

Muchacho 8. Dez 2009 21:33


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

Luckie 8. Dez 2009 21:42

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.

juergen 8. Dez 2009 21:48

Re: TMemo kopiergeschützt
 
Hallo,

man könnte auch ein eigenes Popup-Menü mit den gewünschten Funktionen hinterlegen, also alles außer kopieren...

himitsu 8. Dez 2009 21:50

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.

Bernhard Geyer 8. Dez 2009 21:53

Re: TMemo kopiergeschützt
 
Zitat:

Zitat von Luckie
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.

Full Ack. Wenn der Text so sensibel ist mußt du verhindern das er Angezeigt wird wenn der User nicht berechtigt ist. Sobald er angezeigt wird kannst du ihn mit ca. 1. Mio verschiedener Programm "kopieren". Wenn es sein muß sogar gleich in ein fertiges PDF oder Word-Dokument.

Muchacho 8. Dez 2009 21:59

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.

toms 9. Dez 2009 05:53

Re: TMemo kopiergeschützt
 
Hallo

Das Kopieren von Text kannst du durch Abfangen von WM_COPY verhindern.


Delphi-Quellcode:
 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;
Wenn auch Msg.Msg auf WM_GETTEXT überprüft wird, kann der Text auch nicht mehr von "außen" ausgelesen werden.
Musst nur überprüfen, ob dies keine anderen "Nebenwirkungen" mit sich bringt.

haentschman 9. Dez 2009 06:06

Re: TMemo kopiergeschützt
 
...oder ganz simpel. Legst du was transparentes drüber, da kann man gar nicht erst markieren.

:hi:

Reinhard Kern 9. Dez 2009 08:56

Re: TMemo kopiergeschützt
 
Zitat:

Zitat von haentschman
...oder ganz simpel. Legst du was transparentes drüber, da kann man gar nicht erst markieren.

:hi:

aber auch nicht mehr mit Tasten navigieren - oder sehe ich das falsch? Es soll ja noch Menschen geben, die Cursortasten und ähnliches Zeug benutzen.

Gruss Reinhard

Muchacho 9. Dez 2009 09:04

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 22:23 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz