Autor Beitrag
Ringo
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 20.09.02 12:46 
Hallo,

ich möchte, dass der eingegebene Text in einem Memofeld beim Schreiben in Großbuchstaben erscheint. Eine Eigenschaft 'CharCase' gibt es nicht und beim Formatieren mit UpperCase in einem OnChange-Ereignis springt der Curser immer an die erste Stelle des Textes.
Gibt es dafür eine Lösung?
Besten Dank!
Ringo
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 20.09.02 12:58 
hi,

probiers mal mit folgenden Code: (Habe ihn nur mal eben zusammengetippt, weiss also nicht, ob er funtzt, müsste er aber eigentlich)

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key in ['a'..'z'] then
  begin
    Key := UpperCase(Key)[1];
  end;
end;

_________________
Viele Grüße
Jakob
Ringo Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 20.09.02 13:11 
He super, das funktioniert.
Danke!
Ringo
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 20.09.02 14:09 
des ist gut :)

_________________
Viele Grüße
Jakob
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 20.09.02 14:54 
Hi
Kleiner Verbesserungsvorschlag, denn früher oder später passierts:
ausblenden Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if  key in ['a'..'z','ä', 'ö', 'ü'] then
    Key := AnsiUppercase(Key)[1];
end;


Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.09.02 15:08 
Ein noch besserer Vorschlag, weil das Memo ja API-technisch gesehen ein Multiline-Edit ist:
ausblenden Quelltext
1:
2:
SetWindowLong(Memo1.Handle,GWL_STYLE,
  GetWindowLong(Memo1.Handle,GWL_STYLE) or ES_UPPERCASE);

8)
Auf die gleiche Weise lässt sich eine Eingabe auch auf Kleinbuchstaben (ES_LOWERCASE), oder auf Nummern (ES_NUMBER) begrenzen.

Anwendung: 1x im "OnCreate" ...
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 20.09.02 15:10 
Hi LCS,

mein Code sollte auch nur ein kleines Beispiel sein. Natürlich kann man das noch erweitern :wink: Aber trotzdem gut, dass du es geschrieben hast.

_________________
Viele Grüße
Jakob
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 20.09.02 15:15 
Sollte ja auch keinerlei Kritik sein :beer: .
Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Fr 20.09.02 15:24 
habe ich auch nicht so aufgefasst :mrgreen: also den prost :beer: :wink:

_________________
Viele Grüße
Jakob