Entwickler-Ecke
Sonstiges (Delphi) - Enter Taste
NaRF - Do 21.11.02 19:36
Titel: Enter Taste
hallo,
ich habe eine Frage an euch:
Wie kann ich einem Button die Eigenschaft zuweisen (wenn möglich mit dem objektinspektor) beim Drücken der Entertate "geklickt" zu werden ? (wie z.B. bei Suchmaschinen. Man gibt einen Text ein, drückt Enter und die Suche wird gestartet)
Die Suche in der Delphihilfe brachte mir keine Ergebnisse.
Kann mir da jemand helfen ?
Funzi - Do 21.11.02 19:48
Das ist ganz einfach:
Man kommt zwar nicht gleich drauf, aber so müsste es gehen (bei mir zumindest hats geklappt):
Setze einfach die Eigenschaft Default von dem Button auf True
Dann muss eben nur Fokus auf dem Formular mit dem Button sein und dann gehts...
Hoffe das war das, was du gemeint hast. :wink:
hansa - Do 21.11.02 19:51
Hi,
bei mir kommt egal, ob mit der Maus geclickt oder Enter gedrückt immer die showmessage.
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin showmessage ('ÖLKÖKÖ'); end; |
Das mußt Du im OnClick-Event im Objektinspektor einstellen.
Gruß
Hansa
Funzi - Do 21.11.02 19:55
Titel: NEIN
Ich glaube, das war genau das, was er nicht wollte....
setz mal eine TMemo-Komponente auf dein Formular, schreibe einen Text darein und drücke dann Enter...
hansa - Do 21.11.02 19:59
Hi,
das habe ich zu spät gesehen :
| Zitat: |
Man gibt einen Text ein, drückt Enter und die Suche wird gestartet)
|
Willst Du einen Text in einen Button eingeben oder was ? Gehe mal davon aus, daß Du einen Text woanders eingeben willst und der Button soll "aktiv" werden, falls Enter gedrückt wird. Dann mußt Du nur den Fokus auf den Button setzen, ungefähr so :
Gruß
Hansa
hansa - Do 21.11.02 20:09
Hi Funzi,
| Zitat: |
| setz mal eine TMemo-Komponente auf dein Formular |
Um was geht es denn jetzt, um einen Button oder ein Memo ? Wenn ich Enter nicht für einen Zeilenumbruch benutzen will, sondern z.B. "z", dann wirds kompliziert. Vor allem, weil jeder dann beim Zeilenumbruch trotzdem Enter drückt und dadurch das Memo verläßt. :mrgreen:
Gruß
Hansa
Wolff68 - Do 21.11.02 20:12
Deshalb arbeiten wohl die Suchmaschinen nur mit einzeiligen Feldern? :?
Nee im Ernst. Bei einem TMemo ist es ja richtig, daß das Enter im Memo bleibt. Bei einem Edit funktioniert das mit dem Default wunderbar !
Wenn Du auch in einem Memo das Abfangen willst musst den anderen Weg gehen:
Zuerst
Form1.KeyPreview := True setzen.
Somit wird jede Tastatureingabe zuerst vom Formular ausgewertet.
Dann kannst mit folgendem Code zB. beim Drücken von [CTRL]+[ENTER] den Button1 quasi drücken.
Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin IF (Key = 13) AND (Shift = [ssCtrl]) then Button1Click(self); end; |
Über das (self) kannst in Button1Click dann sogar über den Sender rausbekommen wo denn der Fokus war. :wink:
Funzi - Do 21.11.02 20:16
| Zitat: |
| Nee im Ernst. Bei einem TMemo ist es ja richtig, daß das Enter im Memo bleibt. Bei einem Edit funktioniert das mit dem Default wunderbar ! |
sag ich doch :wink:
NaRF - Do 21.11.02 20:26
Titel: Danke !
@Funzi:
vielen dank für die hilfe. dein tip funktioniert.
@mod:
problem gelöst. thread kann geschlossen werden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!