Autor Beitrag
Freeman1982
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Mo 28.11.05 21:30 
Hallo,

ich habe durch die Key Press Anweisung das eingeben von Buchstaben untersagt

ausblenden Delphi-Quelltext
1:
2:
 if Key in['0'..'9','-',',',CHR(VK_DELETE), CHR(VK_BACK)] = False then  
     Key := #0;




jetzt möchte ich aber noch das wenn ich den Punkt drücke auf der Tastatur das automatisch das komma auftaucht

MfG

Freeman

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mo 28.11.05 21:45 
ausblenden Delphi-Quelltext
1:
if key = #046 then key := #044;					

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
Freeman1982 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Mo 28.11.05 21:52 
Danke hat super geklappt,

wo findet man diese Abkürzungen für die einzelnen Tasten??


MfG

Freeman
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mo 28.11.05 22:08 
das ganze nennt man Suche bei Google ASCII und wird in hexadezimalzahlen angegeben. d.h. #0 und der hexadezimalwerte des zeichens.

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Mo 28.11.05 22:14 
nee diese schreibweise mit #xxx ist mit den dezimalen Werten ;)
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Mo 28.11.05 22:32 
Man kann ja auch - verständlich - so schreiben:
ausblenden Delphi-Quelltext
1:
if key = '.' then key := ',';					

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mo 28.11.05 22:43 
ja kann man aber irgenwie schreiben hier viele das mit den ascii werten also hab ich mir gedacht mach ich das auch mal.
und ja stimmt ist dezimal... ich habs sogar noch unter den dezimalwerten nachgeguckt... o man... naja egal

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mo 28.11.05 23:09 
Könnte mir jemand plausibel machen, warum man da unverständlicherweise den ASCII-Code hinschreibt um ihn dann mit dem # wieder zum Char zu wandeln, anstatt gleich ',' und '.' zu schreiben!???

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mo 28.11.05 23:34 
ich schätz mal damit man wenn man mehrere zeichen ausschliessen will nicht jedes zeichen einzeln angeben muss sondern einfach ein intervall macht z.b.: [#035..#045] (keine ahnung was das ausschliesst). für die punkt dings wäre das sicher genug gewesen aber er hat ja oben schon viele zeichen ausgeschlossen. vielleicht ginge das mit den ascii codes viel einfacher....

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 28.11.05 23:56 
Stimmt so nicht ... Man kann Bereiche auch so mit Chars angeben ... '0'..'9' ist wohl der bekannteste Vertreter dieser Sorte ... Kaum ein normaler Mensch würde hier auf die Idee kommen und #48..#57 oder noch grausamer sogar #$30..#$39 zu schreiben ...

Generell gilt, dass man alle ASCII-Zeichen kleiner als 32 (also #0..#31 bzw. #$00..#$1F) als ASCII-schreibt, (wird anders nicht akzeptiert) und alles größer gleich 32 als normale String-Literale. Ausnahmen bestätigen die Regel.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 29.11.05 00:40 
Hallo,

und ich würde die Behandlung des Tausender-Trennzeichen in Editfeldern so codieren,
ausblenden Delphi-Quelltext
1:
2:
  if key = ThousandSeparator then
    key := DecimalSeparator;

dann ist es auch unter anderen Systemeinstellungen noch richtig.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Di 29.11.05 13:32 
aber die sonderzeichen kann man ja wohl nicht mit '.'..'$' oder so angeben oder? darauf bezog sich meine antwort mit dem interval... dann muss man doch wieder die #xxx schreibweise nehmen... bei zahlen und buchstaben ist ja klar dass das auch mit 'A'..'Z' geht...

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Di 29.11.05 15:16 
bei dem $ weiß ich es nich, aber seit neuestem weiß ich, dass man ein ' im String so erhält: '''' ergibt '
also '' (zwei Apostrophen (oder Apostrophs? :? :P) keine doppelten Anführungszeichen!) wird zu ' ;)
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Di 29.11.05 16:45 
naja ich mein in so nem intervall. wenn ich nen string hab der keine besonderen zeichen aber schon @ und so haben soll dann kann man ja schlecht ['%'..'$'] (ich kenn die tabelle net auswendig nur so als beispiel) schreiben sondern müsste doch den weg über [#060..#070] (auch hier weiss ich grad nicht was im intervall ist nur als beispiel) gehen. oder kennt delphi die tabelle und schließt alles was in der tabelle zwischen ['%'..'$'] liegt bei dieser schreibweise aus.
ich hoffe ich habs deutlich formuliert

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Di 29.11.05 18:55 
Man weiß nicht, was alles in der Tabelle ist, ist als Programmierer eine schlechte Ausrede.

Schnell ein Programmsegment geschrieben, welches Dir die Zeichen dazwischen ausgibt - wie das geht, sollte jeder Delphianer wissen...




Wenn die Routine nicht sonderliche zeitkritisch ist, kann man die Liste erlaubter / verbotener Zeichen auch in einem String zusammenfassen und dann via POS(zeichen,erlaubte_oder_verbotene_zeichen) > 0 auf Existenz prüfen.


So bleibt man bei einer globalen Zeichenkette sogar recht flexibel.


MfG

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mi 30.11.05 15:24 
ich weiss was alles in der tabelle ist ich weiss nur nicht an welcher stelle. glaubste ich lern das ding auswendig wenn ich es in meiner formelsammlung und im netz finden kann?

es ging mir ja nur um ein beispiel ob man sonderzeichen aus der ascii auch mit sonem intervall angeben kann d.h. ob delphi wenn ich ['.'..','] das intern umwandelt in [#044..#046] (oder wars andersrum? egal) und dann halt zeichen #044, #045 und #046 nicht annimmt oder ob die schreibweise halt nicht geht und nur mit zahlen und buchstaben funktioniert. denn man kann ja ['a'..'z'] schreiben aber ich hab noch nie das mit sonderzeichen so gesehen. deswegen ja meine frage ob delphi das macht oder nicht. denn ansonsten wäre das noch ein vorteil solche abfragen bei edits mit den #xxx werten zu machen...

ganz einfach darum geht es mir...

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mi 30.11.05 16:07 
Hallo,

einfach mal testen:
ausblenden Delphi-Quelltext
1:
2:
if '-' in [','..'.'then
    showmessage('"-" ist enthalten');

oder so :wink: :
ausblenden Delphi-Quelltext
1:
2:
if '-' in [','..#45then
    showmessage('"-" ist enthalten');

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Mi 30.11.05 18:24 
@Lannes: genau das meine ich damit - einfach ausprobieren.

Ist es denn so schwer, mal sowas zu Debugging-Zwecken zu schreiben??? Auswendig lernen ist sowieso die falsche Methodik. Und wieso nachsehen, wenn man es mit einem Einzeiler programmieren kann:

ausblenden Delphi-Quelltext
1:
FOR I:=anfang TO ende DO CAPTION:=CAPTION+FORMAT(', ASCII: %d, CHAR: %s',I,CHR(I));					

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mi 30.11.05 20:15 
war ja auch nur ne frage weils gerade um das thema #xxx oder einfach '...' benutzen ging... klar kann ich es auch ausprobieren aber davon haben die anderen user ja auch nichts... naja egal werd ich es halt mal ausprobieren wenn ich zeit hab...

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700