Autor Beitrag
Fienix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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



BeitragVerfasst: Do 07.07.16 13:26 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Do 07.07.16 13:58 
hi,

das kann nicht sein! :shock:
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



BeitragVerfasst: Do 07.07.16 14:07 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Do 07.07.16 14:17 
du meintest
Zitat:
so ist es vollkommen egal, welches Control den Fokus im Moment hat.
:P

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



BeitragVerfasst: Do 07.07.16 14:35 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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



BeitragVerfasst: Do 07.07.16 15:04 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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



BeitragVerfasst: Do 07.07.16 15:16 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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



BeitragVerfasst: Do 07.07.16 18:43 
- Nachträglich durch die Entwickler-Ecke gelöscht -
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 08.07.16 08:29 
Du könntest dir sowas konstruieren (ungeprüft):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  if Button_1 <> ActiveControl then
  begin
    // DoSomething;
  end;

Ob das KeyDown-Event dann aber noch ausgelöst wird, weiß ich. Das könntest du dann aber gegebenenfalls manuell auslösen.
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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



BeitragVerfasst: Fr 08.07.16 15:23 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Fienix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 11.07.16 13:09 
Als schnelle Lösung kannst Du ja abfragen, was grade das aktive Control ist (im ButtonClick).
Also so:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Mo 11.07.16 13:39 
genau sowas bringt mir nichts, die Bedingung ist ja immer TRUE

_________________
Wer sichert ist feige!!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Win 2K, Win XP Pro, Win 7
D 5 Pro., D 7 Ent., D 2010 Pro.
BeitragVerfasst: Mo 11.07.16 13:45 
aber dann funktionieren die ShortCuts nicht mehr

_________________
Wer sichert ist feige!!