Autor Beitrag
Flix
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 14.05.09 18:42 
Hallo

Ich habe ein kleines Programm und benutze darin ein richedit. Dort darf unter keinen Umständen Text hineinkopiert werden. Dazu frage ich Tastenklicks ab und lösche immer wieder die Zwischenablage. Dummerweise kann man nach wie vor durch simples markieren eines Textes (in einer anderen Software) und durch Ziehen in mein RichEdit-Feld Text kopieren. Ich habe schon versucht das Event onEndDrag abzufangen, doch das wird erst gar nicht aufgerufen. Hat jemand da eine Idee? Danke

Flix
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Do 14.05.09 18:55 
Kannst Du das nicht einfach nur mit RichEdit.Enabled:=false; machen?
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 14.05.09 19:02 
Oder RichEdit1.ReadOnly := True (meiner Meinung nach sauberer).

Löschen der Zwischenablage ist schlecht und wäre ein Grund für mich, dein Programm nicht zu verwenden (wenn der Nutzer nicht ausdrücklich darauf hingewiesen wird).
Flix Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 14.05.09 21:22 
Zitat:
Löschen der Zwischenablage ist schlecht und wäre ein Grund für mich, dein Programm nicht zu verwenden (wenn der Nutzer nicht ausdrücklich darauf hingewiesen wird).

Keine Angst, meine Benutzer werden das Programm dennoch benutzen, sie haben quasi keine andere Wahl, es sind nämlich meine Schüler. Das Feld auf readonly oder enabled:=false zu setzen ist keine Option, da man dann nicht reinschreiben kann. Sie sollen halt nur nicht kopieren können. (Man kann dann den Text codiert abspeichern, so, dass man nur seine eigenen Texte auch wieder laden kann). Also es bleibt nach wie vor bei der Frage, das Drag and Drop von Texten zu unterbinden.

Flix

Moderiert von user profile iconNarses: Quote-Tags eingefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 14.05.09 21:37 
Moin und :welcome: im Forum!

user profile iconFlix hat folgendes geschrieben Zum zitierten Posting springen:
es sind nämlich meine Schüler.
Dann mach dich schonmal darauf gefasst, dass das erste, was die SuS rauskriegen werden, das Reinkopieren von Text (bzw. genau das, was sie nicht sollen) sein wird! :rofl:

user profile iconFlix hat folgendes geschrieben Zum zitierten Posting springen:
Das Feld auf readonly oder enabled:=false zu setzen ist keine Option, da man dann nicht reinschreiben kann. Sie sollen halt nur nicht kopieren können.
Keine Chance, wenn du das Editieren erlaubst, dann wirst du c&p nicht ohne Verrenkungen abklemmen können. :nixweiss:

Setz es auf Readonly und reagiere auf die Tastenereignisse mit Einfügen dieser in das Memo/Richedit. :idea: (Dann wäre allerdings immer noch eine "Fernsteuerung" von einer anderen Anwendung aus möglich, die einfach Tastaturereignisse sendet - also auch noch die Tippfrequenz begrenzen... 8))

Was soll denn das werden, wenn ich mal fragen darf? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Do 14.05.09 21:55 
Hi :)

Die Idee mit der Tippfrequenz ist wohl in der Praxis am leichtesten umzusetzen. Eine Variation davon: Im onChange prüfen, um wie viele Zeichen sich die länge des Textes vergrößert hat. Mit '^x' dürfte die sich maximal um 2 ändern :gruebel: Um Aktionen Rückgängig machen zu können, natürlich nur positive Änderungen der Textlänge berücksichtigen.

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Flix Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Fr 15.05.09 14:54 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFlix hat folgendes geschrieben Zum zitierten Posting springen:
es sind nämlich meine Schüler.
Dann mach dich schonmal darauf gefasst, dass das erste, was die SuS rauskriegen werden, das Reinkopieren von Text (bzw. genau das, was sie nicht sollen) sein wird! :rofl:

user profile iconFlix hat folgendes geschrieben Zum zitierten Posting springen:
Das Feld auf readonly oder enabled:=false zu setzen ist keine Option, da man dann nicht reinschreiben kann. Sie sollen halt nur nicht kopieren können.
Keine Chance, wenn du das Editieren erlaubst, dann wirst du c&p nicht ohne Verrenkungen abklemmen können. :nixweiss:

Setz es auf Readonly und reagiere auf die Tastenereignisse mit Einfügen dieser in das Memo/Richedit. :idea: (Dann wäre allerdings immer noch eine "Fernsteuerung" von einer anderen Anwendung aus möglich, die einfach Tastaturereignisse sendet - also auch noch die Tippfrequenz begrenzen... 8))

Was soll denn das werden, wenn ich mal fragen darf? ;)

Ich möchte im Grunde nur das Beste für meine Schüler. Sie sollen Programmieren lernen. Dafür habe ich eine schöne Lernsoftware geschrieben. Manche Schüler machen es sich aber gerne leicht und kopieren sich die Lösungen von anderen. Das wollte ich zumindest erschweren. Natürlich kann man das Programm auch noch anders austricksen (zB den einfügenden Text in den Tastaturpuffer schreiben) Nur wer das kann, der braucht auch nicht mehr mein Programm.

Also ich halte mal für mich fest, dass man die Anzahl der eingefügten Zeichen überprüft. Bisher habe ich allerdings das kopieren innerhalb des Memos gestattet. Dieses Workaround ist eine gute Idee, schrnkt aber auch ganz schön ein.
Warum kann man nicht das Drag and Drop Ereignis abfangen? Das muss doch irgendwie gehen!

Flix
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Fr 15.05.09 15:35 
user profile iconFlix hat folgendes geschrieben Zum zitierten Posting springen:

...Keine Angst, meine Benutzer werden das Programm dennoch benutzen, sie haben quasi keine andere Wahl, es sind nämlich meine Schüler.


Hallo,

und das rechtfertigt deiner Meinung nach unsaubere Programmierung mit Nebenwrikungen auf das ganze System? Schon mal was von Lehrern als Vorbild gehört?

Naja, wenn du sie mit Software dieser Qualität konfrontierst werden sie eh bald machen was sie wollen. In dem Fall Gottseidank.

Gruss Reinhard
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 15.05.09 16:38 
Was wäre am Überschreiben des DragNDrop-Events unsauber, vorausgesetzt das wäre vorgesehen und damit ohne Umwege möglich? :) E: Ach so, wenn C&P systemweit eingeschränkt würde, wäre das schon unschön/unsauber, so etwas geht ein einzelnes Programm eigentlich nichts an.

@Threadsteller: Ich hoffe, sie sind sich des Aufwands klar, wenn sie eine IDE erstellen wollen, der Delphi, mitsamt des Syntax-Highlightings, gleichkommt. Dafür wäre dann nämlich auch noch ein Parser notwendig, der die Strukturen zum fett Drucken, etc. erkennt.

Statt so viel Zeit in die Entwicklung eines Tools zu stecken(das zeugt wirklich von Engagement, alle Achtung :zustimm:), würde ich den Fokus aber vielleicht erst einmal auf andere Dinge legen. Zumal, wenn die Funktionalität dann gegenüber der Delphi-IDE eingeschränkt wäre. Mir tut sich gerade das Horrorszenario auf, plötzlich mitten im Unterricht einen Fehler im Programm zu finden und

[OT]
Ein paar Vorschläge, wie man zusätzliche Zeit effektiver in den Unterricht einfließen lassen könnte:
  • Mein Mathelehrer hat immer tolle Tafelbilder - die sehen so aus, als würde er sich am Tag vorher mindestens eine Studne hinsetzen und planen. Klingt nach viel Aufwand, aber man kann diese Tafelbilder ja - genau wie Klausurvorschläge alle paar Jahre - jedes Jahr in Variationen wieder verwenden, und das hilft einem dann, den Faden auch nicht zu verlieren und, immer klare Struktur im Stoff zu haben.
  • Je nach Klassenstärke könnte man das C&P auch durch weiträumig gerichtetere Aufmerksamkeit unterbinden(in meinem Info-Kurs sitzen übrigens genau 10 Schüler :mrgreen:). Alternative: C&P mit Erklären erlauben, aber jeder Schüler muss jederzeit in der Lage sein, seinen Quelltext zu erklären(nicht druckartig, sondern als nicht so stark gewertete Selbstverständlichkeit, da gibt es ja dann auch Spielraum) ;)

[/OT]

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)