![]() |
TKeyboard
Hey Leute,
ich benutze in einem Programm die TKeyboard Komponente. Wenn ich alt-GR drücke wird die akustische Erklärung eingeschaltet und das Programm stürzt ab. Das ist blöd. Ich habe die KI befragt und die sagt, dass Alt-GR bei TKeyboard nicht richtig funktioniert. Könnt ihr das bestätigen? Habe das Programm einige Mal verschenkt und es ist total peinlich, wenn mein Programm auf diese Art abstürzt. Für einen Profi geht sowas doch überhaupt nicht. Mir fällt ein, dass Delphi 2005 und Turbo Delphi ebenfalls mit der Alt-GR Taste bei Vista Ärger hatten. Gruß Willie. |
AW: TKeyboard
Zitat:
|
AW: TTouchKeyboard
Da habe ich mich unpräzise ausgedrückt. Es geht natürlich um TTouchKeyboard. Aber meine Kritik bleibt. Sobald ich den Alt-Gr Button klicke, stürzt das Programm ab und sogar das komplette Radstudio Delphi 12.3. Das darf doch wirklich nicht sein.
Willie. |
AW: TKeyboard
Liste der Anhänge anzeigen (Anzahl: 1)
Kann ich nicht nachvollziehen. D12.3 VCL: Ein TEdit und ein TTouchkeyboard auf eine Form, compiliert und im Debugger kann ich ohne Probleme zB "€" oder "@" per Touchkeyboard eingeben, und kann diese im Edit sehen.
|
AW: TKeyboard
Gemäss ChatGPT gab es diese Abstürze, welche in der 10.4 Version behoben wurden.
Nun, die 10.1 Starter ist mittlerweile auch schon 9-jährig. Da Du vermutlich nicht über den Quellcode der Vcl.Touch.Keyboard.pas verfügst, kannst Du die betroffene Stelle vermutlich nicht selber patchen. Gemäss dem fleissigen Helferlein könnte dieser Ansatz als Fix funktionieren:
Delphi-Quellcode:
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, Vcl.Forms, Vcl.Controls, Vcl.StdCtrls, Vcl.Touch.Keyboard; type TForm1 = class(TForm) Edit1: TEdit; TouchKeyboard1: TTouchKeyboard; private procedure WMKeyDown(var Msg: TWMKeyDown); message WM_KEYDOWN; procedure SendAltGrChar(C: Char); public constructor Create(AOwner: TComponent); override; end; implementation constructor TForm1.Create(AOwner: TComponent); begin inherited; // TouchKeyboard zeigt Tasten an, wir fangen AltGr über WMKeyDown ab end; // AltGr-Erkennung über Windows-Nachrichten procedure TForm1.WMKeyDown(var Msg: TWMKeyDown); var CtrlDown, AltDown: Boolean; begin CtrlDown := (GetKeyState(VK_CONTROL) < 0); AltDown := (GetKeyState(VK_MENU) < 0); // Prüfen, ob AltGr gedrückt wird (Ctrl+Alt gleichzeitig) if CtrlDown and AltDown then begin case Msg.CharCode of Ord('Q'): SendAltGrChar('@'); // AltGr+Q Ord('E'): SendAltGrChar('€'); // AltGr+E Ord('+'): SendAltGrChar('~'); // AltGr+Plus Ord('ß'): SendAltGrChar('\'); // AltGr+ß Ord('7'): SendAltGrChar('{'); // AltGr+7 Ord('0'): SendAltGrChar('}'); // AltGr+0 else Exit; // sonst nichts tun end; // Message abbrechen, damit TouchKeyboard nichts intern verarbeitet Exit; end; inherited; // normale Verarbeitung für alle anderen Tasten end; // Hilfsfunktion, um Zeichen über Windows API zu senden procedure TForm1.SendAltGrChar(C: Char); var Input: TInput; Vk: Word; begin Vk := VkKeyScan(C); ZeroMemory(@Input, SizeOf(Input)); Input.Itype := INPUT_KEYBOARD; Input.ki.wVk := Vk; Input.ki.dwFlags := 0; SendInput(1, Input, SizeOf(TInput)); Input.ki.dwFlags := KEYEVENTF_KEYUP; SendInput(1, Input, SizeOf(TInput)); end; end. |
AW: TKeyboard
Alt Gr = Strg + Alt
Ich wüsste nicht, warum das nicht gehen sollte. Und ich kann mich nicht erinnern, dass dadurch die Anwendung abstürzt (eine Exception kommt, oder sonstwas) |
AW: TKeyboard
Hallo Sherlock, ich habe dein Programm herunter geladen, kompiliert und ausgeführt. Es verhält sich genauso, wie mein Programm. Es stürzt ab und lässt sich nur mit Beenden des Radstudios wirklich abschließen. Außerdem wird die akustische Beschreibung eingeschaltet. Also wenn ich rechts oben auf das X drücke, höre ich Programm beenden usw. (Die bleibt auch, wenn ich das Radstudio beende und ist z.B. auch im Edge zu hören).Himitsu, wenn ich Alt+Strg in der virtuellen Tastatur klicke. passiert das gleiche. Ich benutze das Prg seit 7 Jahren, ich hatte eben nur nie den Alt-Gr Button geklickt.:cry:
Ich Benutze Delphi 12.3 CE mit der Windows-Lupe 4-fach. Keine Akustischen Funktionen. Das Prg von Sherlock enthält ja wirklich nur das mindeste, da kann es ja keine Nebeneffekte geben! |
AW: TKeyboard
Sind irgendwelche Shortcut-Tools installiert mit denen über Shortcuts bestimmte Programme gestartet werden können?
Wenn du dir das Windows Event-Log anschaust, sind da detailliertere Informationen zum Absturz zu finden? |
AW: TKeyboard
Um das Programm "abzuschiessen", reicht normalerweise der Taskmanager.
Mit oder ohne Lupe kann ich mit D12.3 keinen direkten Absturz feststellen - Ein Fehlverhalten bei eingeschalteter Lupe aber schon. Ohne Lupe funktioniert alles korrekt Mit eingeschalteter Lupe können zuerst die Tasten normal angeklickt werden und die Zeichen erscheinen im Edit-Feld. Sobald die AltGr Taste angeklickt, verhält sich das ganze "komisch": - In der Lupe erscheint immer kurz das Pausensymbol - Das drücken eines Buchstabens scheint keine Wirkung zu haben - Die Lupe lässt sich nur noch schwer beenden (ich muss mehrfach auf das Schließen Symbol klicken) - Wenn die Lupe geschlossen ist, hat ein Klick auf einen Buchstaben zuerst keine Auswirkung - Die Zeichen werden erst wieder ausgegeben, wenn in das Edit-Feld geklickt wurde - Das Fehlverhalten der Lupe ist nur beim Testprogramm feststellbar, sprich wenn in ein anderes Programm geklickt wird, verhält sich diese wieder "normal" Getestet habe ich mit D12.3 unter W10 und W11. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz