AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi <Strg> + <Leer> Abfangen, aber Leerzeichen nicht zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

<Strg> + <Leer> Abfangen, aber Leerzeichen nicht zeichnen

Ein Thema von xZise · begonnen am 10. Feb 2007 · letzter Beitrag vom 10. Feb 2007
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

<Strg> + <Leer> Abfangen, aber Leerzeichen nicht

  Alt 10. Feb 2007, 22:09
Ich möchte, wenn man bei einem Memo <Strg>+<Leer> eingibt, dass kein Leerzeichen in das Memo geschrieben wird.
Wie kann ich das umgehen?
Ich benutze z.Zt. "KeyDown"
Delphi-Quellcode:
procedure TfrmSettings.mEndKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ([ssCtrl] = Shift) and (key = VK_SPACE) then
  begin
    // Dann soll er was machen
  end;
end;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:19
Dir das ganze in einem Boolean merken und im OnChange das Leerzeichen raushauen

Ich glaub, das ist die einzige Möglichkeit.

Eventuell feuert OnKeyPress da, da kannst du dann deinen Key auf #0 setzen, falls du das Boolean gesetzt hast - eine etwas elegantere Möglichkeit.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:43
Das Problem ist, dass das Leerzeichen, davor gezeichnet wird...

Was auch möglich wäre, eine eine Memo zu machen, und die KeyPressmethode überschreiben...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:46
Key ist die Variable, die das enthält, was dann geschrieben wird. Setze da einfach nix rein:
Key:=#0;
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:49
Ja ich weis: Aber bei key down (was ich wegen der Strg-Taste brauch), hat er schon vorher das Zeichen gezeichnet...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:51
So gehts:

Delphi-Quellcode:
var
  StrgDown: Boolean = False;

{...}

procedure TForm3.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_CONTROL then
    StrgDown := True;
end;

procedure TForm3.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_CONTROL then
    StrgDown := False;
end;

procedure TForm3.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = ' ') and StrgDown then
    Key := #0;
end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:56
Ah Danke! So funktionierts...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 22:58
Noch etwas einfacher wäre das hier:
Delphi-Quellcode:
procedure TForm3.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = ' ') and (GetKeyState(VK_CONTROL) < 0) then
    Key := #0;
end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

Re: <Strg> + <Leer> Abfangen, aber Leerzeichen n

  Alt 10. Feb 2007, 23:30
Das ist natürlich die Beste Lösung!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  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 15:19 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