AGB  ·  Datenschutz  ·  Impressum  







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

Unsichtbares Leerzeichen

Ein Thema von jellol · begonnen am 31. Aug 2009 · letzter Beitrag vom 31. Aug 2009
Antwort Antwort
jellol

Registriert seit: 31. Aug 2009
2 Beiträge
 
Delphi 7 Enterprise
 
#1

Unsichtbares Leerzeichen

  Alt 31. Aug 2009, 19:54
Guten Abend!

Habe mich hier heute angemeldet, nachdem ich ungefähr 32.00 mal auf euren Forenseiten gelandet bin. Jetzt habe ich allerdings ein kleines Problem, für dass ich noch keine Lösung gefunden habe . Ist aber wirklich nur ganz klein.
Und zwar wollte ich ein kleines bisschen Zeit sparen, indem ich eine Eingabe, die ich in mehreren Programmen brauchte, in ein eigenes Programm schreibe, welches diese direkt in die Zwischenablage kopiert. (Ich weiß eigentlich spar ich mir dadurch nur Wort markieren, strg+c, aber wo ein Wille ist, ist ein Hindernis .) Also eben das Programm geschrieben. Hat alles geklappt. Dann hab ich noch eben hinzugefügt, dass das "Haupt-Edit" geleert wird, wenn man strg+return drückt. Und da kam das kleine Problem. Und zwar fügte sich immer ein "unsichtbares Leerzeichen" als erstes Zeichen in das Editfeld ein, wenn man zuvor strg+Return benutzt hat.
Das Programm mit Quellcode häng ich an.

Sichtbar wird das "unsichtbare Leerzeichen" in OpenOffice Calculator. In anderen Programmen ist es vorhanden, aber halt nicht sichtbar. Hab aber nicht soo viele Programme ausprobiert.

Man sieht meinen Versuch (trim), hat nicht geklappt.
Auch dem Edit eine leere String zuzuweisen macht keinen Sinn.

Zum Testen: Programm starten, strg+return, neue eingabe, anderes Programm öffnen, strg+v

Achso und für alle nichtregistrierten Leser:


Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Form1.Height := 53;
  Edit1.Left := 0;
  Edit1.Top := 0;
  Edit1.Width := Form1.Width;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if Edit1.Text <> 'then
    clipboard.AsText := trim(Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Height := 53;
  Edit1.Left := 0;
  Edit1.Top := 0;
  Edit1.Width := Form1.Width;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 17 then strgpress := true;
  if (key = 8) and (strgpress) then edit1.text := '';
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 17 then strgpress := false;
end;
Angehängte Dateien
Dateityp: zip take_it_clipboard_150.zip (194,0 KB, 0x aufgerufen)
Das Orakel von Delphi war eine englische Pilger- und Weissagungsanwendung der antiken USA und befand sich an der Property des Parameters bei der Stadt Delphi in der Landschaft Pointer.
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#2

Re: Unsichtbares Leerzeichen

  Alt 31. Aug 2009, 20:18
Zitat von jellol:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 17 then strgpress := true;
  if (key = 8) and (strgpress) then edit1.text := '';
end;
Hallo,

zunächst sollte man die definierten Konstanten benutzen (VK_BACK) und die gedrückte Strg-Taste aus Shift auslesen. Ausserdem wird die Eingabe Ctrl-BS ausgewertet, das gedrückte Zeichen wird aber zur Verarbeitung an Formular oder Edit weitergegeben. Wenn man eine Taste selbst verarbeitet, sollte man Key = 0 setzen, damit nicht aufgrund des Tastendrucks noch irgendwas anderes passiert. Also etwa so:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = VK_BACK) and (ssCtrl in Shift) then
    begin
    edit1.text := '';
    Key := 0;
    end;
end;
[/quote]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unsichtbares Leerzeichen

  Alt 31. Aug 2009, 20:22
und sicherheitshalber eventuell noch ein
Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = VK_BACK) and (ssCtrl in Shift) then
    Key := 0;
end;
hinterher, nicht daß noch etwas passiert, wenn man die Taste wieder losläßt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jellol

Registriert seit: 31. Aug 2009
2 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Unsichtbares Leerzeichen

  Alt 31. Aug 2009, 21:14
Okay hab ich probiert. Brachte zwar beim Ausführen keine Veränderung, aber immerhin, der Code ist schöner .
Habe mal ein bisschen ausprobiert. Es liegt an OpenOffice. Dieses nimmt wohl nicht so gerne fremde, unsichtbare Leerzeichen an. Kommen sie allerdings aus einem anderen OpenOffice-Dokument, stellt das Kopieren kein Problem dar. Auch wenn es sich dabei um andere Dokumenttypen OpenOffices handelt klappt es problemlos.
Seltsam ist es aber dennoch, vor allem, dass es sich mit Delphi nicht entfernen lässt.
Wenn noch jemand eine Idee hat, mich würd's interessieren, aber ich kann auch so beruhigt schlafen
Das Orakel von Delphi war eine englische Pilger- und Weissagungsanwendung der antiken USA und befand sich an der Property des Parameters bei der Stadt Delphi in der Landschaft Pointer.
  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 07:36 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