AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TKeyboard

Ein Thema von Willie1 · begonnen am 10. Okt 2025 · letzter Beitrag vom 11. Okt 2025
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
763 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

TKeyboard

  Alt 10. Okt 2025, 18:54
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.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (10. Okt 2025 um 19:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
727 Beiträge
 
Delphi 12 Athens
 
#2

AW: TKeyboard

  Alt 10. Okt 2025, 21:33
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.
Bei meinem D12.3 existiert keine TKeyboard Komponente. Meinst Du eventuell die TTouchKeyboard Komponente?
Roland
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
763 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: TTouchKeyboard

  Alt Gestern, 11:00
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.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.829 Beiträge
 
Delphi 12 Athens
 
#4

AW: TKeyboard

  Alt Gestern, 11:30
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.
Angehängte Dateien
Dateityp: 7z touchDemo.7z (975 Bytes, 6x aufgerufen)
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
727 Beiträge
 
Delphi 12 Athens
 
#5

AW: TKeyboard

  Alt Gestern, 12:08
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.
Roland
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.816 Beiträge
 
Delphi 12 Athens
 
#6

AW: TKeyboard

  Alt Gestern, 12:09
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)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
763 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: TKeyboard

  Alt Gestern, 18:38
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.

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!
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (Gestern um 18:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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