![]() |
Aus einem c ein C machen.. aber wie??
Hi,
ich habe folgendes:
Delphi-Quellcode:
Das tippt ein kleines 'c'. Nun, wenn ich die Daten aus irgendwo auslese, sagen wir aus einem Editfeld, dann stehen da auch kleinbuchstaben drinne, die ich dann in die Großen umwandeln muss, damit die Prozedur nicht abstürzt, aber wie mache ich das? :wall:
VirKbdDrv(Ord('C'), [], false);
// Die Prozedur dafür ist 50 Zeilen lang und hier unwichtig. |
Re: Aus einem c ein C machen.. aber wie??
Siehe 'Uppercase'. Oder hiess das 'toUpper' ?? Guck mal in der OH nach Stringbearbeitung.
|
Re: Aus einem c ein C machen.. aber wie??
hi,
UPPER oder war es UPPERCASE liefert das ergebnis. Gruß Ken |
Re: Aus einem c ein C machen.. aber wie??
Delphi-Quellcode:
In gross steht nun "DAS IST EIN KLEINER TEXT" drin.
uses SysUtils;
procedure MachGross; var gross: string; klein: string; begin klein := 'das ist ein kleiner text'; gross := Uppercase(klein); end; |
Re: Aus einem c ein C machen.. aber wie??
Hi,
danke, passt wie Faust auf's Auge :-D Aber: wie kann ich feststellen, ob ein Zeichen Uppercase oder nicht ist??? :wall: |
Re: Aus einem c ein C machen.. aber wie??
indem du vergleichst.
Delphi-Quellcode:
var
zeichen: string; begin zeichen := 'c'; if (zeichen = uppercase(zeichen)) then begin // grosses zeichen end else begin // kleines zeichen end; end; |
Re: Aus einem c ein C machen.. aber wie??
okay, aber gibt der dann keine fehlermeldung aus, wenn ich versuche ein C groß zu schreiben?
|
Re: Aus einem c ein C machen.. aber wie??
Zitat:
Edit Nachtrag:
Delphi-Quellcode:
if ('c' = Uppercase('c') ) // wird nie erfüllt sein, da 'c' ungleich 'C' ist.
if ('C' = Uppercase('c') ) // ist hingegen immer erfüllt. |
Re: Aus einem c ein C machen.. aber wie??
Probier's aus. ;)
Wenn das c groß ist, wird halt
Delphi-Quellcode:
ausgeführt.
begin
// grosses zeichen end |
Re: Aus einem c ein C machen.. aber wie??
Hi,
Okay, passt. Merkwürdigerweise funktioniert die Prozedur. Aber ich weiß nicht, wieso... xD
Delphi-Quellcode:
Die Prozedur liest aus dem Edit1 aus und tippt virtuell. Allerdings muss ich ja irgendwas eingebbares markieren, darum die Verzögerung.
procedure TForm1.Button5Click(Sender: TObject);
var iStr: string; i: integer; iStrL: integer; f: string; begin sleep(1000); // Damit ich Zeit habe Edit2 anzuklicken iStr := Edit1.Text; iStrL := Length(iStr); for i := 1 to iStrL do begin f := iStr[1]; // erstes zeichen auslesen, tippen, löschen. if f = UpperCase(iStr[1]) then PostKeyEx32(Ord(iStr[1]), [ssShift], false) else begin f := UpperCase(iStr[1]); PostKeyEx32(Ord(f[1]), [], false); end; Delete(iStr, 1, 1); end; end; NACHTRAG: ------------- Ich bin zu blöde.. ich wollte
Delphi-Quellcode:
machen, und habe mich gewundert, wieso
Delete(iStr[1], 1, 1);
Delphi-Quellcode:
funktioniert hat. Das löscht eh das erste Zeichen... :wall:
Delete(iStr, 1, 1);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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-2025 by Thomas Breitkreuz