Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Aus einem c ein C machen.. aber wie?? (https://www.delphipraxis.net/38770-aus-einem-c-ein-c-machen-aber-wie.html)

DymonD 23. Jan 2005 22:19


Aus einem c ein C machen.. aber wie??
 
Hi,
ich habe folgendes:
Delphi-Quellcode:
VirKbdDrv(Ord('C'), [], false);
// Die Prozedur dafür ist 50 Zeilen lang und hier unwichtig.
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:

Phoenix 23. Jan 2005 22:21

Re: Aus einem c ein C machen.. aber wie??
 
Siehe 'Uppercase'. Oder hiess das 'toUpper' ?? Guck mal in der OH nach Stringbearbeitung.

CenBells 23. Jan 2005 22:21

Re: Aus einem c ein C machen.. aber wie??
 
hi,

UPPER oder war es UPPERCASE liefert das ergebnis.

Gruß
Ken

Phoenix 23. Jan 2005 22:24

Re: Aus einem c ein C machen.. aber wie??
 
Delphi-Quellcode:
uses SysUtils;

procedure MachGross;
var
   gross: string;
   klein: string;
begin
   klein := 'das ist ein kleiner text';
   gross := Uppercase(klein);
end;
In gross steht nun "DAS IST EIN KLEINER TEXT" drin.

DymonD 23. Jan 2005 22:24

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:

Phoenix 23. Jan 2005 22:26

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;

DymonD 23. Jan 2005 22:27

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?

Phoenix 23. Jan 2005 22:29

Re: Aus einem c ein C machen.. aber wie??
 
Zitat:

Zitat von DymonD
okay, aber gibt der dann keine fehlermeldung aus, wenn ich versuche ein C groß zu schreiben?

Wieso sollte er einen Fehler ausgeben? Du vergleichst doch nur.

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.

Matze 23. Jan 2005 22:29

Re: Aus einem c ein C machen.. aber wie??
 
Probier's aus. ;)

Wenn das c groß ist, wird halt

Delphi-Quellcode:
   begin
      // grosses zeichen
   end
ausgeführt.

DymonD 23. Jan 2005 22:42

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:
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;
Die Prozedur liest aus dem Edit1 aus und tippt virtuell. Allerdings muss ich ja irgendwas eingebbares markieren, darum die Verzögerung.

NACHTRAG:
-------------
Ich bin zu blöde.. ich wollte
Delphi-Quellcode:
Delete(iStr[1], 1, 1);
machen, und habe mich gewundert, wieso
Delphi-Quellcode:
Delete(iStr, 1, 1);
funktioniert hat. Das löscht eh das erste Zeichen... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.
Seite 1 von 2  1 2      

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