![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Anydac LocalHost
TEdit erste Buchstabe immer Groß schreiben...
Halo Freunde ,
bei SQL Anfrage schicken muss ich immer erste Buchstabe im TEdit groß schreiben sonst findet mein Query gar keinen Datensatz. Gibt es eine Möglichkeit dass man im TEdit erste Buchstabe immer groß geschrieben bekommt. Mit Char.ecUpperCase griege ich ganze Text groß ich brauche aber nur erster Buchstabe...? :coder: ´nen guuuuuten Rutsch ins neue.. :feuerchen: |
Re: TEdit erste Buchstabe immer Groß schreiben...
Ich würde eher das SQL anpassen.
|
Re: TEdit erste Buchstabe immer Groß schreiben...
Thanx Detlef ,
für dein Antwort. Aber wie griege ich im SQL das hin ! UND general wie ist es möglich das beim daten eingabe immer rste Buchstabe nur im Uppercase bleibt ? |
Re: TEdit erste Buchstabe immer Groß schreiben...
Um trotzdem deine Frage zu beantworten, könntest du das ungefähr so lösen (OnChange):
Delphi-Quellcode:
Oder so ähnlich. Mit dem Char bin ich mir grad nicht ganz sicher. Das müsstest du ausprobieren.
MyText := Edit.Text;
MyText := LowerCase(MyText); MyText[0] := UpperCase(PChar(MyText[0])); Edit.Text := MyText; |
Re: TEdit erste Buchstabe immer Groß schreiben...
SQL-Code:
SELECT Feld FROM Tabelle
WHERE UPPER(Feld) = UPPER(Text_aus_dem_Edit) |
Re: TEdit erste Buchstabe immer Groß schreiben...
@Matze und Detlef
funzen leider beide nix.... |
Re: TEdit erste Buchstabe immer Groß schreiben...
im onExit Ereignis:
Delphi-Quellcode:
Grüße
MyText := Edit.Text;
MyText := LowerCase(MyText); MyText[0] := UpperCase(MyText[0]); Edit.Text := MyText; Klaus |
Re: TEdit erste Buchstabe immer Groß schreiben...
MyText[1] ;)
|
Re: TEdit erste Buchstabe immer Groß schreiben...
Nein nein ich habs nun hin gegriegt und zwar geht so....
procedure TForm1.Edit1Change(Sender: TObject); var OldStart : Integer; begin With Edit1 do if Text <> '' then begin OnChange := NIL; OldStart := SelStart; Text := UpperCase(Copy(Text,1,1))+LowerCase(Copy(Text,2,Le ngth(Text))); SelStart := OldStart; OnChange := Edit1Change; end; end; |
Re: TEdit erste Buchstabe immer Groß schreiben...
Trotzdem muss die Abfrage von oben doch auch funktionieren.
|
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 07:16 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