Autor Beitrag
Eddie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 21:37 
Hi Leute,

Ich würde gerne wissen wie ich in einem Memo folgende Tasten "verbieten" kann:
- Backspace
- Entfernen
- Pfeiltasten

Außerdem würde ich es gerne so machen, dass man nichts mehr in das Memo einfügen kann.

Wär schön wenn ihr mir helfen könnt.
Vielen Dank schon mal.

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 16.10.05 21:39 
Wenn du das Memo auf readonly stellst kann der Anwender nix mehr einfügen

die Tasten kannst du verbieten indem du sie über keydown abfängst
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 21:44 
Wenn ich das Memo auf ReadOnly stelle kann ich aber auch nichts mehr reinschreiben!

Das andere werd ich mal probieren. Danke

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 16.10.05 21:51 
Das ist der Sinn von ReadOnly -> der Anwender kann nix mehr reinschreiben
Das Programm hingegen schon
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 21:54 
Das ist aber nicht dass was ich bezwecken will!!!
Der nutzer soll ja noch alle Tasten (außer die oben genannten) benutzen können und da nützt ReadOnly nix!

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 16.10.05 21:56 
user profile iconEddie hat folgendes geschrieben:

Außerdem würde ich es gerne so machen, dass man nichts mehr in das Memo einfügen kann.


dann hab ich den Satz falsch verstanden, sorry
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 16.10.05 21:56 
Dann hilft DarkHunters zweiter Hinweis: Im OnKeyDown-Ereignis abfangen. Dazu am Besten mal die Suche im Forum bemühen. :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: So 16.10.05 21:56 
[quote="user profile iconEddie"]
Außerdem würde ich es gerne so machen, dass man nichts mehr in das Memo einfügen kann.
quote]

Was soll der Satz dann aussagen?

EDIT:

mal wieder zu spät...
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 22:04 
Sorry. Da hab ich mich wohl etwas unverständlich ausgedrückt.
Ich meinte das man nichts mehr aus dem Zwischenspeicher einfügen kann.

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 16.10.05 22:06 
also möchtest du "Einfügen" verbieten, bzw STRG+V richtig?
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 22:08 
jap.

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: So 16.10.05 22:08 
Müsstest du auch über das KeyDown abfangen, sollte aber zu machen sein.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 16.10.05 22:10 
Hallo,

da www.delphi-forum.de/...r=asc&highlight= geht es zwar um ein EditFeld, aber das kannst Du einfach anpassen.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: So 16.10.05 22:19 
Vielen Dank für den Tipp. Werd mal ausprobieren.

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: Mi 19.10.05 10:51 
Ich hab das jetzt mal ausprobiert. Das mit der Zwischenablage von Lannes hat hervorragend funktioniert.

Die Sache mit den Tasten funktioniert aber nicht ganz.
Ich habs folgendermaßen probiert (In KeyPress):

ausblenden Delphi-Quelltext
1:
2:
If Key = Char(vk_Backspace) then
  Key := #0;

Mein Problem ist jetzt folgendes: Die Tasten Entf, Pos1, Ende und die Pfeiltasten funktionieren trotzdem noch.
Hab schon alles mögliche Probiert und es hat einfach nicht funktioniert. Kann mir vielleicht jemand sagen was ich falsch mache?

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Mi 19.10.05 11:02 
Also ich bin ganz ehrlich der Meinung du solltest das Memo komplett sperren und zusätzliche Eingaben über ein Editfeld oder anderweitig ermöglichen. Der Grund ist recht simple. Du musst unter anderem Strg+A blocken. Du musst die Mausmarkierungen blocken. Sobald etwas markiert wird und eine Taste gedrückt wird musst du dies abfangen und darauf reagieren. Du möchtest zu viel verhindern. Mir stellt sich da die Frage ob das so sinnvoll ist und ob der Benutzer da nicht vielleicht eine total verkrüppelte Steuerung vorgesetzt bekommt und es letzten endes nicht mehr sinnvoll benutzen kann.

Wäre auch mal interessant zu wissen was du damit vor hast. Vielleicht gibt es ja eine besser Möglichkeit als ihn so umstänndlich zu beschneiden. Vor allem da du recht viel Zeit investieren musst und es dann doch noch irgendwelche Schlupflöcher gibt.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: Mi 19.10.05 11:06 
Ich bin dabei einen Schreibtrainer um das 10-Fingersystem zu lernen, zu schreiben.
Die Tasten möchte ich verbieten weil es einen Modus gibt wo keine korrektur erlaubt ist.

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mi 19.10.05 11:39 
Hallo,
zu deinem Code, vk_Backspace ist falsch, so ist es richtig:
ausblenden Delphi-Quelltext
1:
2:
If Key = Char(vk_Backthen
  Key := #0;


@user profile iconLossy eX: richtig :!:

@user profile iconEddie:
Probier mal dies:
- ein Panel auf die Form
- Panel.Enabled auf False
- auf das Panel das Memo
- den folgenden Code in das Ereignis OnKeyPress der Form
ausblenden Delphi-Quelltext
1:
2:
if Key in ['a'..'z','A'..'Z','0'..'9',' 'then//<---- anpassen
  Memo.Text := Memo.Text + Key;

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Mi 19.10.05 11:50 
Ähh. Lanes. War schneller. In etwa so etwas würde ich auch empfehlen.

Du könntest das Memo auch auf ReadOnly stellen und beim OnKeyPress des Memos dann die Buchstaben hinzufügen. Je nachdem was dir optisch besser gefällt und wie das besser in dein Programm passt könntest du bei einem solchen Test ein extra Fenster aufpoppen lassen und in einem Label den zu tippenden Text und in einem anderen die Zeichen von Form.OnKeyPress darstellen. Also Möglichkeiten gibt es genügend. Es kommt nur darauf an was für den Benutzer offensichtlicher ist und was besser aussieht.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Eddie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58

WinXP SP2
Delphi 5 Standard,Delphi 2005 Architect
BeitragVerfasst: Do 20.10.05 19:57 
user profile iconLannes hat folgendes geschrieben:
Hallo,
zu deinem Code, vk_Backspace ist falsch, so ist es richtig:
ausblenden Delphi-Quelltext
1:
2:
If Key = Char(vk_Backthen
  Key := #0;


So stands natürlich auch bei mir im Quelltext. Ich saß zu dem Zeitpunkt nur grad nicht vor dem Programm sonder in der Schule vorm PC. :D

Auf jeden fall hab ich die Tipps ein wenig abgewandelt und habs jetzt so hingekommen, dass alles so funktioniert wie ichs haben wollte.
Vielen Dank!!

_________________
Der Programmierer ist nur ein Tool, dass Koffein in Code konvertiert.