AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi 7 SynEdit - OnKeyDown - Ord('C') - löscht den Text .. soll aber Text kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von paule32.jk · begonnen am 25. Aug 2023 · letzter Beitrag vom 26. Aug 2023
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#1

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

  Alt 25. Aug 2023, 13:28
Hallo,
ich nutze die SynEdit Komponenten für Delphi.
In der eigentlichen SynEdit Komponente fange ich ein OnKeyDown ab...
Das Event löscht mir aber den Text, und kopiert nicht einfach.
Woran kann das liegen ?

Ich verwende folgenden Code:
Code:
procedure TFrame19.CopyButtonClick(Sender: TObject);
begin
  SynEdit1.CopyToClipboard;
end;

procedure TFrame19.SynEdit1KeyDown(
  Sender: TObject; var
  Key  : Word;
  Shift : TShiftState);
begin
  if ssCtrl in Shift then
  begin
    if key = Ord('C') then begin CopyButtonClick(Sender); exit; end;
  end;
end;
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#2

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

  Alt 25. Aug 2023, 13:42
Hallöle...
Zitat:
In der eigentlichen SynEdit Komponente fange ich ein OnKeyDown ab...
Was passiert eigentlich, wenn du deinen Code einfach wegläßt?

SynEdit kann das von Haus aus... (Markieren des Textes vorausgesetzt)

Geändert von haentschman (25. Aug 2023 um 13:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 25. Aug 2023, 13:48
Zitat:
SynEdit kann das von Haus aus... (Markieren des Textes vorausgesetzt)
ja eben.
Aber bei mir wird der Text gelöscht, und auch nicht kopiert, wenn ich den Code auskommentiere.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 25. Aug 2023, 13:52
Unterschied D7 - Alexandria?

...auch bei einer Testform nur mit SynEdit drauf?
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#5

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

  Alt 25. Aug 2023, 14:28
Aber bei mir wird der Text gelöscht, und auch nicht kopiert, wenn ich den Code auskommentiere.
Kann ich nicht bestätigen. Das Beispiel Programm (mit Quelltext) zum Artikel verwendet SynEdit und arbeitet wie erwartet.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 25. Aug 2023, 15:57
ja, habs mal getestet, indem ich Delphi und SynEdit neu installiert habe.
... geht !

irgendwie muss ich mir die Konfiguration zerschossen haben, nachdem ich versucht
habe, SynEdit und andere Komponenten (wie Jedi, und Indy) mit der neuen Community
Version von Delphi übersetzen und installieren wollte.

So recht ist das noch nicht ausgefeilt mit so TestVersionen.
Oder die Pakete ansich haben eine Public Platz, an dem alles abgelegt wird - egal
was für eine Version vorliegt.

Es war ja auch so, das ich die ToolsAPI in Delphi 20,21 verwendet habe, und die
Quellen nicht gefunden habe, und dann einfach die Pfade von Delphi 7 übernommen
hatte.

Da kam dann der Fehler, das sich Variants.pas sich selbst beinhaltet - also so nen
Quatsch.

Nach verschwender-rischen 2 Stunden nach einer Lösung des Problems gesucht, weil ja
auch die tollsten Sachen in StackOverflow angeboten werden ...
... mal eine Neuinstallation gemacht.

Und siehe da, es geht.

Uff, Wochende gerettet.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 25. Aug 2023, 16:11
Wozu das Exit?

Und nun rate mal, warum das Eine ein VAR-Parameter ist.

Delphi-Quellcode:
  if (Key = Ord('C')) and (ssCtrl in Shift) then begin
    CopyButtonClick(Sender);
    Key := 0;
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Stolle58

Registriert seit: 4. Aug 2023
Ort: Frankfurt
15 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
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 13:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz