Entwickler-Ecke
Sonstiges (Delphi) - 3 Fragen
Stefan S. - Sa 18.12.04 14:44
Titel: 3 Fragen
Ich halte es für übertrieben, für jede Frage einen eigenen Thread aufzumachen, wenn man sie gleich alle in einen packen kann. Es kann also schon sein, dass das für ein paar der folgenden Fragen das falsche Forum ist. Naja, egal.
1) In vielen meiner Programme nutze ich die Prozedur "OnKeyDown", sodass man per Tastendruck bestimmte Ereignisse auslösen kann. Aber das funktioniert ja nur, wenn die jeweilige Komponente gerade den Fokus hat. Und die Form selber hat anscheinend nie den Fokus, selbst wenn ich sie anklicke, fuunktioniert das Drücken von Tasten nicht. Wenn ich dagegen das "OnKeyDown" von einem Edit nutze, geht das ohne Probleme. Da sieht man ja auch, wenn es den Fokus hat. Was empfehlt ihr mir zu tun, dass das Tastendrücken immer funktioniert? Alle Komponenten mit der "OnKeyDown"-Prozedur ausstatten? Oder was?
2) Gibt es irgendeine Möglichkeit, dass man auch per Tastendruck Ereignisse auslösen (um genau zu sein: Sounds abspielen) kann, wenn das Fenster minimiert ist (also nur noch unten in der Taskleiste) und eventuell sogar ein anderes Programm im Vordergrund ist?
3) Kann man bei einem Memo einstellen, dass man den Text nicht markieren kann und man nicht per Klick in das Textfeld so einen "blinkender Strich"-Cursor platzieren kann? Ich hab schon in der Delphi-Hilfe rumgesucht, aber ich hab keine "Eigenschaft" gefunden, mit der man das einstellen kann. Geht das überhaupt?
Danke im Vorraus.
AXMD - Sa 18.12.04 14:56
Titel: Re: 3 Fragen (2x Tastendruck + 1x Memo)
DaSteve hat folgendes geschrieben: |
Ich halte es für übertrieben, für jede Frage einen eigenen Thread aufzumachen, wenn man sie gleich alle in einen packen kann. Es kann also schon sein, dass das für ein paar der folgenden Fragen das falsche Forum ist. Naja, egal. |
:roll:
Zitat: |
3) Kann man bei einem Memo einstellen, dass man den Text nicht markieren kann und man nicht per Klick in das Textfeld so einen "blinkender Strich"-Cursor platzieren kann? Ich hab schon in der Delphi-Hilfe rumgesucht, aber ich hab keine "Eigenschaft" gefunden, mit der man das einstellen kann. Geht das überhaupt? |
Wenn ich dich richtig verstehe suchst du die Eigenschaft Enabled = false...
AXMD
Delete - Sa 18.12.04 14:58
1) Form1.KeyPreview := true und das OnKeyPress der Form funktioniert immer.
2) Das Drücken einer Taste ist an sich ja schon ein Ereignis. Du kannst nach dem Auslösen eines Ereignisses beliebigen Code ausführen lassen.
3) Memo1.ReadOnly := true und der Text des Memos kann nicht mehr geändert werden.
Stefan S. - Sa 18.12.04 14:59
Titel: Re: 3 Fragen (2x Tastendruck + 1x Memo)
AXMD hat folgendes geschrieben: |
Wenn ich dich richtig verstehe suchst du die Eigenschaft Enabled = false... |
Nein, die kenne ich schon. Das Problem bei der ist, dass dann der Text automatisch grau wird und das will ich nicht. Der Text soll ganz normal angezeigt werden, nur soll man ihn nicht markieren und nicht "reinklicken" können.
Elite hat folgendes geschrieben: |
3) Memo1.ReadOnly := true und der Text des Memos kann nicht mehr geändert werden. |
Hab ich schon gemacht. Der Text kann auch nicht mehr geändert werden. Markieren kann man ihn aber trotzdem noch und reinklicken auch...
Pr0g - Sa 18.12.04 14:59
Hallo,
zu 1) Stell die Eigenschaft "KeyPreview" der Form im OI auf "True". Weiteres zu dem Befehl in der Hilfe.
zu 2) Sollte mit einem systemweiten Shortcut, Hook gehen. Dazu kann ich aber nichts genaueres sagen.
zu 3) Willst du das Memo nur zum Anzeigen von Text benutzten, also das der User nicht selber irgendwas machen kann. Eine etwas "unsaubere" Lösung wäre, dass du das Memo auf ein Panel packst und die Eigenschaft "Enabled" des Panels auf "False" stellst.
MfG Pr0g
Stefan S. - Sa 18.12.04 15:02
Zu 1): OK, ich probier's mal aus.
Zu 2): Danke, ich such mal danach.
Zu 3): Ne, sorry, es sollte schon ein Memo sein - hab meine Gründe.
Delete - Sa 18.12.04 15:44
Es wär dann ja auch ein Memo, nur dass es auf einem eigenen Panel läge.
Stefan S. - Mo 20.12.04 16:16
Ach so, ja, klar! ^^ Das Memo befand sich sowieso in einer Groupbox. Bei der hab ich jetzt "Enabled" auf "False" gestellt und man kann das Memo nicht mehr markieren, aber es ist trotzdem noch schwarz.
Das mit "Key Preview" hab ich auch ausprobiert und es hat einwandfrei funktioniert.
Das heisst: Frage 1) und Frage 3) sind beantwortet. Zu 2): Ich hab das von Pr0g noch nicht ausprobiert, aber wenn ihr was dazu wisst, bitte posten! Ich such dann mal in der Hilfe.
EDIT: Thread kann geschlossen werden, ich hab nämlich (weil ich noch mehr Fragen hab) einen neuen aufgemacht. Antworten auf Frage 2) bitte
darein [
http://www.delphi-forum.de/viewtopic.php?p=200829#200829].
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!