Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Leerzeichen in Edit1.Text verhindern (https://www.delphipraxis.net/113270-leerzeichen-edit1-text-verhindern.html)

Delphiturbo 5. Mai 2008 14:50


Leerzeichen in Edit1.Text verhindern
 
Hallo

wie kann ich Leerzeichen in Edit1.Text OnChange.Event verhindern ?
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
// habe ich einmal so gelöst
// if ... = ' ' then ... :=''
end;

Matze 5. Mai 2008 14:53

Re: Leerzeichen in Edit1.Text verhindern
 
Hi,

das geht sicher, doch ich würde dafür das OnKeyPress-Ereignis nutzen:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ' ' then
    Key := #0;
end;
Grüße, Matze

Fussball-Robby 5. Mai 2008 14:53

Re: Leerzeichen in Edit1.Text verhindern
 
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ' ' then
    Key := #0;
end;
Mfg

Edit: da hatte wohl jemand die gleiche Idee :lol:

Delphiturbo 5. Mai 2008 14:59

Re: Leerzeichen in Edit1.Text verhindern
 
Und was wäre wenn der User den Inhalt nicht eintippt sondern einfügt ? :mrgreen:

was muss man dagegen in Onchange eingeben?

_frank_ 5. Mai 2008 15:00

Re: Leerzeichen in Edit1.Text verhindern
 
Zitat:

Zitat von Matze
das geht sicher, doch ich würde dafür das OnKeyPress-Ereignis nutzen:

und was ist mit copy&paste? ich würde schon das OnChange nehmen, so in etwa (ungetested):

Delphi-Quellcode:
procedure TForm1.Edit1Change(sender:TObject);
var s:string;
    p:integer;
begin
  s:=(sender as TEdit).text;
  p:=pos(' ',s);
  while p>0 do
  begin
    delete(s,p,s);
    p:=pos(' ',s);
  end;
  (sender as TEdit).text:=s;
end;
HTH Frank

toms 5. Mai 2008 15:03

Re: Leerzeichen in Edit1.Text verhindern
 
Hallo, ist es wichtig, dass keine Leezeichen im Edit erscheinen oder dürfen bei einer späteren Verarbeitung des Edittextes keine Leerzeichen vorhanden sein?
Bei Letzterem könntest du die Leerzeichen per StringReplace herausfiltern.

lbccaleb 5. Mai 2008 15:04

Re: Leerzeichen in Edit1.Text verhindern
 
oder eine nicht ganz so schöne methode:

Delphi-Quellcode:
var
  i: integer;
  tempstr: string;
begin
  tempstr := '';
  for i := 1 to Length(edit1.Text) do
    if edit1.Text[i] <> ' ' then
      tempstr := tempstr + edit1.Text[i];
  edit1.Text := tempstr;
end;
das in onchange einfügen..

Delphiturbo 5. Mai 2008 15:08

Re: Leerzeichen in Edit1.Text verhindern
 
Zitat:

Zitat von lbccaleb
oder eine nicht ganz so schöne methode:

das in onchange einfügen..

Es hat nicht funktioniert auch der Code von _frank_!!!
Ich habe diesen Code gehabt. Er war ein kurzer Code mit der Idee if ... ' ' then ... =''

Phoenix 5. Mai 2008 15:11

Re: Leerzeichen in Edit1.Text verhindern
 
WAS hat nicht funktioniert?
Und was heisst 'Er war klein !' ???

himitsu 5. Mai 2008 15:12

Re: Leerzeichen in Edit1.Text verhindern
 
besser währe wohl Beides
- erst garkein Leerzeichen beim Eingeben erlauben > muß man es auch nicht mehr unschön löschen
- und den Cursor muß man ja auch nicht ständig verschieben :angel:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ' ' then
    Key := #0;
end;

procedure TForm1.Edit1Change(sender:TObject);
var
  s: String;
  i: Integer;
begin
  s := TEdit(Sender).Text;
  if pos(' ', s) > 0 then
  begin
    i := TEdit(Sender).SelStart;
    TEdit(Sender).Text := StringReplace(S, ' ', '', [rfReplaceAll]);
    TEdit(Sender).SelStart := i;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz