AGB  ·  Datenschutz  ·  Impressum  







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

Clipboard - Paste

Offene Frage von "Danny92"
Ein Thema von Danny92 · begonnen am 15. Aug 2015 · letzter Beitrag vom 15. Aug 2015
 
Benutzerbild von Danny92
Danny92

Registriert seit: 18. Aug 2014
55 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Clipboard - Paste

  Alt 15. Aug 2015, 18:45
Wie bei den meisten üblichen Programmen, möchte ich auch in eines meiner Fenster in einem Editfeld Text aus der Zwischenablage mittels Strg+V hineinkopieren, im folgenden KeyDown-Ereignis der TEdit-Komponente:

Code:
procedure TForm1.EdEingabeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  z: string;

begin
  if (Shift = [ssCtrl]) and (Key=ord('C')) then Clipboard.AsText:=EdEingabe.SelText else
  if (Shift = [ssCtrl]) and (Key=ord('X')) then begin
    Clipboard.AsText:=EdEingabe.SelText;
    z:=EdEingabe.Text;
    Delete(z, EdEingabe.SelStart+1, EdEingabe.SelLength);
    EdEingabe.Text:=z
  end else
  if (Shift = [ssCtrl]) and (Key=ord('A')) then EdEingabe.SelectAll else
  if (Shift = [ssCtrl]) and (Key=ord('V')) then
  begin
    {
    z:=EdEingabe.Text;
    //EdEingabe.Clear;
    Insert(Clipboard.AsText, z, EdEingabe.SelStart+1);
    EdEingabe.Text:=z
    }
  end
end;
Seltsamerweise habe ich nun inzwischen 2 verschiedene, mit Pascal implementierte Anwendungen, in denen beide Text in ein jeweiliges Editfeld mittels Strg-V wie gewollt aus der Zwischenablage eingefügt werden kann. Der Unterschied jedoch liegt darin, dass in einem der Anwendungen die Anweisungen auskommentiert wurden (siehe Code), der Paste-Vorgang jedoch trotzdem funktioniert, während, wenn ich in dem anderen Quellcode die entsprechende Stelle auskommentiere, logischerweise gar nichts passiert.
Warum ist das so?
Die drei Zeilen
Code:
z:=EdEingabe.Text;
Insert(Clipboard.AsText, z, EdEingabe.SelStart+1);
EdEingabe.Text:=z
sind in beiden Programmen komplett identisch!
Wenn ich in dem Fenster, in dem der Paste-Vorgang auch ohne diese Zeilen funktioniert, trotzdem reinschreibe, dann wird der Text aus der Zwischenablage doppelt in das Editfeld rein kopiert - einmal am Anfang des Editfelds und einmal an der Stelle EdEingabe.SelStart.
Hilfe...that's confusing?!

Geändert von Danny92 (15. Aug 2015 um 18:53 Uhr)
  Mit Zitat antworten Zitat
 

 

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 09:35 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