Einzelnen Beitrag anzeigen

Stolle58

Registriert seit: 4. Aug 2023
Ort: Frankfurt
16 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Delphi 7 SynEdit - OnKeyDown - Ord('C') - löscht den Text .. soll aber Text kopie

  Alt 26. Aug 2023, 14:59
Warum ist dieses Konstrukt bei Tastaturabfragen falsch.
Delphi-Quellcode:
  if (Key = Ord('B')) and (ssCtrl in Shift) then // falsch
  begin
    mach was;
  end;
  if (Key = Ord('B')) and ((ssAlt in Shift) and (ssCtrl in Shift)) then
  begin
    mach was anderes
  end;
Es kann zu einem Seiteneffekt führen, der schwer zu erkennen ist.
Den "mach was anderes" wird hier nie aufgerufen.

Besser ist die Abfrage mit:
Delphi-Quellcode:
 if (Key = Ord('B')) and ([ssCtrl] = Shift) then // richtig
 begin
   mach was;   
  end;
  if (Key = Ord('B')) and ([ssAlt, ssCtrl] = Shift) then
  begin
    mach was anderes
  end;
Reinhold

Geändert von Stolle58 (27. Aug 2023 um 08:27 Uhr)
  Mit Zitat antworten Zitat