![]() |
Re: TEdit erste Buchstabe immer Groß schreiben...
Hallo,
kleine Ergänzung zum Code oben.
Delphi-Quellcode:
Somit kann die Method für mehrere Editoren benutzen.
procedure TForm1.CommonEditChange(theEdit: TEdit);
var OldStart : Integer; TempProc: procedure (Sender: TObject) of object; begin with theEdit do begin if Text <> '' then begin TempProc:= theEdit.OnChange; try OnChange := NIL; OldStart := SelStart; Text := UpperCase(Copy(Text,1,1))+LowerCase(Copy(Text,2,Length(Text))); SelStart := OldStart; finally OnChange := TempProc; end; end; end; end; Heiko |
AW: Re: TEdit erste Buchstabe immer Groß schreiben...
Zitat:
|
AW: Re: TEdit erste Buchstabe immer Groß schreiben...
Zitat:
Als Erstes: diese Procedure arbeitet im Grunde auf Strings, warum sollte man sie auf die Nutzung mit TEdits beschränken. Die eigentliche Funktion kann man genauso hinschreiben wie man sich das vorstellt.
Delphi-Quellcode:
Fragen zum Code dürfen gestellt werden. Code darf in Frage gestellt werden :mrgreen:
function startWordsWithCaps(const x: String): String;
const blanks = [#9, #32, #10, #13]; var i: integer; lastWasBlank: boolean; begin SetLength(Result, length(x)); lastWasBlank := true; for i := 1 to length(x) do begin if lastWasBlank then Result[i] := upCase(x[i]) else Result[i] := x[i]; lastWasBlank := x[i] in blanks; end; end; |
AW: TEdit erste Buchstabe immer Groß schreiben...
Auch wenn es umständlicher aussieht:
Zitat:
Delphi-Quellcode:
if lastWasBlank then
Result[i] := AnsiUpperCase(x[i])[1] else Result[i] := x[i]; |
AW: TEdit erste Buchstabe immer Groß schreiben...
Zitat:
![]() Oder ist es wegen: Zitat:
![]() |
AW: TEdit erste Buchstabe immer Groß schreiben...
Aus der Hilfe zu Upcase:
Zitat:
|
AW: TEdit erste Buchstabe immer Groß schreiben...
Delphi-Quellcode:
function CapitalizeWords(const S: String): String;
const Blanks = [#9, #10, #13, #32]; var i: Integer; U: String; begin U := AnsiUpperCase(S); Result := S; for i := 1 to Length(Result) do if (i = 1) or (Result[i - 1] in Blanks) then Result[i] := U[i]; end; |
AW: TEdit erste Buchstabe immer Groß schreiben...
Jepp, das dürfte schneller sein. Aber noch ein Vorschlag:
Delphi-Quellcode:
So lässt sich steuern, ob ausschließlich der jeweils erste Buchstabe groß geschrieben werden soll.
function CapitalizeWords(const S: String; FirstOnly: Boolean = false): String;
const Blanks = [#9, #10, #13, #32]; var i: Integer; U: String; begin U := AnsiUpperCase(S); if FirstOnly then Result := AnsiLowerCase(S) else Result := S; for i := 1 to Length(Result) do if (i = 1) or (Result[i - 1] in Blanks) then Result[i] := U[i]; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr. |
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 by Thomas Breitkreuz