Autor |
Beitrag |
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 11:32
ich habe heute ein etwas merkwürdiges Verhalten festgestellt:
ich habe einen Button_1 mit einem KeyDown-Ereignis.
eine weiter Button_2 für eine Auswahl mit der Caption "&Auswahl"
wenn der Button_1 den Focus hat und ich dort eine "a" oder "A" eintrage wird der Button_2 ausgelöst.
weiß jemand wie ich das umgehen kann?
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 13:26
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 13:58
hi,
das kann nicht sein!
wenn ich ein Memo beschreibe dann werden ja auch nicht alle Buttons mit dem jeweiligen Präfix ausgelöst.
Dazu muss ich doch ALT+....(Präfix) drücken.
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 14:07
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 14:17
du meintest
Zitat: | so ist es vollkommen egal, welches Control den Fokus im Moment hat. |
das Problem besteht noch, es geht eben darum das der Button_1 den Focus hat und Daten über einen Barcode-Scanner (Tastatur) empfangen werden.
wenn ein Buchstabe gescannt wird der den entprechenden Short-Cut von Button_2 hat, geht ein anderes Fenster auf.
aber die ShortCut werden doch nur mit ALT +... ausgelöst.
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 14:35
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 14:56
die beiden Buttons haben dasselbe parent,
Button_1 hat den Focus, solange ich Buchstaben tippe die nicht in den ShortCuts verwendet werden ist alles gut.
wenn ich in einem anderen Control rumtippe, TEdit, TMemo, etc. funktioniert es.
hab auch schon versucht den Button zu ändern -> TButton, TBitBtn,
immer wird der Button mit dem ShortCut aktiviert
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 15:04
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 15:14
nein, der ShortCut ist nur einmal vergeben.
aber das wär ja auch egal, ich will gar keinen ShortCut verwenden.
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 15:16
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Do 07.07.16 15:56
Zitat: | ich habe einen Button_1 mit einem KeyDown-Ereignis.
eine weiter Button_2 für eine Auswahl mit der Caption "&Auswahl"
wenn der Button_1 den Focus hat und ich dort eine "a" oder "A" eintrage wird der Button_2 ausgelöst.
|
der Button_2 mit dem ShortCut wird ausgelöst, aber ich tippe nur auf den Buchstaben rum während Button_1 den Focus hat, ohne ALT zu drücken.
ich hoffe es ist verständlich.
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 07.07.16 18:43
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
jasocul
Beiträge: 6388
Erhaltene Danke: 146
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 08.07.16 08:29
Du könntest dir sowas konstruieren (ungeprüft):
Delphi-Quelltext 1: 2: 3: 4:
| if Button_1 <> ActiveControl then begin end; |
Ob das KeyDown-Event dann aber noch ausgelöst wird, weiß ich. Das könntest du dann aber gegebenenfalls manuell auslösen.
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Fr 08.07.16 14:37
@Frühlingsrolle: genau das ist mein Problem und da gibt es keine Möglichkeit das zu umgehen, evtl mit ner eigenen Komponente?
@jasocul: das löst das Problem nicht, der Shortcut wird trotzdem ausgeführt
_________________ Wer sichert ist feige!!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 08.07.16 15:23
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Mo 11.07.16 12:22
der Focus steht auf dem Button, ich scanne jetzt die Daten und im Barcode ist ein "A",
jetzt wird die Schaltfläche mit dem Shortcut "A" ausgeführt und das will ich nicht
_________________ Wer sichert ist feige!!
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 11.07.16 13:09
Als schnelle Lösung kannst Du ja abfragen, was grade das aktive Control ist (im ButtonClick).
Also so:
Delphi-Quelltext 1: 2: 3: 4:
| if Self.ActiveControl = Sender then begin
... und hier erst den eigentlichen Code des Buttons ausführen |
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Mo 11.07.16 13:39
genau sowas bringt mir nichts, die Bedingung ist ja immer TRUE
_________________ Wer sichert ist feige!!
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mo 11.07.16 13:41
Hast Du es ausprobiert? Bei mir funktioniert das so, da der Button mit der &A-Caption nicht den Fokus erhält.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Fienix
Beiträge: 109
Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
|
Verfasst: Mo 11.07.16 13:45
aber dann funktionieren die ShortCuts nicht mehr
_________________ Wer sichert ist feige!!
|
|