Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Leerzeichen in Edit1.Text verhindern

  Alt 5. Mai 2008, 16:34
Zitat von Fussball-Robby:
Der Cursor ist ja hinter dem bereits eingetippten Leerzeichen, wenn man dieses nun löscht, ist der Cursor 1 zu weit rechts
Falsch

du kannst kein Leerzeichen eingeben, wegen Edit1KeyPress

also alte Pos = Neue
und diese liegt vor dem eingefügtem Text


Zitat:
aber der Cursor blinkt immer ganz vorne. d.h. wenn du eine Buchstabe eintippst dann kommt vorne !!!
weil du den Text neu ins Edit schreibst und dabei die Cursorposition löschst
(siehe SelStart)


incl. Großschreibung:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ' then
    Key := #0;
  Else
    Key = AnsiUpperCase(Key)[1];
end;

procedure TForm1.Edit1Change(sender:TObject);
var
  s, s2: String;
  i: Integer;
begin
  s := TEdit(Sender).Text;
  s2 := AnsiUpperCase(s);
  if (pos(' ', s2) > 0) or (s <> s2) then
  begin
    i := TEdit(Sender).SelStart;
    TEdit(Sender).Text := AnsiUpperCase(StringReplace(s2, ' ', '', [rfReplaceAll]));
    TEdit(Sender).SelStart := i;
  end;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat